$gpt.createChatCompletion
Встроенный сервис $gpt
позволяет обращаться к ChatGPT от OpenAI из сценария бота.
Метод $gpt.createChatCompletion
реализован на основе метода OpenAI,
который возвращает ответ LLM-модели gpt-3.5-turbo
на заданную фразу.
Вы можете использовать его, например, чтобы генерировать ответы на нераспознанные фразы пользователей.
Синтаксис
- ECMAScript 5
- ECMAScript 6
$gpt.createChatCompletion(messages, temperature, n);
В среде ECMAScript 6 метод является асинхронным:
await $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
в стейте для обработки этих фраз:
- ECMAScript 5
- ECMAScript 6
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);
state: NoMatch
event!: noMatch
scriptEs6:
var userMessage = $request.query;
var assistantResponse = await $gpt.createChatCompletion([{ "role": "user", "content": userMessage }]);
var response = assistantResponse.choices[0].message.content;
$reactions.answer(response);