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

$gpt.createChatCompletion

Встроенный сервис $gpt позволяет обращаться к моделям ChatGPT от OpenAI из сценария бота.

примечание

Вы можете использовать сервис $gpt в JAICP, несмотря на то что сайт OpenAI недоступен для российских IP-адресов.

Метод $gpt.createChatCompletion реализован на основе метода OpenAI, который возвращает ответ LLM на запрос пользователя. Вы можете использовать его, например, чтобы генерировать ответы на нераспознанные фразы пользователей.

подсказка

Мы рекомендуем использовать $gpt.createChatCompletion только в текстовых ботах. Чтобы обращаться к LLM с минимальными паузами в телефонном канале, используйте тип ответа llmRequest.

Модели

Чтобы обращаться к LLM, метод использует сервис openai-proxy на платформе Caila. Вы можете посмотреть доступные модели на странице сервиса.

Укажите модель в аргументе model. По умолчанию метод $gpt.createChatCompletion использует GPT-4o mini.

Синтаксис

$gpt.createChatCompletion(messages, temperature, n, max_completion_tokens, model);

Метод принимает следующие аргументы:

АргументТипОбязательныйОписание
messagesМассив объектовДаСообщения, которые передаются модели. Вы можете получить историю диалога с ботом с помощью $jsapi.chatHistoryInLlmFormat.
messages[].roleСтрокаДаРоль автора сообщения: system, user, assistant или function.
messages[].contentСтрокаДаТекст сообщения.
temperatureЧислоНет

Случайность и креативность ответа модели.

Принимает значения от 0.0 до 2.0. Значение по умолчанию — 1. При низких значениях ответы модели будут более четкими и предсказуемыми, при высоких — непредсказуемыми и креативными.
nЧислоНет

Количество вариантов ответа от модели. Значение по умолчанию — 1.

Если значение выше 1, вы можете вывести все ответы или выбрать нужный вариант.
max_completion_tokensЧислоНетМаксимальное количество токенов, которое может сгенерировать модель. Включает в себя также токены в рассуждениях модели.
modelСтрокаНет

Модель, которая генерирует ответ. По умолчанию: gpt-4o-mini.

В документации OpenAI вы можете ознакомиться с примерами запросов.

примечание

Сайт OpenAI недоступен для российских IP-адресов.

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

$gpt.createChatCompletion([{ "role": "user", "content": "Привет!" }]);
$gpt.createChatCompletion(
[{ "role": "user", "content": "Привет!" }], 1, 3, 100, "gpt-4o"
);
$gpt.createChatCompletion(
[{ "role": "user", "content": "Привет!" }], undefined, undefined, undefined, "gpt-4o"
);

Другие параметры метода

Если вы хотите использовать другие параметры для метода, вы можете передать в качестве аргумента один объект сразу со всеми настройками. Объект может содержать любые параметры, которые поддерживает метод OpenAI.

Например, вы можете указать top_p и presence_penalty:

$gpt.createChatCompletion(
{
"model": "gpt-4o",
"messages": [
{
"role": "user",
"content": "Расскажи о себе"
}
],
"top_p": 0.1,
"presence_penalty": -1

}
);
Исключения
  • Параметр "stream": true не поддерживается. Если он указан, метод не возвращает текст ответа LLM.
  • Вы можете использовать параметр tools, только если вызываете метод в среде ECMAScript 6.

Возвращаемое значение

Метод возвращает ответ в формате, аналогичном ответу OpenAI API:

{
"model": "gpt-4o-mini-2024-07-18",
"choices": [
{
"index": 0,
"message": {
"role": "assistant",
"content": "Я — искусственный интеллект, созданный компанией OpenAI…"
},
"finish_reason": "stop"
},
{
"index": 1,
"message": {
"role": "assistant",
"content": "Я — искусственный интеллект, разработанный компанией OpenAI…"
},
"finish_reason": "stop"
},
{
"index": 2,
"message": {
"role": "assistant",
"content": "Я — искусственный интеллект, разработанный OpenAI…"
},
"finish_reason": "stop"
}
],
"usage": {
"prompt_tokens": 11,
"completion_tokens": 60,
"total_tokens": 71
}
}

Тарификация

При вызове метода происходит списание Caila-токенов. Они не равны токенам OpenAI. Количество потраченных Caila-токенов зависит от запроса.

предупреждение
Когда лимит Caila-токенов будет исчерпан, метод выбросит исключение Not enough MLP tokens, которое вы сможете обработать в сценарии. Чтобы пополнить лимиты, приобретите дополнительный пакет Caila-токенов.

Использование в сценарии

Чтобы бот отвечал на нераспознанные фразы пользователя с помощью ChatGPT, вызовите $gpt.createChatCompletion в стейте для обработки этих фраз:

state: NoMatch
event!: noMatch
script:
var userMessage = $request.query;
var assistantResponse = $gpt.createChatCompletion(
[{ "role": "user", "content": userMessage }]
);
var response = assistantResponse.choices[0].message.content;
$reactions.answer(response);

Пишите, я помогу!

Пишите, я помогу!

База знаний по документации