Перейти к основному содержимому

OpenAI adapter

В Caila реализован специальный endpoint для использования в приложениях, которые уже интегрированы с OpenAI интерфейсом.

API

API доступно по адресу: https://caila.io/api/adapters/openai

Поддерживаются методы:

  • chat/completion
  • completion
  • embedding
  • models

Для обращения к Caila-сервисам через OpenAI адаптер нужно указать:

  • В хидере Authorization указать API-ключ, созданный в Caila
  • В поле model в запросе указать ID модели в формате: <author>/<service>[/model]
  • author — первая часть идентификатора модели — имя аккаунта владельца сервиса (не вашего собственного, а того, кто разместил сервис). Например just-ai.
  • service — имя сервиса в Caila. Например openai-proxy.
  • model — опциональная часть, определяет значение поля «model», которое будет передано в сервис в запросе. Например gpt-4o.

Примеры запросов

Qwen

curl https://caila.io/api/adapters/openai/chat/completions \
-H 'Authorization: <ключ из Caila>' \
-H 'Content-Type: application/json' \
-d '{"model":"just-ai/vllm-qwen1.5-32b-chat","messages":[{"role":"user","content":"Напиши текст на 100 слов"}],"stream":true}'

Chat-GPT

curl https://caila.io/api/adapters/openai/chat/completions \
-H 'Authorization: <ключ из Caila>' \
-H 'Content-Type: application/json' \
-d '{"model":"just-ai/openai-proxy/gpt-3.5-turbo","messages":[{"role":"user","content":"Напиши текст на 100 слов"}],"stream":true}'

Технические детали

OpenAI adapter работает через те же интерфейсы, что и Caila LLM API.

При получении запроса, адаптер разбирает тело запроса и разделяет его на ChatCompletionRequest и ChatCompletionConfig. Поля model, stream и messages помещаются в predict-request, а все остальные поля в predict-config и в таком виде передаются сервису. Ответ от сервиса передаётся в ответ gpt-adapter как есть.