Тип задачи: GPT
Тип задачи chat-completion служит для обозначения сервисов, которые выполняют генерацию текста в режиме диалога. Основным примером сервиса этого типа задачи является Chat GPT.
Системное название: chat-completion
Список сервисов: https://caila.io/catalog?TaskType=chat-completion
Типы данных
В качестве базового интерфейса мы взяли спецификации интерфейса OpenAI. Спецификация OpenAI содержит много особенностей, которые могут не поддерживаться всеми существующими сервисами. Но если поддерживаются, то интерфейс доступа к ним у всех сервисов будет одинаковый.
Predict request
- Спецификация: https://caila.io/specs/mlp-data-gpt.yml#/ChatCompletionRequest
- Python тип: ...(модуль mlp-python-sdk)
- Java тип: com.mlp.api.datatypes.chatgpt.ChatCompletionRequest(модуль mlp-datatypes)
Пример запроса:
{
  "messages": [
    { "role": "user", "content": "Привет" }
  ]
}
Predict config
Для задачи chat-completion у нас также описан рекомендуемый тип predict-config. В него вынесены наиболее важные и часто встречающиеся настройки для llm-инференса. Все поля predict-config, как и сам параметр, являются опциональными.
- Спецификация: https://caila.io/specs/mlp-data-gpt.yml#/ChatCompletionConfig
- Python тип: ...(модуль mlp-python-sdk)
- Java тип: com.mlp.api.datatypes.chatgpt.ChatCompletionConfig(модуль mlp-datatypes)
Пример конфига:
{
  "model": "gpt-4o",
  "stream": true,
  "max_tokens": 2000,
  "temperature": 1
}
Predict response
- Спецификация: https://caila.io/specs/mlp-data-gpt.yml#/ChatCompletionResult
- Python тип: ...(модуль mlp-python-sdk)
- Java тип: com.mlp.api.datatypes.chatgpt.ChatCompletionResult(модуль mlp-datatypes)
Пример ответа:
{
  "choices": [
    {
      "index": 0,
      "message": {
        "role": "assistant",
        "content": "Привет! Рад поболтать с тобой. Как дела?"
      }
    }
  ],
  "model": "claude-3-sonnet-20240229",
  "usage": {
    "prompt_tokens": 10,
    "completion_tokens": 25,
    "total_tokens": 35
  }
}
Режим прямого доступа
Некоторые сервисы, предоставляющие доступ к сторонним сервисам, например, к OpenAI, Claude, Gemini и т. п., позволяют отправлять запросы в режиме прямого доступа.
Для включения прямого доступа нужно при отправке запроса указать dataType: https://caila.io/specs/mlp-data-gpt.yml#/ChatCompletionDirectProxy. В ответ будет возвращена посылка с этим же типом.
OpenAI адаптер
Все сервисы данного типа доступны через OpenAI-адаптер.