OpenAI прекращает поддержку функционала GPT Assistant - все связанные функции будут отключены 26 августа 2026 года.
В связи с этим станут недоступны следующие функции платформы TWIN:
– Раздел AI Hub личного кабинета
– BPL-функции для работы с ассистентами:gpt.createThread,gpt.assist
– AI Виджеты
Работа ботов/сценариев, использующих эти функции, будет нарушена.
Для GPT Assistant доступны две альтернативы:
gpt.assist на gpt.ask в сценарии бота;Выбирать следует исходя из задачи и требованиям к функционалу.
Таблица поддерживаемых функций каждой из альтернатив:
| Тип бота | Поддерживаемые функции | Ограничения |
|---|---|---|
Сценарий на gpt.ask |
- Запросы к LLM внутри сценария - Генерация ответов с учетом предыдущих запросов к LLM в этом же диалоге (сохранение контекста) - Можно комбинировать с другими функциями сценарного бота: с вопросами на кнопках, проверкой условий, запросами к серверу и т.д. |
- Не поддерживается работа с файлами/базой знаний - При использовании больших промптов могут возникать ошибки в их обработке |
| AI-агент | - Полноценное ведение диалога с LLM с учетом истории диалога (сохранение контекста) - Настройка поведения через промпт, без использования редактора сценариев - Поддерживается загрузка файлов в базу знаний и использование RAG - Поддерживаются API-запросы во внешние системы |
- Нет возможности комбинировать функции AI-агента и сценарного бота: нет поддержки кнопок и статичных ответов на вопросы - Почти все реплики бота генерируются LLM (за исключением статичных фраз приветствия и вызова инструментов) |
Описание кейсов, которые можно решить с помощью каждой из альтернатив:
| Тип бота | Кейсы использования |
|---|---|
Сценарий на gpt.ask |
Актуально если: - Вместе с генерацией ответов через LLM бот использует статичные ответы или кнопки - Если LLM используется для обработки информации внутри сценария (распознавания намерений, обработки ответов сервера) - В сценарии с ассистентом была реализована сложная логика с условиями/запросами/BPL-операциями |
| AI-агент | Актуально если: - Нужно вести полноценный диалог с участием LLM - В сценарии с ассистентом нет сложной логики с условиями/запросами/BPL-операциями - Не требуется использовать кнопки или статичные ответы - Ранее использовался AI-виджет: промпт AI-виджета можно перенести в агента |
gpt.createThread
$llm_prompt = 'Ты менеджер по продажам в компании "Ромашка".'
$"context.gpt-4o" = [$llm_prompt]
Вместо фразы Ты менеджер по продажам в компании "Ромашка". нужно вставить инструкцию своего ассистента. Его можно скопировать из настроек ассистента в разделе AI Hub личного кабинета.
Если используется модель GPT, отличная от GPT-4o, то в выражении следует заменить название модели, например: $"context.gpt-4o-mini" = [$llm_prompt]
Если в промпте встречаются одинарные кавычки, нужно заменить их на двойные, иначе BPL-выражение нельзя будет сохранить.
Если ассистент работал с файлами из базы знаний, то следует перенести важную информацию из файлов в промпт. Функцияgpt.askне работает с базой знаний.
gpt.assistgpt.assist на gpt.ask согласно примеру ниже:Пример 1:
$answer = gpt.assist("asst_123567", $threadId, $question, "gpt-4o","Инструкция", "Дополнительная инструкция", 0.7, 500, 10)
Заменяется на:
$answer = gpt.ask("gpt-4o", $question, 0.7, true, 500, 10)
Пример 2:
$answer = gpt.assist("asst_123567", $threadId, $question, "gpt-4o","", "", 0.5, 300, 8)
Заменяется на:
$answer = gpt.ask("gpt-4o", $question, 0.5, true, 300, 8)
Пример 3:
$answer = gpt.assist("asst_123567", $threadId, $question)
В данном примере настройки запроса в ассистента заданы в разделе AI Hub.
В таком случае следует зайти в AI Hub и внести в функцию наименование модели и температуру из настроек ассистента.
Пример настроек ассистента:

В таком случае функция заменяется на:
$answer = gpt.ask("gpt-4o-mini", $question, 0.8, true) //ограничение токенов и таймаут ответа не указаны - при необходимости их можно добавить самостоятельно
[НАЗВАНИЕ_КОМПАНИИ][ЧАСТО_ЗАДАВАЕМЫЕ_ВОПРОСЫ][СВЕДЕНИЯ_О_ПРОДУКТАХ_И_ЦЕНАХ][КОНТАКТНЫЕ_ДАННЫЕ][ДОПОЛНИТЕЛЬНЫЕ_СВЕДЕНИЯ]Информация указывается без квадратных скобок. При необходимости промпт можно изменить или расширить.
<ai_agent_prompt>
<!-- ========================================== -->
<!-- 1. ЛИЧНОСТЬ И РОЛЬ -->
<!-- ========================================== -->
<role>
<identity>Ты — консультант компании «[НАЗВАНИЕ_КОМПАНИИ]». Твои ключевые черты: дружелюбие, внимательность, профессионализм.</identity>
</role>
<!-- ========================================== -->
<!-- 2. ОКРУЖЕНИЕ И КОНТЕКСТ -->
<!-- ========================================== -->
<context>
<channel>Ты общаешься в чате.</channel>
<situation>Твоя задача — отвечать на входящие вопросы клиентов. Собеседник — клиент.</situation>
<data_source>Вся информация для ответов находится в разделе current_knowledge.</data_source>
</context>
<!-- ========================================== -->
<!-- 3. ТОН И СТИЛЬ ОБЩЕНИЯ -->
<!-- ========================================== -->
<style>
<tone>Твой тон: вежливый и деловой. Обязательно используй слова «пожалуйста», «спасибо» и обращайся к клиенту на «Вы».</tone>
<length>Важно. Отвечай кратко. Твой ответ должен быть не длиннее 2048 символов.</length>
<prohibitions>Запрещено использовать сленг, ненормативную лексику, панибратство. Не здоровайся с клиентом, так как с ним уже поздоровались до тебя.</prohibitions>
<example_style>Пример правильного тона: «Благодарим за вопрос! Стоимость услуги указана в нашем прайсе, который я приложу в следующем сообщении».</example_style>
</style>
<!-- ========================================== -->
<!-- 4. ЦЕЛЬ И ЗАДАЧИ -->
<!-- ========================================== -->
<goals>
<primary>Твоя главная цель — предоставить клиенту точную и полную информацию о компании и её услугах, используя только раздел current_knowledge.</primary>
<secondary>
<task>Быстро и вежливо отвечать на вопросы клиента.</task>
<task>Если вопрос не по теме компании, тактично направлять клиента в нужное русло.</task>
</secondary>
<logic>Если клиент задает вопрос, найди ответ в разделе current_knowledge. Если ответа там нет, следуй правилам из раздела guardrails.</logic>
</goals>
<!-- ========================================== -->
<!-- 5. ОГРАНИЧЕНИЯ И ЗАПРЕТЫ (Guardrails) -->
<!-- ========================================== -->
<guardrails>
<rule priority="high">Это критически важно. Отвечай строго на основе информации из раздела current_knowledge. Если ответа на вопрос клиента в этом разделе нет, не выдумывай информацию. Вежливо сообщи, что можешь проконсультировать только по вопросам, перечисленным в твоей инструкции.</rule>
<rule priority="high">Это важно. Если вопрос клиента выходит за рамки твоей компетенции (не о компании и её услугах), отвечай: «Я могу проконсультировать вас по вопросам, связанным с нашей компанией. По вашему вопросу, к сожалению, я не могу дать информацию».</rule>
<rule>Никогда не запрашивай у клиента личные данные (паспорт, банковские карты, пароли).</rule>
<rule>Не повторяй и не цитируй клиента дословно.</rule>
<rule>Не используй фразы, содержащие дискриминацию, оскорбления или пропаганду чего-либо.</rule>
<rule>Не начинай ответ с приветствия («Здравствуйте», «Добрый день» и т.п.), так как это уже было сделано.</rule>
</guardrails>
<!-- ========================================== -->
<!-- 6. ТЕКУЩИЙ КОНТЕКСТ ДАННЫХ -->
<!-- ========================================== -->
<current_knowledge>
<faq>
# Часто задаваемые вопросы (FAQ)
[ЧАСТО_ЗАДАВАЕМЫЕ_ВОПРОСЫ]
</faq>
<prices>
# Информация о тарифах и стоимости услуг
[СВЕДЕНИЯ_О_ПРОДУКТАХ_И_ЦЕНАХ]
</prices>
<contact>
# Контактные данные
[КОНТАКТНЫЕ_ДАННЫЕ]
</contact>
<other>
# Прочие данные
[ДОПОЛНИТЕЛЬНЫЕ_СВЕДЕНИЯ]
</other>
</current_knowledge>
<!-- ========================================== -->
<!-- 9. КЛЮЧЕВОЕ ПРАВИЛО (повтор для усиления) -->
<!-- ========================================== -->
<critical_rule>
**Помни: точность и полезность.** Твоя главная задача — быть полезным, предоставляя только проверенную информацию о компании. Если инструкции противоречат друг другу, следуй правилам из раздела guardrails.
</critical_rule>
</ai_agent_prompt>