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

$gpt.createChatCompletion

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

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

Синтаксис

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

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

АргументТипОбязательныйОписаниеЗначения
messagesМассив объектовДаСообщения, которые передаются модели.
messages[].roleСтрокаДаРоль автора сообщения.system, user, assistant, function.
messages[].contentСтрокаДаТекст сообщения.Произвольный текст.
temperatureЧислоНетСлучайность и креативность ответа модели.Целые и дробные числа от 0 до 2. Значение по умолчанию — 1.
При низких значениях ответы модели будут более четкими и предсказуемыми, при высоких — непредсказуемыми и креативными.
nЧислоНетКоличество вариантов ответа от модели.Целые положительные числа. Значение по умолчанию — 1. Если значение выше 1, вы можете вывести все ответы или выбрать нужный вариант.
подсказка
В документации OpenAI вы можете ознакомиться с примерами запросов.

Метод возвращает ответ в следующем формате:

{
"id": "chatcmpl-123",
"object": "chat.completion",
"created": 1234567890,
"choices": [{
"index": 0,
"message": {
"role": "assistant",
"content": "Чем я могу вам помочь?"
},
"finish_reason": "stop"
}],
"usage": {
"prompt_tokens": 9,
"completion_tokens": 12,
"total_tokens": 21
}
}

Особенности

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

предупреждение
Когда лимит Caila-токенов будет исчерпан, метод выбросит исключение GptAi limit exhausted, которое вы сможете обработать в сценарии. Чтобы пополнить лимиты, приобретите дополнительный пакет 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);