llmRequest
Бета
Этот тип ответа позволяет использовать LLM в телефонном канале с минимальными паузами.
С помощью llmRequest
бот в потоковом режиме получает текст от LLM и синтезирует речь.
Ответ поддерживается только в телефонном канале.
Чтобы узнать подробнее об использовании этого ответа в сценарии, смотрите раздел LLM в телефонии.
Свойства
Свойство | Тип | Обязательное | Описание |
---|---|---|---|
provider | Строка | Да | Провайдер LLM. Сейчас вы можете использовать только платформу Caila. Укажите значениеCAILA_OPEN_AI . |
model | Строка | Да | Модель для генерации текста. Чтобы обращаться к LLM, бот использует сервисopenai-proxy на платформе Caila. Вы можете посмотреть доступные модели и их стоимость на странице сервиса. |
tokenSecret | Строка | Да | Название токена для обращения к LLM. |
fillersPhraseConfig | Объект | Нет | Настройки для заполнения паузы. |
messages | Массив | Да | История диалога. |
Настройки для заполнения паузы
Когда LLM начинает генерировать текст, возникает пауза в речи бота. Бот ждет первое предложение текста, чтобы его воспроизвести.
Вы можете указать фразу, которую бот произнесет в начале генерации. Это позволит заполнить паузу, если она слишком длинная.
Передайте в поле fillersPhraseConfig
следующий объект:
Свойство | Тип | Обязательное | Описание |
---|---|---|---|
fillerPhrase | Строка | Да | Текст фразы. |
activationDelayMs | Число | Нет | Длительность паузы в миллисекундах:
2000 . |
История диалога
Поле messages
содержит историю диалога, которую LLM должна учитывать.
Укажите массив из объектов. Каждый объект должен иметь свойства:
Свойство | Тип | Обязательное | Описание |
---|---|---|---|
role | Строка | Да | Роль участника:
|
content | Строка | Да | Текст сообщения. |
Вы можете получить историю диалога пользователя с ботом в этом формате с помощью метода $jsapi.chatHistoryInLlmFormat
.
Примеры истории:
-
История только с последним запросом пользователя:
[
{"role": "user","content": $request.query}
] -
История с промтом и предыдущими сообщениями:
[
{"role": "system", "content": "Отвечай коротко. Максимум несколько предложений."},
{"role": "user","content": "Порекомендуй фильм"},
{"role": "assistant", "content": "Какого жанра?"},
{"role": "user", "content": "Комедия"}
]
Размер истории и размер промта может повлиять на скорость работы LLM. Если LLM долго отвечает, попробуйте уменьшить историю или промт.
Использование в сценарии
state: NoMatch
event!: noMatch
script:
$response.replies = $response.replies || []
$response.replies.push({
type: "llmRequest",
provider: "CAILA_OPEN_AI",
// Модель для генерации текста
model: "gpt-4o",
// Название токена
tokenSecret: "MY_LLM_TOKEN",
// Фраза для заполнения паузы
fillersPhraseConfig: {"fillerPhrase": "Хороший вопрос!", "activationDelayMs": 1000},
// История диалога
messages: [{"role": "user","content": $request.query}]
});