Перейти к основному содержанию
Служба векторизации слов OpenAI предназначена для генерации векторных представлений входного текста. В этом документе в основном описывается процесс использования OpenAI Embeddings API, с помощью которого мы можем создавать векторные представления входного текста.

Процесс заявки

Чтобы использовать OpenAI Embeddings API, сначала перейдите на страницу OpenAI Embeddings API и нажмите кнопку «Acquire», чтобы получить необходимые для запроса учетные данные: Если вы еще не вошли в систему или не зарегистрированы, вас автоматически перенаправят на страницу входа, пригласив зарегистрироваться и войти в систему. После входа или регистрации вы автоматически вернетесь на текущую страницу. При первой подаче заявки вам будет предоставлен бесплатный лимит, который можно использовать для работы с этим API.

Основное использование

Теперь вы можете заполнить соответствующие поля на интерфейсе, как показано на изображении:

При первом использовании этого интерфейса вам необходимо заполнить как минимум три поля: одно из них — authorization, которое можно выбрать прямо из выпадающего списка. Другой параметр — model, model — это категория модели, которую мы выбираем для использования с сайта OpenAI, здесь у нас в основном есть 3 модели, подробности можно посмотреть в предоставленных моделях. Последний параметр — input, input — это текст, который мы хотим преобразовать в вектор слов. Также вы можете заметить, что справа есть соответствующий код вызова, который вы можете скопировать и запустить, или просто нажать кнопку «Try» для тестирования. Дополнительные параметры:
  • dimensions: обрезка размерности вектора, по умолчанию выводится полная размерность.
  • encoding_format: формат возврата, можно выбрать float или base64.

Пример кода вызова на Python:
import requests

url = "https://api.acedata.cloud/openai/embeddings"

headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json"
}

payload = {
    "input": "The food was delicious and the waiter...",
    "model": "text-embedding-ada-002",
    "encoding_format": "float"
}

response = requests.post(url, json=payload, headers=headers)
print(response.text)
После вызова мы обнаруживаем, что возвращаемый результат выглядит следующим образом:
{
  "object": "list",
  "data": [
    {
      "object": "embedding",
      "index": 0,
      "embedding": [
        0.0022756963,
        -0.009305916,
        0.015742613,
        -0.0077253063,
        -0.0047450014,
        0.014917395,
        -0.009807394,
        -0.038264707,
        -0.0069127847,
        -0.028590616,
        0.025251659,
        ....
        -0.014079482,
        -0.015425222,
        0.0040753055,
        0.002727979,
        -0.03138366,
        0.041159317,
        -0.017608874,
        -0.018637223,
        0.014587308,
        0.010486611,
        -0.015387135,
        -0.019424353,
        -0.002800979
      ]
    }
  ],
  "model": "text-embedding-ada-002",
  "usage": {
    "prompt_tokens": 8,
    "total_tokens": 8
  }
}
Возвращаемый результат содержит несколько полей, описание которых приведено ниже:
  • model, модель, использованная для преобразования текста в вектор слов.
  • usage, информация о токенах, использованных для преобразования текста в вектор слов.
  • data, результат преобразования текста в вектор слов.
Где data содержит конкретную информацию о векторе слов, соответствующем тексту, а embedding — это конкретный результат сгенерированного вектора слов.

Обработка ошибок

При вызове API, если возникнет ошибка, API вернет соответствующий код ошибки и информацию. Например:
  • 400 token_mismatched: Неверный запрос, возможно, из-за отсутствующих или недействительных параметров.
  • 400 api_not_implemented: Неверный запрос, возможно, из-за отсутствующих или недействительных параметров.
  • 401 invalid_token: Неавторизовано, недействительный или отсутствующий токен авторизации.
  • 429 too_many_requests: Слишком много запросов, вы превысили лимит частоты.
  • 500 api_error: Внутренняя ошибка сервера, что-то пошло не так на сервере.

Пример ответа об ошибке

{
  "success": false,
  "error": {
    "code": "api_error",
    "message": "fetch failed"
  },
  "trace_id": "2cf86e86-22a4-46e1-ac2f-032c0f2a4e89"
}

Заключение

С помощью этого документа вы узнали, как легко использовать API OpenAI Embeddings для генерации векторов слов от официального OpenAI. Надеемся, что этот документ поможет вам лучше интегрировать и использовать этот API. Если у вас есть какие-либо вопросы, пожалуйста, не стесняйтесь обращаться в нашу техническую поддержку.