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

Загрузка и скачивание датасета

Если кейсов много, их удобно подготовить в JSON-файле — вручную или скриптом — и загрузить в датасет. Готовый датасет можно скачать в файл того же формата и перенести в другой проект.

Как загрузить кейсы из файла​

  1. Создайте датасет или откройте существующий.
  2. Чтобы подготовить файл по образцу, нажмите Скачать шаблон в области загрузки. Платформа скачает файл dataset-template.json с одним кейсом, в котором есть все поля. Заполните его своими кейсами по формату.
  3. Перетащите готовый файл в область загрузки или нажмите в ней выберите файл.
  4. Проверьте кейсы в редакторе и нажмите Сохранить.

Когда вы загрузите файл:

  • Кейсы из файла добавятся к кейсам, которые уже есть в редакторе. Датасет вмещает до 500 кейсов, поэтому если вместе их окажется больше, кейсы из конца файла не загрузятся.
  • Если в редакторе уже указано название датасета или общие данные для всех кейсов, они не изменятся. Пустые поля платформа заполнит из файла.
  • Кейсы с ошибками, например без вопроса, платформа пропустит, а остальные загрузит. В редакторе появится список пропущенных кейсов: Кейс N: причина, где N — номер кейса в файле.

Как скачать датасет​

Чтобы сохранить датасет в файл, на вкладке Датасеты нажмите в его строке. Платформа скачает файл <название датасета>.json. Чтобы перенести датасет в другой проект, загрузите этот файл в новый датасет.

Формат файла​

Файл — JSON-объект размером до 50 МБ.

Поля файла:

ПолеТипЧто содержит
formatстрокаВсегда ap-evaluation-dataset. Обязательное поле.
versionчислоВсегда 1. Обязательное поле.
nameстрокаНазвание датасета.
channelобъектОбщие данные для всех кейсов: type — всегда TEST_WIDGET, params — данные, которые процесс получит вместе с каждым вопросом, например {"tariff": "premium"}.
casesмассивКейсы. Обязательное поле.

Поля кейса:

ПолеТипЧто содержит
questionстрокаВопрос к агенту. Обязательное поле.
expectedModeстрокаРежим критерия: ANSWER_TEXT — Текст ответа, INSTRUCTION — Инструкция. По умолчанию ANSWER_TEXT.
expectedAnswersмассив строкЭталонные ответы, а в режиме INSTRUCTION — инструкция судье.
inputFieldsмассив объектовПоля входа: key — ключ, value — значение.
historyмассив объектовИстория переписки: role — автор, USER или AGENT, text — текст реплики.
jsonSchemaобъектJSON-схема в формате JSON Schema, которой должен соответствовать ответ агента.
expectedToolCallsмассив объектовОжидаемые вызовы функций: name — имя в формате коллекция.функция.
Пример файла
{
"format": "ap-evaluation-dataset",
"version": 1,
"name": "Доставка и возврат",
"channel": {
"type": "TEST_WIDGET",
"params": { "tariff": "premium" }
},
"cases": [
{
"question": "Сколько стоит доставка?",
"expectedMode": "ANSWER_TEXT",
"expectedAnswers": ["Доставка по Казани стоит 300 рублей, курьер привезет заказ на следующий день."],
"inputFields": [{ "key": "city", "value": "Казань" }]
},
{
"question": "4815",
"expectedMode": "INSTRUCTION",
"expectedAnswers": ["Агент сообщает статус заказа 4815 и не просит номер повторно."],
"history": [
{ "role": "USER", "text": "Где мой заказ?" },
{ "role": "AGENT", "text": "Назовите, пожалуйста, номер заказа" }
],
"expectedToolCalls": [{ "name": "orders.getStatus" }]
},
{
"question": "Курьер не приехал, а заказ нужен сегодня",
"jsonSchema": {
"type": "object",
"required": ["topic", "urgent"],
"properties": {
"topic": { "enum": ["delivery", "payment", "return"] },
"urgent": { "type": "boolean" }
}
}
}
]
}