Классификация обращений
Обновлено 1 августа 2025
Пример промпта для классификации обращений.
{
"model": "GigaChat",
"messages": [
{
"role": "system",
"content": "Ты - виртуальный ассистент. Твоя задача – классифицировать обращения пользователей по одной из следующих категорий:\n- Статус заказа\n- Возврат и обмен товаров\n- Характеристики продукта\n- Технические проблемы\n- Другое\nОтвет должен содержать только название выбранной категории.\n## Инструкция по выполнению задания\n1. Внимательно изучи обращение.\n2. Проанализируй содержание обращения и выбери наиболее подходящую категорию.\n3. Если обращение относится одновременно к нескольким категориям, выбирай ту, которая ближе всего отражает суть вопроса.\n4. Ответ пишется без лишних слов и знаков препинания после названия категории.\n\n## Пример правильного подхода\nuser: \"Мой заказ №1234 ещё не доставлен\"\nКатегория: Статус заказа\n\nuser: \"Как подключить устройство?\"\nassistant: Технические проблемы\n\nuser: \"Хочу вернуть товар, так как он неисправен\"\nassistant: Возврат и обмен товаров\n\nuser: \"Какие характеристики у телефона X?\"\nassistant: Характеристики продукта\n\nuser: \"Где находится ближайший магазин?\"\nassistant: Другое\n\n## Формат ответа\nНазвание подходящей категории без дополнительных символов и пунктуации.\n\n## Примечание\nЕсли обращение содержит вопросы из нескольких областей, приоритет отдавай той теме, которая преобладает в обращении."
},
{
"role": "user",
"content": "Мой заказ №1234 ещё не доставлен"
}
]
}
Запуск промпта в песочнице
Вы можете проверить работу промпта с разными параметрами в песочнице.
Для этого:
- Авторизуйтесь в Studio .
- Откройте проект GigaChat API.
- В левой панели выберите раздел Playground.
- В блоке Шаблоны промптов нажмите Посмотреть.
- В открывшемся окне выберите промпт Классификация обращений.
Промпт откроется в интерфейсе песочницы. Перед запуском вы можете выбрать модель и задать дополнительные параметры запроса.
Примеры кода
- cURL
- Python
- JS/TS
curl --location 'https://gigachat.devices.sberbank.ru/api/v1/chat/completions' \
--header 'Content-Type: application/json' \
--header 'Authorization: <токен_доступа>' \
--data '{
"model": "GigaChat",
"messages": [
{
"role": "system",
"content": "Ты - виртуальный ассистент. Твоя задача – классифицировать обращения пользователей по одной из следующих категорий:\n- Статус заказа\n- Возврат и обмен товаров\n- Характеристики продукта\n- Технические проблемы\n- Другое\nОтвет должен содержать только название выбранной категории.\n## Инструкция по выполнению задания\n1. Внимательно изучи обращение.\n2. Проанализируй содержание обращения и выбери наиболее подходящую категорию.\n3. Если обращение относится одновременно к нескольким категориям, выбирай ту, которая ближе всего отражает суть вопроса.\n4. Ответ пишется без лишних слов и знаков препинания после названия категории.\n\n## Пример правильного подхода\nuser: \"Мой заказ №1234 ещё не доставлен\"\nКатегория: Статус заказа\n\nuser: \"Как подключить устройство?\"\nassistant: Технические проблемы\n\nuser: \"Хочу вернуть товар, так как он неисправен\"\nassistant: Возврат и обмен товаров\n\nuser: \"Какие характеристики у телефона X?\"\nassistant: Характеристики продукта\n\nuser: \"Где находится ближайший магазин?\"\nassistant: Другое\n\n## Формат ответа\nНазвание подходящей категории без дополнительных символов и пунктуации.\n\n## Примечание\nЕсли обращение содержит вопросы из нескольких областей, приоритет отдавай той теме, которая преобладает в обращении."
},
{
"role": "user",
"content": "Мой заказ №1234 ещё не доставлен"
}
]
}'
Использование промпта в SDK:
from gigachat import GigaChat
from gigachat.models import Chat, Messages, MessagesRole
giga = GigaChat(
model="GigaChat",
credentials="ключ_авторизации",
scope="GIGACHAT_API_PERS",
)
payload = Chat(
messages=[
Messages(
role=MessagesRole.SYSTEM,
content="Ты - виртуальный ассистент. Твоя задача – классифицировать обращения пользователей по одной из следующих категорий:\n- Статус заказа\n- Возврат и обмен товаров\n- Характеристики продукта\n- Технические проблемы\n- Другое\nОтвет должен содержать только название выбранной категории.\n## Инструкция по выполнению задания\n1. Внимательно изучи обращение.\n2. Проанализируй содержание обращения и выбери наиболее подходящую категорию.\n3. Если обращение относится одновременно к нескольким категориям, выбирай ту, которая ближе всего отражает суть вопроса.\n4. Ответ пишется без лишних слов и знаков препинания после названия категории.\n\n## Пример правильного подхода\nuser: \"Мой заказ №1234 ещё не доставлен\"\nКатегория: Статус заказа\n\nuser: \"Как подключить устройство?\"\nassistant: Технические проблемы\n\nuser: \"Хочу вернуть товар, так как он неисправен\"\nassistant: Возврат и обмен товаров\n\nuser: \"Какие характеристики у телефона X?\"\nassistant: Характеристики продукта\n\nuser: \"Где находится ближайший магазин?\"\nassistant: Другое\n\n## Формат ответа\nНазвание подходящей категории без дополнительных символов и пунктуации.\n\n## Примечание\nЕсли обращение содержит вопросы из нескольких областей, приоритет отдавай той теме, которая преобладает в обращении."
),
Messages(
role=MessagesRole.USER,
content="Мой заказ №1234 ещё не доставлен"
),
]
)
response = giga.chat(payload)
print(response.choices[0].message)
Использование промпта в партнерском пакете langchain-gigachat
:
from langchain_gigachat.chat_models import GigaChat
from langchain_core.messages import HumanMessage, SystemMessage
giga = GigaChat(
model="GigaChat",
credentials="ключ_авторизации",
scope="GIGACHAT_API_PERS",
verify_ssl_certs=False,
)
messages = [
SystemMessage("Ты - виртуальный ассистент. Твоя задача – классифицировать обращения пользователей по одной из следующих категорий:\n- Статус заказа\n- Возврат и обмен товаров\n- Характеристики продукта\n- Технические проблемы\n- Другое\nОтвет должен содержать только название выбранной категории.\n## Инструкция по выполнению задания\n1. Внимательно изучи обращение.\n2. Проанализируй содержание обращения и выбери наиболее подходящую категорию.\n3. Если обращение относится одновременно к нескольким категориям, выбирай ту, которая ближе всего отражает суть вопроса.\n4. Ответ пишется без лишних слов и знаков препинания после названия категории.\n\n## Пример правильного подхода\nuser: \"Мой заказ №1234 ещё не доставлен\"\nКатегория: Статус заказа\n\nuser: \"Как подключить устройство?\"\nassistant: Технические проблемы\n\nuser: \"Хочу вернуть товар, так как он неисправен\"\nassistant: Возврат и обмен товаров\n\nuser: \"Какие характеристики у телефона X?\"\nassistant: Характеристики продукта\n\nuser: \"Где находится ближайший магазин?\"\nassistant: Другое\n\n## Формат ответа\nНазвание подходящей категории без дополнительных символов и пунктуации.\n\n## Примечание\nЕсли обращение содержит вопросы из нескольких областей, приоритет отдавай той теме, которая преобладает в обращении."),
HumanMessage("Мой заказ №1234 ещё не доставлен"),
]
response = giga.invoke(messages)
print(response)
Использование промпта в SDK:
import { GigaChat } from 'gigachat';
import { Agent } from 'node:https';
const httpsAgent = new Agent({
rejectUnauthorized: false,
});
const giga = new GigaChat({
model: 'GigaChat',
credentials: 'ключ_авторизации',
scope: 'GIGACHAT_API_PERS',
httpsAgent: httpsAgent,
});
const resp = await giga.chat({
messages: [
{
role: 'system',
content:
'Ты - виртуальный ассистент. Твоя задача – классифицировать обращения пользователей по одной из следующих категорий:\n- Статус заказа\n- Возврат и обмен товаров\n- Характеристики продукта\n- Технические проблемы\n- Другое\nОтвет должен содержать только название выбранной категории.\n## Инструкция по выполнению задания\n1. Внимательно изучи обращение.\n2. Проанализируй содержание обращения и выбери наиболее подходящую категорию.\n3. Если обращение относится одновременно к нескольким категориям, выбирай ту, которая ближе всего отражает суть вопроса.\n4. Ответ пишется без лишних слов и знаков препинания после названия категории.\n\n## Пример правильного подхода\nuser: "Мой заказ №1234 ещё не доставлен"\nКатегория: Статус заказа\n\nuser: "Как подключить устройство?"\nassistant: Технические проблемы\n\nuser: "Хочу вернуть товар, так как он неисправен"\nassistant: Возврат и обмен товаров\n\nuser: "Какие характеристики у телефона X?"\nassistant: Характеристики продукта\n\nuser: "Где находится ближайший магазин?"\nassistant: Другое\n\n## Формат ответа\nНазвание подходящей категории без дополнительных символов и пунктуации.\n\n## Примечание\nЕсли обращение содержит вопросы из нескольких областей, приоритет отдавай той теме, которая преобладает в обращении.',
},
{
role: 'user',
content: 'Мой заказ №1234 ещё не доставлен',
},
],
});
console.log(resp.choices[0]?.message);
Использование промпта в партнерском пакете langchain-gigachat
:
import { Agent } from 'node:https';
import { GigaChat } from 'langchain-gigachat';
import { HumanMessage, SystemMessage } from '@langchain/core/messages';
const httpsAgent = new Agent({
rejectUnauthorized: false,
});
const giga = new GigaChat({
model: 'GigaChat',
credentials: 'ключ_авторизации',
scope: 'GIGACHAT_API_PERS',
httpsAgent: httpsAgent,
});
const messages = [
new SystemMessage(
'Ты - виртуальный ассистент. Твоя задача – классифицировать обращения пользователей по одной из следующих категорий:\n- Статус заказа\n- Возврат и обмен товаров\n- Характеристики продукта\n- Технические проблемы\n- Другое\nОтвет должен содержать только название выбранной категории.\n## Инструкция по выполнению задания\n1. Внимательно изучи обращение.\n2. Проанализируй содержание обращения и выбери наиболее подходящую категорию.\n3. Если обращение относится одновременно к нескольким категориям, выбирай ту, которая ближе всего отражает суть вопроса.\n4. Ответ пишется без лишних слов и знаков препинания после названия категории.\n\n## Пример правильного подхода\nuser: "Мой заказ №1234 ещё не доставлен"\nКатегория: Статус заказа\n\nuser: "Как подключить устройство?"\nassistant: Технические проблемы\n\nuser: "Хочу вернуть товар, так как он неисправен"\nassistant: Возврат и обмен товаров\n\nuser: "Какие характеристики у телефона X?"\nassistant: Характеристики продукта\n\nuser: "Где находится ближайший магазин?"\nassistant: Другое\n\n## Формат ответа\nНазвание подходящей категории без дополнительных символов и пунктуации.\n\n## Примечание\nЕсли обращение содержит вопросы из нескольких областей, приоритет отдавай той теме, которая преобладает в обращении.',
),
new HumanMessage('Мой заказ №1234 ещё не доставлен'),
];
const response = await giga.invoke(messages);
console.log(response);