Topic Messages: nlpilot-local-output

Partition: 0   Offset: 699   Key: empty   Timestamp: 2026-05-26 07:18:19.213 Headers: content-type: application/json, correlation_id: aa4253b1-5b9b-478a-9acf-730185e03454
 
{"request_id":"aa4253b1-5b9b-478a-9acf-730185e03454","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","response_collection":{"REQUEST_ACCEPTED":{"query":"найди документы про mlops и тестирование","chat_id":"987561a6-b7f1-4c67-8abc-c725ebb3279f","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","admin_tag":true,"tenant_id":"zebrains","request_id":"aa4253b1-5b9b-478a-9acf-730185e03454","user_email":"p.slivnitsyn@zebrains.team","attached_files":[]},"WAITING_FOR_PLAN_FORMED":{"data":{"mode":2,"task":"rag","query":"найди документы про mlops и тестирование","tools":[{"type":"function","function":{"name":"completion","parameters":{"type":"object","$defs":{"Mode":{"enum":[1,2,3],"type":"integer","title":"Mode"},"MedullaTask":{"enum":["intent","rag","chat","contents","summarizer","checklist","chitchat","freeflight"],"type":"string","title":"MedullaTask"},"MedullaInputMessage":{"type":"object","title":"MedullaInputMessage","required":["role","content"],"properties":{"role":{"type":"string","title":"Role","description":"Роль: 'system', 'user', 'agent'"},"content":{"type":"string","title":"Content","description":"Содержимое сообщения"},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к директории с документом используемым для ответа"}}}},"title":"MedullaInput","required":["request_id","task","tenant_id"],"properties":{"mode":{"anyOf":[{"$ref":"#/$defs/Mode"},{"type":"null"}],"default":null,"description":"Режим работы значение устанавливается внешними средствами (1, 2 или 3), по умолчанию 1."},"task":{"$ref":"#/$defs/MedullaTask","description":"Интеллектуальная задача выполняемая сервисом, 'intent' - Интент классификатор по запросу (query), 'rag' - ответ на запрос (query) по документу расположенному по пути (doc_path), 'chat' - ответ на запросы по логу сообщений messages, 'contents' - ответ на запрос (query) по приложенному контенту (contents), 'summarizer' - cуммаризация информации по запросу (query) документа расположенного по пути (doc_path), 'checklist' - проверка документа в директории по пути doc_path в соответствии с запросом (query) и шаблоном требований по пути (requirements_path), 'chitchat' - свободный ответ по запросу (query), 'freeflight' - Свободный формат (обязательно передать template_path)."},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","default":null,"description":"Текст запроса пользователя. Используется в задачах: intent, rag, contents, summarizer, checklist, chitchat."},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","default":null,"description":"Текстовый контент на основе которого формируется ответ. Используется в задачах: contents."},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к файлу на основе которого формируется ответ. Используется в задачах: rag, summarizer, checklist."},"messages":{"anyOf":[{"type":"array","items":{"$ref":"#/$defs/MedullaInputMessage"}},{"type":"null"}],"title":"Messages","default":null,"description":"Список сообщений на основе которых формируется ответ. Используется в задачах: chat."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"template_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Path","default":null,"description":"Путь к шаблону документа который используется для формирования ответа. Используется в задачах: checklist."},"requirements_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requirements Path","default":null,"description":"Путь к директории с файлом требований для формирования ответа. Используется в задачах: checklist."}}},"description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки."}},{"type":"function","function":{"name":"convert-content","parameters":{"type":"object","title":"PandockerDocumentInput","required":["request_id","tenant_id","contents","input_file","input_format","output_format","output_file","reference_doc","filters","defaults_file"],"properties":{"filters":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Filters","description":"Список фильтров для пандока, отправляется либо строкой, если фильтр один, или списком, если их несколько"},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","description":"Контент документа в виде текста, допустим mardown, указаывается если нет input_file"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input File","description":"Путь до входного файла"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output File","description":"Путь до выходного файла"},"input_format":{"type":"string","title":"Input Format","description":"Формат входного документа"},"defaults_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Defaults File","description":"Путь до файла настроек pandoc"},"output_format":{"type":"string","title":"Output Format","description":"Формат выходного документа"},"reference_doc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Doc","description":"Путь до референсного файла для стилизации"}}},"description":"Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно."}},{"type":"function","function":{"name":"parse","parameters":{"type":"object","$defs":{"Mode":{"enum":["skip_parsed","always_rewrite"],"type":"string","title":"Mode"}},"title":"PaleographInput","required":["request_id","tenant_id","input_path","output_path","mode"],"properties":{"mode":{"$ref":"#/$defs/Mode","description":"Режим работы парсера: 'skip_parsed' если нужно пропустить уже обработанные файлы из входной директории при повторном вызове, 'always_rewrite' всегда обрабатывать все файлы находящиеся во входной директории."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_path":{"type":"string","title":"Input Path","description":"Путь до директории с файлами которые нужно обработать."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_path":{"type":"string","title":"Output Path","description":"Путь до директории в которую необходимо сложить результат."}}},"description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла."}},{"type":"function","function":{"name":"page_download","parameters":{"type":"object","$defs":{"SearcherSaveList":{"enum":["urls","svgs","images"],"type":"string","title":"SearcherSaveList"}},"title":"SearcherDownloadInput","required":["request_id","urls","names","save_path","save_list"],"properties":{"urls":{"type":"array","items":{"type":"string"},"title":"Urls","description":"Список ссылок на сайты для загрузки"},"names":{"type":"array","items":{"type":"string"},"title":"Names","description":"Список именов сайтов"},"save_list":{"type":"array","items":{"$ref":"#/$defs/SearcherSaveList"},"title":"Save List","description":"Перечисление того, что оставить при загрузке сайта"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения сайтов"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно."}},{"type":"function","function":{"name":"transcribe","parameters":{"type":"object","$defs":{"ScriberEngine":{"enum":["gigaam"],"type":"string","title":"ScriberEngine"}},"title":"ScriberInput","required":["request_id","paths","save_path"],"properties":{"paths":{"type":"array","items":{"type":"string"},"title":"Paths","description":"Пути до аудио/видео файлов"},"engine":{"$ref":"#/$defs/ScriberEngine","default":"gigaam","description":"Система транскрибации"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения транскрибации"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"diarization":{"type":"boolean","title":"Diarization","default":false,"description":"Флаг включения диаризации"}}},"description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}},{"type":"function","function":{"name":"internet_search","parameters":{"type":"object","$defs":{"SearcherEngine":{"enum":["brave","searxng"],"type":"string","title":"SearcherEngine"}},"title":"SearcherInput","required":["request_id","question"],"properties":{"limit":{"type":"integer","title":"Limit","default":5,"description":"Количество результатов поиска"},"engine":{"$ref":"#/$defs/SearcherEngine","default":"searxng","description":"Система поиска"},"question":{"type":"string","title":"Question","description":"Строка для поиска"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно."}}],"contents":null,"doc_path":null,"tenant_id":"zebrains","request_id":"aa4253b1-5b9b-478a-9acf-730185e03454","tool_choice":"required","template_path":"templates/planning/qwen_plan.yaml","tools_description":""},"name":"planning"},"ERROR_ACCEPTED":{"error":"Exception during llm completion call: Error code: 400 - {'object': 'error', 'message': \"Tool definition 'Mode' has multiple schemas, which is not supported.\", 'type': 'BadRequest', 'param': None, 'code': 400}","topic":"medulla-fs0-answer-local-in","srv_name":"medulla","request_id":"aa4253b1-5b9b-478a-9acf-730185e03454"}},"answer":"\nВнутренняя ошибка сервиса работы с большой языковой моделью.\n\nДетали ошибки:\nException during llm completion call: Error code: 400 - {'object': 'error', 'message': \"Tool definition 'Mode' has multiple schemas, which is not supported.\", 'type': 'BadRequest', 'param': None, 'code': 400}\n","answer_context":"","exec_time":0.0}
Partition: 0   Offset: 700   Key: empty   Timestamp: 2026-05-26 07:18:19.876 Headers: content-type: text/plain, correlation_id: aa4253b1-5b9b-478a-9acf-730185e03454
 
Внутренняя ошибка сервиса (redirected_topic: `medulla-fs0-answer-local-out`).
Partition: 0   Offset: 701   Key: empty   Timestamp: 2026-05-26 07:37:28.078 Headers: content-type: application/json, correlation_id: 98bf99ac-73c9-4ee1-9423-60d0685c0f1e
 
{"request_id":"98bf99ac-73c9-4ee1-9423-60d0685c0f1e","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","response_collection":{"REQUEST_ACCEPTED":{"query":"найди документы про mlops и тестирование","chat_id":"987561a6-b7f1-4c67-8abc-c725ebb3279f","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","admin_tag":true,"tenant_id":"zebrains","request_id":"98bf99ac-73c9-4ee1-9423-60d0685c0f1e","user_email":"p.slivnitsyn@zebrains.team","attached_files":[]},"WAITING_FOR_PLAN_FORMED":{"data":{"mode":2,"task":"rag","query":"найди документы про mlops и тестирование","tools":[{"type":"function","function":{"name":"completion","parameters":{"type":"object","$defs":{"Mode":{"enum":[1,2,3],"type":"integer","title":"Mode"},"MedullaTask":{"enum":["intent","rag","chat","contents","summarizer","checklist","chitchat","freeflight"],"type":"string","title":"MedullaTask"},"MedullaInputMessage":{"type":"object","title":"MedullaInputMessage","required":["role","content"],"properties":{"role":{"type":"string","title":"Role","description":"Роль: 'system', 'user', 'agent'"},"content":{"type":"string","title":"Content","description":"Содержимое сообщения"},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к директории с документом используемым для ответа"}}}},"title":"MedullaInput","required":["request_id","task","tenant_id"],"properties":{"mode":{"anyOf":[{"$ref":"#/$defs/Mode"},{"type":"null"}],"default":null,"description":"Режим работы значение устанавливается внешними средствами (1, 2 или 3), по умолчанию 1."},"task":{"$ref":"#/$defs/MedullaTask","description":"Интеллектуальная задача выполняемая сервисом, 'intent' - Интент классификатор по запросу (query), 'rag' - ответ на запрос (query) по документу расположенному по пути (doc_path), 'chat' - ответ на запросы по логу сообщений messages, 'contents' - ответ на запрос (query) по приложенному контенту (contents), 'summarizer' - cуммаризация информации по запросу (query) документа расположенного по пути (doc_path), 'checklist' - проверка документа в директории по пути doc_path в соответствии с запросом (query) и шаблоном требований по пути (requirements_path), 'chitchat' - свободный ответ по запросу (query), 'freeflight' - Свободный формат (обязательно передать template_path)."},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","default":null,"description":"Текст запроса пользователя. Используется в задачах: intent, rag, contents, summarizer, checklist, chitchat."},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","default":null,"description":"Текстовый контент на основе которого формируется ответ. Используется в задачах: contents."},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к файлу на основе которого формируется ответ. Используется в задачах: rag, summarizer, checklist."},"messages":{"anyOf":[{"type":"array","items":{"$ref":"#/$defs/MedullaInputMessage"}},{"type":"null"}],"title":"Messages","default":null,"description":"Список сообщений на основе которых формируется ответ. Используется в задачах: chat."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"template_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Path","default":null,"description":"Путь к шаблону документа который используется для формирования ответа. Используется в задачах: checklist."},"requirements_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requirements Path","default":null,"description":"Путь к директории с файлом требований для формирования ответа. Используется в задачах: checklist."}}},"description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки."}},{"type":"function","function":{"name":"convert-content","parameters":{"type":"object","title":"PandockerDocumentInput","required":["request_id","tenant_id","contents","input_file","input_format","output_format","output_file","reference_doc","filters","defaults_file"],"properties":{"filters":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Filters","description":"Список фильтров для пандока, отправляется либо строкой, если фильтр один, или списком, если их несколько"},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","description":"Контент документа в виде текста, допустим mardown, указаывается если нет input_file"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input File","description":"Путь до входного файла"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output File","description":"Путь до выходного файла"},"input_format":{"type":"string","title":"Input Format","description":"Формат входного документа"},"defaults_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Defaults File","description":"Путь до файла настроек pandoc"},"output_format":{"type":"string","title":"Output Format","description":"Формат выходного документа"},"reference_doc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Doc","description":"Путь до референсного файла для стилизации"}}},"description":"Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно."}},{"type":"function","function":{"name":"parse","parameters":{"type":"object","$defs":{"Mode":{"enum":["skip_parsed","always_rewrite"],"type":"string","title":"Mode"}},"title":"PaleographInput","required":["request_id","tenant_id","input_path","output_path","mode"],"properties":{"mode":{"$ref":"#/$defs/Mode","description":"Режим работы парсера: 'skip_parsed' если нужно пропустить уже обработанные файлы из входной директории при повторном вызове, 'always_rewrite' всегда обрабатывать все файлы находящиеся во входной директории."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_path":{"type":"string","title":"Input Path","description":"Путь до директории с файлами которые нужно обработать."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_path":{"type":"string","title":"Output Path","description":"Путь до директории в которую необходимо сложить результат."}}},"description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла."}},{"type":"function","function":{"name":"page_download","parameters":{"type":"object","$defs":{"SearcherSaveList":{"enum":["urls","svgs","images"],"type":"string","title":"SearcherSaveList"}},"title":"SearcherDownloadInput","required":["request_id","urls","names","save_path","save_list"],"properties":{"urls":{"type":"array","items":{"type":"string"},"title":"Urls","description":"Список ссылок на сайты для загрузки"},"names":{"type":"array","items":{"type":"string"},"title":"Names","description":"Список именов сайтов"},"save_list":{"type":"array","items":{"$ref":"#/$defs/SearcherSaveList"},"title":"Save List","description":"Перечисление того, что оставить при загрузке сайта"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения сайтов"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно."}},{"type":"function","function":{"name":"transcribe","parameters":{"type":"object","$defs":{"ScriberEngine":{"enum":["gigaam"],"type":"string","title":"ScriberEngine"}},"title":"ScriberInput","required":["request_id","paths","save_path"],"properties":{"paths":{"type":"array","items":{"type":"string"},"title":"Paths","description":"Пути до аудио/видео файлов"},"engine":{"$ref":"#/$defs/ScriberEngine","default":"gigaam","description":"Система транскрибации"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения транскрибации"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"diarization":{"type":"boolean","title":"Diarization","default":false,"description":"Флаг включения диаризации"}}},"description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}},{"type":"function","function":{"name":"internet_search","parameters":{"type":"object","$defs":{"SearcherEngine":{"enum":["brave","searxng"],"type":"string","title":"SearcherEngine"}},"title":"SearcherInput","required":["request_id","question"],"properties":{"limit":{"type":"integer","title":"Limit","default":5,"description":"Количество результатов поиска"},"engine":{"$ref":"#/$defs/SearcherEngine","default":"searxng","description":"Система поиска"},"question":{"type":"string","title":"Question","description":"Строка для поиска"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно."}}],"contents":null,"doc_path":null,"tenant_id":"zebrains","request_id":"98bf99ac-73c9-4ee1-9423-60d0685c0f1e","tool_choice":"required","template_path":"templates/planning/qwen_plan.yaml","tools_description":""},"name":"planning"},"ERROR_ACCEPTED":{"error":"Exception during llm completion call: Error code: 400 - {'object': 'error', 'message': \"Tool definition 'Mode' has multiple schemas, which is not supported.\", 'type': 'BadRequest', 'param': None, 'code': 400}","topic":"medulla-fs0-answer-local-in","srv_name":"medulla","request_id":"98bf99ac-73c9-4ee1-9423-60d0685c0f1e"}},"answer":"\nВнутренняя ошибка сервиса работы с большой языковой моделью.\n\nДетали ошибки:\nException during llm completion call: Error code: 400 - {'object': 'error', 'message': \"Tool definition 'Mode' has multiple schemas, which is not supported.\", 'type': 'BadRequest', 'param': None, 'code': 400}\n","answer_context":"","exec_time":0.0}
Partition: 0   Offset: 702   Key: empty   Timestamp: 2026-05-26 07:37:28.570 Headers: content-type: text/plain, correlation_id: 98bf99ac-73c9-4ee1-9423-60d0685c0f1e
 
Внутренняя ошибка сервиса (redirected_topic: `medulla-fs0-answer-local-out`).
Partition: 0   Offset: 703   Key: empty   Timestamp: 2026-05-26 07:49:05.375 Headers: content-type: application/json, correlation_id: 6b40a2f5-59f1-4a75-9063-98999d16af2c
 
{"request_id":"6b40a2f5-59f1-4a75-9063-98999d16af2c","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","response_collection":{"REQUEST_ACCEPTED":{"query":"найди документы про mlops и тестирование","chat_id":"987561a6-b7f1-4c67-8abc-c725ebb3279f","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","admin_tag":true,"tenant_id":"zebrains","request_id":"6b40a2f5-59f1-4a75-9063-98999d16af2c","user_email":"p.slivnitsyn@zebrains.team","attached_files":[]},"WAITING_FOR_PLAN_FORMED":{"data":{"mode":2,"task":"rag","query":"найди документы про mlops и тестирование","tools":[{"type":"function","function":{"name":"doc_vector_index","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу."}},{"type":"function","function":{"name":"doc_vector_search","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний."}},{"type":"function","function":{"name":"internet_search","parameters":{"type":"object","$defs":{"SearcherEngine":{"enum":["brave","searxng"],"type":"string","title":"SearcherEngine"}},"title":"SearcherInput","required":["request_id","question"],"properties":{"limit":{"type":"integer","title":"Limit","default":5,"description":"Количество результатов поиска"},"engine":{"$ref":"#/$defs/SearcherEngine","default":"searxng","description":"Система поиска"},"question":{"type":"string","title":"Question","description":"Строка для поиска"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно."}},{"type":"function","function":{"name":"completion","parameters":{"type":"object","$defs":{"APIMode":{"enum":[1,2,3],"type":"integer","title":"APIMode"},"MedullaTask":{"enum":["intent","rag","chat","contents","summarizer","checklist","chitchat","freeflight"],"type":"string","title":"MedullaTask"},"MedullaInputMessage":{"type":"object","title":"MedullaInputMessage","required":["role","content"],"properties":{"role":{"type":"string","title":"Role","description":"Роль: 'system', 'user', 'agent'"},"content":{"type":"string","title":"Content","description":"Содержимое сообщения"},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к директории с документом используемым для ответа"}}}},"title":"MedullaInput","required":["request_id","task","tenant_id"],"properties":{"mode":{"anyOf":[{"$ref":"#/$defs/APIMode"},{"type":"null"}],"default":null,"description":"Режим работы значение устанавливается внешними средствами (1, 2 или 3), по умолчанию 1."},"task":{"$ref":"#/$defs/MedullaTask","description":"Интеллектуальная задача выполняемая сервисом, 'intent' - Интент классификатор по запросу (query), 'rag' - ответ на запрос (query) по документу расположенному по пути (doc_path), 'chat' - ответ на запросы по логу сообщений messages, 'contents' - ответ на запрос (query) по приложенному контенту (contents), 'summarizer' - cуммаризация информации по запросу (query) документа расположенного по пути (doc_path), 'checklist' - проверка документа в директории по пути doc_path в соответствии с запросом (query) и шаблоном требований по пути (requirements_path), 'chitchat' - свободный ответ по запросу (query), 'freeflight' - Свободный формат (обязательно передать template_path)."},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","default":null,"description":"Текст запроса пользователя. Используется в задачах: intent, rag, contents, summarizer, checklist, chitchat."},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","default":null,"description":"Текстовый контент на основе которого формируется ответ. Используется в задачах: contents."},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к файлу на основе которого формируется ответ. Используется в задачах: rag, summarizer, checklist."},"messages":{"anyOf":[{"type":"array","items":{"$ref":"#/$defs/MedullaInputMessage"}},{"type":"null"}],"title":"Messages","default":null,"description":"Список сообщений на основе которых формируется ответ. Используется в задачах: chat."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"template_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Path","default":null,"description":"Путь к шаблону документа который используется для формирования ответа. Используется в задачах: checklist."},"requirements_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requirements Path","default":null,"description":"Путь к директории с файлом требований для формирования ответа. Используется в задачах: checklist."}}},"description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки."}},{"type":"function","function":{"name":"parse","parameters":{"type":"object","$defs":{"Mode":{"enum":["skip_parsed","always_rewrite"],"type":"string","title":"Mode"}},"title":"PaleographInput","required":["request_id","tenant_id","input_path","output_path","mode"],"properties":{"mode":{"$ref":"#/$defs/Mode","description":"Режим работы парсера: 'skip_parsed' если нужно пропустить уже обработанные файлы из входной директории при повторном вызове, 'always_rewrite' всегда обрабатывать все файлы находящиеся во входной директории."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_path":{"type":"string","title":"Input Path","description":"Путь до директории с файлами которые нужно обработать."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_path":{"type":"string","title":"Output Path","description":"Путь до директории в которую необходимо сложить результат."}}},"description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла."}},{"type":"function","function":{"name":"convert-content","parameters":{"type":"object","title":"PandockerDocumentInput","required":["request_id","tenant_id","contents","input_file","input_format","output_format","output_file","reference_doc","filters","defaults_file"],"properties":{"filters":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Filters","description":"Список фильтров для пандока, отправляется либо строкой, если фильтр один, или списком, если их несколько"},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","description":"Контент документа в виде текста, допустим mardown, указаывается если нет input_file"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input File","description":"Путь до входного файла"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output File","description":"Путь до выходного файла"},"input_format":{"type":"string","title":"Input Format","description":"Формат входного документа"},"defaults_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Defaults File","description":"Путь до файла настроек pandoc"},"output_format":{"type":"string","title":"Output Format","description":"Формат выходного документа"},"reference_doc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Doc","description":"Путь до референсного файла для стилизации"}}},"description":"Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно."}},{"type":"function","function":{"name":"page_download","parameters":{"type":"object","$defs":{"SearcherSaveList":{"enum":["urls","svgs","images"],"type":"string","title":"SearcherSaveList"}},"title":"SearcherDownloadInput","required":["request_id","urls","names","save_path","save_list"],"properties":{"urls":{"type":"array","items":{"type":"string"},"title":"Urls","description":"Список ссылок на сайты для загрузки"},"names":{"type":"array","items":{"type":"string"},"title":"Names","description":"Список именов сайтов"},"save_list":{"type":"array","items":{"$ref":"#/$defs/SearcherSaveList"},"title":"Save List","description":"Перечисление того, что оставить при загрузке сайта"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения сайтов"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно."}},{"type":"function","function":{"name":"transcribe","parameters":{"type":"object","$defs":{"ScriberEngine":{"enum":["gigaam"],"type":"string","title":"ScriberEngine"}},"title":"ScriberInput","required":["request_id","paths","save_path"],"properties":{"paths":{"type":"array","items":{"type":"string"},"title":"Paths","description":"Пути до аудио/видео файлов"},"engine":{"$ref":"#/$defs/ScriberEngine","default":"gigaam","description":"Система транскрибации"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения транскрибации"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"diarization":{"type":"boolean","title":"Diarization","default":false,"description":"Флаг включения диаризации"}}},"description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}],"contents":null,"doc_path":null,"tenant_id":"zebrains","request_id":"6b40a2f5-59f1-4a75-9063-98999d16af2c","tool_choice":"required","template_path":"templates/planning/qwen_plan.yaml","tools_description":"\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.\n**doc_vector_search**: Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.\n**internet_search**: Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.\n**completion**: Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.\n**parse**: Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.\n**convert-content**: Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.\n**page_download**: Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.\n**transcribe**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."},"name":"planning"},"PLAN_FORMED":{"data":{"think":null,"answer":"","values":{"cut_off_tkns":0,"prompt_tkn_len":112,"words_per_token":0.0,"document_tkn_len":112,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"07:48:48","finish":"07:48:54","duration":"6683.0ms"},"tenant_id":"zebrains","request_id":"6b40a2f5-59f1-4a75-9063-98999d16af2c","tool_calls":[{"name":"doc_vector_search","arguments":"{\"request_id\": \"req_001\", \"tenant_id\": \"default\", \"question\": \"mlops и тестирование\", \"treshold\": 0.5, \"limit\": 10, \"task\": [\"hybrid_chunk\", \"hybrid_doclet\", \"chunk\", \"doclet\"]}"}]},"error":null,"status":"ok"},"WAITING_FOR_INTENT_CLASSIFIED":{"data":{"mode":1,"task":"intent","query":"найди документы про mlops и тестирование","contents":null,"doc_path":null,"messages":null,"tenant_id":"zebrains","request_id":"6b40a2f5-59f1-4a75-9063-98999d16af2c","template_path":"templates/intent/qwen_intent.yaml","requirements_path":null},"name":"completion"},"INTENT_CLASSIFIED":{"data":{"think":null,"answer":"{\n  \"summary\": \"Поиск документов по темам MLOps и тестирование\",\n  \"query\": \"mlops тестирование\",\n  \"intent\": {\n    \"document_search\": 1.0,\n    \"internet_search\": 0.0,\n    \"audio_transcribe\": 0.0,\n    \"forget\": 0.0,\n    \"take\": 0.0,\n    \"attach\": 0.0,\n    \"convert\": 0.0,\n    \"chat\": 0.0,\n    \"predicted_intent\": \"document_search\"\n  },\n  \"events\": [],\n  \"peoples\": [],\n  \"documents\": [],\n  \"entities\": [\n    {\n      \"text\": \"mlops\",\n      \"label\": \"PRODUCT\",\n      \"start\": 20,\n      \"end\": 26,\n      \"confidence\": 0.95\n    },\n    {\n      \"text\": \"тестирование\",\n      \"label\": \"EVENT\",\n      \"start\": 29,\n      \"end\": 41,\n      \"confidence\": 0.90\n    }\n  ]\n}","values":{"cut_off_tkns":0,"prompt_tkn_len":1734,"words_per_token":0.0,"document_tkn_len":1734,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"07:37:56","finish":"07:38:04","duration":"8505.5ms"},"tenant_id":"zebrains","request_id":"6b40a2f5-59f1-4a75-9063-98999d16af2c"},"error":null,"status":"ok","answer":{"summary":"Поиск документов по темам MLOps и тестирование","query":"mlops тестирование","intent":{"document_search":1.0,"internet_search":0.0,"audio_transcribe":0.0,"forget":0.0,"take":0.0,"attach":0.0,"convert":0.0,"chat":0.0,"predicted_intent":"document_search"},"events":[],"peoples":[],"documents":[],"entities":[{"text":"mlops","label":"PRODUCT","start":20,"end":26,"confidence":0.95},{"text":"тестирование","label":"EVENT","start":29,"end":41,"confidence":0.9}]}},"WAITING_FOR_INTENT_EXTRACTED":{"intent":"document_search","chat_id":"987561a6-b7f1-4c67-8abc-c725ebb3279f","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"6b40a2f5-59f1-4a75-9063-98999d16af2c","user_message":"найди документы про mlops и тестирование"},"INTENT_EXTRACTED":{"intent":"document_search","chat_id":"987561a6-b7f1-4c67-8abc-c725ebb3279f","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"6b40a2f5-59f1-4a75-9063-98999d16af2c","user_message":"найди документы про mlops и тестирование"},"WAITING_FOR_DOCS_RETRIEVED":{"data":{"task":["path","hybrid_chunk","hybrid_doclet","chunk","doclet"],"limit":10,"question":"mlops тестирование","treshold":0.01,"tenant_id":"zebrains","request_id":"6b40a2f5-59f1-4a75-9063-98999d16af2c"},"name":"doc_vector_search"},"ERROR_ACCEPTED":{"error":"Exception search tool: Collection 'senses' is not exists, and fields is empty","topic":"hippocampus-develop-doc-in","srv_name":"hippocampus","request_id":"6b40a2f5-59f1-4a75-9063-98999d16af2c"}},"answer":"\nВнутренняя ошибка сервиса работы с базой знаний.\n\nДетали ошибки:\nException search tool: Collection 'senses' is not exists, and fields is empty\n","answer_context":"","exec_time":0.0}
Partition: 0   Offset: 704   Key: empty   Timestamp: 2026-05-26 07:49:05.872 Headers: content-type: text/plain, correlation_id: 6b40a2f5-59f1-4a75-9063-98999d16af2c
 
Внутренняя ошибка сервиса (redirected_topic: `hippocampus-develop-doc-local-out`).
Partition: 0   Offset: 705   Key: empty   Timestamp: 2026-05-26 09:41:20.658 Headers: content-type: application/json, correlation_id: d19d8439-8723-445e-b9d0-411c27040910
 
{"request_id":"d19d8439-8723-445e-b9d0-411c27040910","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","response_collection":{"REQUEST_ACCEPTED":{"query":"Найди Руководитель тестировщиков","chat_id":"6d0aad79-cf46-4330-83bc-2210406c08d4","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","admin_tag":true,"tenant_id":"nmg","request_id":"d19d8439-8723-445e-b9d0-411c27040910","user_email":"p.slivnitsyn@zebrains.team","attached_files":[]},"WAITING_FOR_INTENT_CLASSIFIED":{"data":{"mode":1,"task":"intent","query":"Найди Руководитель тестировщиков","contents":null,"doc_path":null,"messages":null,"tenant_id":"nmg","request_id":"d19d8439-8723-445e-b9d0-411c27040910","template_path":"templates/intent/qwen_intent.yaml","requirements_path":null},"name":"completion"},"INTENT_CLASSIFIED":{"data":{"think":null,"answer":"{\n  \"summary\": \"Поиск информации о руководителе тестировщиков\",\n  \"query\": \"Руководитель тестировщиков\",\n  \"intent\": {\n    \"document_search\": 0.95,\n    \"internet_search\": 0.0,\n    \"audio_transcribe\": 0.0,\n    \"forget\": 0.0,\n    \"take\": 0.0,\n    \"attach\": 0.0,\n    \"convert\": 0.0,\n    \"chat\": 0.05,\n    \"predicted_intent\": \"document_search\"\n  },\n  \"events\": [],\n  \"peoples\": [\n    {\n      \"name\": \"\",\n      \"lastname\": \"\",\n      \"surname\": \"\",\n      \"email\": \"\",\n      \"phone\": \"\",\n      \"birthdate\": \"\",\n      \"job\": \"Руководитель тестировщиков\",\n      \"department\": \"\",\n      \"role\": \"ответственный\",\n      \"status\": \"\"\n    }\n  ],\n  \"documents\": [],\n  \"entities\": [\n    {\n      \"text\": \"Руководитель тестировщиков\",\n      \"label\": \"POSITION\",\n      \"start\": 6,\n      \"end\": 32,\n      \"confidence\": 0.95\n    }\n  ]\n}","values":{"cut_off_tkns":0,"prompt_tkn_len":1727,"words_per_token":0.0,"document_tkn_len":1727,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"09:30:09","finish":"09:30:18","duration":"9330.7ms"},"tenant_id":"nmg","request_id":"d19d8439-8723-445e-b9d0-411c27040910"},"error":null,"status":"ok","answer":{"summary":"Поиск информации о руководителе тестировщиков","query":"Руководитель тестировщиков","intent":{"document_search":0.95,"internet_search":0.0,"audio_transcribe":0.0,"forget":0.0,"take":0.0,"attach":0.0,"convert":0.0,"chat":0.05,"predicted_intent":"document_search"},"events":[],"peoples":[{"name":"","lastname":"","surname":"","email":"","phone":"","birthdate":"","job":"Руководитель тестировщиков","department":"","role":"ответственный","status":""}],"documents":[],"entities":[{"text":"Руководитель тестировщиков","label":"POSITION","start":6,"end":32,"confidence":0.95}]}},"WAITING_FOR_INTENT_EXTRACTED":{"intent":"document_search","chat_id":"6d0aad79-cf46-4330-83bc-2210406c08d4","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"d19d8439-8723-445e-b9d0-411c27040910","user_message":"Найди Руководитель тестировщиков"},"INTENT_EXTRACTED":{"intent":"document_search","chat_id":"6d0aad79-cf46-4330-83bc-2210406c08d4","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"d19d8439-8723-445e-b9d0-411c27040910","user_message":"Найди Руководитель тестировщиков"},"WAITING_FOR_DOCS_RETRIEVED":{"data":{"task":["chunk","doclet","sense"],"limit":10,"question":"Руководитель тестировщиков","treshold":0.01,"tenant_id":"nmg","request_id":"d19d8439-8723-445e-b9d0-411c27040910"},"name":"doc_vector_search"},"DOCS_RETRIEVED":{"data":{"result":{"ranked":{"found":[{"id_doc":34,"content":null,"distance":0.09094939629236858,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.08132400612036388,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":28,"content":null,"distance":0.07430801540613174,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.06639357656240463,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.06611329068740208,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":43,"content":null,"distance":0.05320001766085625,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":40,"content":null,"distance":0.042434542129437126,"id_chunk":null,"file_name":"instr_3.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":58,"content":null,"distance":0.03918622930844625,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":42,"content":null,"distance":0.021467216312885284,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":6,"content":null,"distance":0.02129397789637248,"id_chunk":null,"file_name":"10001.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"09:30:20","finish":"09:30:20","duration":"6.6ms"},"collection":"ranked"},"chunk/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.09172888845205307,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":34,"content":null,"distance":0.08792278170585632,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.08581102639436722,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.07175536453723907,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.06775864958763123,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":58,"content":null,"distance":0.06262756884098053,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":43,"content":null,"distance":0.06109192967414856,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.05963869020342827,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":40,"content":null,"distance":0.056955788284540176,"id_chunk":null,"file_name":"instr_3.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.05452440679073334,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"09:30:20","finish":"09:30:20","duration":"0.0ms"},"collection":"chunks"},"sense/sparse":{"found":[{"id_doc":34,"content":null,"distance":0.091294065117836,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.08440305292606354,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.05723525583744049,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":28,"content":null,"distance":0.05620121955871582,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":39,"content":null,"distance":0.05280996859073639,"id_chunk":null,"file_name":"instr_2.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.051813557744026184,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":67,"content":null,"distance":0.050583891570568085,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655441003.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":57,"content":null,"distance":0.044687096029520035,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":43,"content":null,"distance":0.04412345215678215,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":73,"content":null,"distance":0.04384868964552879,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"09:30:20","finish":"09:30:20","duration":"0.0ms"},"collection":"senses/sparse"},"doclet/sparse":{"found":[{"id_doc":34,"content":null,"distance":0.09363134205341339,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":28,"content":null,"distance":0.07499393820762634,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.07477094978094101,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.07418682426214218,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.07375793904066086,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":40,"content":null,"distance":0.07034783810377121,"id_chunk":null,"file_name":"instr_3.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":42,"content":null,"distance":0.06440164893865585,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":6,"content":null,"distance":0.06388193368911743,"id_chunk":null,"file_name":"10001.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":58,"content":null,"distance":0.054931119084358215,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":43,"content":null,"distance":0.05438467115163803,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"09:30:20","finish":"09:30:20","duration":"0.0ms"},"collection":"doclets"}},"tenant_id":"nmg","request_id":"d19d8439-8723-445e-b9d0-411c27040910"},"error":null,"status":"ok"}},"answer":"\nНайдены следующие документы (поиск 1): \n- 1. [vac1.pdf](http://localhost/data/nmg/source/docs/vacs/vac1.pdf)\n- 2. [10026.pdf](http://localhost/data/nmg/source/cands/10026.pdf)\n- 3. [10027.pdf](http://localhost/data/nmg/source/cands/10027.pdf)\n- 4. [10004.docx](http://localhost/data/nmg/source/cands/10004.docx)\n- 5. [10024.pdf](http://localhost/data/nmg/source/cands/10024.pdf)\n- 6. [transcrib_550e8400-e29b-41d4-a716-446655440002.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440002.txt)\n- 7. [instr_3.docx](http://localhost/data/nmg/source/docs/instr/instr_3.docx)\n- 8. [transcrib_550e8400-e29b-41d4-a716-446655440011.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440011.txt)\n- 9. [transcrib_550e8400-e29b-41d4-a716-446655440102.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440102.txt)\n- 10. [10001.docx](http://localhost/data/nmg/source/cands/10001.docx)\n","answer_context":"\n<ПОИСК1>\n\nНайдены следующие документы: \n- 1. vac1.pdf  \n- 2. 10026.pdf  \n- 3. 10027.pdf  \n- 4. 10004.docx  \n- 5. 10024.pdf  \n- 6. transcrib_550e8400-e29b-41d4-a716-446655440002.txt  \n- 7. instr_3.docx  \n- 8. transcrib_550e8400-e29b-41d4-a716-446655440011.txt  \n- 9. transcrib_550e8400-e29b-41d4-a716-446655440102.txt  \n- 10. 10001.docx  \n\n</ПОИСК1>\n","exec_time":0.0}
Partition: 0   Offset: 706   Key: empty   Timestamp: 2026-05-26 09:42:05.078 Headers: content-type: application/json, correlation_id: 22342921-8d8c-4aec-a3a6-e48061101af2
 
{"request_id":"22342921-8d8c-4aec-a3a6-e48061101af2","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","response_collection":{"REQUEST_ACCEPTED":{"query":"выбери все","chat_id":"6d0aad79-cf46-4330-83bc-2210406c08d4","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","admin_tag":true,"tenant_id":"nmg","request_id":"22342921-8d8c-4aec-a3a6-e48061101af2","user_email":"p.slivnitsyn@zebrains.team","attached_files":[]},"WAITING_FOR_INTENT_CLASSIFIED":{"data":{"mode":1,"task":"intent","query":"выбери все","contents":null,"doc_path":null,"messages":null,"tenant_id":"nmg","request_id":"22342921-8d8c-4aec-a3a6-e48061101af2","template_path":"templates/intent/qwen_intent.yaml","requirements_path":null},"name":"completion"},"INTENT_CLASSIFIED":{"data":{"think":null,"answer":"{\n  \"summary\": \"Пользователь просит выбрать все документы.\",\n  \"query\": \"выбрать все документы\",\n  \"intent\": {\n    \"document_search\": 0.0,\n    \"internet_search\": 0.0,\n    \"audio_transcribe\": 0.0,\n    \"forget\": 0.0,\n    \"take\": 1.0,\n    \"attach\": 0.0,\n    \"convert\": 0.0,\n    \"chat\": 0.0,\n    \"predicted_intent\": \"take\"\n  },\n  \"events\": [],\n  \"peoples\": [],\n  \"documents\": [\n    {\n      \"title\": \"\",\n      \"direction\": \"\",\n      \"format\": \"\",\n      \"number\": [],\n      \"type\": \"\",\n      \"project\": \"\",\n      \"author\": \"\",\n      \"date_created\": \"\",\n      \"status\": \"\",\n      \"version\": \"\",\n      \"department\": \"\",\n      \"access_level\": \"\"\n    }\n  ],\n  \"entities\": [\n    {\n      \"text\": \"все\",\n      \"label\": \"EVENT\",\n      \"start\": 7,\n      \"end\": 10,\n      \"confidence\": 0.8\n    }\n  ]\n}","values":{"cut_off_tkns":0,"prompt_tkn_len":1721,"words_per_token":0.0,"document_tkn_len":1721,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"09:30:55","finish":"09:31:04","duration":"9129.0ms"},"tenant_id":"nmg","request_id":"22342921-8d8c-4aec-a3a6-e48061101af2"},"error":null,"status":"ok","answer":{"summary":"Пользователь просит выбрать все документы.","query":"выбрать все документы","intent":{"document_search":0.0,"internet_search":0.0,"audio_transcribe":0.0,"forget":0.0,"take":1.0,"attach":0.0,"convert":0.0,"chat":0.0,"predicted_intent":"take"},"events":[],"peoples":[],"documents":[{"title":"","direction":"","format":"","number":[],"type":"","project":"","author":"","date_created":"","status":"","version":"","department":"","access_level":""}],"entities":[{"text":"все","label":"EVENT","start":7,"end":10,"confidence":0.8}]}},"WAITING_FOR_INTENT_EXTRACTED":{"intent":"take","chat_id":"6d0aad79-cf46-4330-83bc-2210406c08d4","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"22342921-8d8c-4aec-a3a6-e48061101af2","user_message":"выбери все"},"INTENT_EXTRACTED":{"intent":"take","chat_id":"6d0aad79-cf46-4330-83bc-2210406c08d4","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"22342921-8d8c-4aec-a3a6-e48061101af2","user_message":"выбери все"}},"answer":"\nПожалуйста повторите выбор.\n","answer_context":"","exec_time":0.0}
Partition: 0   Offset: 707   Key: empty   Timestamp: 2026-05-26 09:43:18.625 Headers: content-type: application/json, correlation_id: 7f8fe05f-eddd-4030-a3d1-28bd863b1c23
 
{"request_id":"7f8fe05f-eddd-4030-a3d1-28bd863b1c23","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","response_collection":{"REQUEST_ACCEPTED":{"query":"выбери все","chat_id":"6d0aad79-cf46-4330-83bc-2210406c08d4","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","admin_tag":true,"tenant_id":"nmg","request_id":"7f8fe05f-eddd-4030-a3d1-28bd863b1c23","user_email":"p.slivnitsyn@zebrains.team","attached_files":[]},"WAITING_FOR_INTENT_CLASSIFIED":{"data":{"mode":1,"task":"intent","query":"выбери все","contents":null,"doc_path":null,"messages":null,"tenant_id":"nmg","request_id":"7f8fe05f-eddd-4030-a3d1-28bd863b1c23","template_path":"templates/intent/qwen_intent.yaml","requirements_path":null},"name":"completion"},"INTENT_CLASSIFIED":{"data":{"think":null,"answer":"{\n  \"summary\": \"Пользователь просит выбрать все документы.\",\n  \"query\": \"выбрать все документы\",\n  \"intent\": {\n    \"document_search\": 0.0,\n    \"internet_search\": 0.0,\n    \"audio_transcribe\": 0.0,\n    \"forget\": 0.0,\n    \"take\": 1.0,\n    \"attach\": 0.0,\n    \"convert\": 0.0,\n    \"chat\": 0.0,\n    \"predicted_intent\": \"take\"\n  },\n  \"events\": [],\n  \"peoples\": [],\n  \"documents\": [\n    {\n      \"title\": \"\",\n      \"direction\": \"\",\n      \"format\": \"\",\n      \"number\": [],\n      \"type\": \"\",\n      \"project\": \"\",\n      \"author\": \"\",\n      \"date_created\": \"\",\n      \"status\": \"\",\n      \"version\": \"\",\n      \"department\": \"\",\n      \"access_level\": \"\"\n    }\n  ],\n  \"entities\": [\n    {\n      \"text\": \"все\",\n      \"label\": \"PRODUCT\",\n      \"start\": 7,\n      \"end\": 10,\n      \"confidence\": 0.8\n    }\n  ]\n}","values":{"cut_off_tkns":0,"prompt_tkn_len":1721,"words_per_token":0.0,"document_tkn_len":1721,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"09:31:46","finish":"09:31:55","duration":"9100.5ms"},"tenant_id":"nmg","request_id":"7f8fe05f-eddd-4030-a3d1-28bd863b1c23"},"error":null,"status":"ok","answer":{"summary":"Пользователь просит выбрать все документы.","query":"выбрать все документы","intent":{"document_search":0.0,"internet_search":0.0,"audio_transcribe":0.0,"forget":0.0,"take":1.0,"attach":0.0,"convert":0.0,"chat":0.0,"predicted_intent":"take"},"events":[],"peoples":[],"documents":[{"title":"","direction":"","format":"","number":[],"type":"","project":"","author":"","date_created":"","status":"","version":"","department":"","access_level":""}],"entities":[{"text":"все","label":"PRODUCT","start":7,"end":10,"confidence":0.8}]}},"WAITING_FOR_INTENT_EXTRACTED":{"intent":"take","chat_id":"6d0aad79-cf46-4330-83bc-2210406c08d4","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"7f8fe05f-eddd-4030-a3d1-28bd863b1c23","user_message":"выбери все"},"INTENT_EXTRACTED":{"intent":"take","chat_id":"6d0aad79-cf46-4330-83bc-2210406c08d4","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"7f8fe05f-eddd-4030-a3d1-28bd863b1c23","user_message":"выбери все"}},"answer":"\nТекст следующих документов добавлен в контекст:\n- 1. vac1.pdf\n- 2. 10026.pdf\n- 3. 10027.pdf\n- 4. 10004.docx\n- 5. 10024.pdf\n- 6. transcrib_550e8400-e29b-41d4-a716-446655440002.txt\n- 7. instr_3.docx\n- 8. transcrib_550e8400-e29b-41d4-a716-446655440011.txt\n- 9. transcrib_550e8400-e29b-41d4-a716-446655440102.txt\n- 10. 10001.docx\n\n","answer_context":"","exec_time":0.0}
Partition: 0   Offset: 708   Key: empty   Timestamp: 2026-05-26 12:14:33.919 Headers: content-type: application/json, correlation_id: 9a99787b-7b7a-4675-a403-0f107a0b7ef9
 
{"request_id":"9a99787b-7b7a-4675-a403-0f107a0b7ef9","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","response_collection":{"REQUEST_ACCEPTED":{"query":"Найди что нибудь про MLOPS и Тестирование","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","admin_tag":true,"tenant_id":"nmg","request_id":"9a99787b-7b7a-4675-a403-0f107a0b7ef9","user_email":"p.slivnitsyn@zebrains.team","attached_files":[]},"WAITING_FOR_INTENT_CLASSIFIED":{"data":{"mode":1,"task":"intent","query":"Найди что нибудь про MLOPS и Тестирование","contents":null,"doc_path":null,"messages":null,"tenant_id":"nmg","request_id":"9a99787b-7b7a-4675-a403-0f107a0b7ef9","template_path":"templates/intent/qwen_intent.yaml","requirements_path":null},"name":"completion"},"INTENT_CLASSIFIED":{"data":{"think":null,"answer":"{\n  \"summary\": \"Поиск информации по темам MLOPS и Тестирование\",\n  \"query\": \"MLOPS Тестирование\",\n  \"intent\": {\n    \"document_search\": 0.95,\n    \"internet_search\": 0.0,\n    \"audio_transcribe\": 0.0,\n    \"forget\": 0.0,\n    \"take\": 0.0,\n    \"attach\": 0.0,\n    \"convert\": 0.0,\n    \"chat\": 0.05,\n    \"predicted_intent\": \"document_search\"\n  },\n  \"events\": [],\n  \"peoples\": [],\n  \"documents\": [],\n  \"entities\": [\n    {\n      \"text\": \"MLOPS\",\n      \"label\": \"PRODUCT\",\n      \"start\": 20,\n      \"end\": 26,\n      \"confidence\": 0.9\n    },\n    {\n      \"text\": \"Тестирование\",\n      \"label\": \"EVENT\",\n      \"start\": 29,\n      \"end\": 41,\n      \"confidence\": 0.85\n    }\n  ]\n}","values":{"cut_off_tkns":0,"prompt_tkn_len":1747,"words_per_token":0.0,"document_tkn_len":1747,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"12:03:22","finish":"12:03:31","duration":"8795.5ms"},"tenant_id":"nmg","request_id":"9a99787b-7b7a-4675-a403-0f107a0b7ef9"},"error":null,"status":"ok","answer":{"summary":"Поиск информации по темам MLOPS и Тестирование","query":"MLOPS Тестирование","intent":{"document_search":0.95,"internet_search":0.0,"audio_transcribe":0.0,"forget":0.0,"take":0.0,"attach":0.0,"convert":0.0,"chat":0.05,"predicted_intent":"document_search"},"events":[],"peoples":[],"documents":[],"entities":[{"text":"MLOPS","label":"PRODUCT","start":20,"end":26,"confidence":0.9},{"text":"Тестирование","label":"EVENT","start":29,"end":41,"confidence":0.85}]}},"WAITING_FOR_INTENT_EXTRACTED":{"intent":"document_search","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"9a99787b-7b7a-4675-a403-0f107a0b7ef9","user_message":"Найди что нибудь про MLOPS и Тестирование"},"INTENT_EXTRACTED":{"intent":"document_search","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"9a99787b-7b7a-4675-a403-0f107a0b7ef9","user_message":"Найди что нибудь про MLOPS и Тестирование"},"WAITING_FOR_DOCS_RETRIEVED":{"data":{"task":["chunk","doclet","sense"],"limit":10,"question":"MLOPS Тестирование","treshold":0.01,"tenant_id":"nmg","request_id":"9a99787b-7b7a-4675-a403-0f107a0b7ef9"},"name":"doc_vector_search"},"DOCS_RETRIEVED":{"data":{"result":{"ranked":{"found":[{"id_doc":28,"content":null,"distance":0.08235485851764679,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.060822522888580956,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.059142790734767914,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.044927077988783516,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.04474156970779101,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":14,"content":null,"distance":0.04259274030725161,"id_chunk":null,"file_name":"10002.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":8,"content":null,"distance":0.04208103815714518,"id_chunk":null,"file_name":"10030.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":24,"content":null,"distance":0.038713318606217705,"id_chunk":null,"file_name":"10017.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.02380158503850301,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":57,"content":null,"distance":0.021585611005624134,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:03:33","finish":"12:03:33","duration":"5.4ms"},"collection":"ranked"},"chunk/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.08551321923732758,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.08223353326320648,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.07140475511550903,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.06997903436422348,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.06990161538124084,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":8,"content":null,"distance":0.06633831560611725,"id_chunk":null,"file_name":"10030.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.06178202107548714,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":24,"content":null,"distance":0.061658136546611786,"id_chunk":null,"file_name":"10017.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":14,"content":null,"distance":0.06147480383515358,"id_chunk":null,"file_name":"10002.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.05849185213446617,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:03:33","finish":"12:03:33","duration":"0.0ms"},"collection":"chunks"},"sense/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.08268055319786072,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.07210169732570648,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":57,"content":null,"distance":0.0647568330168724,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.06420909613370895,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":27,"content":null,"distance":0.03165856748819351,"id_chunk":null,"file_name":"10005.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":43,"content":null,"distance":0.024112407118082047,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":17,"content":null,"distance":0.02212800830602646,"id_chunk":null,"file_name":"10003.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":72,"content":null,"distance":0.019002800807356834,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440003.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":45,"content":null,"distance":0.01858600415289402,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":11,"content":null,"distance":0.016513027250766754,"id_chunk":null,"file_name":"10009.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:03:33","finish":"12:03:33","duration":"0.0ms"},"collection":"senses/sparse"},"doclet/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.07887080311775208,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":14,"content":null,"distance":0.06630341708660126,"id_chunk":null,"file_name":"10002.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.06487961858510971,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":8,"content":null,"distance":0.0599047988653183,"id_chunk":null,"file_name":"10030.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":24,"content":null,"distance":0.05448181927204132,"id_chunk":null,"file_name":"10017.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.05199117586016655,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":5,"content":null,"distance":0.04860774055123329,"id_chunk":null,"file_name":"10011.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.04827943816781044,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.04354465380311012,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.03961745277047157,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:03:33","finish":"12:03:33","duration":"0.0ms"},"collection":"doclets"}},"tenant_id":"nmg","request_id":"9a99787b-7b7a-4675-a403-0f107a0b7ef9"},"error":null,"status":"ok"}},"answer":"\nНайдены следующие документы (поиск 1): \n- 1. [10027.pdf](http://localhost/data/nmg/source/cands/10027.pdf)\n- 2. [transcrib_550e8400-e29b-41d4-a716-446655440101.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440101.txt)\n- 3. [retelling_550e8400-e29b-41d4-a716-446655440101.txt](http://localhost/data/nmg/source/meetings/retelling_550e8400-e29b-41d4-a716-446655440101.txt)\n- 4. [10015.docx](http://localhost/data/nmg/source/cands/10015.docx)\n- 5. [10024.pdf](http://localhost/data/nmg/source/cands/10024.pdf)\n- 6. [10002.docx](http://localhost/data/nmg/source/cands/10002.docx)\n- 7. [10030.pdf](http://localhost/data/nmg/source/cands/10030.pdf)\n- 8. [10017.docx](http://localhost/data/nmg/source/cands/10017.docx)\n- 9. [10004.docx](http://localhost/data/nmg/source/cands/10004.docx)\n- 10. [protocol_550e8400-e29b-41d4-a716-446655440011.txt](http://localhost/data/nmg/source/meetings/protocol_550e8400-e29b-41d4-a716-446655440011.txt)\n","answer_context":"\n<ПОИСК1>\n\nНайдены следующие документы: \n- 1. 10027.pdf  \n- 2. transcrib_550e8400-e29b-41d4-a716-446655440101.txt  \n- 3. retelling_550e8400-e29b-41d4-a716-446655440101.txt  \n- 4. 10015.docx  \n- 5. 10024.pdf  \n- 6. 10002.docx  \n- 7. 10030.pdf  \n- 8. 10017.docx  \n- 9. 10004.docx  \n- 10. protocol_550e8400-e29b-41d4-a716-446655440011.txt  \n\n</ПОИСК1>\n","exec_time":0.0}
Partition: 0   Offset: 709   Key: empty   Timestamp: 2026-05-26 12:17:48.649 Headers: content-type: application/json, correlation_id: b8393359-37c0-47ad-b4b3-8ae5f9389950
 
{"request_id":"b8393359-37c0-47ad-b4b3-8ae5f9389950","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","response_collection":{"REQUEST_ACCEPTED":{"query":"Найди что нибудь про MLOPS и Тестирование","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","admin_tag":true,"tenant_id":"nmg","request_id":"b8393359-37c0-47ad-b4b3-8ae5f9389950","user_email":"p.slivnitsyn@zebrains.team","attached_files":[]},"WAITING_FOR_PLAN_FORMED":{"data":{"mode":2,"task":"rag","query":"Найди что нибудь про MLOPS и Тестирование","tools":[{"type":"function","function":{"name":"doc_vector_index","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу."}},{"type":"function","function":{"name":"doc_vector_search","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний."}},{"type":"function","function":{"name":"internet_search","parameters":{"type":"object","$defs":{"SearcherEngine":{"enum":["brave","searxng"],"type":"string","title":"SearcherEngine"}},"title":"SearcherInput","required":["request_id","question"],"properties":{"limit":{"type":"integer","title":"Limit","default":5,"description":"Количество результатов поиска"},"engine":{"$ref":"#/$defs/SearcherEngine","default":"searxng","description":"Система поиска"},"question":{"type":"string","title":"Question","description":"Строка для поиска"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно."}},{"type":"function","function":{"name":"completion","parameters":{"type":"object","$defs":{"APIMode":{"enum":[1,2,3],"type":"integer","title":"APIMode"},"MedullaTask":{"enum":["intent","rag","chat","contents","summarizer","checklist","chitchat","freeflight"],"type":"string","title":"MedullaTask"},"MedullaInputMessage":{"type":"object","title":"MedullaInputMessage","required":["role","content"],"properties":{"role":{"type":"string","title":"Role","description":"Роль: 'system', 'user', 'agent'"},"content":{"type":"string","title":"Content","description":"Содержимое сообщения"},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к директории с документом используемым для ответа"}}}},"title":"MedullaInput","required":["request_id","task","tenant_id"],"properties":{"mode":{"anyOf":[{"$ref":"#/$defs/APIMode"},{"type":"null"}],"default":null,"description":"Режим работы значение устанавливается внешними средствами (1, 2 или 3), по умолчанию 1."},"task":{"$ref":"#/$defs/MedullaTask","description":"Интеллектуальная задача выполняемая сервисом, 'intent' - Интент классификатор по запросу (query), 'rag' - ответ на запрос (query) по документу расположенному по пути (doc_path), 'chat' - ответ на запросы по логу сообщений messages, 'contents' - ответ на запрос (query) по приложенному контенту (contents), 'summarizer' - cуммаризация информации по запросу (query) документа расположенного по пути (doc_path), 'checklist' - проверка документа в директории по пути doc_path в соответствии с запросом (query) и шаблоном требований по пути (requirements_path), 'chitchat' - свободный ответ по запросу (query), 'freeflight' - Свободный формат (обязательно передать template_path)."},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","default":null,"description":"Текст запроса пользователя. Используется в задачах: intent, rag, contents, summarizer, checklist, chitchat."},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","default":null,"description":"Текстовый контент на основе которого формируется ответ. Используется в задачах: contents."},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к файлу на основе которого формируется ответ. Используется в задачах: rag, summarizer, checklist."},"messages":{"anyOf":[{"type":"array","items":{"$ref":"#/$defs/MedullaInputMessage"}},{"type":"null"}],"title":"Messages","default":null,"description":"Список сообщений на основе которых формируется ответ. Используется в задачах: chat."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"template_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Path","default":null,"description":"Путь к шаблону документа который используется для формирования ответа. Используется в задачах: checklist."},"requirements_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requirements Path","default":null,"description":"Путь к директории с файлом требований для формирования ответа. Используется в задачах: checklist."}}},"description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки."}},{"type":"function","function":{"name":"convert-content","parameters":{"type":"object","title":"PandockerDocumentInput","required":["request_id","tenant_id","contents","input_file","input_format","output_format","output_file","reference_doc","filters","defaults_file"],"properties":{"filters":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Filters","description":"Список фильтров для пандока, отправляется либо строкой, если фильтр один, или списком, если их несколько"},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","description":"Контент документа в виде текста, допустим mardown, указаывается если нет input_file"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input File","description":"Путь до входного файла"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output File","description":"Путь до выходного файла"},"input_format":{"type":"string","title":"Input Format","description":"Формат входного документа"},"defaults_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Defaults File","description":"Путь до файла настроек pandoc"},"output_format":{"type":"string","title":"Output Format","description":"Формат выходного документа"},"reference_doc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Doc","description":"Путь до референсного файла для стилизации"}}},"description":"Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно."}},{"type":"function","function":{"name":"parse","parameters":{"type":"object","$defs":{"Mode":{"enum":["skip_parsed","always_rewrite"],"type":"string","title":"Mode"}},"title":"PaleographInput","required":["request_id","tenant_id","input_path","output_path","mode"],"properties":{"mode":{"$ref":"#/$defs/Mode","description":"Режим работы парсера: 'skip_parsed' если нужно пропустить уже обработанные файлы из входной директории при повторном вызове, 'always_rewrite' всегда обрабатывать все файлы находящиеся во входной директории."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_path":{"type":"string","title":"Input Path","description":"Путь до директории с файлами которые нужно обработать."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_path":{"type":"string","title":"Output Path","description":"Путь до директории в которую необходимо сложить результат."}}},"description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла."}},{"type":"function","function":{"name":"page_download","parameters":{"type":"object","$defs":{"SearcherSaveList":{"enum":["urls","svgs","images"],"type":"string","title":"SearcherSaveList"}},"title":"SearcherDownloadInput","required":["request_id","urls","names","save_path","save_list"],"properties":{"urls":{"type":"array","items":{"type":"string"},"title":"Urls","description":"Список ссылок на сайты для загрузки"},"names":{"type":"array","items":{"type":"string"},"title":"Names","description":"Список именов сайтов"},"save_list":{"type":"array","items":{"$ref":"#/$defs/SearcherSaveList"},"title":"Save List","description":"Перечисление того, что оставить при загрузке сайта"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения сайтов"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно."}},{"type":"function","function":{"name":"transcribe","parameters":{"type":"object","$defs":{"ScriberEngine":{"enum":["gigaam"],"type":"string","title":"ScriberEngine"}},"title":"ScriberInput","required":["request_id","paths","save_path"],"properties":{"paths":{"type":"array","items":{"type":"string"},"title":"Paths","description":"Пути до аудио/видео файлов"},"engine":{"$ref":"#/$defs/ScriberEngine","default":"gigaam","description":"Система транскрибации"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения транскрибации"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"diarization":{"type":"boolean","title":"Diarization","default":false,"description":"Флаг включения диаризации"}}},"description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"b8393359-37c0-47ad-b4b3-8ae5f9389950","tool_choice":"required","template_path":"templates/planning/qwen_plan.yaml","tools_description":"\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.\n**doc_vector_search**: Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.\n**internet_search**: Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.\n**completion**: Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.\n**convert-content**: Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.\n**parse**: Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.\n**page_download**: Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.\n**transcribe**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."},"name":"planning"},"PLAN_FORMED":{"data":{"think":null,"answer":"","values":{"cut_off_tkns":0,"prompt_tkn_len":126,"words_per_token":0.0,"document_tkn_len":126,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"12:17:30","finish":"12:17:36","duration":"5812.6ms"},"tenant_id":"nmg","request_id":"b8393359-37c0-47ad-b4b3-8ae5f9389950","tool_calls":[{"name":"internet_search","arguments":"{\"question\": \"MLOps и тестирование\", \"limit\": 5}"}]},"error":null,"status":"ok"},"WAITING_FOR_INTENT_CLASSIFIED":{"data":{"mode":1,"task":"intent","query":"Найди что нибудь про MLOPS и Тестирование","contents":null,"doc_path":null,"messages":null,"tenant_id":"nmg","request_id":"b8393359-37c0-47ad-b4b3-8ae5f9389950","template_path":"templates/intent/qwen_intent.yaml","requirements_path":null},"name":"completion"},"INTENT_CLASSIFIED":{"data":{"think":null,"answer":"{\n  \"summary\": \"Поиск информации по темам MLOPS и Тестирование\",\n  \"query\": \"MLOPS Тестирование\",\n  \"intent\": {\n    \"document_search\": 0.95,\n    \"internet_search\": 0.0,\n    \"audio_transcribe\": 0.0,\n    \"forget\": 0.0,\n    \"take\": 0.0,\n    \"attach\": 0.0,\n    \"convert\": 0.0,\n    \"chat\": 0.05,\n    \"predicted_intent\": \"document_search\"\n  },\n  \"events\": [],\n  \"peoples\": [],\n  \"documents\": [],\n  \"entities\": [\n    {\n      \"text\": \"MLOPS\",\n      \"label\": \"PRODUCT\",\n      \"start\": 20,\n      \"end\": 26,\n      \"confidence\": 0.9\n    },\n    {\n      \"text\": \"Тестирование\",\n      \"label\": \"EVENT\",\n      \"start\": 29,\n      \"end\": 41,\n      \"confidence\": 0.85\n    }\n  ]\n}","values":{"cut_off_tkns":0,"prompt_tkn_len":1747,"words_per_token":0.0,"document_tkn_len":1747,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"12:06:37","finish":"12:06:46","duration":"8664.5ms"},"tenant_id":"nmg","request_id":"b8393359-37c0-47ad-b4b3-8ae5f9389950"},"error":null,"status":"ok","answer":{"summary":"Поиск информации по темам MLOPS и Тестирование","query":"MLOPS Тестирование","intent":{"document_search":0.95,"internet_search":0.0,"audio_transcribe":0.0,"forget":0.0,"take":0.0,"attach":0.0,"convert":0.0,"chat":0.05,"predicted_intent":"document_search"},"events":[],"peoples":[],"documents":[],"entities":[{"text":"MLOPS","label":"PRODUCT","start":20,"end":26,"confidence":0.9},{"text":"Тестирование","label":"EVENT","start":29,"end":41,"confidence":0.85}]}},"WAITING_FOR_INTENT_EXTRACTED":{"intent":"document_search","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"b8393359-37c0-47ad-b4b3-8ae5f9389950","user_message":"Найди что нибудь про MLOPS и Тестирование"},"INTENT_EXTRACTED":{"intent":"document_search","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"b8393359-37c0-47ad-b4b3-8ae5f9389950","user_message":"Найди что нибудь про MLOPS и Тестирование"},"WAITING_FOR_DOCS_RETRIEVED":{"data":{"task":["chunk","doclet","sense"],"limit":10,"question":"MLOPS Тестирование","treshold":0.01,"tenant_id":"nmg","request_id":"b8393359-37c0-47ad-b4b3-8ae5f9389950"},"name":"doc_vector_search"},"DOCS_RETRIEVED":{"data":{"result":{"ranked":{"found":[{"id_doc":28,"content":null,"distance":0.08235485851764679,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.060822522888580956,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.059142790734767914,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.044927077988783516,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.04474156970779101,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":14,"content":null,"distance":0.04259274030725161,"id_chunk":null,"file_name":"10002.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":8,"content":null,"distance":0.04208103815714518,"id_chunk":null,"file_name":"10030.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":24,"content":null,"distance":0.038713318606217705,"id_chunk":null,"file_name":"10017.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.02380158503850301,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":57,"content":null,"distance":0.021585611005624134,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:06:48","finish":"12:06:48","duration":"4.9ms"},"collection":"ranked"},"chunk/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.08551321923732758,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.08223353326320648,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.07140475511550903,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.06997903436422348,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.06990161538124084,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":8,"content":null,"distance":0.06633831560611725,"id_chunk":null,"file_name":"10030.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.06178202107548714,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":24,"content":null,"distance":0.061658136546611786,"id_chunk":null,"file_name":"10017.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":14,"content":null,"distance":0.06147480383515358,"id_chunk":null,"file_name":"10002.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.05849185213446617,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:06:48","finish":"12:06:48","duration":"0.0ms"},"collection":"chunks"},"sense/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.08268055319786072,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.07210169732570648,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":57,"content":null,"distance":0.0647568330168724,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.06420909613370895,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":27,"content":null,"distance":0.03165856748819351,"id_chunk":null,"file_name":"10005.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":43,"content":null,"distance":0.024112407118082047,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":17,"content":null,"distance":0.02212800830602646,"id_chunk":null,"file_name":"10003.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":72,"content":null,"distance":0.019002800807356834,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440003.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":45,"content":null,"distance":0.01858600415289402,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":11,"content":null,"distance":0.016513027250766754,"id_chunk":null,"file_name":"10009.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:06:48","finish":"12:06:48","duration":"0.0ms"},"collection":"senses/sparse"},"doclet/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.07887080311775208,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":14,"content":null,"distance":0.06630341708660126,"id_chunk":null,"file_name":"10002.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.06487961858510971,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":8,"content":null,"distance":0.0599047988653183,"id_chunk":null,"file_name":"10030.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":24,"content":null,"distance":0.05448181927204132,"id_chunk":null,"file_name":"10017.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.05199117586016655,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":5,"content":null,"distance":0.04860774055123329,"id_chunk":null,"file_name":"10011.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.04827943816781044,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.04354465380311012,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.03961745277047157,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:06:48","finish":"12:06:48","duration":"0.0ms"},"collection":"doclets"}},"tenant_id":"nmg","request_id":"b8393359-37c0-47ad-b4b3-8ae5f9389950"},"error":null,"status":"ok"}},"answer":"\nНайдены следующие документы (поиск 2): \n- 1. [10027.pdf](http://localhost/data/nmg/source/cands/10027.pdf)\n- 2. [transcrib_550e8400-e29b-41d4-a716-446655440101.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440101.txt)\n- 3. [retelling_550e8400-e29b-41d4-a716-446655440101.txt](http://localhost/data/nmg/source/meetings/retelling_550e8400-e29b-41d4-a716-446655440101.txt)\n- 4. [10015.docx](http://localhost/data/nmg/source/cands/10015.docx)\n- 5. [10024.pdf](http://localhost/data/nmg/source/cands/10024.pdf)\n- 6. [10002.docx](http://localhost/data/nmg/source/cands/10002.docx)\n- 7. [10030.pdf](http://localhost/data/nmg/source/cands/10030.pdf)\n- 8. [10017.docx](http://localhost/data/nmg/source/cands/10017.docx)\n- 9. [10004.docx](http://localhost/data/nmg/source/cands/10004.docx)\n- 10. [protocol_550e8400-e29b-41d4-a716-446655440011.txt](http://localhost/data/nmg/source/meetings/protocol_550e8400-e29b-41d4-a716-446655440011.txt)\n","answer_context":"\n<ПОИСК2>\n\nНайдены следующие документы: \n- 1. 10027.pdf  \n- 2. transcrib_550e8400-e29b-41d4-a716-446655440101.txt  \n- 3. retelling_550e8400-e29b-41d4-a716-446655440101.txt  \n- 4. 10015.docx  \n- 5. 10024.pdf  \n- 6. 10002.docx  \n- 7. 10030.pdf  \n- 8. 10017.docx  \n- 9. 10004.docx  \n- 10. protocol_550e8400-e29b-41d4-a716-446655440011.txt  \n\n</ПОИСК2>\n","exec_time":0.0}
Partition: 0   Offset: 710   Key: empty   Timestamp: 2026-05-26 12:19:47.489 Headers: content-type: application/json, correlation_id: 20455611-63db-4967-b59f-8189b7c3d6c1
 
{"request_id":"20455611-63db-4967-b59f-8189b7c3d6c1","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","response_collection":{"REQUEST_ACCEPTED":{"query":"Найди что нибудь про MLOPS и Тестирование","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","admin_tag":true,"tenant_id":"nmg","request_id":"20455611-63db-4967-b59f-8189b7c3d6c1","user_email":"p.slivnitsyn@zebrains.team","attached_files":[]},"WAITING_FOR_PLAN_FORMED":{"data":{"mode":2,"task":"rag","query":"Найди что нибудь про MLOPS и Тестирование","tools":[{"type":"function","function":{"name":"doc_vector_index","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу."}},{"type":"function","function":{"name":"doc_vector_search","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний."}},{"type":"function","function":{"name":"internet_search","parameters":{"type":"object","$defs":{"SearcherEngine":{"enum":["brave","searxng"],"type":"string","title":"SearcherEngine"}},"title":"SearcherInput","required":["request_id","question"],"properties":{"limit":{"type":"integer","title":"Limit","default":5,"description":"Количество результатов поиска"},"engine":{"$ref":"#/$defs/SearcherEngine","default":"searxng","description":"Система поиска"},"question":{"type":"string","title":"Question","description":"Строка для поиска"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно."}},{"type":"function","function":{"name":"completion","parameters":{"type":"object","$defs":{"APIMode":{"enum":[1,2,3],"type":"integer","title":"APIMode"},"MedullaTask":{"enum":["intent","rag","chat","contents","summarizer","checklist","chitchat","freeflight"],"type":"string","title":"MedullaTask"},"MedullaInputMessage":{"type":"object","title":"MedullaInputMessage","required":["role","content"],"properties":{"role":{"type":"string","title":"Role","description":"Роль: 'system', 'user', 'agent'"},"content":{"type":"string","title":"Content","description":"Содержимое сообщения"},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к директории с документом используемым для ответа"}}}},"title":"MedullaInput","required":["request_id","task","tenant_id"],"properties":{"mode":{"anyOf":[{"$ref":"#/$defs/APIMode"},{"type":"null"}],"default":null,"description":"Режим работы значение устанавливается внешними средствами (1, 2 или 3), по умолчанию 1."},"task":{"$ref":"#/$defs/MedullaTask","description":"Интеллектуальная задача выполняемая сервисом, 'intent' - Интент классификатор по запросу (query), 'rag' - ответ на запрос (query) по документу расположенному по пути (doc_path), 'chat' - ответ на запросы по логу сообщений messages, 'contents' - ответ на запрос (query) по приложенному контенту (contents), 'summarizer' - cуммаризация информации по запросу (query) документа расположенного по пути (doc_path), 'checklist' - проверка документа в директории по пути doc_path в соответствии с запросом (query) и шаблоном требований по пути (requirements_path), 'chitchat' - свободный ответ по запросу (query), 'freeflight' - Свободный формат (обязательно передать template_path)."},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","default":null,"description":"Текст запроса пользователя. Используется в задачах: intent, rag, contents, summarizer, checklist, chitchat."},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","default":null,"description":"Текстовый контент на основе которого формируется ответ. Используется в задачах: contents."},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к файлу на основе которого формируется ответ. Используется в задачах: rag, summarizer, checklist."},"messages":{"anyOf":[{"type":"array","items":{"$ref":"#/$defs/MedullaInputMessage"}},{"type":"null"}],"title":"Messages","default":null,"description":"Список сообщений на основе которых формируется ответ. Используется в задачах: chat."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"template_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Path","default":null,"description":"Путь к шаблону документа который используется для формирования ответа. Используется в задачах: checklist."},"requirements_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requirements Path","default":null,"description":"Путь к директории с файлом требований для формирования ответа. Используется в задачах: checklist."}}},"description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки."}},{"type":"function","function":{"name":"convert-content","parameters":{"type":"object","title":"PandockerDocumentInput","required":["request_id","tenant_id","contents","input_file","input_format","output_format","output_file","reference_doc","filters","defaults_file"],"properties":{"filters":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Filters","description":"Список фильтров для пандока, отправляется либо строкой, если фильтр один, или списком, если их несколько"},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","description":"Контент документа в виде текста, допустим mardown, указаывается если нет input_file"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input File","description":"Путь до входного файла"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output File","description":"Путь до выходного файла"},"input_format":{"type":"string","title":"Input Format","description":"Формат входного документа"},"defaults_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Defaults File","description":"Путь до файла настроек pandoc"},"output_format":{"type":"string","title":"Output Format","description":"Формат выходного документа"},"reference_doc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Doc","description":"Путь до референсного файла для стилизации"}}},"description":"Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно."}},{"type":"function","function":{"name":"parse","parameters":{"type":"object","$defs":{"Mode":{"enum":["skip_parsed","always_rewrite"],"type":"string","title":"Mode"}},"title":"PaleographInput","required":["request_id","tenant_id","input_path","output_path","mode"],"properties":{"mode":{"$ref":"#/$defs/Mode","description":"Режим работы парсера: 'skip_parsed' если нужно пропустить уже обработанные файлы из входной директории при повторном вызове, 'always_rewrite' всегда обрабатывать все файлы находящиеся во входной директории."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_path":{"type":"string","title":"Input Path","description":"Путь до директории с файлами которые нужно обработать."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_path":{"type":"string","title":"Output Path","description":"Путь до директории в которую необходимо сложить результат."}}},"description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла."}},{"type":"function","function":{"name":"page_download","parameters":{"type":"object","$defs":{"SearcherSaveList":{"enum":["urls","svgs","images"],"type":"string","title":"SearcherSaveList"}},"title":"SearcherDownloadInput","required":["request_id","urls","names","save_path","save_list"],"properties":{"urls":{"type":"array","items":{"type":"string"},"title":"Urls","description":"Список ссылок на сайты для загрузки"},"names":{"type":"array","items":{"type":"string"},"title":"Names","description":"Список именов сайтов"},"save_list":{"type":"array","items":{"$ref":"#/$defs/SearcherSaveList"},"title":"Save List","description":"Перечисление того, что оставить при загрузке сайта"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения сайтов"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно."}},{"type":"function","function":{"name":"transcribe","parameters":{"type":"object","$defs":{"ScriberEngine":{"enum":["gigaam"],"type":"string","title":"ScriberEngine"}},"title":"ScriberInput","required":["request_id","paths","save_path"],"properties":{"paths":{"type":"array","items":{"type":"string"},"title":"Paths","description":"Пути до аудио/видео файлов"},"engine":{"$ref":"#/$defs/ScriberEngine","default":"gigaam","description":"Система транскрибации"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения транскрибации"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"diarization":{"type":"boolean","title":"Diarization","default":false,"description":"Флаг включения диаризации"}}},"description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"20455611-63db-4967-b59f-8189b7c3d6c1","tool_choice":"required","template_path":"templates/planning/qwen_plan.yaml","tools_description":"\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.\n**doc_vector_search**: Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.\n**internet_search**: Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.\n**completion**: Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.\n**convert-content**: Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.\n**parse**: Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.\n**page_download**: Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.\n**transcribe**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."},"name":"planning"},"PLAN_FORMED":{"data":{"think":null,"answer":"","values":{"cut_off_tkns":0,"prompt_tkn_len":126,"words_per_token":0.0,"document_tkn_len":126,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"12:19:32","finish":"12:19:36","duration":"3482.5ms"},"tenant_id":"nmg","request_id":"20455611-63db-4967-b59f-8189b7c3d6c1","tool_calls":[{"name":"internet_search","arguments":"{\"question\": \"MLOps и тестирование\", \"limit\": 5}"}]},"error":null,"status":"ok"},"WAITING_FOR_INTENT_CLASSIFIED":{"data":{"mode":1,"task":"intent","query":"Найди что нибудь про MLOPS и Тестирование","contents":null,"doc_path":null,"messages":null,"tenant_id":"nmg","request_id":"20455611-63db-4967-b59f-8189b7c3d6c1","template_path":"templates/intent/qwen_intent.yaml","requirements_path":null},"name":"completion"},"INTENT_CLASSIFIED":{"data":{"think":null,"answer":"{\n  \"summary\": \"Поиск информации по темам MLOPS и Тестирование\",\n  \"query\": \"MLOPS Тестирование\",\n  \"intent\": {\n    \"document_search\": 0.95,\n    \"internet_search\": 0.0,\n    \"audio_transcribe\": 0.0,\n    \"forget\": 0.0,\n    \"take\": 0.0,\n    \"attach\": 0.0,\n    \"convert\": 0.0,\n    \"chat\": 0.05,\n    \"predicted_intent\": \"document_search\"\n  },\n  \"events\": [],\n  \"peoples\": [],\n  \"documents\": [],\n  \"entities\": [\n    {\n      \"text\": \"MLOPS\",\n      \"label\": \"PRODUCT\",\n      \"start\": 20,\n      \"end\": 26,\n      \"confidence\": 0.9\n    },\n    {\n      \"text\": \"Тестирование\",\n      \"label\": \"EVENT\",\n      \"start\": 29,\n      \"end\": 41,\n      \"confidence\": 0.85\n    }\n  ]\n}","values":{"cut_off_tkns":0,"prompt_tkn_len":1747,"words_per_token":0.0,"document_tkn_len":1747,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"12:08:37","finish":"12:08:46","duration":"8649.4ms"},"tenant_id":"nmg","request_id":"20455611-63db-4967-b59f-8189b7c3d6c1"},"error":null,"status":"ok","answer":{"summary":"Поиск информации по темам MLOPS и Тестирование","query":"MLOPS Тестирование","intent":{"document_search":0.95,"internet_search":0.0,"audio_transcribe":0.0,"forget":0.0,"take":0.0,"attach":0.0,"convert":0.0,"chat":0.05,"predicted_intent":"document_search"},"events":[],"peoples":[],"documents":[],"entities":[{"text":"MLOPS","label":"PRODUCT","start":20,"end":26,"confidence":0.9},{"text":"Тестирование","label":"EVENT","start":29,"end":41,"confidence":0.85}]}},"WAITING_FOR_INTENT_EXTRACTED":{"intent":"document_search","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"20455611-63db-4967-b59f-8189b7c3d6c1","user_message":"Найди что нибудь про MLOPS и Тестирование"},"INTENT_EXTRACTED":{"intent":"document_search","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"20455611-63db-4967-b59f-8189b7c3d6c1","user_message":"Найди что нибудь про MLOPS и Тестирование"},"WAITING_FOR_DOCS_RETRIEVED":{"data":{"task":["chunk","doclet","sense"],"limit":10,"question":"MLOPS Тестирование","treshold":0.01,"tenant_id":"nmg","request_id":"20455611-63db-4967-b59f-8189b7c3d6c1"},"name":"doc_vector_search"},"DOCS_RETRIEVED":{"data":{"result":{"ranked":{"found":[{"id_doc":28,"content":null,"distance":0.08235485851764679,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.060822522888580956,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.059142790734767914,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.044927077988783516,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.04474156970779101,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":14,"content":null,"distance":0.04259274030725161,"id_chunk":null,"file_name":"10002.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":8,"content":null,"distance":0.04208103815714518,"id_chunk":null,"file_name":"10030.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":24,"content":null,"distance":0.038713318606217705,"id_chunk":null,"file_name":"10017.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.02380158503850301,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":57,"content":null,"distance":0.021585611005624134,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:08:47","finish":"12:08:47","duration":"5.6ms"},"collection":"ranked"},"chunk/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.08551321923732758,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.08223353326320648,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.07140475511550903,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.06997903436422348,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.06990161538124084,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":8,"content":null,"distance":0.06633831560611725,"id_chunk":null,"file_name":"10030.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.06178202107548714,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":24,"content":null,"distance":0.061658136546611786,"id_chunk":null,"file_name":"10017.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":14,"content":null,"distance":0.06147480383515358,"id_chunk":null,"file_name":"10002.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.05849185213446617,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:08:47","finish":"12:08:47","duration":"0.0ms"},"collection":"chunks"},"sense/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.08268055319786072,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.07210169732570648,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":57,"content":null,"distance":0.0647568330168724,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.06420909613370895,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":27,"content":null,"distance":0.03165856748819351,"id_chunk":null,"file_name":"10005.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":43,"content":null,"distance":0.024112407118082047,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":17,"content":null,"distance":0.02212800830602646,"id_chunk":null,"file_name":"10003.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":72,"content":null,"distance":0.019002800807356834,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440003.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":45,"content":null,"distance":0.01858600415289402,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":11,"content":null,"distance":0.016513027250766754,"id_chunk":null,"file_name":"10009.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:08:47","finish":"12:08:47","duration":"0.0ms"},"collection":"senses/sparse"},"doclet/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.07887080311775208,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":14,"content":null,"distance":0.06630341708660126,"id_chunk":null,"file_name":"10002.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.06487961858510971,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":8,"content":null,"distance":0.0599047988653183,"id_chunk":null,"file_name":"10030.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":24,"content":null,"distance":0.05448181927204132,"id_chunk":null,"file_name":"10017.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.05199117586016655,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":5,"content":null,"distance":0.04860774055123329,"id_chunk":null,"file_name":"10011.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.04827943816781044,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.04354465380311012,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.03961745277047157,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:08:47","finish":"12:08:47","duration":"0.0ms"},"collection":"doclets"}},"tenant_id":"nmg","request_id":"20455611-63db-4967-b59f-8189b7c3d6c1"},"error":null,"status":"ok"}},"answer":"\nНайдены следующие документы (поиск 3): \n- 1. [10027.pdf](http://localhost/data/nmg/source/cands/10027.pdf)\n- 2. [transcrib_550e8400-e29b-41d4-a716-446655440101.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440101.txt)\n- 3. [retelling_550e8400-e29b-41d4-a716-446655440101.txt](http://localhost/data/nmg/source/meetings/retelling_550e8400-e29b-41d4-a716-446655440101.txt)\n- 4. [10015.docx](http://localhost/data/nmg/source/cands/10015.docx)\n- 5. [10024.pdf](http://localhost/data/nmg/source/cands/10024.pdf)\n- 6. [10002.docx](http://localhost/data/nmg/source/cands/10002.docx)\n- 7. [10030.pdf](http://localhost/data/nmg/source/cands/10030.pdf)\n- 8. [10017.docx](http://localhost/data/nmg/source/cands/10017.docx)\n- 9. [10004.docx](http://localhost/data/nmg/source/cands/10004.docx)\n- 10. [protocol_550e8400-e29b-41d4-a716-446655440011.txt](http://localhost/data/nmg/source/meetings/protocol_550e8400-e29b-41d4-a716-446655440011.txt)\n","answer_context":"\n<ПОИСК3>\n\nНайдены следующие документы: \n- 1. 10027.pdf  \n- 2. transcrib_550e8400-e29b-41d4-a716-446655440101.txt  \n- 3. retelling_550e8400-e29b-41d4-a716-446655440101.txt  \n- 4. 10015.docx  \n- 5. 10024.pdf  \n- 6. 10002.docx  \n- 7. 10030.pdf  \n- 8. 10017.docx  \n- 9. 10004.docx  \n- 10. protocol_550e8400-e29b-41d4-a716-446655440011.txt  \n\n</ПОИСК3>\n","exec_time":0.0}
Partition: 0   Offset: 711   Key: empty   Timestamp: 2026-05-26 12:26:34.971 Headers: content-type: application/json, correlation_id: 106504e3-fcb4-4c43-986f-f3b7155c1194
 
{"request_id":"106504e3-fcb4-4c43-986f-f3b7155c1194","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","response_collection":{"REQUEST_ACCEPTED":{"query":"Найди что нибудь про MLOPS и Тестирование","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","admin_tag":true,"tenant_id":"nmg","request_id":"106504e3-fcb4-4c43-986f-f3b7155c1194","user_email":"p.slivnitsyn@zebrains.team","attached_files":[]},"WAITING_FOR_PLAN_FORMED":{"data":{"mode":2,"task":"rag","query":"Найди что нибудь про MLOPS и Тестирование","tools":[{"type":"function","function":{"name":"doc_vector_index","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу."}},{"type":"function","function":{"name":"doc_vector_search","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний."}},{"type":"function","function":{"name":"internet_search","parameters":{"type":"object","$defs":{"SearcherEngine":{"enum":["brave","searxng"],"type":"string","title":"SearcherEngine"}},"title":"SearcherInput","required":["request_id","question"],"properties":{"limit":{"type":"integer","title":"Limit","default":5,"description":"Количество результатов поиска"},"engine":{"$ref":"#/$defs/SearcherEngine","default":"searxng","description":"Система поиска"},"question":{"type":"string","title":"Question","description":"Строка для поиска"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно."}},{"type":"function","function":{"name":"completion","parameters":{"type":"object","$defs":{"APIMode":{"enum":[1,2,3],"type":"integer","title":"APIMode"},"MedullaTask":{"enum":["intent","rag","chat","contents","summarizer","checklist","chitchat","freeflight"],"type":"string","title":"MedullaTask"},"MedullaInputMessage":{"type":"object","title":"MedullaInputMessage","required":["role","content"],"properties":{"role":{"type":"string","title":"Role","description":"Роль: 'system', 'user', 'agent'"},"content":{"type":"string","title":"Content","description":"Содержимое сообщения"},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к директории с документом используемым для ответа"}}}},"title":"MedullaInput","required":["request_id","task","tenant_id"],"properties":{"mode":{"anyOf":[{"$ref":"#/$defs/APIMode"},{"type":"null"}],"default":null,"description":"Режим работы значение устанавливается внешними средствами (1, 2 или 3), по умолчанию 1."},"task":{"$ref":"#/$defs/MedullaTask","description":"Интеллектуальная задача выполняемая сервисом, 'intent' - Интент классификатор по запросу (query), 'rag' - ответ на запрос (query) по документу расположенному по пути (doc_path), 'chat' - ответ на запросы по логу сообщений messages, 'contents' - ответ на запрос (query) по приложенному контенту (contents), 'summarizer' - cуммаризация информации по запросу (query) документа расположенного по пути (doc_path), 'checklist' - проверка документа в директории по пути doc_path в соответствии с запросом (query) и шаблоном требований по пути (requirements_path), 'chitchat' - свободный ответ по запросу (query), 'freeflight' - Свободный формат (обязательно передать template_path)."},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","default":null,"description":"Текст запроса пользователя. Используется в задачах: intent, rag, contents, summarizer, checklist, chitchat."},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","default":null,"description":"Текстовый контент на основе которого формируется ответ. Используется в задачах: contents."},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к файлу на основе которого формируется ответ. Используется в задачах: rag, summarizer, checklist."},"messages":{"anyOf":[{"type":"array","items":{"$ref":"#/$defs/MedullaInputMessage"}},{"type":"null"}],"title":"Messages","default":null,"description":"Список сообщений на основе которых формируется ответ. Используется в задачах: chat."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"template_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Path","default":null,"description":"Путь к шаблону документа который используется для формирования ответа. Используется в задачах: checklist."},"requirements_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requirements Path","default":null,"description":"Путь к директории с файлом требований для формирования ответа. Используется в задачах: checklist."}}},"description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки."}},{"type":"function","function":{"name":"convert-content","parameters":{"type":"object","title":"PandockerDocumentInput","required":["request_id","tenant_id","contents","input_file","input_format","output_format","output_file","reference_doc","filters","defaults_file"],"properties":{"filters":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Filters","description":"Список фильтров для пандока, отправляется либо строкой, если фильтр один, или списком, если их несколько"},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","description":"Контент документа в виде текста, допустим mardown, указаывается если нет input_file"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input File","description":"Путь до входного файла"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output File","description":"Путь до выходного файла"},"input_format":{"type":"string","title":"Input Format","description":"Формат входного документа"},"defaults_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Defaults File","description":"Путь до файла настроек pandoc"},"output_format":{"type":"string","title":"Output Format","description":"Формат выходного документа"},"reference_doc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Doc","description":"Путь до референсного файла для стилизации"}}},"description":"Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно."}},{"type":"function","function":{"name":"parse","parameters":{"type":"object","$defs":{"Mode":{"enum":["skip_parsed","always_rewrite"],"type":"string","title":"Mode"}},"title":"PaleographInput","required":["request_id","tenant_id","input_path","output_path","mode"],"properties":{"mode":{"$ref":"#/$defs/Mode","description":"Режим работы парсера: 'skip_parsed' если нужно пропустить уже обработанные файлы из входной директории при повторном вызове, 'always_rewrite' всегда обрабатывать все файлы находящиеся во входной директории."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_path":{"type":"string","title":"Input Path","description":"Путь до директории с файлами которые нужно обработать."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_path":{"type":"string","title":"Output Path","description":"Путь до директории в которую необходимо сложить результат."}}},"description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла."}},{"type":"function","function":{"name":"page_download","parameters":{"type":"object","$defs":{"SearcherSaveList":{"enum":["urls","svgs","images"],"type":"string","title":"SearcherSaveList"}},"title":"SearcherDownloadInput","required":["request_id","urls","names","save_path","save_list"],"properties":{"urls":{"type":"array","items":{"type":"string"},"title":"Urls","description":"Список ссылок на сайты для загрузки"},"names":{"type":"array","items":{"type":"string"},"title":"Names","description":"Список именов сайтов"},"save_list":{"type":"array","items":{"$ref":"#/$defs/SearcherSaveList"},"title":"Save List","description":"Перечисление того, что оставить при загрузке сайта"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения сайтов"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно."}},{"type":"function","function":{"name":"transcribe","parameters":{"type":"object","$defs":{"ScriberEngine":{"enum":["gigaam"],"type":"string","title":"ScriberEngine"}},"title":"ScriberInput","required":["request_id","paths","save_path"],"properties":{"paths":{"type":"array","items":{"type":"string"},"title":"Paths","description":"Пути до аудио/видео файлов"},"engine":{"$ref":"#/$defs/ScriberEngine","default":"gigaam","description":"Система транскрибации"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения транскрибации"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"diarization":{"type":"boolean","title":"Diarization","default":false,"description":"Флаг включения диаризации"}}},"description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"106504e3-fcb4-4c43-986f-f3b7155c1194","tool_choice":"required","template_path":"templates/planning/qwen_plan.yaml","tools_description":"\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.\n**doc_vector_search**: Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.\n**internet_search**: Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.\n**completion**: Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.\n**convert-content**: Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.\n**parse**: Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.\n**page_download**: Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.\n**transcribe**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."},"name":"planning"},"PLAN_FORMED":{"data":{"think":null,"answer":"","values":{"cut_off_tkns":0,"prompt_tkn_len":126,"words_per_token":0.0,"document_tkn_len":126,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"12:25:47","finish":"12:26:23","duration":"26821.4ms"},"tenant_id":"nmg","request_id":"106504e3-fcb4-4c43-986f-f3b7155c1194","tool_calls":[{"name":"internet_search","arguments":"{\"question\": \"MLOps и тестирование\", \"limit\": 5}"}]},"error":null,"status":"ok"},"WAITING_FOR_INTENT_CLASSIFIED":{"data":{"mode":1,"task":"intent","query":"Найди что нибудь про MLOPS и Тестирование","contents":null,"doc_path":null,"messages":null,"tenant_id":"nmg","request_id":"106504e3-fcb4-4c43-986f-f3b7155c1194","template_path":"templates/intent/qwen_intent.yaml","requirements_path":null},"name":"completion"},"INTENT_CLASSIFIED":{"data":{"think":null,"answer":"{\n  \"summary\": \"Поиск информации по темам MLOPS и Тестирование\",\n  \"query\": \"MLOPS Тестирование\",\n  \"intent\": {\n    \"document_search\": 0.95,\n    \"internet_search\": 0.0,\n    \"audio_transcribe\": 0.0,\n    \"forget\": 0.0,\n    \"take\": 0.0,\n    \"attach\": 0.0,\n    \"convert\": 0.0,\n    \"chat\": 0.05,\n    \"predicted_intent\": \"document_search\"\n  },\n  \"events\": [],\n  \"peoples\": [],\n  \"documents\": [],\n  \"entities\": [\n    {\n      \"text\": \"MLOPS\",\n      \"label\": \"PRODUCT\",\n      \"start\": 20,\n      \"end\": 26,\n      \"confidence\": 0.9\n    },\n    {\n      \"text\": \"Тестирование\",\n      \"label\": \"EVENT\",\n      \"start\": 29,\n      \"end\": 41,\n      \"confidence\": 0.85\n    }\n  ]\n}","values":{"cut_off_tkns":0,"prompt_tkn_len":1747,"words_per_token":0.0,"document_tkn_len":1747,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"12:15:24","finish":"12:15:33","duration":"8686.8ms"},"tenant_id":"nmg","request_id":"106504e3-fcb4-4c43-986f-f3b7155c1194"},"error":null,"status":"ok","answer":{"summary":"Поиск информации по темам MLOPS и Тестирование","query":"MLOPS Тестирование","intent":{"document_search":0.95,"internet_search":0.0,"audio_transcribe":0.0,"forget":0.0,"take":0.0,"attach":0.0,"convert":0.0,"chat":0.05,"predicted_intent":"document_search"},"events":[],"peoples":[],"documents":[],"entities":[{"text":"MLOPS","label":"PRODUCT","start":20,"end":26,"confidence":0.9},{"text":"Тестирование","label":"EVENT","start":29,"end":41,"confidence":0.85}]}},"WAITING_FOR_INTENT_EXTRACTED":{"intent":"document_search","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"106504e3-fcb4-4c43-986f-f3b7155c1194","user_message":"Найди что нибудь про MLOPS и Тестирование"},"INTENT_EXTRACTED":{"intent":"document_search","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"106504e3-fcb4-4c43-986f-f3b7155c1194","user_message":"Найди что нибудь про MLOPS и Тестирование"},"WAITING_FOR_DOCS_RETRIEVED":{"data":{"task":["chunk","doclet","sense"],"limit":10,"question":"MLOPS Тестирование","treshold":0.01,"tenant_id":"nmg","request_id":"106504e3-fcb4-4c43-986f-f3b7155c1194"},"name":"doc_vector_search"},"DOCS_RETRIEVED":{"data":{"result":{"ranked":{"found":[{"id_doc":28,"content":null,"distance":0.08235485851764679,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.060822522888580956,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.059142790734767914,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.044927077988783516,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.04474156970779101,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":14,"content":null,"distance":0.04259274030725161,"id_chunk":null,"file_name":"10002.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":8,"content":null,"distance":0.04208103815714518,"id_chunk":null,"file_name":"10030.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":24,"content":null,"distance":0.038713318606217705,"id_chunk":null,"file_name":"10017.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.02380158503850301,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":57,"content":null,"distance":0.021585611005624134,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:15:34","finish":"12:15:34","duration":"6.4ms"},"collection":"ranked"},"chunk/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.08551321923732758,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.08223353326320648,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.07140475511550903,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.06997903436422348,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.06990161538124084,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":8,"content":null,"distance":0.06633831560611725,"id_chunk":null,"file_name":"10030.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.06178202107548714,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":24,"content":null,"distance":0.061658136546611786,"id_chunk":null,"file_name":"10017.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":14,"content":null,"distance":0.06147480383515358,"id_chunk":null,"file_name":"10002.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.05849185213446617,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:15:34","finish":"12:15:34","duration":"0.0ms"},"collection":"chunks"},"sense/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.08268055319786072,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.07210169732570648,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":57,"content":null,"distance":0.0647568330168724,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.06420909613370895,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":27,"content":null,"distance":0.03165856748819351,"id_chunk":null,"file_name":"10005.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":43,"content":null,"distance":0.024112407118082047,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":17,"content":null,"distance":0.02212800830602646,"id_chunk":null,"file_name":"10003.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":72,"content":null,"distance":0.019002800807356834,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440003.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":45,"content":null,"distance":0.01858600415289402,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":11,"content":null,"distance":0.016513027250766754,"id_chunk":null,"file_name":"10009.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:15:34","finish":"12:15:34","duration":"0.0ms"},"collection":"senses/sparse"},"doclet/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.07887080311775208,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":14,"content":null,"distance":0.06630341708660126,"id_chunk":null,"file_name":"10002.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.06487961858510971,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":8,"content":null,"distance":0.0599047988653183,"id_chunk":null,"file_name":"10030.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":24,"content":null,"distance":0.05448181927204132,"id_chunk":null,"file_name":"10017.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.05199117586016655,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":5,"content":null,"distance":0.04860774055123329,"id_chunk":null,"file_name":"10011.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.04827943816781044,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.04354465380311012,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.03961745277047157,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:15:34","finish":"12:15:34","duration":"0.0ms"},"collection":"doclets"}},"tenant_id":"nmg","request_id":"106504e3-fcb4-4c43-986f-f3b7155c1194"},"error":null,"status":"ok"}},"answer":"\nНайдены следующие документы (поиск 4): \n- 1. [10027.pdf](http://localhost/data/nmg/source/cands/10027.pdf)\n- 2. [transcrib_550e8400-e29b-41d4-a716-446655440101.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440101.txt)\n- 3. [retelling_550e8400-e29b-41d4-a716-446655440101.txt](http://localhost/data/nmg/source/meetings/retelling_550e8400-e29b-41d4-a716-446655440101.txt)\n- 4. [10015.docx](http://localhost/data/nmg/source/cands/10015.docx)\n- 5. [10024.pdf](http://localhost/data/nmg/source/cands/10024.pdf)\n- 6. [10002.docx](http://localhost/data/nmg/source/cands/10002.docx)\n- 7. [10030.pdf](http://localhost/data/nmg/source/cands/10030.pdf)\n- 8. [10017.docx](http://localhost/data/nmg/source/cands/10017.docx)\n- 9. [10004.docx](http://localhost/data/nmg/source/cands/10004.docx)\n- 10. [protocol_550e8400-e29b-41d4-a716-446655440011.txt](http://localhost/data/nmg/source/meetings/protocol_550e8400-e29b-41d4-a716-446655440011.txt)\n","answer_context":"\n<ПОИСК4>\n\nНайдены следующие документы: \n- 1. 10027.pdf  \n- 2. transcrib_550e8400-e29b-41d4-a716-446655440101.txt  \n- 3. retelling_550e8400-e29b-41d4-a716-446655440101.txt  \n- 4. 10015.docx  \n- 5. 10024.pdf  \n- 6. 10002.docx  \n- 7. 10030.pdf  \n- 8. 10017.docx  \n- 9. 10004.docx  \n- 10. protocol_550e8400-e29b-41d4-a716-446655440011.txt  \n\n</ПОИСК4>\n","exec_time":0.0}
Partition: 0   Offset: 712   Key: empty   Timestamp: 2026-05-26 13:04:05.007 Headers: content-type: application/json, correlation_id: 4ffad9a0-18e7-4606-88fd-8d4e54998fdb
 
{"request_id":"4ffad9a0-18e7-4606-88fd-8d4e54998fdb","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","response_collection":{"REQUEST_ACCEPTED":{"query":"Найди что нибудь про MLOPS и Тестирование","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","admin_tag":true,"tenant_id":"nmg","request_id":"4ffad9a0-18e7-4606-88fd-8d4e54998fdb","user_email":"p.slivnitsyn@zebrains.team","attached_files":[]},"WAITING_FOR_PLAN_FORMED":{"data":{"mode":2,"task":"rag","query":"Найди что нибудь про MLOPS и Тестирование","tools":[{"type":"function","function":{"name":"doc_vector_search","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний."}},{"type":"function","function":{"name":"internet_search","parameters":{"type":"object","$defs":{"SearcherEngine":{"enum":["brave","searxng"],"type":"string","title":"SearcherEngine"}},"title":"SearcherInput","required":["request_id","question"],"properties":{"limit":{"type":"integer","title":"Limit","default":5,"description":"Количество результатов поиска"},"engine":{"$ref":"#/$defs/SearcherEngine","default":"searxng","description":"Система поиска"},"question":{"type":"string","title":"Question","description":"Строка для поиска"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно."}},{"type":"function","function":{"name":"doc_vector_index","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу."}},{"type":"function","function":{"name":"completion","parameters":{"type":"object","$defs":{"APIMode":{"enum":[1,2,3],"type":"integer","title":"APIMode"},"MedullaTask":{"enum":["intent","rag","chat","contents","summarizer","checklist","chitchat","freeflight"],"type":"string","title":"MedullaTask"},"MedullaInputMessage":{"type":"object","title":"MedullaInputMessage","required":["role","content"],"properties":{"role":{"type":"string","title":"Role","description":"Роль: 'system', 'user', 'agent'"},"content":{"type":"string","title":"Content","description":"Содержимое сообщения"},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к директории с документом используемым для ответа"}}}},"title":"MedullaInput","required":["request_id","task","tenant_id"],"properties":{"mode":{"anyOf":[{"$ref":"#/$defs/APIMode"},{"type":"null"}],"default":null,"description":"Режим работы значение устанавливается внешними средствами (1, 2 или 3), по умолчанию 1."},"task":{"$ref":"#/$defs/MedullaTask","description":"Интеллектуальная задача выполняемая сервисом, 'intent' - Интент классификатор по запросу (query), 'rag' - ответ на запрос (query) по документу расположенному по пути (doc_path), 'chat' - ответ на запросы по логу сообщений messages, 'contents' - ответ на запрос (query) по приложенному контенту (contents), 'summarizer' - cуммаризация информации по запросу (query) документа расположенного по пути (doc_path), 'checklist' - проверка документа в директории по пути doc_path в соответствии с запросом (query) и шаблоном требований по пути (requirements_path), 'chitchat' - свободный ответ по запросу (query), 'freeflight' - Свободный формат (обязательно передать template_path)."},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","default":null,"description":"Текст запроса пользователя. Используется в задачах: intent, rag, contents, summarizer, checklist, chitchat."},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","default":null,"description":"Текстовый контент на основе которого формируется ответ. Используется в задачах: contents."},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к файлу на основе которого формируется ответ. Используется в задачах: rag, summarizer, checklist."},"messages":{"anyOf":[{"type":"array","items":{"$ref":"#/$defs/MedullaInputMessage"}},{"type":"null"}],"title":"Messages","default":null,"description":"Список сообщений на основе которых формируется ответ. Используется в задачах: chat."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"template_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Path","default":null,"description":"Путь к шаблону документа который используется для формирования ответа. Используется в задачах: checklist."},"requirements_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requirements Path","default":null,"description":"Путь к директории с файлом требований для формирования ответа. Используется в задачах: checklist."}}},"description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки."}},{"type":"function","function":{"name":"convert-content","parameters":{"type":"object","title":"PandockerDocumentInput","required":["request_id","tenant_id","contents","input_file","input_format","output_format","output_file","reference_doc","filters","defaults_file"],"properties":{"filters":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Filters","description":"Список фильтров для пандока, отправляется либо строкой, если фильтр один, или списком, если их несколько"},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","description":"Контент документа в виде текста, допустим mardown, указаывается если нет input_file"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input File","description":"Путь до входного файла"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output File","description":"Путь до выходного файла"},"input_format":{"type":"string","title":"Input Format","description":"Формат входного документа"},"defaults_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Defaults File","description":"Путь до файла настроек pandoc"},"output_format":{"type":"string","title":"Output Format","description":"Формат выходного документа"},"reference_doc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Doc","description":"Путь до референсного файла для стилизации"}}},"description":"Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно."}},{"type":"function","function":{"name":"parse","parameters":{"type":"object","$defs":{"Mode":{"enum":["skip_parsed","always_rewrite"],"type":"string","title":"Mode"}},"title":"PaleographInput","required":["request_id","tenant_id","input_path","output_path","mode"],"properties":{"mode":{"$ref":"#/$defs/Mode","description":"Режим работы парсера: 'skip_parsed' если нужно пропустить уже обработанные файлы из входной директории при повторном вызове, 'always_rewrite' всегда обрабатывать все файлы находящиеся во входной директории."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_path":{"type":"string","title":"Input Path","description":"Путь до директории с файлами которые нужно обработать."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_path":{"type":"string","title":"Output Path","description":"Путь до директории в которую необходимо сложить результат."}}},"description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла."}},{"type":"function","function":{"name":"page_download","parameters":{"type":"object","$defs":{"SearcherSaveList":{"enum":["urls","svgs","images"],"type":"string","title":"SearcherSaveList"}},"title":"SearcherDownloadInput","required":["request_id","urls","names","save_path","save_list"],"properties":{"urls":{"type":"array","items":{"type":"string"},"title":"Urls","description":"Список ссылок на сайты для загрузки"},"names":{"type":"array","items":{"type":"string"},"title":"Names","description":"Список именов сайтов"},"save_list":{"type":"array","items":{"$ref":"#/$defs/SearcherSaveList"},"title":"Save List","description":"Перечисление того, что оставить при загрузке сайта"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения сайтов"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно."}},{"type":"function","function":{"name":"transcribe","parameters":{"type":"object","$defs":{"ScriberEngine":{"enum":["gigaam"],"type":"string","title":"ScriberEngine"}},"title":"ScriberInput","required":["request_id","paths","save_path"],"properties":{"paths":{"type":"array","items":{"type":"string"},"title":"Paths","description":"Пути до аудио/видео файлов"},"engine":{"$ref":"#/$defs/ScriberEngine","default":"gigaam","description":"Система транскрибации"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения транскрибации"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"diarization":{"type":"boolean","title":"Diarization","default":false,"description":"Флаг включения диаризации"}}},"description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"4ffad9a0-18e7-4606-88fd-8d4e54998fdb","tool_choice":"required","template_path":"templates/planning/qwen_plan.yaml","tools_description":"\n**doc_vector_search**: Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.\n**internet_search**: Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.\n**completion**: Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.\n**convert-content**: Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.\n**parse**: Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.\n**page_download**: Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.\n**transcribe**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."},"name":"planning"},"PLAN_FORMED":{"data":{"think":null,"answer":"","values":{"cut_off_tkns":0,"prompt_tkn_len":1304,"words_per_token":0.0,"document_tkn_len":1304,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"13:03:38","finish":"13:03:52","duration":"14198.8ms"},"tenant_id":"nmg","request_id":"4ffad9a0-18e7-4606-88fd-8d4e54998fdb","tool_calls":[{"name":"internet_search","arguments":"{\"limit\": 10, \"question\": \"MLOps testing best practices strategies tools\"}"}]},"error":null,"status":"ok"},"WAITING_FOR_INTENT_CLASSIFIED":{"data":{"mode":1,"task":"intent","query":"Найди что нибудь про MLOPS и Тестирование","contents":null,"doc_path":null,"messages":null,"tenant_id":"nmg","request_id":"4ffad9a0-18e7-4606-88fd-8d4e54998fdb","template_path":"templates/intent/qwen_intent.yaml","requirements_path":null},"name":"completion"},"INTENT_CLASSIFIED":{"data":{"think":null,"answer":"{\n  \"summary\": \"Поиск информации по темам MLOPS и Тестирование\",\n  \"query\": \"MLOPS Тестирование\",\n  \"intent\": {\n    \"document_search\": 0.95,\n    \"internet_search\": 0.0,\n    \"audio_transcribe\": 0.0,\n    \"forget\": 0.0,\n    \"take\": 0.0,\n    \"attach\": 0.0,\n    \"convert\": 0.0,\n    \"chat\": 0.05,\n    \"predicted_intent\": \"document_search\"\n  },\n  \"events\": [],\n  \"peoples\": [],\n  \"documents\": [],\n  \"entities\": [\n    {\n      \"text\": \"MLOPS\",\n      \"label\": \"PRODUCT\",\n      \"start\": 21,\n      \"end\": 27,\n      \"confidence\": 0.9\n    },\n    {\n      \"text\": \"Тестирование\",\n      \"label\": \"EVENT\",\n      \"start\": 30,\n      \"end\": 42,\n      \"confidence\": 0.85\n    }\n  ]\n}","values":{"cut_off_tkns":0,"prompt_tkn_len":1747,"words_per_token":0.0,"document_tkn_len":1747,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"12:52:53","finish":"12:53:01","duration":"8675.6ms"},"tenant_id":"nmg","request_id":"4ffad9a0-18e7-4606-88fd-8d4e54998fdb"},"error":null,"status":"ok","answer":{"summary":"Поиск информации по темам MLOPS и Тестирование","query":"MLOPS Тестирование","intent":{"document_search":0.95,"internet_search":0.0,"audio_transcribe":0.0,"forget":0.0,"take":0.0,"attach":0.0,"convert":0.0,"chat":0.05,"predicted_intent":"document_search"},"events":[],"peoples":[],"documents":[],"entities":[{"text":"MLOPS","label":"PRODUCT","start":21,"end":27,"confidence":0.9},{"text":"Тестирование","label":"EVENT","start":30,"end":42,"confidence":0.85}]}},"WAITING_FOR_INTENT_EXTRACTED":{"intent":"document_search","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"4ffad9a0-18e7-4606-88fd-8d4e54998fdb","user_message":"Найди что нибудь про MLOPS и Тестирование"},"INTENT_EXTRACTED":{"intent":"document_search","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"4ffad9a0-18e7-4606-88fd-8d4e54998fdb","user_message":"Найди что нибудь про MLOPS и Тестирование"},"WAITING_FOR_DOCS_RETRIEVED":{"data":{"task":["chunk","doclet","sense"],"limit":10,"question":"MLOPS Тестирование","treshold":0.01,"tenant_id":"nmg","request_id":"4ffad9a0-18e7-4606-88fd-8d4e54998fdb"},"name":"doc_vector_search"},"DOCS_RETRIEVED":{"data":{"result":{"ranked":{"found":[{"id_doc":28,"content":null,"distance":0.08235485851764679,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.060822522888580956,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.059142790734767914,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.044927077988783516,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.04474156970779101,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":14,"content":null,"distance":0.04259274030725161,"id_chunk":null,"file_name":"10002.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":8,"content":null,"distance":0.04208103815714518,"id_chunk":null,"file_name":"10030.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":24,"content":null,"distance":0.038713318606217705,"id_chunk":null,"file_name":"10017.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.02380158503850301,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":57,"content":null,"distance":0.021585611005624134,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:53:04","finish":"12:53:04","duration":"5.9ms"},"collection":"ranked"},"chunk/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.08551321923732758,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.08223353326320648,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.07140475511550903,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.06997903436422348,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.06990161538124084,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":8,"content":null,"distance":0.06633831560611725,"id_chunk":null,"file_name":"10030.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.06178202107548714,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":24,"content":null,"distance":0.061658136546611786,"id_chunk":null,"file_name":"10017.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":14,"content":null,"distance":0.06147480383515358,"id_chunk":null,"file_name":"10002.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.05849185213446617,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:53:04","finish":"12:53:04","duration":"0.0ms"},"collection":"chunks"},"sense/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.08268055319786072,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.07210169732570648,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":57,"content":null,"distance":0.0647568330168724,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.06420909613370895,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":27,"content":null,"distance":0.03165856748819351,"id_chunk":null,"file_name":"10005.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":43,"content":null,"distance":0.024112407118082047,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":17,"content":null,"distance":0.02212800830602646,"id_chunk":null,"file_name":"10003.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":72,"content":null,"distance":0.019002800807356834,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440003.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":45,"content":null,"distance":0.01858600415289402,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":11,"content":null,"distance":0.016513027250766754,"id_chunk":null,"file_name":"10009.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:53:04","finish":"12:53:04","duration":"0.0ms"},"collection":"senses/sparse"},"doclet/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.07887080311775208,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":14,"content":null,"distance":0.06630341708660126,"id_chunk":null,"file_name":"10002.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.06487961858510971,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":8,"content":null,"distance":0.0599047988653183,"id_chunk":null,"file_name":"10030.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":24,"content":null,"distance":0.05448181927204132,"id_chunk":null,"file_name":"10017.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.05199117586016655,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":5,"content":null,"distance":0.04860774055123329,"id_chunk":null,"file_name":"10011.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.04827943816781044,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.04354465380311012,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.03961745277047157,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:53:04","finish":"12:53:04","duration":"0.0ms"},"collection":"doclets"}},"tenant_id":"nmg","request_id":"4ffad9a0-18e7-4606-88fd-8d4e54998fdb"},"error":null,"status":"ok"}},"answer":"\nНайдены следующие документы (поиск 5): \n- 1. [10027.pdf](http://localhost/data/nmg/source/cands/10027.pdf)\n- 2. [transcrib_550e8400-e29b-41d4-a716-446655440101.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440101.txt)\n- 3. [retelling_550e8400-e29b-41d4-a716-446655440101.txt](http://localhost/data/nmg/source/meetings/retelling_550e8400-e29b-41d4-a716-446655440101.txt)\n- 4. [10015.docx](http://localhost/data/nmg/source/cands/10015.docx)\n- 5. [10024.pdf](http://localhost/data/nmg/source/cands/10024.pdf)\n- 6. [10002.docx](http://localhost/data/nmg/source/cands/10002.docx)\n- 7. [10030.pdf](http://localhost/data/nmg/source/cands/10030.pdf)\n- 8. [10017.docx](http://localhost/data/nmg/source/cands/10017.docx)\n- 9. [10004.docx](http://localhost/data/nmg/source/cands/10004.docx)\n- 10. [protocol_550e8400-e29b-41d4-a716-446655440011.txt](http://localhost/data/nmg/source/meetings/protocol_550e8400-e29b-41d4-a716-446655440011.txt)\n","answer_context":"\n<ПОИСК5>\n\nНайдены следующие документы: \n- 1. 10027.pdf  \n- 2. transcrib_550e8400-e29b-41d4-a716-446655440101.txt  \n- 3. retelling_550e8400-e29b-41d4-a716-446655440101.txt  \n- 4. 10015.docx  \n- 5. 10024.pdf  \n- 6. 10002.docx  \n- 7. 10030.pdf  \n- 8. 10017.docx  \n- 9. 10004.docx  \n- 10. protocol_550e8400-e29b-41d4-a716-446655440011.txt  \n\n</ПОИСК5>\n","exec_time":0.0}
Partition: 0   Offset: 713   Key: empty   Timestamp: 2026-05-26 13:07:04.348 Headers: content-type: application/json, correlation_id: a2470e77-ede0-4b7a-89b2-80a4ee0178f5
 
{"request_id":"a2470e77-ede0-4b7a-89b2-80a4ee0178f5","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","response_collection":{"REQUEST_ACCEPTED":{"query":"Найди что нибудь про MLOPS и Тестирование","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","admin_tag":true,"tenant_id":"nmg","request_id":"a2470e77-ede0-4b7a-89b2-80a4ee0178f5","user_email":"p.slivnitsyn@zebrains.team","attached_files":[]},"WAITING_FOR_PLAN_FORMED":{"data":{"mode":2,"task":"rag","query":"Найди что нибудь про MLOPS и Тестирование","tools":[{"type":"function","function":{"name":"doc_vector_search","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний."}},{"type":"function","function":{"name":"internet_search","parameters":{"type":"object","$defs":{"SearcherEngine":{"enum":["brave","searxng"],"type":"string","title":"SearcherEngine"}},"title":"SearcherInput","required":["request_id","question"],"properties":{"limit":{"type":"integer","title":"Limit","default":5,"description":"Количество результатов поиска"},"engine":{"$ref":"#/$defs/SearcherEngine","default":"searxng","description":"Система поиска"},"question":{"type":"string","title":"Question","description":"Строка для поиска"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно."}},{"type":"function","function":{"name":"doc_vector_index","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу."}},{"type":"function","function":{"name":"completion","parameters":{"type":"object","$defs":{"APIMode":{"enum":[1,2,3],"type":"integer","title":"APIMode"},"MedullaTask":{"enum":["intent","rag","chat","contents","summarizer","checklist","chitchat","freeflight"],"type":"string","title":"MedullaTask"},"MedullaInputMessage":{"type":"object","title":"MedullaInputMessage","required":["role","content"],"properties":{"role":{"type":"string","title":"Role","description":"Роль: 'system', 'user', 'agent'"},"content":{"type":"string","title":"Content","description":"Содержимое сообщения"},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к директории с документом используемым для ответа"}}}},"title":"MedullaInput","required":["request_id","task","tenant_id"],"properties":{"mode":{"anyOf":[{"$ref":"#/$defs/APIMode"},{"type":"null"}],"default":null,"description":"Режим работы значение устанавливается внешними средствами (1, 2 или 3), по умолчанию 1."},"task":{"$ref":"#/$defs/MedullaTask","description":"Интеллектуальная задача выполняемая сервисом, 'intent' - Интент классификатор по запросу (query), 'rag' - ответ на запрос (query) по документу расположенному по пути (doc_path), 'chat' - ответ на запросы по логу сообщений messages, 'contents' - ответ на запрос (query) по приложенному контенту (contents), 'summarizer' - cуммаризация информации по запросу (query) документа расположенного по пути (doc_path), 'checklist' - проверка документа в директории по пути doc_path в соответствии с запросом (query) и шаблоном требований по пути (requirements_path), 'chitchat' - свободный ответ по запросу (query), 'freeflight' - Свободный формат (обязательно передать template_path)."},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","default":null,"description":"Текст запроса пользователя. Используется в задачах: intent, rag, contents, summarizer, checklist, chitchat."},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","default":null,"description":"Текстовый контент на основе которого формируется ответ. Используется в задачах: contents."},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к файлу на основе которого формируется ответ. Используется в задачах: rag, summarizer, checklist."},"messages":{"anyOf":[{"type":"array","items":{"$ref":"#/$defs/MedullaInputMessage"}},{"type":"null"}],"title":"Messages","default":null,"description":"Список сообщений на основе которых формируется ответ. Используется в задачах: chat."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"template_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Path","default":null,"description":"Путь к шаблону документа который используется для формирования ответа. Используется в задачах: checklist."},"requirements_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requirements Path","default":null,"description":"Путь к директории с файлом требований для формирования ответа. Используется в задачах: checklist."}}},"description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки."}},{"type":"function","function":{"name":"convert-content","parameters":{"type":"object","title":"PandockerDocumentInput","required":["request_id","tenant_id","contents","input_file","input_format","output_format","output_file","reference_doc","filters","defaults_file"],"properties":{"filters":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Filters","description":"Список фильтров для пандока, отправляется либо строкой, если фильтр один, или списком, если их несколько"},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","description":"Контент документа в виде текста, допустим mardown, указаывается если нет input_file"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input File","description":"Путь до входного файла"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output File","description":"Путь до выходного файла"},"input_format":{"type":"string","title":"Input Format","description":"Формат входного документа"},"defaults_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Defaults File","description":"Путь до файла настроек pandoc"},"output_format":{"type":"string","title":"Output Format","description":"Формат выходного документа"},"reference_doc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Doc","description":"Путь до референсного файла для стилизации"}}},"description":"Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно."}},{"type":"function","function":{"name":"parse","parameters":{"type":"object","$defs":{"Mode":{"enum":["skip_parsed","always_rewrite"],"type":"string","title":"Mode"}},"title":"PaleographInput","required":["request_id","tenant_id","input_path","output_path","mode"],"properties":{"mode":{"$ref":"#/$defs/Mode","description":"Режим работы парсера: 'skip_parsed' если нужно пропустить уже обработанные файлы из входной директории при повторном вызове, 'always_rewrite' всегда обрабатывать все файлы находящиеся во входной директории."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_path":{"type":"string","title":"Input Path","description":"Путь до директории с файлами которые нужно обработать."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_path":{"type":"string","title":"Output Path","description":"Путь до директории в которую необходимо сложить результат."}}},"description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла."}},{"type":"function","function":{"name":"page_download","parameters":{"type":"object","$defs":{"SearcherSaveList":{"enum":["urls","svgs","images"],"type":"string","title":"SearcherSaveList"}},"title":"SearcherDownloadInput","required":["request_id","urls","names","save_path","save_list"],"properties":{"urls":{"type":"array","items":{"type":"string"},"title":"Urls","description":"Список ссылок на сайты для загрузки"},"names":{"type":"array","items":{"type":"string"},"title":"Names","description":"Список именов сайтов"},"save_list":{"type":"array","items":{"$ref":"#/$defs/SearcherSaveList"},"title":"Save List","description":"Перечисление того, что оставить при загрузке сайта"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения сайтов"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно."}},{"type":"function","function":{"name":"transcribe","parameters":{"type":"object","$defs":{"ScriberEngine":{"enum":["gigaam"],"type":"string","title":"ScriberEngine"}},"title":"ScriberInput","required":["request_id","paths","save_path"],"properties":{"paths":{"type":"array","items":{"type":"string"},"title":"Paths","description":"Пути до аудио/видео файлов"},"engine":{"$ref":"#/$defs/ScriberEngine","default":"gigaam","description":"Система транскрибации"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения транскрибации"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"diarization":{"type":"boolean","title":"Diarization","default":false,"description":"Флаг включения диаризации"}}},"description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"a2470e77-ede0-4b7a-89b2-80a4ee0178f5","tool_choice":"required","template_path":"templates/planning/qwen_plan.yaml","tools_description":"\n**doc_vector_search**: Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.\n**internet_search**: Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.\n**completion**: Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.\n**convert-content**: Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.\n**parse**: Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.\n**page_download**: Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.\n**transcribe**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."},"name":"planning"},"PLAN_FORMED":{"data":{"think":null,"answer":"","values":{"cut_off_tkns":0,"prompt_tkn_len":1304,"words_per_token":0.0,"document_tkn_len":1304,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"13:06:29","finish":"13:06:49","duration":"20465.7ms"},"tenant_id":"nmg","request_id":"a2470e77-ede0-4b7a-89b2-80a4ee0178f5","tool_calls":[{"name":"internet_search","arguments":"{\"query\": \"MLOps testing best practices\", \"limit\": 10, \"engine\": \"searxng\"}"}]},"error":null,"status":"ok"},"WAITING_FOR_INTENT_CLASSIFIED":{"data":{"mode":1,"task":"intent","query":"Найди что нибудь про MLOPS и Тестирование","contents":null,"doc_path":null,"messages":null,"tenant_id":"nmg","request_id":"a2470e77-ede0-4b7a-89b2-80a4ee0178f5","template_path":"templates/intent/qwen_intent.yaml","requirements_path":null},"name":"completion"},"INTENT_CLASSIFIED":{"data":{"think":null,"answer":"{\n  \"summary\": \"Поиск информации по темам MLOPS и Тестирование\",\n  \"query\": \"MLOPS Тестирование\",\n  \"intent\": {\n    \"document_search\": 0.95,\n    \"internet_search\": 0.0,\n    \"audio_transcribe\": 0.0,\n    \"forget\": 0.0,\n    \"take\": 0.0,\n    \"attach\": 0.0,\n    \"convert\": 0.0,\n    \"chat\": 0.05,\n    \"predicted_intent\": \"document_search\"\n  },\n  \"events\": [],\n  \"peoples\": [],\n  \"documents\": [],\n  \"entities\": [\n    {\n      \"text\": \"MLOPS\",\n      \"label\": \"PRODUCT\",\n      \"start\": 20,\n      \"end\": 26,\n      \"confidence\": 0.9\n    },\n    {\n      \"text\": \"Тестирование\",\n      \"label\": \"EVENT\",\n      \"start\": 29,\n      \"end\": 41,\n      \"confidence\": 0.85\n    }\n  ]\n}","values":{"cut_off_tkns":0,"prompt_tkn_len":1747,"words_per_token":0.0,"document_tkn_len":1747,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"12:55:51","finish":"12:56:00","duration":"8663.8ms"},"tenant_id":"nmg","request_id":"a2470e77-ede0-4b7a-89b2-80a4ee0178f5"},"error":null,"status":"ok","answer":{"summary":"Поиск информации по темам MLOPS и Тестирование","query":"MLOPS Тестирование","intent":{"document_search":0.95,"internet_search":0.0,"audio_transcribe":0.0,"forget":0.0,"take":0.0,"attach":0.0,"convert":0.0,"chat":0.05,"predicted_intent":"document_search"},"events":[],"peoples":[],"documents":[],"entities":[{"text":"MLOPS","label":"PRODUCT","start":20,"end":26,"confidence":0.9},{"text":"Тестирование","label":"EVENT","start":29,"end":41,"confidence":0.85}]}},"WAITING_FOR_INTENT_EXTRACTED":{"intent":"document_search","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"a2470e77-ede0-4b7a-89b2-80a4ee0178f5","user_message":"Найди что нибудь про MLOPS и Тестирование"},"INTENT_EXTRACTED":{"intent":"document_search","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"a2470e77-ede0-4b7a-89b2-80a4ee0178f5","user_message":"Найди что нибудь про MLOPS и Тестирование"},"WAITING_FOR_DOCS_RETRIEVED":{"data":{"task":["chunk","doclet","sense"],"limit":10,"question":"MLOPS Тестирование","treshold":0.01,"tenant_id":"nmg","request_id":"a2470e77-ede0-4b7a-89b2-80a4ee0178f5"},"name":"doc_vector_search"},"DOCS_RETRIEVED":{"data":{"result":{"ranked":{"found":[{"id_doc":28,"content":null,"distance":0.08235485851764679,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.060822522888580956,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.059142790734767914,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.044927077988783516,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.04474156970779101,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":14,"content":null,"distance":0.04259274030725161,"id_chunk":null,"file_name":"10002.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":8,"content":null,"distance":0.04208103815714518,"id_chunk":null,"file_name":"10030.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":24,"content":null,"distance":0.038713318606217705,"id_chunk":null,"file_name":"10017.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.02380158503850301,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":57,"content":null,"distance":0.021585611005624134,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:56:03","finish":"12:56:03","duration":"7.0ms"},"collection":"ranked"},"chunk/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.08551321923732758,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.08223353326320648,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.07140475511550903,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.06997903436422348,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.06990161538124084,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":8,"content":null,"distance":0.06633831560611725,"id_chunk":null,"file_name":"10030.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.06178202107548714,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":24,"content":null,"distance":0.061658136546611786,"id_chunk":null,"file_name":"10017.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":14,"content":null,"distance":0.06147480383515358,"id_chunk":null,"file_name":"10002.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.05849185213446617,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:56:03","finish":"12:56:03","duration":"0.0ms"},"collection":"chunks"},"sense/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.08268055319786072,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.07210169732570648,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":57,"content":null,"distance":0.0647568330168724,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.06420909613370895,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":27,"content":null,"distance":0.03165856748819351,"id_chunk":null,"file_name":"10005.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":43,"content":null,"distance":0.024112407118082047,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":17,"content":null,"distance":0.02212800830602646,"id_chunk":null,"file_name":"10003.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":72,"content":null,"distance":0.019002800807356834,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440003.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":45,"content":null,"distance":0.01858600415289402,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":11,"content":null,"distance":0.016513027250766754,"id_chunk":null,"file_name":"10009.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:56:03","finish":"12:56:03","duration":"0.0ms"},"collection":"senses/sparse"},"doclet/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.07887080311775208,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":14,"content":null,"distance":0.06630341708660126,"id_chunk":null,"file_name":"10002.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.06487961858510971,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":8,"content":null,"distance":0.0599047988653183,"id_chunk":null,"file_name":"10030.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":24,"content":null,"distance":0.05448181927204132,"id_chunk":null,"file_name":"10017.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.05199117586016655,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":5,"content":null,"distance":0.04860774055123329,"id_chunk":null,"file_name":"10011.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.04827943816781044,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.04354465380311012,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.03961745277047157,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:56:03","finish":"12:56:03","duration":"0.0ms"},"collection":"doclets"}},"tenant_id":"nmg","request_id":"a2470e77-ede0-4b7a-89b2-80a4ee0178f5"},"error":null,"status":"ok"}},"answer":"\nНайдены следующие документы (поиск 6): \n- 1. [10027.pdf](http://localhost/data/nmg/source/cands/10027.pdf)\n- 2. [transcrib_550e8400-e29b-41d4-a716-446655440101.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440101.txt)\n- 3. [retelling_550e8400-e29b-41d4-a716-446655440101.txt](http://localhost/data/nmg/source/meetings/retelling_550e8400-e29b-41d4-a716-446655440101.txt)\n- 4. [10015.docx](http://localhost/data/nmg/source/cands/10015.docx)\n- 5. [10024.pdf](http://localhost/data/nmg/source/cands/10024.pdf)\n- 6. [10002.docx](http://localhost/data/nmg/source/cands/10002.docx)\n- 7. [10030.pdf](http://localhost/data/nmg/source/cands/10030.pdf)\n- 8. [10017.docx](http://localhost/data/nmg/source/cands/10017.docx)\n- 9. [10004.docx](http://localhost/data/nmg/source/cands/10004.docx)\n- 10. [protocol_550e8400-e29b-41d4-a716-446655440011.txt](http://localhost/data/nmg/source/meetings/protocol_550e8400-e29b-41d4-a716-446655440011.txt)\n","answer_context":"\n<ПОИСК6>\n\nНайдены следующие документы: \n- 1. 10027.pdf  \n- 2. transcrib_550e8400-e29b-41d4-a716-446655440101.txt  \n- 3. retelling_550e8400-e29b-41d4-a716-446655440101.txt  \n- 4. 10015.docx  \n- 5. 10024.pdf  \n- 6. 10002.docx  \n- 7. 10030.pdf  \n- 8. 10017.docx  \n- 9. 10004.docx  \n- 10. protocol_550e8400-e29b-41d4-a716-446655440011.txt  \n\n</ПОИСК6>\n","exec_time":0.0}
Partition: 0   Offset: 714   Key: empty   Timestamp: 2026-05-26 13:08:49.535 Headers: content-type: application/json, correlation_id: f8ef8ea3-0280-4252-873e-fae1a14b8961
 
{"request_id":"f8ef8ea3-0280-4252-873e-fae1a14b8961","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","response_collection":{"REQUEST_ACCEPTED":{"query":"Найди что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","admin_tag":true,"tenant_id":"nmg","request_id":"f8ef8ea3-0280-4252-873e-fae1a14b8961","user_email":"p.slivnitsyn@zebrains.team","attached_files":[]},"WAITING_FOR_PLAN_FORMED":{"data":{"mode":2,"task":"rag","query":"Найди что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF","tools":[{"type":"function","function":{"name":"doc_vector_search","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний."}},{"type":"function","function":{"name":"internet_search","parameters":{"type":"object","$defs":{"SearcherEngine":{"enum":["brave","searxng"],"type":"string","title":"SearcherEngine"}},"title":"SearcherInput","required":["request_id","question"],"properties":{"limit":{"type":"integer","title":"Limit","default":5,"description":"Количество результатов поиска"},"engine":{"$ref":"#/$defs/SearcherEngine","default":"searxng","description":"Система поиска"},"question":{"type":"string","title":"Question","description":"Строка для поиска"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно."}},{"type":"function","function":{"name":"doc_vector_index","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу."}},{"type":"function","function":{"name":"completion","parameters":{"type":"object","$defs":{"APIMode":{"enum":[1,2,3],"type":"integer","title":"APIMode"},"MedullaTask":{"enum":["intent","rag","chat","contents","summarizer","checklist","chitchat","freeflight"],"type":"string","title":"MedullaTask"},"MedullaInputMessage":{"type":"object","title":"MedullaInputMessage","required":["role","content"],"properties":{"role":{"type":"string","title":"Role","description":"Роль: 'system', 'user', 'agent'"},"content":{"type":"string","title":"Content","description":"Содержимое сообщения"},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к директории с документом используемым для ответа"}}}},"title":"MedullaInput","required":["request_id","task","tenant_id"],"properties":{"mode":{"anyOf":[{"$ref":"#/$defs/APIMode"},{"type":"null"}],"default":null,"description":"Режим работы значение устанавливается внешними средствами (1, 2 или 3), по умолчанию 1."},"task":{"$ref":"#/$defs/MedullaTask","description":"Интеллектуальная задача выполняемая сервисом, 'intent' - Интент классификатор по запросу (query), 'rag' - ответ на запрос (query) по документу расположенному по пути (doc_path), 'chat' - ответ на запросы по логу сообщений messages, 'contents' - ответ на запрос (query) по приложенному контенту (contents), 'summarizer' - cуммаризация информации по запросу (query) документа расположенного по пути (doc_path), 'checklist' - проверка документа в директории по пути doc_path в соответствии с запросом (query) и шаблоном требований по пути (requirements_path), 'chitchat' - свободный ответ по запросу (query), 'freeflight' - Свободный формат (обязательно передать template_path)."},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","default":null,"description":"Текст запроса пользователя. Используется в задачах: intent, rag, contents, summarizer, checklist, chitchat."},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","default":null,"description":"Текстовый контент на основе которого формируется ответ. Используется в задачах: contents."},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к файлу на основе которого формируется ответ. Используется в задачах: rag, summarizer, checklist."},"messages":{"anyOf":[{"type":"array","items":{"$ref":"#/$defs/MedullaInputMessage"}},{"type":"null"}],"title":"Messages","default":null,"description":"Список сообщений на основе которых формируется ответ. Используется в задачах: chat."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"template_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Path","default":null,"description":"Путь к шаблону документа который используется для формирования ответа. Используется в задачах: checklist."},"requirements_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requirements Path","default":null,"description":"Путь к директории с файлом требований для формирования ответа. Используется в задачах: checklist."}}},"description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки."}},{"type":"function","function":{"name":"convert-content","parameters":{"type":"object","title":"PandockerDocumentInput","required":["request_id","tenant_id","contents","input_file","input_format","output_format","output_file","reference_doc","filters","defaults_file"],"properties":{"filters":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Filters","description":"Список фильтров для пандока, отправляется либо строкой, если фильтр один, или списком, если их несколько"},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","description":"Контент документа в виде текста, допустим mardown, указаывается если нет input_file"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input File","description":"Путь до входного файла"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output File","description":"Путь до выходного файла"},"input_format":{"type":"string","title":"Input Format","description":"Формат входного документа"},"defaults_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Defaults File","description":"Путь до файла настроек pandoc"},"output_format":{"type":"string","title":"Output Format","description":"Формат выходного документа"},"reference_doc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Doc","description":"Путь до референсного файла для стилизации"}}},"description":"Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно."}},{"type":"function","function":{"name":"parse","parameters":{"type":"object","$defs":{"Mode":{"enum":["skip_parsed","always_rewrite"],"type":"string","title":"Mode"}},"title":"PaleographInput","required":["request_id","tenant_id","input_path","output_path","mode"],"properties":{"mode":{"$ref":"#/$defs/Mode","description":"Режим работы парсера: 'skip_parsed' если нужно пропустить уже обработанные файлы из входной директории при повторном вызове, 'always_rewrite' всегда обрабатывать все файлы находящиеся во входной директории."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_path":{"type":"string","title":"Input Path","description":"Путь до директории с файлами которые нужно обработать."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_path":{"type":"string","title":"Output Path","description":"Путь до директории в которую необходимо сложить результат."}}},"description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла."}},{"type":"function","function":{"name":"page_download","parameters":{"type":"object","$defs":{"SearcherSaveList":{"enum":["urls","svgs","images"],"type":"string","title":"SearcherSaveList"}},"title":"SearcherDownloadInput","required":["request_id","urls","names","save_path","save_list"],"properties":{"urls":{"type":"array","items":{"type":"string"},"title":"Urls","description":"Список ссылок на сайты для загрузки"},"names":{"type":"array","items":{"type":"string"},"title":"Names","description":"Список именов сайтов"},"save_list":{"type":"array","items":{"$ref":"#/$defs/SearcherSaveList"},"title":"Save List","description":"Перечисление того, что оставить при загрузке сайта"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения сайтов"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно."}},{"type":"function","function":{"name":"transcribe","parameters":{"type":"object","$defs":{"ScriberEngine":{"enum":["gigaam"],"type":"string","title":"ScriberEngine"}},"title":"ScriberInput","required":["request_id","paths","save_path"],"properties":{"paths":{"type":"array","items":{"type":"string"},"title":"Paths","description":"Пути до аудио/видео файлов"},"engine":{"$ref":"#/$defs/ScriberEngine","default":"gigaam","description":"Система транскрибации"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения транскрибации"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"diarization":{"type":"boolean","title":"Diarization","default":false,"description":"Флаг включения диаризации"}}},"description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"f8ef8ea3-0280-4252-873e-fae1a14b8961","tool_choice":"required","template_path":"templates/planning/qwen_plan.yaml","tools_description":"\n**doc_vector_search**: Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.\n**internet_search**: Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.\n**completion**: Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.\n**convert-content**: Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.\n**parse**: Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.\n**page_download**: Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.\n**transcribe**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."},"name":"planning"},"PLAN_FORMED":{"data":{"think":null,"answer":"","values":{"cut_off_tkns":0,"prompt_tkn_len":1344,"words_per_token":0.0,"document_tkn_len":1344,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"13:07:45","finish":"13:08:31","duration":"45855.1ms"},"tenant_id":"nmg","request_id":"f8ef8ea3-0280-4252-873e-fae1a14b8961","tool_calls":[{"name":"completion","arguments":"{\"task\": \"chitchat\", \"query\": \"Найди что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF.\", \"tenant_id\": \"default\", \"request_id\": \"req_mlops_cicd_001\"}"}]},"error":null,"status":"ok"},"WAITING_FOR_INTENT_CLASSIFIED":{"data":{"mode":1,"task":"intent","query":"Найди что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF","contents":null,"doc_path":null,"messages":null,"tenant_id":"nmg","request_id":"f8ef8ea3-0280-4252-873e-fae1a14b8961","template_path":"templates/intent/qwen_intent.yaml","requirements_path":null},"name":"completion"},"INTENT_CLASSIFIED":{"data":{"think":null,"answer":"{\n  \"summary\": \"Поиск информации по MLOps и тестированию, создание пайплайна CI/CD и генерация PDF-документа.\",\n  \"query\": \"MLOps тестирование пайплайн CI/CD\",\n  \"intent\": {\n    \"document_search\": 0.9,\n    \"internet_search\": 0.0,\n    \"audio_transcribe\": 0.0,\n    \"forget\": 0.0,\n    \"take\": 0.0,\n    \"attach\": 0.0,\n    \"convert\": 0.0,\n    \"chat\": 0.1,\n    \"predicted_intent\": \"document_search\"\n  },\n  \"events\": [],\n  \"peoples\": [],\n  \"documents\": [\n    {\n      \"title\": \"Типовой пайплайн CI/CD для MLOps\",\n      \"direction\": \"OUTBOUND\",\n      \"format\": \"pdf\",\n      \"number\": [],\n      \"type\": \"описание\",\n      \"project\": \"MLOps\",\n      \"author\": \"\",\n      \"date_created\": \"\",\n      \"status\": \"черновик\",\n      \"version\": \"\",\n      \"department\": \"\",\n      \"access_level\": \"открытый\"\n    }\n  ],\n  \"entities\": [\n    {\n      \"text\": \"MLOPS\",\n      \"label\": \"PRODUCT\",\n      \"start\": 20,\n      \"end\": 26,\n      \"confidence\": 0.95\n    },\n    {\n      \"text\": \"Тестирование\",\n      \"label\": \"EVENT\",\n      \"start\": 29,\n      \"end\": 41,\n      \"confidence\": 0.9\n    },\n    {\n      \"text\": \"CI/CD\",\n      \"label\": \"PRODUCT\",\n      \"start\": 63,\n      \"end\": 68,\n      \"confidence\": 0.95\n    },\n    {\n      \"text\": \"PDF\",\n      \"label\": \"PRODUCT\",\n      \"start\": 80,\n      \"end\": 83,\n      \"confidence\": 0.9\n    }\n  ]\n}","values":{"cut_off_tkns":0,"prompt_tkn_len":1787,"words_per_token":0.0,"document_tkn_len":1787,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"12:57:31","finish":"12:57:47","duration":"15643.8ms"},"tenant_id":"nmg","request_id":"f8ef8ea3-0280-4252-873e-fae1a14b8961"},"error":null,"status":"ok","answer":{"summary":"Поиск информации по MLOps и тестированию, создание пайплайна CI/CD и генерация PDF-документа.","query":"MLOps тестирование пайплайн CI/CD","intent":{"document_search":0.9,"internet_search":0.0,"audio_transcribe":0.0,"forget":0.0,"take":0.0,"attach":0.0,"convert":0.0,"chat":0.1,"predicted_intent":"document_search"},"events":[],"peoples":[],"documents":[{"title":"Типовой пайплайн CI/CD для MLOps","direction":"OUTBOUND","format":"pdf","number":[],"type":"описание","project":"MLOps","author":"","date_created":"","status":"черновик","version":"","department":"","access_level":"открытый"}],"entities":[{"text":"MLOPS","label":"PRODUCT","start":20,"end":26,"confidence":0.95},{"text":"Тестирование","label":"EVENT","start":29,"end":41,"confidence":0.9},{"text":"CI/CD","label":"PRODUCT","start":63,"end":68,"confidence":0.95},{"text":"PDF","label":"PRODUCT","start":80,"end":83,"confidence":0.9}]}},"WAITING_FOR_INTENT_EXTRACTED":{"intent":"document_search","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"f8ef8ea3-0280-4252-873e-fae1a14b8961","user_message":"Найди что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF"},"INTENT_EXTRACTED":{"intent":"document_search","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"f8ef8ea3-0280-4252-873e-fae1a14b8961","user_message":"Найди что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF"},"WAITING_FOR_DOCS_RETRIEVED":{"data":{"task":["chunk","doclet","sense"],"limit":10,"question":"MLOps тестирование пайплайн CI/CD","treshold":0.01,"tenant_id":"nmg","request_id":"f8ef8ea3-0280-4252-873e-fae1a14b8961"},"name":"doc_vector_search"},"DOCS_RETRIEVED":{"data":{"result":{"ranked":{"found":[{"id_doc":42,"content":null,"distance":0.12064763655265172,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.10408543795347214,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.08985499292612076,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":54,"content":null,"distance":0.07687230656544368,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":6,"content":null,"distance":0.06697152803341548,"id_chunk":null,"file_name":"10001.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":38,"content":null,"distance":0.06387349714835484,"id_chunk":null,"file_name":"instr_1.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":17,"content":null,"distance":0.06384622305631638,"id_chunk":null,"file_name":"10003.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.06318244338035583,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":46,"content":null,"distance":0.06315948565800984,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440010.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":34,"content":null,"distance":0.060028779009977974,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:57:48","finish":"12:57:48","duration":"7.3ms"},"collection":"ranked"},"chunk/sparse":{"found":[{"id_doc":5,"content":null,"distance":0.17380057275295258,"id_chunk":null,"file_name":"10011.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.13740262389183044,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":54,"content":null,"distance":0.11942581087350845,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":42,"content":null,"distance":0.11771441251039505,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":38,"content":null,"distance":0.11099465191364288,"id_chunk":null,"file_name":"instr_1.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":46,"content":null,"distance":0.1036960780620575,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440010.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":6,"content":null,"distance":0.10197886824607849,"id_chunk":null,"file_name":"10001.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":34,"content":null,"distance":0.09991590678691864,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.09663955867290497,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.09231927245855331,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:57:48","finish":"12:57:48","duration":"0.0ms"},"collection":"chunks"},"sense/sparse":{"found":[{"id_doc":54,"content":null,"distance":0.11119110882282257,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":73,"content":null,"distance":0.11114396154880524,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":41,"content":null,"distance":0.11045199632644653,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440010.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":42,"content":null,"distance":0.10494542121887207,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":17,"content":null,"distance":0.1018294095993042,"id_chunk":null,"file_name":"10003.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":57,"content":null,"distance":0.09811770170927048,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":44,"content":null,"distance":0.09671658277511597,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.08907739818096161,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.08224748820066452,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":34,"content":null,"distance":0.08017043024301529,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:57:48","finish":"12:57:48","duration":"0.0ms"},"collection":"senses/sparse"},"doclet/sparse":{"found":[{"id_doc":42,"content":null,"distance":0.13928307592868805,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":6,"content":null,"distance":0.09893571585416794,"id_chunk":null,"file_name":"10001.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.09499821811914444,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.09290777146816254,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":58,"content":null,"distance":0.09155526757240295,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":27,"content":null,"distance":0.09068242460489273,"id_chunk":null,"file_name":"10005.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":17,"content":null,"distance":0.08970925956964493,"id_chunk":null,"file_name":"10003.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":46,"content":null,"distance":0.08578237891197205,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440010.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.08577629178762436,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":38,"content":null,"distance":0.08062583953142166,"id_chunk":null,"file_name":"instr_1.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:57:48","finish":"12:57:48","duration":"0.0ms"},"collection":"doclets"}},"tenant_id":"nmg","request_id":"f8ef8ea3-0280-4252-873e-fae1a14b8961"},"error":null,"status":"ok"}},"answer":"\nНайдены следующие документы (поиск 7): \n- 1. [transcrib_550e8400-e29b-41d4-a716-446655440102.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440102.txt)\n- 2. [10025.pdf](http://localhost/data/nmg/source/cands/10025.pdf)\n- 3. [10004.docx](http://localhost/data/nmg/source/cands/10004.docx)\n- 4. [retelling_550e8400-e29b-41d4-a716-446655440102.txt](http://localhost/data/nmg/source/meetings/retelling_550e8400-e29b-41d4-a716-446655440102.txt)\n- 5. [10001.docx](http://localhost/data/nmg/source/cands/10001.docx)\n- 6. [instr_1.docx](http://localhost/data/nmg/source/docs/instr/instr_1.docx)\n- 7. [10003.docx](http://localhost/data/nmg/source/cands/10003.docx)\n- 8. [10026.pdf](http://localhost/data/nmg/source/cands/10026.pdf)\n- 9. [transcrib_550e8400-e29b-41d4-a716-446655440010.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440010.txt)\n- 10. [vac1.pdf](http://localhost/data/nmg/source/docs/vacs/vac1.pdf)\n","answer_context":"\n<ПОИСК7>\n\nНайдены следующие документы: \n- 1. transcrib_550e8400-e29b-41d4-a716-446655440102.txt  \n- 2. 10025.pdf  \n- 3. 10004.docx  \n- 4. retelling_550e8400-e29b-41d4-a716-446655440102.txt  \n- 5. 10001.docx  \n- 6. instr_1.docx  \n- 7. 10003.docx  \n- 8. 10026.pdf  \n- 9. transcrib_550e8400-e29b-41d4-a716-446655440010.txt  \n- 10. vac1.pdf  \n\n</ПОИСК7>\n","exec_time":0.0}
Partition: 0   Offset: 715   Key: empty   Timestamp: 2026-05-26 13:11:17.355 Headers: content-type: application/json, correlation_id: 435ea5ac-f75e-455d-bc2d-9e33f9163ed4
 
{"request_id":"435ea5ac-f75e-455d-bc2d-9e33f9163ed4","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","response_collection":{"REQUEST_ACCEPTED":{"query":"Найди что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","admin_tag":true,"tenant_id":"nmg","request_id":"435ea5ac-f75e-455d-bc2d-9e33f9163ed4","user_email":"p.slivnitsyn@zebrains.team","attached_files":[]},"WAITING_FOR_PLAN_FORMED":{"data":{"mode":2,"task":"rag","query":"Найди что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF","tools":[{"type":"function","function":{"name":"doc_vector_index","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу."}},{"type":"function","function":{"name":"doc_vector_search","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний."}},{"type":"function","function":{"name":"internet_search","parameters":{"type":"object","$defs":{"SearcherEngine":{"enum":["brave","searxng"],"type":"string","title":"SearcherEngine"}},"title":"SearcherInput","required":["request_id","question"],"properties":{"limit":{"type":"integer","title":"Limit","default":5,"description":"Количество результатов поиска"},"engine":{"$ref":"#/$defs/SearcherEngine","default":"searxng","description":"Система поиска"},"question":{"type":"string","title":"Question","description":"Строка для поиска"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно."}},{"type":"function","function":{"name":"completion","parameters":{"type":"object","$defs":{"APIMode":{"enum":[1,2,3],"type":"integer","title":"APIMode"},"MedullaTask":{"enum":["intent","rag","chat","contents","summarizer","checklist","chitchat","freeflight"],"type":"string","title":"MedullaTask"},"MedullaInputMessage":{"type":"object","title":"MedullaInputMessage","required":["role","content"],"properties":{"role":{"type":"string","title":"Role","description":"Роль: 'system', 'user', 'agent'"},"content":{"type":"string","title":"Content","description":"Содержимое сообщения"},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к директории с документом используемым для ответа"}}}},"title":"MedullaInput","required":["request_id","task","tenant_id"],"properties":{"mode":{"anyOf":[{"$ref":"#/$defs/APIMode"},{"type":"null"}],"default":null,"description":"Режим работы значение устанавливается внешними средствами (1, 2 или 3), по умолчанию 1."},"task":{"$ref":"#/$defs/MedullaTask","description":"Интеллектуальная задача выполняемая сервисом, 'intent' - Интент классификатор по запросу (query), 'rag' - ответ на запрос (query) по документу расположенному по пути (doc_path), 'chat' - ответ на запросы по логу сообщений messages, 'contents' - ответ на запрос (query) по приложенному контенту (contents), 'summarizer' - cуммаризация информации по запросу (query) документа расположенного по пути (doc_path), 'checklist' - проверка документа в директории по пути doc_path в соответствии с запросом (query) и шаблоном требований по пути (requirements_path), 'chitchat' - свободный ответ по запросу (query), 'freeflight' - Свободный формат (обязательно передать template_path)."},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","default":null,"description":"Текст запроса пользователя. Используется в задачах: intent, rag, contents, summarizer, checklist, chitchat."},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","default":null,"description":"Текстовый контент на основе которого формируется ответ. Используется в задачах: contents."},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к файлу на основе которого формируется ответ. Используется в задачах: rag, summarizer, checklist."},"messages":{"anyOf":[{"type":"array","items":{"$ref":"#/$defs/MedullaInputMessage"}},{"type":"null"}],"title":"Messages","default":null,"description":"Список сообщений на основе которых формируется ответ. Используется в задачах: chat."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"template_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Path","default":null,"description":"Путь к шаблону документа который используется для формирования ответа. Используется в задачах: checklist."},"requirements_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requirements Path","default":null,"description":"Путь к директории с файлом требований для формирования ответа. Используется в задачах: checklist."}}},"description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки."}},{"type":"function","function":{"name":"parse","parameters":{"type":"object","$defs":{"Mode":{"enum":["skip_parsed","always_rewrite"],"type":"string","title":"Mode"}},"title":"PaleographInput","required":["request_id","tenant_id","input_path","output_path","mode"],"properties":{"mode":{"$ref":"#/$defs/Mode","description":"Режим работы парсера: 'skip_parsed' если нужно пропустить уже обработанные файлы из входной директории при повторном вызове, 'always_rewrite' всегда обрабатывать все файлы находящиеся во входной директории."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_path":{"type":"string","title":"Input Path","description":"Путь до директории с файлами которые нужно обработать."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_path":{"type":"string","title":"Output Path","description":"Путь до директории в которую необходимо сложить результат."}}},"description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла."}},{"type":"function","function":{"name":"convert-content","parameters":{"type":"object","title":"PandockerDocumentInput","required":["request_id","tenant_id","contents","input_file","input_format","output_format","output_file","reference_doc","filters","defaults_file"],"properties":{"filters":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Filters","description":"Список фильтров для пандока, отправляется либо строкой, если фильтр один, или списком, если их несколько"},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","description":"Контент документа в виде текста, допустим mardown, указаывается если нет input_file"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input File","description":"Путь до входного файла"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output File","description":"Путь до выходного файла"},"input_format":{"type":"string","title":"Input Format","description":"Формат входного документа"},"defaults_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Defaults File","description":"Путь до файла настроек pandoc"},"output_format":{"type":"string","title":"Output Format","description":"Формат выходного документа"},"reference_doc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Doc","description":"Путь до референсного файла для стилизации"}}},"description":"Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно."}},{"type":"function","function":{"name":"page_download","parameters":{"type":"object","$defs":{"SearcherSaveList":{"enum":["urls","svgs","images"],"type":"string","title":"SearcherSaveList"}},"title":"SearcherDownloadInput","required":["request_id","urls","names","save_path","save_list"],"properties":{"urls":{"type":"array","items":{"type":"string"},"title":"Urls","description":"Список ссылок на сайты для загрузки"},"names":{"type":"array","items":{"type":"string"},"title":"Names","description":"Список именов сайтов"},"save_list":{"type":"array","items":{"$ref":"#/$defs/SearcherSaveList"},"title":"Save List","description":"Перечисление того, что оставить при загрузке сайта"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения сайтов"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно."}},{"type":"function","function":{"name":"transcribe","parameters":{"type":"object","$defs":{"ScriberEngine":{"enum":["gigaam"],"type":"string","title":"ScriberEngine"}},"title":"ScriberInput","required":["request_id","paths","save_path"],"properties":{"paths":{"type":"array","items":{"type":"string"},"title":"Paths","description":"Пути до аудио/видео файлов"},"engine":{"$ref":"#/$defs/ScriberEngine","default":"gigaam","description":"Система транскрибации"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения транскрибации"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"diarization":{"type":"boolean","title":"Diarization","default":false,"description":"Флаг включения диаризации"}}},"description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"435ea5ac-f75e-455d-bc2d-9e33f9163ed4","tool_choice":"required","template_path":"templates/planning/qwen_plan.yaml","tools_description":"\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.\n**doc_vector_search**: Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.\n**internet_search**: Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.\n**completion**: Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.\n**parse**: Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.\n**convert-content**: Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.\n**page_download**: Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.\n**transcribe**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."},"name":"planning"},"PLAN_FORMED":{"data":{"think":null,"answer":"","values":{"cut_off_tkns":0,"prompt_tkn_len":1344,"words_per_token":0.0,"document_tkn_len":1344,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"13:10:35","finish":"13:10:58","duration":"23105.6ms"},"tenant_id":"nmg","request_id":"435ea5ac-f75e-455d-bc2d-9e33f9163ed4","tool_calls":[{"name":"internet_search","arguments":"{\"request_id\": \"req_mlops_001\", \"question\": \"MLOps testing best practices CI/CD pipeline machine learning\", \"limit\": 10, \"engine\": \"searxng\"}"}]},"error":null,"status":"ok"},"WAITING_FOR_INTENT_CLASSIFIED":{"data":{"mode":1,"task":"intent","query":"Найди что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF","contents":null,"doc_path":null,"messages":null,"tenant_id":"nmg","request_id":"435ea5ac-f75e-455d-bc2d-9e33f9163ed4","template_path":"templates/intent/qwen_intent.yaml","requirements_path":null},"name":"completion"},"INTENT_CLASSIFIED":{"data":{"think":null,"answer":"{\n  \"summary\": \"Поиск информации по MLOps и тестированию, создание пайплайна CI/CD и генерация PDF-документа.\",\n  \"query\": \"MLOps тестирование типовой пайплайн CI/CD\",\n  \"intent\": {\n    \"document_search\": 0.9,\n    \"internet_search\": 0.0,\n    \"audio_transcribe\": 0.0,\n    \"forget\": 0.0,\n    \"take\": 0.0,\n    \"attach\": 0.0,\n    \"convert\": 0.0,\n    \"chat\": 0.1,\n    \"predicted_intent\": \"document_search\"\n  },\n  \"events\": [],\n  \"peoples\": [],\n  \"documents\": [\n    {\n      \"title\": \"Типовой пайплайн CI/CD для MLOps\",\n      \"direction\": \"OUTBOUND\",\n      \"format\": \"pdf\",\n      \"number\": [],\n      \"type\": \"описание\",\n      \"project\": \"\",\n      \"author\": \"\",\n      \"date_created\": \"\",\n      \"status\": \"черновик\",\n      \"version\": \"\",\n      \"department\": \"\",\n      \"access_level\": \"открытый\"\n    }\n  ],\n  \"entities\": [\n    {\n      \"text\": \"MLOPS\",\n      \"label\": \"PRODUCT\",\n      \"start\": 20,\n      \"end\": 26,\n      \"confidence\": 0.95\n    },\n    {\n      \"text\": \"Тестирование\",\n      \"label\": \"EVENT\",\n      \"start\": 29,\n      \"end\": 41,\n      \"confidence\": 0.9\n    },\n    {\n      \"text\": \"CI/CD\",\n      \"label\": \"PRODUCT\",\n      \"start\": 68,\n      \"end\": 73,\n      \"confidence\": 0.95\n    },\n    {\n      \"text\": \"PDF\",\n      \"label\": \"PRODUCT\",\n      \"start\": 87,\n      \"end\": 90,\n      \"confidence\": 0.95\n    }\n  ]\n}","values":{"cut_off_tkns":0,"prompt_tkn_len":1787,"words_per_token":0.0,"document_tkn_len":1787,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"12:59:59","finish":"13:00:14","duration":"15357.8ms"},"tenant_id":"nmg","request_id":"435ea5ac-f75e-455d-bc2d-9e33f9163ed4"},"error":null,"status":"ok","answer":{"summary":"Поиск информации по MLOps и тестированию, создание пайплайна CI/CD и генерация PDF-документа.","query":"MLOps тестирование типовой пайплайн CI/CD","intent":{"document_search":0.9,"internet_search":0.0,"audio_transcribe":0.0,"forget":0.0,"take":0.0,"attach":0.0,"convert":0.0,"chat":0.1,"predicted_intent":"document_search"},"events":[],"peoples":[],"documents":[{"title":"Типовой пайплайн CI/CD для MLOps","direction":"OUTBOUND","format":"pdf","number":[],"type":"описание","project":"","author":"","date_created":"","status":"черновик","version":"","department":"","access_level":"открытый"}],"entities":[{"text":"MLOPS","label":"PRODUCT","start":20,"end":26,"confidence":0.95},{"text":"Тестирование","label":"EVENT","start":29,"end":41,"confidence":0.9},{"text":"CI/CD","label":"PRODUCT","start":68,"end":73,"confidence":0.95},{"text":"PDF","label":"PRODUCT","start":87,"end":90,"confidence":0.95}]}},"WAITING_FOR_INTENT_EXTRACTED":{"intent":"document_search","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"435ea5ac-f75e-455d-bc2d-9e33f9163ed4","user_message":"Найди что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF"},"INTENT_EXTRACTED":{"intent":"document_search","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"435ea5ac-f75e-455d-bc2d-9e33f9163ed4","user_message":"Найди что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF"},"WAITING_FOR_DOCS_RETRIEVED":{"data":{"task":["chunk","doclet","sense"],"limit":10,"question":"MLOps тестирование типовой пайплайн CI/CD","treshold":0.01,"tenant_id":"nmg","request_id":"435ea5ac-f75e-455d-bc2d-9e33f9163ed4"},"name":"doc_vector_search"},"DOCS_RETRIEVED":{"data":{"result":{"ranked":{"found":[{"id_doc":42,"content":null,"distance":0.11190801858901978,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.09718678891658783,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.0847366601228714,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":34,"content":null,"distance":0.08232039958238602,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":54,"content":null,"distance":0.07043181111415227,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":6,"content":null,"distance":0.062392234802246094,"id_chunk":null,"file_name":"10001.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.05891003211339315,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":17,"content":null,"distance":0.058858161171277366,"id_chunk":null,"file_name":"10003.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":46,"content":null,"distance":0.058832752207914986,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440010.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":5,"content":null,"distance":0.05344873170057932,"id_chunk":null,"file_name":"10011.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"13:00:16","finish":"13:00:16","duration":"6.4ms"},"collection":"ranked"},"chunk/sparse":{"found":[{"id_doc":5,"content":null,"distance":0.16034619510173798,"id_chunk":null,"file_name":"10011.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.12829537689685822,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":42,"content":null,"distance":0.11003430187702179,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":54,"content":null,"distance":0.10985273122787476,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":38,"content":null,"distance":0.10392320156097412,"id_chunk":null,"file_name":"instr_1.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":46,"content":null,"distance":0.09732083231210709,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440010.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":6,"content":null,"distance":0.09580749273300171,"id_chunk":null,"file_name":"10001.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":34,"content":null,"distance":0.09486472606658936,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.09013824164867401,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.08711894601583481,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"13:00:16","finish":"13:00:16","duration":"0.0ms"},"collection":"chunks"},"sense/sparse":{"found":[{"id_doc":41,"content":null,"distance":0.1029827743768692,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440010.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":73,"content":null,"distance":0.10197377949953079,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":54,"content":null,"distance":0.10144270211458206,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":42,"content":null,"distance":0.09693989157676697,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":17,"content":null,"distance":0.09398266673088074,"id_chunk":null,"file_name":"10003.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":57,"content":null,"distance":0.09135517477989197,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":44,"content":null,"distance":0.09019576758146286,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.08429853618144989,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.07830217480659485,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":34,"content":null,"distance":0.07635663449764252,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"13:00:16","finish":"13:00:16","duration":"0.0ms"},"collection":"senses/sparse"},"doclet/sparse":{"found":[{"id_doc":42,"content":null,"distance":0.12874986231327057,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":6,"content":null,"distance":0.09136921167373657,"id_chunk":null,"file_name":"10001.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.08878885954618454,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.08659185469150543,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":58,"content":null,"distance":0.08527582883834839,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":17,"content":null,"distance":0.08259181678295135,"id_chunk":null,"file_name":"10003.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":27,"content":null,"distance":0.08201447129249573,"id_chunk":null,"file_name":"10005.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":46,"content":null,"distance":0.07917742431163788,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440010.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.07896645367145538,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":34,"content":null,"distance":0.07573983818292618,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"13:00:16","finish":"13:00:16","duration":"0.0ms"},"collection":"doclets"}},"tenant_id":"nmg","request_id":"435ea5ac-f75e-455d-bc2d-9e33f9163ed4"},"error":null,"status":"ok"}},"answer":"\nНайдены следующие документы (поиск 8): \n- 1. [transcrib_550e8400-e29b-41d4-a716-446655440102.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440102.txt)\n- 2. [10025.pdf](http://localhost/data/nmg/source/cands/10025.pdf)\n- 3. [10004.docx](http://localhost/data/nmg/source/cands/10004.docx)\n- 4. [vac1.pdf](http://localhost/data/nmg/source/docs/vacs/vac1.pdf)\n- 5. [retelling_550e8400-e29b-41d4-a716-446655440102.txt](http://localhost/data/nmg/source/meetings/retelling_550e8400-e29b-41d4-a716-446655440102.txt)\n- 6. [10001.docx](http://localhost/data/nmg/source/cands/10001.docx)\n- 7. [10026.pdf](http://localhost/data/nmg/source/cands/10026.pdf)\n- 8. [10003.docx](http://localhost/data/nmg/source/cands/10003.docx)\n- 9. [transcrib_550e8400-e29b-41d4-a716-446655440010.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440010.txt)\n- 10. [10011.docx](http://localhost/data/nmg/source/cands/10011.docx)\n","answer_context":"\n<ПОИСК8>\n\nНайдены следующие документы: \n- 1. transcrib_550e8400-e29b-41d4-a716-446655440102.txt  \n- 2. 10025.pdf  \n- 3. 10004.docx  \n- 4. vac1.pdf  \n- 5. retelling_550e8400-e29b-41d4-a716-446655440102.txt  \n- 6. 10001.docx  \n- 7. 10026.pdf  \n- 8. 10003.docx  \n- 9. transcrib_550e8400-e29b-41d4-a716-446655440010.txt  \n- 10. 10011.docx  \n\n</ПОИСК8>\n","exec_time":0.0}
Partition: 0   Offset: 716   Key: empty   Timestamp: 2026-05-27 10:49:15.292 Headers: content-type: application/json, correlation_id: 5de14089-934e-40f4-9fae-91b87c25d33d
 
{"request_id":"5de14089-934e-40f4-9fae-91b87c25d33d","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","response_collection":{"REQUEST_ACCEPTED":{"query":"найди документы про mlops и тестирование","chat_id":"987561a6-b7f1-4c67-8abc-c725ebb3279f","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","admin_tag":true,"tenant_id":"nmg","request_id":"5de14089-934e-40f4-9fae-91b87c25d33d","user_email":"p.slivnitsyn@zebrains.team","attached_files":[]},"WAITING_FOR_PLAN_FORMED":{"data":{"mode":2,"task":"rag","query":"найди документы про mlops и тестирование","tools":[{"type":"function","function":{"name":"doc_vector_index","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу."}},{"type":"function","function":{"name":"doc_vector_search","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний."}},{"type":"function","function":{"name":"internet_search","parameters":{"type":"object","$defs":{"SearcherEngine":{"enum":["brave","searxng"],"type":"string","title":"SearcherEngine"}},"title":"SearcherInput","required":["request_id","question"],"properties":{"limit":{"type":"integer","title":"Limit","default":5,"description":"Количество результатов поиска"},"engine":{"$ref":"#/$defs/SearcherEngine","default":"searxng","description":"Система поиска"},"question":{"type":"string","title":"Question","description":"Строка для поиска"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно."}},{"type":"function","function":{"name":"completion","parameters":{"type":"object","$defs":{"APIMode":{"enum":[1,2,3],"type":"integer","title":"APIMode"},"MedullaTask":{"enum":["intent","rag","chat","contents","summarizer","checklist","chitchat","freeflight"],"type":"string","title":"MedullaTask"},"MedullaInputMessage":{"type":"object","title":"MedullaInputMessage","required":["role","content"],"properties":{"role":{"type":"string","title":"Role","description":"Роль: 'system', 'user', 'agent'"},"content":{"type":"string","title":"Content","description":"Содержимое сообщения"},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к директории с документом используемым для ответа"}}}},"title":"MedullaInput","required":["request_id","task","tenant_id"],"properties":{"mode":{"anyOf":[{"$ref":"#/$defs/APIMode"},{"type":"null"}],"default":null,"description":"Режим работы значение устанавливается внешними средствами (1, 2 или 3), по умолчанию 1."},"task":{"$ref":"#/$defs/MedullaTask","description":"Интеллектуальная задача выполняемая сервисом, 'intent' - Интент классификатор по запросу (query), 'rag' - ответ на запрос (query) по документу расположенному по пути (doc_path), 'chat' - ответ на запросы по логу сообщений messages, 'contents' - ответ на запрос (query) по приложенному контенту (contents), 'summarizer' - cуммаризация информации по запросу (query) документа расположенного по пути (doc_path), 'checklist' - проверка документа в директории по пути doc_path в соответствии с запросом (query) и шаблоном требований по пути (requirements_path), 'chitchat' - свободный ответ по запросу (query), 'freeflight' - Свободный формат (обязательно передать template_path)."},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","default":null,"description":"Текст запроса пользователя. Используется в задачах: intent, rag, contents, summarizer, checklist, chitchat."},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","default":null,"description":"Текстовый контент на основе которого формируется ответ. Используется в задачах: contents."},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к файлу на основе которого формируется ответ. Используется в задачах: rag, summarizer, checklist."},"messages":{"anyOf":[{"type":"array","items":{"$ref":"#/$defs/MedullaInputMessage"}},{"type":"null"}],"title":"Messages","default":null,"description":"Список сообщений на основе которых формируется ответ. Используется в задачах: chat."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"template_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Path","default":null,"description":"Путь к шаблону документа который используется для формирования ответа. Используется в задачах: checklist."},"requirements_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requirements Path","default":null,"description":"Путь к директории с файлом требований для формирования ответа. Используется в задачах: checklist."}}},"description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки."}},{"type":"function","function":{"name":"parse","parameters":{"type":"object","$defs":{"Mode":{"enum":["skip_parsed","always_rewrite"],"type":"string","title":"Mode"}},"title":"PaleographInput","required":["request_id","tenant_id","input_path","output_path","mode"],"properties":{"mode":{"$ref":"#/$defs/Mode","description":"Режим работы парсера: 'skip_parsed' если нужно пропустить уже обработанные файлы из входной директории при повторном вызове, 'always_rewrite' всегда обрабатывать все файлы находящиеся во входной директории."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_path":{"type":"string","title":"Input Path","description":"Путь до директории с файлами которые нужно обработать."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_path":{"type":"string","title":"Output Path","description":"Путь до директории в которую необходимо сложить результат."}}},"description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла."}},{"type":"function","function":{"name":"page_download","parameters":{"type":"object","$defs":{"SearcherSaveList":{"enum":["urls","svgs","images"],"type":"string","title":"SearcherSaveList"}},"title":"SearcherDownloadInput","required":["request_id","urls","names","save_path","save_list"],"properties":{"urls":{"type":"array","items":{"type":"string"},"title":"Urls","description":"Список ссылок на сайты для загрузки"},"names":{"type":"array","items":{"type":"string"},"title":"Names","description":"Список именов сайтов"},"save_list":{"type":"array","items":{"$ref":"#/$defs/SearcherSaveList"},"title":"Save List","description":"Перечисление того, что оставить при загрузке сайта"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения сайтов"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно."}},{"type":"function","function":{"name":"convert-content","parameters":{"type":"object","title":"PandockerDocumentInput","required":["request_id","tenant_id","contents","input_file","input_format","output_format","output_file","reference_doc","filters","defaults_file"],"properties":{"filters":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Filters","description":"Список фильтров для пандока, отправляется либо строкой, если фильтр один, или списком, если их несколько"},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","description":"Контент документа в виде текста, допустим mardown, указаывается если нет input_file"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input File","description":"Путь до входного файла"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output File","description":"Путь до выходного файла"},"input_format":{"type":"string","title":"Input Format","description":"Формат входного документа"},"defaults_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Defaults File","description":"Путь до файла настроек pandoc"},"output_format":{"type":"string","title":"Output Format","description":"Формат выходного документа"},"reference_doc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Doc","description":"Путь до референсного файла для стилизации"}}},"description":"Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно."}},{"type":"function","function":{"name":"transcribe","parameters":{"type":"object","$defs":{"ScriberEngine":{"enum":["gigaam"],"type":"string","title":"ScriberEngine"}},"title":"ScriberInput","required":["request_id","paths","save_path"],"properties":{"paths":{"type":"array","items":{"type":"string"},"title":"Paths","description":"Пути до аудио/видео файлов"},"engine":{"$ref":"#/$defs/ScriberEngine","default":"gigaam","description":"Система транскрибации"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения транскрибации"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"diarization":{"type":"boolean","title":"Diarization","default":false,"description":"Флаг включения диаризации"}}},"description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"5de14089-934e-40f4-9fae-91b87c25d33d","tool_choice":"required","template_path":"templates/planning/qwen_plan.yaml","tools_description":"\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.\n**doc_vector_search**: Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.\n**internet_search**: Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.\n**completion**: Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.\n**parse**: Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.\n**page_download**: Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.\n**convert-content**: Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.\n**transcribe**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."},"name":"planning"},"PLAN_FORMED":{"data":{"think":null,"answer":"","values":{"cut_off_tkns":0,"prompt_tkn_len":1290,"words_per_token":0.0,"document_tkn_len":1290,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"10:48:41","finish":"10:49:05","duration":"23551.8ms"},"tenant_id":"nmg","request_id":"5de14089-934e-40f4-9fae-91b87c25d33d","tool_calls":[{"name":"doc_vector_search","arguments":"{\"request_id\": null, \"tenant_id\": null, \"question\": \"MLOps тестирование\", \"treshold\": 0.5, \"limit\": 10, \"task\": [\"hybrid_chunk\", \"chunk\", \"doclet\"]}"}]},"error":null,"status":"ok"},"WAITING_FOR_INTENT_CLASSIFIED":{"data":{"mode":1,"task":"intent","query":"найди документы про mlops и тестирование","contents":null,"doc_path":null,"messages":null,"tenant_id":"nmg","request_id":"5de14089-934e-40f4-9fae-91b87c25d33d","template_path":"templates/intent/qwen_intent.yaml","requirements_path":null},"name":"completion"},"INTENT_CLASSIFIED":{"data":{"think":null,"answer":"{\n  \"summary\": \"Поиск документов по темам MLOps и тестирование\",\n  \"query\": \"mlops тестирование\",\n  \"intent\": {\n    \"document_search\": 1.0,\n    \"internet_search\": 0.0,\n    \"audio_transcribe\": 0.0,\n    \"forget\": 0.0,\n    \"take\": 0.0,\n    \"attach\": 0.0,\n    \"convert\": 0.0,\n    \"chat\": 0.0,\n    \"predicted_intent\": \"document_search\"\n  },\n  \"events\": [],\n  \"peoples\": [],\n  \"documents\": [],\n  \"entities\": [\n    {\n      \"text\": \"mlops\",\n      \"label\": \"PRODUCT\",\n      \"start\": 19,\n      \"end\": 25,\n      \"confidence\": 0.95\n    },\n    {\n      \"text\": \"тестирование\",\n      \"label\": \"EVENT\",\n      \"start\": 28,\n      \"end\": 40,\n      \"confidence\": 0.90\n    }\n  ]\n}","values":{"cut_off_tkns":0,"prompt_tkn_len":1734,"words_per_token":0.0,"document_tkn_len":1734,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"10:38:01","finish":"10:38:10","duration":"8543.3ms"},"tenant_id":"nmg","request_id":"5de14089-934e-40f4-9fae-91b87c25d33d"},"error":null,"status":"ok","answer":{"summary":"Поиск документов по темам MLOps и тестирование","query":"mlops тестирование","intent":{"document_search":1.0,"internet_search":0.0,"audio_transcribe":0.0,"forget":0.0,"take":0.0,"attach":0.0,"convert":0.0,"chat":0.0,"predicted_intent":"document_search"},"events":[],"peoples":[],"documents":[],"entities":[{"text":"mlops","label":"PRODUCT","start":19,"end":25,"confidence":0.95},{"text":"тестирование","label":"EVENT","start":28,"end":40,"confidence":0.9}]}},"WAITING_FOR_INTENT_EXTRACTED":{"intent":"document_search","chat_id":"987561a6-b7f1-4c67-8abc-c725ebb3279f","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"5de14089-934e-40f4-9fae-91b87c25d33d","user_message":"найди документы про mlops и тестирование"},"INTENT_EXTRACTED":{"intent":"document_search","chat_id":"987561a6-b7f1-4c67-8abc-c725ebb3279f","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"5de14089-934e-40f4-9fae-91b87c25d33d","user_message":"найди документы про mlops и тестирование"},"WAITING_FOR_DOCS_RETRIEVED":{"data":{"task":["chunk","doclet","sense"],"limit":10,"question":"mlops тестирование","treshold":0.01,"tenant_id":"nmg","request_id":"5de14089-934e-40f4-9fae-91b87c25d33d"},"name":"doc_vector_search"},"DOCS_RETRIEVED":{"data":{"result":{"ranked":{"found":[{"id_doc":28,"content":null,"distance":0.07630582402149837,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.07352373997370402,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":34,"content":null,"distance":0.07146271814902623,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.06890290230512619,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.06458008661866188,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":43,"content":null,"distance":0.043214393158753715,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":39,"content":null,"distance":0.03980503107110659,"id_chunk":null,"file_name":"instr_2.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":42,"content":null,"distance":0.024187341332435608,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.02258908251921336,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.02231837312380473,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"10:38:11","finish":"10:38:11","duration":"6.6ms"},"collection":"ranked"},"chunk/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.08313260972499847,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.08286994695663452,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":34,"content":null,"distance":0.07850126922130585,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.07028993219137192,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.06877489387989044,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":43,"content":null,"distance":0.06858664005994797,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.06776724755764008,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.06695511937141418,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":40,"content":null,"distance":0.06394308060407639,"id_chunk":null,"file_name":"instr_3.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":39,"content":null,"distance":0.06356363743543625,"id_chunk":null,"file_name":"instr_2.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"10:38:11","finish":"10:38:11","duration":"0.0ms"},"collection":"chunks"},"sense/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.07652214169502258,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":34,"content":null,"distance":0.07178693264722824,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.06778854131698608,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.06425683200359344,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.0634724497795105,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":67,"content":null,"distance":0.059351757168769836,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655441003.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":39,"content":null,"distance":0.05585145577788353,"id_chunk":null,"file_name":"instr_2.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":63,"content":null,"distance":0.05480368435382843,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440001.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":65,"content":null,"distance":0.054647333920001984,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655441003.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":38,"content":null,"distance":0.0543014258146286,"id_chunk":null,"file_name":"instr_1.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"10:38:11","finish":"10:38:11","duration":"0.0ms"},"collection":"senses/sparse"},"doclet/sparse":{"found":[{"id_doc":30,"content":null,"distance":0.07367698103189468,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":42,"content":null,"distance":0.07256202399730682,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.06991273164749146,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":28,"content":null,"distance":0.06926272064447403,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":34,"content":null,"distance":0.06409995257854462,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":58,"content":null,"distance":0.06333775818347931,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":43,"content":null,"distance":0.06105653941631317,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":46,"content":null,"distance":0.060353174805641174,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440010.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.059977877885103226,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":6,"content":null,"distance":0.05896492302417755,"id_chunk":null,"file_name":"10001.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"10:38:11","finish":"10:38:11","duration":"0.0ms"},"collection":"doclets"}},"tenant_id":"nmg","request_id":"5de14089-934e-40f4-9fae-91b87c25d33d"},"error":null,"status":"ok"}},"answer":"\nНайдены следующие документы (поиск 1): \n- 1. [10027.pdf](http://localhost/data/nmg/source/cands/10027.pdf)\n- 2. [10024.pdf](http://localhost/data/nmg/source/cands/10024.pdf)\n- 3. [vac1.pdf](http://localhost/data/nmg/source/docs/vacs/vac1.pdf)\n- 4. [10004.docx](http://localhost/data/nmg/source/cands/10004.docx)\n- 5. [10026.pdf](http://localhost/data/nmg/source/cands/10026.pdf)\n- 6. [transcrib_550e8400-e29b-41d4-a716-446655440002.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440002.txt)\n- 7. [instr_2.docx](http://localhost/data/nmg/source/docs/instr/instr_2.docx)\n- 8. [transcrib_550e8400-e29b-41d4-a716-446655440102.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440102.txt)\n- 9. [transcrib_550e8400-e29b-41d4-a716-446655440101.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440101.txt)\n- 10. [10015.docx](http://localhost/data/nmg/source/cands/10015.docx)\n","answer_context":"\n<ПОИСК1>\n\nНайдены следующие документы: \n- 1. 10027.pdf  \n- 2. 10024.pdf  \n- 3. vac1.pdf  \n- 4. 10004.docx  \n- 5. 10026.pdf  \n- 6. transcrib_550e8400-e29b-41d4-a716-446655440002.txt  \n- 7. instr_2.docx  \n- 8. transcrib_550e8400-e29b-41d4-a716-446655440102.txt  \n- 9. transcrib_550e8400-e29b-41d4-a716-446655440101.txt  \n- 10. 10015.docx  \n\n</ПОИСК1>\n","exec_time":0.0}
Partition: 0   Offset: 717   Key: empty   Timestamp: 2026-05-27 10:59:53.427 Headers: content-type: application/json, correlation_id: cfa33ec4-2cba-44eb-a814-8a6fda931d52
 
{"request_id":"cfa33ec4-2cba-44eb-a814-8a6fda931d52","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","response_collection":{"REQUEST_ACCEPTED":{"query":"найди документы про mlops и тестирование","chat_id":"987561a6-b7f1-4c67-8abc-c725ebb3279f","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","admin_tag":true,"tenant_id":"nmg","request_id":"cfa33ec4-2cba-44eb-a814-8a6fda931d52","user_email":"p.slivnitsyn@zebrains.team","attached_files":[]},"WAITING_FOR_PLAN_FORMED":{"data":{"mode":2,"task":"rag","query":"найди документы про mlops и тестирование","tools":[{"type":"function","function":{"name":"doc_vector_index","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу."}},{"type":"function","function":{"name":"doc_vector_search","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний."}},{"type":"function","function":{"name":"internet_search","parameters":{"type":"object","$defs":{"SearcherEngine":{"enum":["brave","searxng"],"type":"string","title":"SearcherEngine"}},"title":"SearcherInput","required":["request_id","question"],"properties":{"limit":{"type":"integer","title":"Limit","default":5,"description":"Количество результатов поиска"},"engine":{"$ref":"#/$defs/SearcherEngine","default":"searxng","description":"Система поиска"},"question":{"type":"string","title":"Question","description":"Строка для поиска"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно."}},{"type":"function","function":{"name":"completion","parameters":{"type":"object","$defs":{"APIMode":{"enum":[1,2,3],"type":"integer","title":"APIMode"},"MedullaTask":{"enum":["intent","rag","chat","contents","summarizer","checklist","chitchat","freeflight"],"type":"string","title":"MedullaTask"},"MedullaInputMessage":{"type":"object","title":"MedullaInputMessage","required":["role","content"],"properties":{"role":{"type":"string","title":"Role","description":"Роль: 'system', 'user', 'agent'"},"content":{"type":"string","title":"Content","description":"Содержимое сообщения"},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к директории с документом используемым для ответа"}}}},"title":"MedullaInput","required":["request_id","task","tenant_id"],"properties":{"mode":{"anyOf":[{"$ref":"#/$defs/APIMode"},{"type":"null"}],"default":null,"description":"Режим работы значение устанавливается внешними средствами (1, 2 или 3), по умолчанию 1."},"task":{"$ref":"#/$defs/MedullaTask","description":"Интеллектуальная задача выполняемая сервисом, 'intent' - Интент классификатор по запросу (query), 'rag' - ответ на запрос (query) по документу расположенному по пути (doc_path), 'chat' - ответ на запросы по логу сообщений messages, 'contents' - ответ на запрос (query) по приложенному контенту (contents), 'summarizer' - cуммаризация информации по запросу (query) документа расположенного по пути (doc_path), 'checklist' - проверка документа в директории по пути doc_path в соответствии с запросом (query) и шаблоном требований по пути (requirements_path), 'chitchat' - свободный ответ по запросу (query), 'freeflight' - Свободный формат (обязательно передать template_path)."},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","default":null,"description":"Текст запроса пользователя. Используется в задачах: intent, rag, contents, summarizer, checklist, chitchat."},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","default":null,"description":"Текстовый контент на основе которого формируется ответ. Используется в задачах: contents."},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к файлу на основе которого формируется ответ. Используется в задачах: rag, summarizer, checklist."},"messages":{"anyOf":[{"type":"array","items":{"$ref":"#/$defs/MedullaInputMessage"}},{"type":"null"}],"title":"Messages","default":null,"description":"Список сообщений на основе которых формируется ответ. Используется в задачах: chat."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"template_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Path","default":null,"description":"Путь к шаблону документа который используется для формирования ответа. Используется в задачах: checklist."},"requirements_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requirements Path","default":null,"description":"Путь к директории с файлом требований для формирования ответа. Используется в задачах: checklist."}}},"description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки."}},{"type":"function","function":{"name":"convert-content","parameters":{"type":"object","title":"PandockerDocumentInput","required":["request_id","tenant_id","contents","input_file","input_format","output_format","output_file","reference_doc","filters","defaults_file"],"properties":{"filters":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Filters","description":"Список фильтров для пандока, отправляется либо строкой, если фильтр один, или списком, если их несколько"},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","description":"Контент документа в виде текста, допустим mardown, указаывается если нет input_file"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input File","description":"Путь до входного файла"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output File","description":"Путь до выходного файла"},"input_format":{"type":"string","title":"Input Format","description":"Формат входного документа"},"defaults_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Defaults File","description":"Путь до файла настроек pandoc"},"output_format":{"type":"string","title":"Output Format","description":"Формат выходного документа"},"reference_doc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Doc","description":"Путь до референсного файла для стилизации"}}},"description":"Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно."}},{"type":"function","function":{"name":"parse","parameters":{"type":"object","$defs":{"Mode":{"enum":["skip_parsed","always_rewrite"],"type":"string","title":"Mode"}},"title":"PaleographInput","required":["request_id","tenant_id","input_path","output_path","mode"],"properties":{"mode":{"$ref":"#/$defs/Mode","description":"Режим работы парсера: 'skip_parsed' если нужно пропустить уже обработанные файлы из входной директории при повторном вызове, 'always_rewrite' всегда обрабатывать все файлы находящиеся во входной директории."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_path":{"type":"string","title":"Input Path","description":"Путь до директории с файлами которые нужно обработать."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_path":{"type":"string","title":"Output Path","description":"Путь до директории в которую необходимо сложить результат."}}},"description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла."}},{"type":"function","function":{"name":"page_download","parameters":{"type":"object","$defs":{"SearcherSaveList":{"enum":["urls","svgs","images"],"type":"string","title":"SearcherSaveList"}},"title":"SearcherDownloadInput","required":["request_id","urls","names","save_path","save_list"],"properties":{"urls":{"type":"array","items":{"type":"string"},"title":"Urls","description":"Список ссылок на сайты для загрузки"},"names":{"type":"array","items":{"type":"string"},"title":"Names","description":"Список именов сайтов"},"save_list":{"type":"array","items":{"$ref":"#/$defs/SearcherSaveList"},"title":"Save List","description":"Перечисление того, что оставить при загрузке сайта"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения сайтов"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно."}},{"type":"function","function":{"name":"transcribe","parameters":{"type":"object","$defs":{"ScriberEngine":{"enum":["gigaam"],"type":"string","title":"ScriberEngine"}},"title":"ScriberInput","required":["request_id","paths","save_path"],"properties":{"paths":{"type":"array","items":{"type":"string"},"title":"Paths","description":"Пути до аудио/видео файлов"},"engine":{"$ref":"#/$defs/ScriberEngine","default":"gigaam","description":"Система транскрибации"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения транскрибации"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"diarization":{"type":"boolean","title":"Diarization","default":false,"description":"Флаг включения диаризации"}}},"description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"cfa33ec4-2cba-44eb-a814-8a6fda931d52","tool_choice":"required","template_path":"templates/planning/qwen_plan.yaml","tools_description":"\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.\n**doc_vector_search**: Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.\n**internet_search**: Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.\n**completion**: Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.\n**convert-content**: Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.\n**parse**: Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.\n**page_download**: Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.\n**transcribe**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."},"name":"planning"},"PLAN_FORMED":{"data":{"think":null,"answer":"","values":{"cut_off_tkns":0,"prompt_tkn_len":1290,"words_per_token":0.0,"document_tkn_len":1290,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"10:59:25","finish":"10:59:42","duration":"17862.5ms"},"tenant_id":"nmg","request_id":"cfa33ec4-2cba-44eb-a814-8a6fda931d52","tool_calls":[{"name":"internet_search","arguments":"{\"request_id\": \"req_mlops_search_001\", \"question\": \"MLOps testing best practices documentation\", \"limit\": 10, \"engine\": \"searxng\"}"}]},"error":null,"status":"ok"},"WAITING_FOR_INTENT_CLASSIFIED":{"data":{"mode":1,"task":"intent","query":"найди документы про mlops и тестирование","contents":null,"doc_path":null,"messages":null,"tenant_id":"nmg","request_id":"cfa33ec4-2cba-44eb-a814-8a6fda931d52","template_path":"templates/intent/qwen_intent.yaml","requirements_path":null},"name":"completion"},"INTENT_CLASSIFIED":{"data":{"think":null,"answer":"{\n  \"summary\": \"Поиск документов по темам MLOps и тестирование\",\n  \"query\": \"документы mlops тестирование\",\n  \"intent\": {\n    \"document_search\": 1.0,\n    \"internet_search\": 0.0,\n    \"audio_transcribe\": 0.0,\n    \"forget\": 0.0,\n    \"take\": 0.0,\n    \"attach\": 0.0,\n    \"convert\": 0.0,\n    \"chat\": 0.0,\n    \"predicted_intent\": \"document_search\"\n  },\n  \"events\": [],\n  \"peoples\": [],\n  \"documents\": [],\n  \"entities\": [\n    {\n      \"text\": \"mlops\",\n      \"label\": \"PRODUCT\",\n      \"start\": 19,\n      \"end\": 25,\n      \"confidence\": 0.95\n    },\n    {\n      \"text\": \"тестирование\",\n      \"label\": \"EVENT\",\n      \"start\": 28,\n      \"end\": 40,\n      \"confidence\": 0.90\n    }\n  ]\n}","values":{"cut_off_tkns":0,"prompt_tkn_len":1734,"words_per_token":0.0,"document_tkn_len":1734,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"10:48:39","finish":"10:48:48","duration":"8625.3ms"},"tenant_id":"nmg","request_id":"cfa33ec4-2cba-44eb-a814-8a6fda931d52"},"error":null,"status":"ok","answer":{"summary":"Поиск документов по темам MLOps и тестирование","query":"документы mlops тестирование","intent":{"document_search":1.0,"internet_search":0.0,"audio_transcribe":0.0,"forget":0.0,"take":0.0,"attach":0.0,"convert":0.0,"chat":0.0,"predicted_intent":"document_search"},"events":[],"peoples":[],"documents":[],"entities":[{"text":"mlops","label":"PRODUCT","start":19,"end":25,"confidence":0.95},{"text":"тестирование","label":"EVENT","start":28,"end":40,"confidence":0.9}]}},"WAITING_FOR_INTENT_EXTRACTED":{"intent":"document_search","chat_id":"987561a6-b7f1-4c67-8abc-c725ebb3279f","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"cfa33ec4-2cba-44eb-a814-8a6fda931d52","user_message":"найди документы про mlops и тестирование"},"INTENT_EXTRACTED":{"intent":"document_search","chat_id":"987561a6-b7f1-4c67-8abc-c725ebb3279f","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"cfa33ec4-2cba-44eb-a814-8a6fda931d52","user_message":"найди документы про mlops и тестирование"},"WAITING_FOR_DOCS_RETRIEVED":{"data":{"task":["chunk","doclet","sense"],"limit":10,"question":"документы mlops тестирование","treshold":0.01,"tenant_id":"nmg","request_id":"cfa33ec4-2cba-44eb-a814-8a6fda931d52"},"name":"doc_vector_search"},"DOCS_RETRIEVED":{"data":{"result":{"ranked":{"found":[{"id_doc":28,"content":null,"distance":0.07001341382662456,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.06753544136881828,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":34,"content":null,"distance":0.06644366060694058,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.06391753380497296,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.04145573079586029,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":40,"content":null,"distance":0.04077090074618658,"id_chunk":null,"file_name":"instr_3.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":43,"content":null,"distance":0.040179308503866196,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":39,"content":null,"distance":0.03644760077198347,"id_chunk":null,"file_name":"instr_2.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":56,"content":null,"distance":0.028352821866671245,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440003.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":42,"content":null,"distance":0.02225460360447566,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"10:48:49","finish":"10:48:49","duration":"7.4ms"},"collection":"ranked"},"chunk/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.0761522501707077,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.0757906511425972,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":34,"content":null,"distance":0.0729878693819046,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.06535261869430542,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.06394460797309875,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":43,"content":null,"distance":0.06376957893371582,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.06238637492060661,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.06225264444947243,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":40,"content":null,"distance":0.059452153742313385,"id_chunk":null,"file_name":"instr_3.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":39,"content":null,"distance":0.05811242014169693,"id_chunk":null,"file_name":"instr_2.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"10:48:49","finish":"10:48:49","duration":"0.0ms"},"collection":"chunks"},"sense/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.07009949535131454,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":34,"content":null,"distance":0.0667451024055481,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.06235653534531593,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.05974387004971504,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.05901457369327545,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":67,"content":null,"distance":0.05409182608127594,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655441003.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":39,"content":null,"distance":0.051230382174253464,"id_chunk":null,"file_name":"instr_2.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":63,"content":null,"distance":0.0505087710916996,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440001.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":65,"content":null,"distance":0.050019726157188416,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655441003.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":38,"content":null,"distance":0.04952525347471237,"id_chunk":null,"file_name":"instr_1.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"10:48:49","finish":"10:48:49","duration":"0.0ms"},"collection":"senses/sparse"},"doclet/sparse":{"found":[{"id_doc":56,"content":null,"distance":0.08505846560001373,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440003.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.0680641233921051,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":42,"content":null,"distance":0.06676381081342697,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.06445913761854172,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":28,"content":null,"distance":0.06378849595785141,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":40,"content":null,"distance":0.06286054849624634,"id_chunk":null,"file_name":"instr_3.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":34,"content":null,"distance":0.059598010033369064,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":58,"content":null,"distance":0.05844785273075104,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":43,"content":null,"distance":0.05676834657788277,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":46,"content":null,"distance":0.0556381419301033,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440010.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"10:48:49","finish":"10:48:49","duration":"0.0ms"},"collection":"doclets"}},"tenant_id":"nmg","request_id":"cfa33ec4-2cba-44eb-a814-8a6fda931d52"},"error":null,"status":"ok"}},"answer":"\nНайдены следующие документы (поиск 2): \n- 1. [10027.pdf](http://localhost/data/nmg/source/cands/10027.pdf)\n- 2. [10024.pdf](http://localhost/data/nmg/source/cands/10024.pdf)\n- 3. [vac1.pdf](http://localhost/data/nmg/source/docs/vacs/vac1.pdf)\n- 4. [10004.docx](http://localhost/data/nmg/source/cands/10004.docx)\n- 5. [10026.pdf](http://localhost/data/nmg/source/cands/10026.pdf)\n- 6. [instr_3.docx](http://localhost/data/nmg/source/docs/instr/instr_3.docx)\n- 7. [transcrib_550e8400-e29b-41d4-a716-446655440002.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440002.txt)\n- 8. [instr_2.docx](http://localhost/data/nmg/source/docs/instr/instr_2.docx)\n- 9. [transcrib_550e8400-e29b-41d4-a716-446655440003.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440003.txt)\n- 10. [transcrib_550e8400-e29b-41d4-a716-446655440102.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440102.txt)\n","answer_context":"\n<ПОИСК2>\n\nНайдены следующие документы: \n- 1. 10027.pdf  \n- 2. 10024.pdf  \n- 3. vac1.pdf  \n- 4. 10004.docx  \n- 5. 10026.pdf  \n- 6. instr_3.docx  \n- 7. transcrib_550e8400-e29b-41d4-a716-446655440002.txt  \n- 8. instr_2.docx  \n- 9. transcrib_550e8400-e29b-41d4-a716-446655440003.txt  \n- 10. transcrib_550e8400-e29b-41d4-a716-446655440102.txt  \n\n</ПОИСК2>\n","exec_time":0.0}
Partition: 0   Offset: 718   Key: empty   Timestamp: 2026-05-28 07:45:15.023 Headers: content-type: application/json, correlation_id: 060e8e5c-6109-4522-b83e-1cf0ad744003
 
{"request_id":"060e8e5c-6109-4522-b83e-1cf0ad744003","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","response_collection":{"REQUEST_ACCEPTED":{"query":"Найди что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","admin_tag":true,"tenant_id":"nmg","request_id":"060e8e5c-6109-4522-b83e-1cf0ad744003","user_email":"p.slivnitsyn@zebrains.team","attached_files":[]},"WAITING_FOR_PLAN_FORMED":{"data":{"mode":2,"task":"rag","query":"Найди что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF","tools":[{"type":"function","function":{"name":"doc_vector_index","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу."}},{"type":"function","function":{"name":"doc_vector_search","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний."}},{"type":"function","function":{"name":"internet_search","parameters":{"type":"object","$defs":{"SearcherEngine":{"enum":["brave","searxng"],"type":"string","title":"SearcherEngine"}},"title":"SearcherInput","required":["request_id","question"],"properties":{"limit":{"type":"integer","title":"Limit","default":5,"description":"Количество результатов поиска"},"engine":{"$ref":"#/$defs/SearcherEngine","default":"searxng","description":"Система поиска"},"question":{"type":"string","title":"Question","description":"Строка для поиска"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно."}},{"type":"function","function":{"name":"completion","parameters":{"type":"object","$defs":{"APIMode":{"enum":[1,2,3],"type":"integer","title":"APIMode"},"MedullaTask":{"enum":["intent","rag","chat","contents","summarizer","checklist","chitchat","freeflight"],"type":"string","title":"MedullaTask"},"MedullaInputMessage":{"type":"object","title":"MedullaInputMessage","required":["role","content"],"properties":{"role":{"type":"string","title":"Role","description":"Роль: 'system', 'user', 'agent'"},"content":{"type":"string","title":"Content","description":"Содержимое сообщения"},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к директории с документом используемым для ответа"}}}},"title":"MedullaInput","required":["request_id","task","tenant_id"],"properties":{"mode":{"anyOf":[{"$ref":"#/$defs/APIMode"},{"type":"null"}],"default":null,"description":"Режим работы значение устанавливается внешними средствами (1, 2 или 3), по умолчанию 1."},"task":{"$ref":"#/$defs/MedullaTask","description":"Интеллектуальная задача выполняемая сервисом, 'intent' - Интент классификатор по запросу (query), 'rag' - ответ на запрос (query) по документу расположенному по пути (doc_path), 'chat' - ответ на запросы по логу сообщений messages, 'contents' - ответ на запрос (query) по приложенному контенту (contents), 'summarizer' - cуммаризация информации по запросу (query) документа расположенного по пути (doc_path), 'checklist' - проверка документа в директории по пути doc_path в соответствии с запросом (query) и шаблоном требований по пути (requirements_path), 'chitchat' - свободный ответ по запросу (query), 'freeflight' - Свободный формат (обязательно передать template_path)."},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","default":null,"description":"Текст запроса пользователя. Используется в задачах: intent, rag, contents, summarizer, checklist, chitchat."},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","default":null,"description":"Текстовый контент на основе которого формируется ответ. Используется в задачах: contents."},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к файлу на основе которого формируется ответ. Используется в задачах: rag, summarizer, checklist."},"messages":{"anyOf":[{"type":"array","items":{"$ref":"#/$defs/MedullaInputMessage"}},{"type":"null"}],"title":"Messages","default":null,"description":"Список сообщений на основе которых формируется ответ. Используется в задачах: chat."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"template_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Path","default":null,"description":"Путь к шаблону документа который используется для формирования ответа. Используется в задачах: checklist."},"requirements_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requirements Path","default":null,"description":"Путь к директории с файлом требований для формирования ответа. Используется в задачах: checklist."}}},"description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки."}},{"type":"function","function":{"name":"convert-content","parameters":{"type":"object","title":"PandockerDocumentInput","required":["request_id","tenant_id","contents","input_file","input_format","output_format","output_file","reference_doc","filters","defaults_file"],"properties":{"filters":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Filters","description":"Список фильтров для пандока, отправляется либо строкой, если фильтр один, или списком, если их несколько"},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","description":"Контент документа в виде текста, допустим mardown, указаывается если нет input_file"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input File","description":"Путь до входного файла"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output File","description":"Путь до выходного файла"},"input_format":{"type":"string","title":"Input Format","description":"Формат входного документа"},"defaults_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Defaults File","description":"Путь до файла настроек pandoc"},"output_format":{"type":"string","title":"Output Format","description":"Формат выходного документа"},"reference_doc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Doc","description":"Путь до референсного файла для стилизации"}}},"description":"Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно."}},{"type":"function","function":{"name":"page_download","parameters":{"type":"object","$defs":{"SearcherSaveList":{"enum":["urls","svgs","images"],"type":"string","title":"SearcherSaveList"}},"title":"SearcherDownloadInput","required":["request_id","urls","names","save_path","save_list"],"properties":{"urls":{"type":"array","items":{"type":"string"},"title":"Urls","description":"Список ссылок на сайты для загрузки"},"names":{"type":"array","items":{"type":"string"},"title":"Names","description":"Список именов сайтов"},"save_list":{"type":"array","items":{"$ref":"#/$defs/SearcherSaveList"},"title":"Save List","description":"Перечисление того, что оставить при загрузке сайта"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения сайтов"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно."}},{"type":"function","function":{"name":"parse","parameters":{"type":"object","$defs":{"Mode":{"enum":["skip_parsed","always_rewrite"],"type":"string","title":"Mode"}},"title":"PaleographInput","required":["request_id","tenant_id","input_path","output_path","mode"],"properties":{"mode":{"$ref":"#/$defs/Mode","description":"Режим работы парсера: 'skip_parsed' если нужно пропустить уже обработанные файлы из входной директории при повторном вызове, 'always_rewrite' всегда обрабатывать все файлы находящиеся во входной директории."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_path":{"type":"string","title":"Input Path","description":"Путь до директории с файлами которые нужно обработать."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_path":{"type":"string","title":"Output Path","description":"Путь до директории в которую необходимо сложить результат."}}},"description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла."}},{"type":"function","function":{"name":"transcribe","parameters":{"type":"object","$defs":{"ScriberEngine":{"enum":["gigaam"],"type":"string","title":"ScriberEngine"}},"title":"ScriberInput","required":["request_id","paths","save_path"],"properties":{"paths":{"type":"array","items":{"type":"string"},"title":"Paths","description":"Пути до аудио/видео файлов"},"engine":{"$ref":"#/$defs/ScriberEngine","default":"gigaam","description":"Система транскрибации"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения транскрибации"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"diarization":{"type":"boolean","title":"Diarization","default":false,"description":"Флаг включения диаризации"}}},"description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"060e8e5c-6109-4522-b83e-1cf0ad744003","tool_choice":"required","template_path":"templates/planning/qwen_plan.yaml","tools_description":"\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.\n**doc_vector_search**: Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.\n**internet_search**: Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.\n**completion**: Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.\n**convert-content**: Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.\n**page_download**: Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.\n**parse**: Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.\n**transcribe**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."},"name":"planning"},"PLAN_FORMED":{"data":{"think":null,"answer":"","values":{"cut_off_tkns":0,"prompt_tkn_len":1344,"words_per_token":0.0,"document_tkn_len":1344,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"07:44:18","finish":"07:44:56","duration":"37833.1ms"},"tenant_id":"nmg","request_id":"060e8e5c-6109-4522-b83e-1cf0ad744003","tool_calls":[{"name":"internet_search","arguments":"{\"limit\": 5, \"engine\": \"searxng\", \"question\": \"MLOps testing best practices CI/CD pipeline machine learning\", \"request_id\": \"req_mlops_001\"}"},{"name":"internet_search","arguments":"{\"limit\": 5, \"engine\": \"searxng\", \"question\": \"typical ML CI/CD pipeline architecture stages components\", \"request_id\": \"req_mlops_002\"}"}]},"error":null,"status":"ok"},"WAITING_FOR_INTENT_CLASSIFIED":{"data":{"mode":1,"task":"intent","query":"Найди что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF","contents":null,"doc_path":null,"messages":null,"tenant_id":"nmg","request_id":"060e8e5c-6109-4522-b83e-1cf0ad744003","template_path":"templates/intent/qwen_intent.yaml","requirements_path":null},"name":"completion"},"INTENT_CLASSIFIED":{"data":{"think":null,"answer":"{\n  \"summary\": \"Пользователь просит найти информацию по MLOps и тестированию, разработать пайплайн CI/CD и сгенерировать PDF-документ.\",\n  \"query\": \"MLOps тестирование пайплайн CI/CD\",\n  \"intent\": {\n    \"document_search\": 0.9,\n    \"internet_search\": 0.0,\n    \"audio_transcribe\": 0.0,\n    \"forget\": 0.0,\n    \"take\": 0.0,\n    \"attach\": 0.0,\n    \"convert\": 0.0,\n    \"chat\": 0.1,\n    \"predicted_intent\": \"document_search\"\n  },\n  \"events\": [],\n  \"peoples\": [],\n  \"documents\": [\n    {\n      \"title\": \"Типовой пайплайн CI/CD для MLOps\",\n      \"direction\": \"OUTBOUND\",\n      \"format\": \"pdf\",\n      \"number\": [],\n      \"type\": \"описание\",\n      \"project\": \"MLOps\",\n      \"author\": \"\",\n      \"date_created\": \"\",\n      \"status\": \"черновик\",\n      \"version\": \"\",\n      \"department\": \"\",\n      \"access_level\": \"открытый\"\n    }\n  ],\n  \"entities\": [\n    {\n      \"text\": \"MLOPS\",\n      \"label\": \"PRODUCT\",\n      \"start\": 20,\n      \"end\": 26,\n      \"confidence\": 0.95\n    },\n    {\n      \"text\": \"Тестирование\",\n      \"label\": \"EVENT\",\n      \"start\": 29,\n      \"end\": 41,\n      \"confidence\": 0.9\n    },\n    {\n      \"text\": \"CI/CD\",\n      \"label\": \"PRODUCT\",\n      \"start\": 68,\n      \"end\": 73,\n      \"confidence\": 0.95\n    },\n    {\n      \"text\": \"PDF\",\n      \"label\": \"PRODUCT\",\n      \"start\": 87,\n      \"end\": 90,\n      \"confidence\": 0.9\n    }\n  ]\n}","values":{"cut_off_tkns":0,"prompt_tkn_len":1787,"words_per_token":0.0,"document_tkn_len":1787,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"07:33:50","finish":"07:34:06","duration":"16400.6ms"},"tenant_id":"nmg","request_id":"060e8e5c-6109-4522-b83e-1cf0ad744003"},"error":null,"status":"ok","answer":{"summary":"Пользователь просит найти информацию по MLOps и тестированию, разработать пайплайн CI/CD и сгенерировать PDF-документ.","query":"MLOps тестирование пайплайн CI/CD","intent":{"document_search":0.9,"internet_search":0.0,"audio_transcribe":0.0,"forget":0.0,"take":0.0,"attach":0.0,"convert":0.0,"chat":0.1,"predicted_intent":"document_search"},"events":[],"peoples":[],"documents":[{"title":"Типовой пайплайн CI/CD для MLOps","direction":"OUTBOUND","format":"pdf","number":[],"type":"описание","project":"MLOps","author":"","date_created":"","status":"черновик","version":"","department":"","access_level":"открытый"}],"entities":[{"text":"MLOPS","label":"PRODUCT","start":20,"end":26,"confidence":0.95},{"text":"Тестирование","label":"EVENT","start":29,"end":41,"confidence":0.9},{"text":"CI/CD","label":"PRODUCT","start":68,"end":73,"confidence":0.95},{"text":"PDF","label":"PRODUCT","start":87,"end":90,"confidence":0.9}]}},"WAITING_FOR_INTENT_EXTRACTED":{"intent":"document_search","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"060e8e5c-6109-4522-b83e-1cf0ad744003","user_message":"Найди что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF"},"INTENT_EXTRACTED":{"intent":"document_search","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"060e8e5c-6109-4522-b83e-1cf0ad744003","user_message":"Найди что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF"},"WAITING_FOR_DOCS_RETRIEVED":{"data":{"task":["chunk","doclet","sense"],"limit":10,"question":"MLOps тестирование пайплайн CI/CD","treshold":0.01,"tenant_id":"nmg","request_id":"060e8e5c-6109-4522-b83e-1cf0ad744003"},"name":"doc_vector_search"},"DOCS_RETRIEVED":{"data":{"result":{"ranked":{"found":[{"id_doc":42,"content":null,"distance":0.12064763655265172,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.10408543795347214,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.08985499292612076,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":54,"content":null,"distance":0.07687230656544368,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":6,"content":null,"distance":0.06697152803341548,"id_chunk":null,"file_name":"10001.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":38,"content":null,"distance":0.06387349714835484,"id_chunk":null,"file_name":"instr_1.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":17,"content":null,"distance":0.06384622305631638,"id_chunk":null,"file_name":"10003.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.06318244338035583,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":46,"content":null,"distance":0.06315948565800984,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440010.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":34,"content":null,"distance":0.060028779009977974,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"07:34:08","finish":"07:34:08","duration":"8.6ms"},"collection":"ranked"},"chunk/sparse":{"found":[{"id_doc":5,"content":null,"distance":0.17380057275295258,"id_chunk":null,"file_name":"10011.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.13740262389183044,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":54,"content":null,"distance":0.11942581087350845,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":42,"content":null,"distance":0.11771441251039505,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":38,"content":null,"distance":0.11099465191364288,"id_chunk":null,"file_name":"instr_1.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":46,"content":null,"distance":0.1036960780620575,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440010.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":6,"content":null,"distance":0.10197886824607849,"id_chunk":null,"file_name":"10001.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":34,"content":null,"distance":0.09991590678691864,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.09663955867290497,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.09231927245855331,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"07:34:08","finish":"07:34:08","duration":"0.0ms"},"collection":"chunks"},"sense/sparse":{"found":[{"id_doc":54,"content":null,"distance":0.11119110882282257,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":73,"content":null,"distance":0.11114396154880524,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":41,"content":null,"distance":0.11045199632644653,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440010.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":42,"content":null,"distance":0.10494542121887207,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":17,"content":null,"distance":0.1018294095993042,"id_chunk":null,"file_name":"10003.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":57,"content":null,"distance":0.09811770170927048,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":44,"content":null,"distance":0.09671658277511597,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.08907739818096161,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.08224748820066452,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":34,"content":null,"distance":0.08017043024301529,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"07:34:08","finish":"07:34:08","duration":"0.0ms"},"collection":"senses/sparse"},"doclet/sparse":{"found":[{"id_doc":42,"content":null,"distance":0.13928307592868805,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":6,"content":null,"distance":0.09893571585416794,"id_chunk":null,"file_name":"10001.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.09499821811914444,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.09290777146816254,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":58,"content":null,"distance":0.09155526757240295,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":27,"content":null,"distance":0.09068242460489273,"id_chunk":null,"file_name":"10005.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":17,"content":null,"distance":0.08970925956964493,"id_chunk":null,"file_name":"10003.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":46,"content":null,"distance":0.08578237891197205,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440010.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.08577629178762436,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":38,"content":null,"distance":0.08062583953142166,"id_chunk":null,"file_name":"instr_1.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"07:34:08","finish":"07:34:08","duration":"0.0ms"},"collection":"doclets"}},"tenant_id":"nmg","request_id":"060e8e5c-6109-4522-b83e-1cf0ad744003"},"error":null,"status":"ok"}},"answer":"\nНайдены следующие документы (поиск 9): \n- 1. [transcrib_550e8400-e29b-41d4-a716-446655440102.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440102.txt)\n- 2. [10025.pdf](http://localhost/data/nmg/source/cands/10025.pdf)\n- 3. [10004.docx](http://localhost/data/nmg/source/cands/10004.docx)\n- 4. [retelling_550e8400-e29b-41d4-a716-446655440102.txt](http://localhost/data/nmg/source/meetings/retelling_550e8400-e29b-41d4-a716-446655440102.txt)\n- 5. [10001.docx](http://localhost/data/nmg/source/cands/10001.docx)\n- 6. [instr_1.docx](http://localhost/data/nmg/source/docs/instr/instr_1.docx)\n- 7. [10003.docx](http://localhost/data/nmg/source/cands/10003.docx)\n- 8. [10026.pdf](http://localhost/data/nmg/source/cands/10026.pdf)\n- 9. [transcrib_550e8400-e29b-41d4-a716-446655440010.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440010.txt)\n- 10. [vac1.pdf](http://localhost/data/nmg/source/docs/vacs/vac1.pdf)\n","answer_context":"\n<ПОИСК9>\n\nНайдены следующие документы: \n- 1. transcrib_550e8400-e29b-41d4-a716-446655440102.txt  \n- 2. 10025.pdf  \n- 3. 10004.docx  \n- 4. retelling_550e8400-e29b-41d4-a716-446655440102.txt  \n- 5. 10001.docx  \n- 6. instr_1.docx  \n- 7. 10003.docx  \n- 8. 10026.pdf  \n- 9. transcrib_550e8400-e29b-41d4-a716-446655440010.txt  \n- 10. vac1.pdf  \n\n</ПОИСК9>\n","exec_time":0.0}
Partition: 0   Offset: 719   Key: empty   Timestamp: 2026-05-28 07:53:00.363 Headers: content-type: application/json, correlation_id: 92a33daa-476e-48ac-a569-7c961d51bcc8
 
{"request_id":"92a33daa-476e-48ac-a569-7c961d51bcc8","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","response_collection":{"REQUEST_ACCEPTED":{"query":"Найди в базе знаний что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","admin_tag":true,"tenant_id":"nmg","request_id":"92a33daa-476e-48ac-a569-7c961d51bcc8","user_email":"p.slivnitsyn@zebrains.team","attached_files":[]},"WAITING_FOR_PLAN_FORMED":{"data":{"mode":2,"task":"rag","query":"Найди в базе знаний что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF","tools":[{"type":"function","function":{"name":"doc_vector_index","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу."}},{"type":"function","function":{"name":"doc_vector_search","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний."}},{"type":"function","function":{"name":"internet_search","parameters":{"type":"object","$defs":{"SearcherEngine":{"enum":["brave","searxng"],"type":"string","title":"SearcherEngine"}},"title":"SearcherInput","required":["request_id","question"],"properties":{"limit":{"type":"integer","title":"Limit","default":5,"description":"Количество результатов поиска"},"engine":{"$ref":"#/$defs/SearcherEngine","default":"searxng","description":"Система поиска"},"question":{"type":"string","title":"Question","description":"Строка для поиска"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно."}},{"type":"function","function":{"name":"completion","parameters":{"type":"object","$defs":{"APIMode":{"enum":[1,2,3],"type":"integer","title":"APIMode"},"MedullaTask":{"enum":["intent","rag","chat","contents","summarizer","checklist","chitchat","freeflight"],"type":"string","title":"MedullaTask"},"MedullaInputMessage":{"type":"object","title":"MedullaInputMessage","required":["role","content"],"properties":{"role":{"type":"string","title":"Role","description":"Роль: 'system', 'user', 'agent'"},"content":{"type":"string","title":"Content","description":"Содержимое сообщения"},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к директории с документом используемым для ответа"}}}},"title":"MedullaInput","required":["request_id","task","tenant_id"],"properties":{"mode":{"anyOf":[{"$ref":"#/$defs/APIMode"},{"type":"null"}],"default":null,"description":"Режим работы значение устанавливается внешними средствами (1, 2 или 3), по умолчанию 1."},"task":{"$ref":"#/$defs/MedullaTask","description":"Интеллектуальная задача выполняемая сервисом, 'intent' - Интент классификатор по запросу (query), 'rag' - ответ на запрос (query) по документу расположенному по пути (doc_path), 'chat' - ответ на запросы по логу сообщений messages, 'contents' - ответ на запрос (query) по приложенному контенту (contents), 'summarizer' - cуммаризация информации по запросу (query) документа расположенного по пути (doc_path), 'checklist' - проверка документа в директории по пути doc_path в соответствии с запросом (query) и шаблоном требований по пути (requirements_path), 'chitchat' - свободный ответ по запросу (query), 'freeflight' - Свободный формат (обязательно передать template_path)."},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","default":null,"description":"Текст запроса пользователя. Используется в задачах: intent, rag, contents, summarizer, checklist, chitchat."},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","default":null,"description":"Текстовый контент на основе которого формируется ответ. Используется в задачах: contents."},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к файлу на основе которого формируется ответ. Используется в задачах: rag, summarizer, checklist."},"messages":{"anyOf":[{"type":"array","items":{"$ref":"#/$defs/MedullaInputMessage"}},{"type":"null"}],"title":"Messages","default":null,"description":"Список сообщений на основе которых формируется ответ. Используется в задачах: chat."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"template_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Path","default":null,"description":"Путь к шаблону документа который используется для формирования ответа. Используется в задачах: checklist."},"requirements_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requirements Path","default":null,"description":"Путь к директории с файлом требований для формирования ответа. Используется в задачах: checklist."}}},"description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки."}},{"type":"function","function":{"name":"convert-content","parameters":{"type":"object","title":"PandockerDocumentInput","required":["request_id","tenant_id","contents","input_file","input_format","output_format","output_file","reference_doc","filters","defaults_file"],"properties":{"filters":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Filters","description":"Список фильтров для пандока, отправляется либо строкой, если фильтр один, или списком, если их несколько"},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","description":"Контент документа в виде текста, допустим mardown, указаывается если нет input_file"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input File","description":"Путь до входного файла"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output File","description":"Путь до выходного файла"},"input_format":{"type":"string","title":"Input Format","description":"Формат входного документа"},"defaults_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Defaults File","description":"Путь до файла настроек pandoc"},"output_format":{"type":"string","title":"Output Format","description":"Формат выходного документа"},"reference_doc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Doc","description":"Путь до референсного файла для стилизации"}}},"description":"Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно."}},{"type":"function","function":{"name":"page_download","parameters":{"type":"object","$defs":{"SearcherSaveList":{"enum":["urls","svgs","images"],"type":"string","title":"SearcherSaveList"}},"title":"SearcherDownloadInput","required":["request_id","urls","names","save_path","save_list"],"properties":{"urls":{"type":"array","items":{"type":"string"},"title":"Urls","description":"Список ссылок на сайты для загрузки"},"names":{"type":"array","items":{"type":"string"},"title":"Names","description":"Список именов сайтов"},"save_list":{"type":"array","items":{"$ref":"#/$defs/SearcherSaveList"},"title":"Save List","description":"Перечисление того, что оставить при загрузке сайта"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения сайтов"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно."}},{"type":"function","function":{"name":"parse","parameters":{"type":"object","$defs":{"Mode":{"enum":["skip_parsed","always_rewrite"],"type":"string","title":"Mode"}},"title":"PaleographInput","required":["request_id","tenant_id","input_path","output_path","mode"],"properties":{"mode":{"$ref":"#/$defs/Mode","description":"Режим работы парсера: 'skip_parsed' если нужно пропустить уже обработанные файлы из входной директории при повторном вызове, 'always_rewrite' всегда обрабатывать все файлы находящиеся во входной директории."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_path":{"type":"string","title":"Input Path","description":"Путь до директории с файлами которые нужно обработать."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_path":{"type":"string","title":"Output Path","description":"Путь до директории в которую необходимо сложить результат."}}},"description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла."}},{"type":"function","function":{"name":"transcribe","parameters":{"type":"object","$defs":{"ScriberEngine":{"enum":["gigaam"],"type":"string","title":"ScriberEngine"}},"title":"ScriberInput","required":["request_id","paths","save_path"],"properties":{"paths":{"type":"array","items":{"type":"string"},"title":"Paths","description":"Пути до аудио/видео файлов"},"engine":{"$ref":"#/$defs/ScriberEngine","default":"gigaam","description":"Система транскрибации"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения транскрибации"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"diarization":{"type":"boolean","title":"Diarization","default":false,"description":"Флаг включения диаризации"}}},"description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"92a33daa-476e-48ac-a569-7c961d51bcc8","tool_choice":"required","template_path":"templates/planning/qwen_plan.yaml","tools_description":"\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.\n**doc_vector_search**: Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.\n**internet_search**: Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.\n**completion**: Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.\n**convert-content**: Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.\n**page_download**: Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.\n**parse**: Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.\n**transcribe**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."},"name":"planning"},"PLAN_FORMED":{"data":{"think":null,"answer":"","values":{"cut_off_tkns":0,"prompt_tkn_len":1350,"words_per_token":0.0,"document_tkn_len":1350,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"07:52:26","finish":"07:52:43","duration":"16840.4ms"},"tenant_id":"nmg","request_id":"92a33daa-476e-48ac-a569-7c961d51bcc8","tool_calls":[{"name":"doc_vector_search","arguments":"{\"request_id\": \"req_mlops_search_001\", \"tenant_id\": \"default\", \"question\": \"MLOPS и Тестирование CI/CD пайплайн\", \"treshold\": 0.3, \"limit\": 10, \"task\": [\"hybrid_chunk\", \"hybrid_doclet\", \"chunk\"]}"}]},"error":null,"status":"ok"},"WAITING_FOR_INTENT_CLASSIFIED":{"data":{"mode":1,"task":"intent","query":"Найди в базе знаний что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF","contents":null,"doc_path":null,"messages":null,"tenant_id":"nmg","request_id":"92a33daa-476e-48ac-a569-7c961d51bcc8","template_path":"templates/intent/qwen_intent.yaml","requirements_path":null},"name":"completion"},"INTENT_CLASSIFIED":{"data":{"think":null,"answer":"{\n  \"summary\": \"Поиск информации по MLOps и тестированию, создание пайплайна CI/CD и генерация PDF.\",\n  \"query\": \"MLOps тестирование пайплайн CI/CD\",\n  \"intent\": {\n    \"document_search\": 0.9,\n    \"internet_search\": 0.0,\n    \"audio_transcribe\": 0.0,\n    \"forget\": 0.0,\n    \"take\": 0.0,\n    \"attach\": 0.0,\n    \"convert\": 0.0,\n    \"chat\": 0.1,\n    \"predicted_intent\": \"document_search\"\n  },\n  \"events\": [],\n  \"peoples\": [],\n  \"documents\": [\n    {\n      \"title\": \"Типовой пайплайн CI/CD\",\n      \"direction\": \"OUTBOUND\",\n      \"format\": \"pdf\",\n      \"number\": [],\n      \"type\": \"описание\",\n      \"project\": \"\",\n      \"author\": \"\",\n      \"date_created\": \"\",\n      \"status\": \"черновик\",\n      \"version\": \"\",\n      \"department\": \"\",\n      \"access_level\": \"открытый\"\n    }\n  ],\n  \"entities\": [\n    {\n      \"text\": \"MLOPS\",\n      \"label\": \"PRODUCT\",\n      \"start\": 33,\n      \"end\": 39,\n      \"confidence\": 0.95\n    },\n    {\n      \"text\": \"Тестирование\",\n      \"label\": \"EVENT\",\n      \"start\": 42,\n      \"end\": 54,\n      \"confidence\": 0.9\n    },\n    {\n      \"text\": \"CI/CD\",\n      \"label\": \"PRODUCT\",\n      \"start\": 82,\n      \"end\": 87,\n      \"confidence\": 0.95\n    },\n    {\n      \"text\": \"PDF\",\n      \"label\": \"PRODUCT\",\n      \"start\": 101,\n      \"end\": 104,\n      \"confidence\": 0.95\n    }\n  ]\n}","values":{"cut_off_tkns":0,"prompt_tkn_len":1793,"words_per_token":0.0,"document_tkn_len":1793,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"07:41:37","finish":"07:41:52","duration":"15237.2ms"},"tenant_id":"nmg","request_id":"92a33daa-476e-48ac-a569-7c961d51bcc8"},"error":null,"status":"ok","answer":{"summary":"Поиск информации по MLOps и тестированию, создание пайплайна CI/CD и генерация PDF.","query":"MLOps тестирование пайплайн CI/CD","intent":{"document_search":0.9,"internet_search":0.0,"audio_transcribe":0.0,"forget":0.0,"take":0.0,"attach":0.0,"convert":0.0,"chat":0.1,"predicted_intent":"document_search"},"events":[],"peoples":[],"documents":[{"title":"Типовой пайплайн CI/CD","direction":"OUTBOUND","format":"pdf","number":[],"type":"описание","project":"","author":"","date_created":"","status":"черновик","version":"","department":"","access_level":"открытый"}],"entities":[{"text":"MLOPS","label":"PRODUCT","start":33,"end":39,"confidence":0.95},{"text":"Тестирование","label":"EVENT","start":42,"end":54,"confidence":0.9},{"text":"CI/CD","label":"PRODUCT","start":82,"end":87,"confidence":0.95},{"text":"PDF","label":"PRODUCT","start":101,"end":104,"confidence":0.95}]}},"WAITING_FOR_INTENT_EXTRACTED":{"intent":"document_search","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"92a33daa-476e-48ac-a569-7c961d51bcc8","user_message":"Найди в базе знаний что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF"},"INTENT_EXTRACTED":{"intent":"document_search","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"92a33daa-476e-48ac-a569-7c961d51bcc8","user_message":"Найди в базе знаний что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF"},"WAITING_FOR_DOCS_RETRIEVED":{"data":{"task":["chunk","doclet","sense"],"limit":10,"question":"MLOps тестирование пайплайн CI/CD","treshold":0.01,"tenant_id":"nmg","request_id":"92a33daa-476e-48ac-a569-7c961d51bcc8"},"name":"doc_vector_search"},"DOCS_RETRIEVED":{"data":{"result":{"ranked":{"found":[{"id_doc":42,"content":null,"distance":0.12064763655265172,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.10408543795347214,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.08985499292612076,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":54,"content":null,"distance":0.07687230656544368,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":6,"content":null,"distance":0.06697152803341548,"id_chunk":null,"file_name":"10001.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":38,"content":null,"distance":0.06387349714835484,"id_chunk":null,"file_name":"instr_1.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":17,"content":null,"distance":0.06384622305631638,"id_chunk":null,"file_name":"10003.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.06318244338035583,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":46,"content":null,"distance":0.06315948565800984,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440010.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":34,"content":null,"distance":0.060028779009977974,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"07:41:53","finish":"07:41:53","duration":"7.3ms"},"collection":"ranked"},"chunk/sparse":{"found":[{"id_doc":5,"content":null,"distance":0.17380057275295258,"id_chunk":null,"file_name":"10011.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.13740262389183044,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":54,"content":null,"distance":0.11942581087350845,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":42,"content":null,"distance":0.11771441251039505,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":38,"content":null,"distance":0.11099465191364288,"id_chunk":null,"file_name":"instr_1.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":46,"content":null,"distance":0.1036960780620575,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440010.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":6,"content":null,"distance":0.10197886824607849,"id_chunk":null,"file_name":"10001.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":34,"content":null,"distance":0.09991590678691864,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.09663955867290497,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.09231927245855331,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"07:41:53","finish":"07:41:53","duration":"0.0ms"},"collection":"chunks"},"sense/sparse":{"found":[{"id_doc":54,"content":null,"distance":0.11119110882282257,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":73,"content":null,"distance":0.11114396154880524,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":41,"content":null,"distance":0.11045199632644653,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440010.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":42,"content":null,"distance":0.10494542121887207,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":17,"content":null,"distance":0.1018294095993042,"id_chunk":null,"file_name":"10003.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":57,"content":null,"distance":0.09811770170927048,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":44,"content":null,"distance":0.09671658277511597,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.08907739818096161,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.08224748820066452,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":34,"content":null,"distance":0.08017043024301529,"id_chunk":null,"file_name":"vac1.pdf.md","file_path":"docs/vacs","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"07:41:53","finish":"07:41:53","duration":"0.0ms"},"collection":"senses/sparse"},"doclet/sparse":{"found":[{"id_doc":42,"content":null,"distance":0.13928307592868805,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440102.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":6,"content":null,"distance":0.09893571585416794,"id_chunk":null,"file_name":"10001.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.09499821811914444,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.09290777146816254,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":58,"content":null,"distance":0.09155526757240295,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":27,"content":null,"distance":0.09068242460489273,"id_chunk":null,"file_name":"10005.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":17,"content":null,"distance":0.08970925956964493,"id_chunk":null,"file_name":"10003.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":46,"content":null,"distance":0.08578237891197205,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440010.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.08577629178762436,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":38,"content":null,"distance":0.08062583953142166,"id_chunk":null,"file_name":"instr_1.docx.md","file_path":"docs/instr","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"07:41:53","finish":"07:41:53","duration":"0.0ms"},"collection":"doclets"}},"tenant_id":"nmg","request_id":"92a33daa-476e-48ac-a569-7c961d51bcc8"},"error":null,"status":"ok"}},"answer":"\nНайдены следующие документы (поиск 10): \n- 1. [transcrib_550e8400-e29b-41d4-a716-446655440102.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440102.txt)\n- 2. [10025.pdf](http://localhost/data/nmg/source/cands/10025.pdf)\n- 3. [10004.docx](http://localhost/data/nmg/source/cands/10004.docx)\n- 4. [retelling_550e8400-e29b-41d4-a716-446655440102.txt](http://localhost/data/nmg/source/meetings/retelling_550e8400-e29b-41d4-a716-446655440102.txt)\n- 5. [10001.docx](http://localhost/data/nmg/source/cands/10001.docx)\n- 6. [instr_1.docx](http://localhost/data/nmg/source/docs/instr/instr_1.docx)\n- 7. [10003.docx](http://localhost/data/nmg/source/cands/10003.docx)\n- 8. [10026.pdf](http://localhost/data/nmg/source/cands/10026.pdf)\n- 9. [transcrib_550e8400-e29b-41d4-a716-446655440010.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440010.txt)\n- 10. [vac1.pdf](http://localhost/data/nmg/source/docs/vacs/vac1.pdf)\n","answer_context":"\n<ПОИСК10>\n\nНайдены следующие документы: \n- 1. transcrib_550e8400-e29b-41d4-a716-446655440102.txt  \n- 2. 10025.pdf  \n- 3. 10004.docx  \n- 4. retelling_550e8400-e29b-41d4-a716-446655440102.txt  \n- 5. 10001.docx  \n- 6. instr_1.docx  \n- 7. 10003.docx  \n- 8. 10026.pdf  \n- 9. transcrib_550e8400-e29b-41d4-a716-446655440010.txt  \n- 10. vac1.pdf  \n\n</ПОИСК10>\n","exec_time":0.0}
Partition: 0   Offset: 720   Key: empty   Timestamp: 2026-05-28 11:42:17.432 Headers: content-type: application/json, correlation_id: a92ca607-2eb0-41a2-8833-ec1c3ac26120
 
{"request_id":"a92ca607-2eb0-41a2-8833-ec1c3ac26120","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","response_collection":{"REQUEST_ACCEPTED":{"query":"забудь","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","admin_tag":true,"tenant_id":"nmg","request_id":"a92ca607-2eb0-41a2-8833-ec1c3ac26120","user_email":"p.slivnitsyn@zebrains.team","attached_files":[]},"WAITING_FOR_PLAN_FORMED":{"data":{"mode":2,"task":"rag","query":"забудь","tools":[{"type":"function","function":{"name":"internet_search","parameters":{"type":"object","$defs":{"SearcherEngine":{"enum":["brave","searxng"],"type":"string","title":"SearcherEngine"}},"title":"SearcherInput","required":["request_id","question"],"properties":{"limit":{"type":"integer","title":"Limit","default":5,"description":"Количество результатов поиска"},"engine":{"$ref":"#/$defs/SearcherEngine","default":"searxng","description":"Система поиска"},"question":{"type":"string","title":"Question","description":"Строка для поиска"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно."}},{"type":"function","function":{"name":"doc_vector_index","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу."}},{"type":"function","function":{"name":"doc_vector_search","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний."}},{"type":"function","function":{"name":"completion","parameters":{"type":"object","$defs":{"APIMode":{"enum":[1,2,3],"type":"integer","title":"APIMode"},"MedullaTask":{"enum":["intent","rag","chat","contents","summarizer","checklist","chitchat","freeflight"],"type":"string","title":"MedullaTask"},"MedullaInputMessage":{"type":"object","title":"MedullaInputMessage","required":["role","content"],"properties":{"role":{"type":"string","title":"Role","description":"Роль: 'system', 'user', 'agent'"},"content":{"type":"string","title":"Content","description":"Содержимое сообщения"},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к директории с документом используемым для ответа"}}}},"title":"MedullaInput","required":["request_id","task","tenant_id"],"properties":{"mode":{"anyOf":[{"$ref":"#/$defs/APIMode"},{"type":"null"}],"default":null,"description":"Режим работы значение устанавливается внешними средствами (1, 2 или 3), по умолчанию 1."},"task":{"$ref":"#/$defs/MedullaTask","description":"Интеллектуальная задача выполняемая сервисом, 'intent' - Интент классификатор по запросу (query), 'rag' - ответ на запрос (query) по документу расположенному по пути (doc_path), 'chat' - ответ на запросы по логу сообщений messages, 'contents' - ответ на запрос (query) по приложенному контенту (contents), 'summarizer' - cуммаризация информации по запросу (query) документа расположенного по пути (doc_path), 'checklist' - проверка документа в директории по пути doc_path в соответствии с запросом (query) и шаблоном требований по пути (requirements_path), 'chitchat' - свободный ответ по запросу (query), 'freeflight' - Свободный формат (обязательно передать template_path)."},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","default":null,"description":"Текст запроса пользователя. Используется в задачах: intent, rag, contents, summarizer, checklist, chitchat."},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","default":null,"description":"Текстовый контент на основе которого формируется ответ. Используется в задачах: contents."},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к файлу на основе которого формируется ответ. Используется в задачах: rag, summarizer, checklist."},"messages":{"anyOf":[{"type":"array","items":{"$ref":"#/$defs/MedullaInputMessage"}},{"type":"null"}],"title":"Messages","default":null,"description":"Список сообщений на основе которых формируется ответ. Используется в задачах: chat."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"template_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Path","default":null,"description":"Путь к шаблону документа который используется для формирования ответа. Используется в задачах: checklist."},"requirements_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requirements Path","default":null,"description":"Путь к директории с файлом требований для формирования ответа. Используется в задачах: checklist."}}},"description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки."}},{"type":"function","function":{"name":"page_download","parameters":{"type":"object","$defs":{"SearcherSaveList":{"enum":["urls","svgs","images"],"type":"string","title":"SearcherSaveList"}},"title":"SearcherDownloadInput","required":["request_id","urls","names","save_path","save_list"],"properties":{"urls":{"type":"array","items":{"type":"string"},"title":"Urls","description":"Список ссылок на сайты для загрузки"},"names":{"type":"array","items":{"type":"string"},"title":"Names","description":"Список именов сайтов"},"save_list":{"type":"array","items":{"$ref":"#/$defs/SearcherSaveList"},"title":"Save List","description":"Перечисление того, что оставить при загрузке сайта"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения сайтов"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно."}},{"type":"function","function":{"name":"parse","parameters":{"type":"object","$defs":{"Mode":{"enum":["skip_parsed","always_rewrite"],"type":"string","title":"Mode"}},"title":"PaleographInput","required":["request_id","tenant_id","input_path","output_path","mode"],"properties":{"mode":{"$ref":"#/$defs/Mode","description":"Режим работы парсера: 'skip_parsed' если нужно пропустить уже обработанные файлы из входной директории при повторном вызове, 'always_rewrite' всегда обрабатывать все файлы находящиеся во входной директории."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_path":{"type":"string","title":"Input Path","description":"Путь до директории с файлами которые нужно обработать."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_path":{"type":"string","title":"Output Path","description":"Путь до директории в которую необходимо сложить результат."}}},"description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла."}},{"type":"function","function":{"name":"convert-content","parameters":{"type":"object","title":"PandockerDocumentInput","required":["request_id","tenant_id","contents","input_file","input_format","output_format","output_file","reference_doc","filters","defaults_file"],"properties":{"filters":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Filters","description":"Список фильтров для пандока, отправляется либо строкой, если фильтр один, или списком, если их несколько"},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","description":"Контент документа в виде текста, допустим mardown, указаывается если нет input_file"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input File","description":"Путь до входного файла"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output File","description":"Путь до выходного файла"},"input_format":{"type":"string","title":"Input Format","description":"Формат входного документа"},"defaults_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Defaults File","description":"Путь до файла настроек pandoc"},"output_format":{"type":"string","title":"Output Format","description":"Формат выходного документа"},"reference_doc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Doc","description":"Путь до референсного файла для стилизации"}}},"description":"Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно."}},{"type":"function","function":{"name":"transcribe","parameters":{"type":"object","$defs":{"ScriberEngine":{"enum":["gigaam"],"type":"string","title":"ScriberEngine"}},"title":"ScriberInput","required":["request_id","paths","save_path"],"properties":{"paths":{"type":"array","items":{"type":"string"},"title":"Paths","description":"Пути до аудио/видео файлов"},"engine":{"$ref":"#/$defs/ScriberEngine","default":"gigaam","description":"Система транскрибации"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения транскрибации"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"diarization":{"type":"boolean","title":"Diarization","default":false,"description":"Флаг включения диаризации"}}},"description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"a92ca607-2eb0-41a2-8833-ec1c3ac26120","tool_choice":"required","template_path":"templates/planning/qwen_plan.yaml","tools_description":"\n**internet_search**: Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.\n**doc_vector_search**: Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.\n**completion**: Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.\n**page_download**: Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.\n**parse**: Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.\n**convert-content**: Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.\n**transcribe**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."},"name":"planning"},"PLAN_FORMED":{"data":{"think":null,"answer":"","values":{"cut_off_tkns":0,"prompt_tkn_len":1657,"words_per_token":0.0,"document_tkn_len":1657,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"11:42:02","finish":"11:42:11","duration":"9366.4ms"},"tenant_id":"nmg","request_id":"a92ca607-2eb0-41a2-8833-ec1c3ac26120","tool_calls":[{"name":"completion","arguments":"{\"task\": \"chitchat\", \"query\": \"забудь.\", \"tenant_id\": \"default\", \"request_id\": \"req_001\"}"}]},"error":null,"status":"ok"},"WAITING_FOR_INTENT_CLASSIFIED":{"data":{"mode":null,"task":"intent","query":"забудь","contents":null,"doc_path":null,"messages":null,"tenant_id":"nmg","request_id":"a92ca607-2eb0-41a2-8833-ec1c3ac26120","template_path":"templates/intent/qwen_intent.yaml","requirements_path":null},"name":"completion"},"INTENT_CLASSIFIED":{"data":{"think":null,"answer":"{\n  \"summary\": \"Пользователь просит забыть предыдущую информацию.\",\n  \"query\": \"\",\n  \"intent\": {\n    \"document_search\": 0.0,\n    \"internet_search\": 0.0,\n    \"audio_transcribe\": 0.0,\n    \"forget\": 1.0,\n    \"take\": 0.0,\n    \"attach\": 0.0,\n    \"convert\": 0.0,\n    \"chat\": 0.0,\n    \"predicted_intent\": \"forget\"\n  },\n  \"events\": [],\n  \"peoples\": [],\n  \"documents\": [],\n  \"entities\": []\n}","values":{"cut_off_tkns":0,"prompt_tkn_len":1718,"words_per_token":0.0,"document_tkn_len":1718,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"11:31:04","finish":"11:31:09","duration":"5277.8ms"},"tenant_id":"nmg","request_id":"a92ca607-2eb0-41a2-8833-ec1c3ac26120"},"error":null,"status":"ok","answer":{"summary":"Пользователь просит забыть предыдущую информацию.","query":"","intent":{"document_search":0.0,"internet_search":0.0,"audio_transcribe":0.0,"forget":1.0,"take":0.0,"attach":0.0,"convert":0.0,"chat":0.0,"predicted_intent":"forget"},"events":[],"peoples":[],"documents":[],"entities":[]}},"WAITING_FOR_INTENT_EXTRACTED":{"intent":"forget","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"a92ca607-2eb0-41a2-8833-ec1c3ac26120","user_message":"забудь"},"INTENT_EXTRACTED":{"intent":"forget","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"a92ca607-2eb0-41a2-8833-ec1c3ac26120","user_message":"забудь"}},"answer":"\nЗабыла предыдущий контекст, начинаю новый диалог.\n","answer_context":"","exec_time":0.0}
Partition: 0   Offset: 721   Key: empty   Timestamp: 2026-05-28 12:11:08.531 Headers: content-type: application/json, correlation_id: 380d93f2-40c2-44cb-ac19-6fe51e822153
 
{"request_id":"380d93f2-40c2-44cb-ac19-6fe51e822153","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","response_collection":{"REQUEST_ACCEPTED":{"query":"привет","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","admin_tag":true,"tenant_id":"nmg","request_id":"380d93f2-40c2-44cb-ac19-6fe51e822153","user_email":"p.slivnitsyn@zebrains.team","attached_files":[]},"WAITING_FOR_PLAN_FORMED":{"data":{"mode":2,"task":"rag","query":"привет","tools":[{"type":"function","function":{"name":"internet_search","parameters":{"type":"object","$defs":{"SearcherEngine":{"enum":["brave","searxng"],"type":"string","title":"SearcherEngine"}},"title":"SearcherInput","required":["request_id","question"],"properties":{"limit":{"type":"integer","title":"Limit","default":5,"description":"Количество результатов поиска"},"engine":{"$ref":"#/$defs/SearcherEngine","default":"searxng","description":"Система поиска"},"question":{"type":"string","title":"Question","description":"Строка для поиска"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно."}},{"type":"function","function":{"name":"doc_vector_index","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу."}},{"type":"function","function":{"name":"doc_vector_search","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний."}},{"type":"function","function":{"name":"completion","parameters":{"type":"object","$defs":{"APIMode":{"enum":[1,2,3],"type":"integer","title":"APIMode"},"MedullaTask":{"enum":["intent","rag","chat","contents","summarizer","checklist","chitchat","freeflight"],"type":"string","title":"MedullaTask"},"MedullaInputMessage":{"type":"object","title":"MedullaInputMessage","required":["role","content"],"properties":{"role":{"type":"string","title":"Role","description":"Роль: 'system', 'user', 'agent'"},"content":{"type":"string","title":"Content","description":"Содержимое сообщения"},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к директории с документом используемым для ответа"}}}},"title":"MedullaInput","required":["request_id","task","tenant_id"],"properties":{"mode":{"anyOf":[{"$ref":"#/$defs/APIMode"},{"type":"null"}],"default":null,"description":"Режим работы значение устанавливается внешними средствами (1, 2 или 3), по умолчанию 1."},"task":{"$ref":"#/$defs/MedullaTask","description":"Интеллектуальная задача выполняемая сервисом, 'intent' - Интент классификатор по запросу (query), 'rag' - ответ на запрос (query) по документу расположенному по пути (doc_path), 'chat' - ответ на запросы по логу сообщений messages, 'contents' - ответ на запрос (query) по приложенному контенту (contents), 'summarizer' - cуммаризация информации по запросу (query) документа расположенного по пути (doc_path), 'checklist' - проверка документа в директории по пути doc_path в соответствии с запросом (query) и шаблоном требований по пути (requirements_path), 'chitchat' - свободный ответ по запросу (query), 'freeflight' - Свободный формат (обязательно передать template_path)."},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","default":null,"description":"Текст запроса пользователя. Используется в задачах: intent, rag, contents, summarizer, checklist, chitchat."},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","default":null,"description":"Текстовый контент на основе которого формируется ответ. Используется в задачах: contents."},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к файлу на основе которого формируется ответ. Используется в задачах: rag, summarizer, checklist."},"messages":{"anyOf":[{"type":"array","items":{"$ref":"#/$defs/MedullaInputMessage"}},{"type":"null"}],"title":"Messages","default":null,"description":"Список сообщений на основе которых формируется ответ. Используется в задачах: chat."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"template_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Path","default":null,"description":"Путь к шаблону документа который используется для формирования ответа. Используется в задачах: checklist."},"requirements_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requirements Path","default":null,"description":"Путь к директории с файлом требований для формирования ответа. Используется в задачах: checklist."}}},"description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки."}},{"type":"function","function":{"name":"page_download","parameters":{"type":"object","$defs":{"SearcherSaveList":{"enum":["urls","svgs","images"],"type":"string","title":"SearcherSaveList"}},"title":"SearcherDownloadInput","required":["request_id","urls","names","save_path","save_list"],"properties":{"urls":{"type":"array","items":{"type":"string"},"title":"Urls","description":"Список ссылок на сайты для загрузки"},"names":{"type":"array","items":{"type":"string"},"title":"Names","description":"Список именов сайтов"},"save_list":{"type":"array","items":{"$ref":"#/$defs/SearcherSaveList"},"title":"Save List","description":"Перечисление того, что оставить при загрузке сайта"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения сайтов"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно."}},{"type":"function","function":{"name":"parse","parameters":{"type":"object","$defs":{"Mode":{"enum":["skip_parsed","always_rewrite"],"type":"string","title":"Mode"}},"title":"PaleographInput","required":["request_id","tenant_id","input_path","output_path","mode"],"properties":{"mode":{"$ref":"#/$defs/Mode","description":"Режим работы парсера: 'skip_parsed' если нужно пропустить уже обработанные файлы из входной директории при повторном вызове, 'always_rewrite' всегда обрабатывать все файлы находящиеся во входной директории."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_path":{"type":"string","title":"Input Path","description":"Путь до директории с файлами которые нужно обработать."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_path":{"type":"string","title":"Output Path","description":"Путь до директории в которую необходимо сложить результат."}}},"description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла."}},{"type":"function","function":{"name":"convert-content","parameters":{"type":"object","title":"PandockerDocumentInput","required":["request_id","tenant_id","contents","input_file","input_format","output_format","output_file","reference_doc","filters","defaults_file"],"properties":{"filters":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Filters","description":"Список фильтров для пандока, отправляется либо строкой, если фильтр один, или списком, если их несколько"},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","description":"Контент документа в виде текста, допустим mardown, указаывается если нет input_file"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input File","description":"Путь до входного файла"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output File","description":"Путь до выходного файла"},"input_format":{"type":"string","title":"Input Format","description":"Формат входного документа"},"defaults_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Defaults File","description":"Путь до файла настроек pandoc"},"output_format":{"type":"string","title":"Output Format","description":"Формат выходного документа"},"reference_doc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Doc","description":"Путь до референсного файла для стилизации"}}},"description":"Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно."}},{"type":"function","function":{"name":"transcribe","parameters":{"type":"object","$defs":{"ScriberEngine":{"enum":["gigaam"],"type":"string","title":"ScriberEngine"}},"title":"ScriberInput","required":["request_id","paths","save_path"],"properties":{"paths":{"type":"array","items":{"type":"string"},"title":"Paths","description":"Пути до аудио/видео файлов"},"engine":{"$ref":"#/$defs/ScriberEngine","default":"gigaam","description":"Система транскрибации"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения транскрибации"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"diarization":{"type":"boolean","title":"Diarization","default":false,"description":"Флаг включения диаризации"}}},"description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"380d93f2-40c2-44cb-ac19-6fe51e822153","tool_choice":"required","template_path":"templates/planning/qwen_plan.yaml","tools_description":"\n**internet_search**: Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.\n**doc_vector_search**: Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.\n**completion**: Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.\n**page_download**: Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.\n**parse**: Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.\n**convert-content**: Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.\n**transcribe**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."},"name":"planning"},"PLAN_FORMED":{"data":{"think":null,"answer":"","values":{"cut_off_tkns":0,"prompt_tkn_len":1659,"words_per_token":0.0,"document_tkn_len":1659,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"12:10:57","finish":"12:11:02","duration":"4239.5ms"},"tenant_id":"nmg","request_id":"380d93f2-40c2-44cb-ac19-6fe51e822153","tool_calls":[{"name":"completion","arguments":"{\"request_id\": \"req_001\", \"task\": \"chitchat\", \"query\": \"привет.\", \"tenant_id\": \"default\"}"}]},"error":null,"status":"ok"},"WAITING_FOR_INTENT_CLASSIFIED":{"data":{"mode":null,"task":"intent","query":"привет","contents":null,"doc_path":null,"messages":null,"tenant_id":"nmg","request_id":"380d93f2-40c2-44cb-ac19-6fe51e822153","template_path":"templates/intent/qwen_intent.yaml","requirements_path":null},"name":"completion"},"INTENT_CLASSIFIED":{"data":{"think":null,"answer":"{\n  \"summary\": \"Приветствие пользователя\",\n  \"query\": \"\",\n  \"intent\": {\n    \"document_search\": 0.0,\n    \"internet_search\": 0.0,\n    \"audio_transcribe\": 0.0,\n    \"forget\": 0.0,\n    \"take\": 0.0,\n    \"attach\": 0.0,\n    \"convert\": 0.0,\n    \"chat\": 1.0,\n    \"predicted_intent\": \"chat\"\n  },\n  \"events\": [],\n  \"peoples\": [],\n  \"documents\": [],\n  \"entities\": []\n}","values":{"cut_off_tkns":0,"prompt_tkn_len":1718,"words_per_token":0.0,"document_tkn_len":1718,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"11:59:55","finish":"12:00:00","duration":"5082.6ms"},"tenant_id":"nmg","request_id":"380d93f2-40c2-44cb-ac19-6fe51e822153"},"error":null,"status":"ok","answer":{"summary":"Приветствие пользователя","query":"","intent":{"document_search":0.0,"internet_search":0.0,"audio_transcribe":0.0,"forget":0.0,"take":0.0,"attach":0.0,"convert":0.0,"chat":1.0,"predicted_intent":"chat"},"events":[],"peoples":[],"documents":[],"entities":[]}},"WAITING_FOR_INTENT_EXTRACTED":{"intent":"chat","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"380d93f2-40c2-44cb-ac19-6fe51e822153","user_message":"привет"},"INTENT_EXTRACTED":{"intent":"chat","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"380d93f2-40c2-44cb-ac19-6fe51e822153","user_message":"привет"},"WAITING_FOR_CHAT_ANSWER_PREPARED":{"data":{"mode":null,"task":"rag","query":"привет","contents":null,"doc_path":"data/context_data/38789850-a55f-45fe-990d-217b1fb9f88f/3787e516-e183-4eb1-aa95-15faf851b975/context.md","messages":null,"tenant_id":"nmg","request_id":"380d93f2-40c2-44cb-ac19-6fe51e822153","template_path":"templates/rag/qwen_qc_rag.yaml","requirements_path":null},"name":"completion"},"CHAT_ANSWER_PREPARED":{"data":{"think":null,"answer":"Привет!","values":{"cut_off_tkns":0,"prompt_tkn_len":120,"words_per_token":0.075,"document_tkn_len":120,"prompt_tkn_limit":34900,"document_words_len":9},"profile":{"start":"12:00:00","finish":"12:00:00","duration":"427.9ms"},"tenant_id":"nmg","request_id":"380d93f2-40c2-44cb-ac19-6fe51e822153"},"error":null,"status":"ok"}},"answer":"\nПривет!\n","answer_context":"","exec_time":0.0}
Partition: 0   Offset: 722   Key: empty   Timestamp: 2026-05-28 12:23:57.104 Headers: content-type: application/json, correlation_id: 80637eed-9bcc-408e-833f-19f162da25b8
 
{"request_id":"80637eed-9bcc-408e-833f-19f162da25b8","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","response_collection":{"REQUEST_ACCEPTED":{"query":"Найди в базе знаний что нибудь про MLOPS и Тестирование","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","admin_tag":true,"tenant_id":"nmg","request_id":"80637eed-9bcc-408e-833f-19f162da25b8","user_email":"p.slivnitsyn@zebrains.team","attached_files":[]},"WAITING_FOR_PLAN_FORMED":{"data":{"mode":2,"task":"rag","query":"Найди в базе знаний что нибудь про MLOPS и Тестирование","tools":[{"type":"function","function":{"name":"internet_search","parameters":{"type":"object","$defs":{"SearcherEngine":{"enum":["brave","searxng"],"type":"string","title":"SearcherEngine"}},"title":"SearcherInput","required":["request_id","question"],"properties":{"limit":{"type":"integer","title":"Limit","default":5,"description":"Количество результатов поиска"},"engine":{"$ref":"#/$defs/SearcherEngine","default":"searxng","description":"Система поиска"},"question":{"type":"string","title":"Question","description":"Строка для поиска"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно."}},{"type":"function","function":{"name":"doc_vector_index","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу."}},{"type":"function","function":{"name":"doc_vector_search","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний."}},{"type":"function","function":{"name":"completion","parameters":{"type":"object","$defs":{"APIMode":{"enum":[1,2,3],"type":"integer","title":"APIMode"},"MedullaTask":{"enum":["intent","rag","chat","contents","summarizer","checklist","chitchat","freeflight"],"type":"string","title":"MedullaTask"},"MedullaInputMessage":{"type":"object","title":"MedullaInputMessage","required":["role","content"],"properties":{"role":{"type":"string","title":"Role","description":"Роль: 'system', 'user', 'agent'"},"content":{"type":"string","title":"Content","description":"Содержимое сообщения"},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к директории с документом используемым для ответа"}}}},"title":"MedullaInput","required":["request_id","task","tenant_id"],"properties":{"mode":{"anyOf":[{"$ref":"#/$defs/APIMode"},{"type":"null"}],"default":null,"description":"Режим работы значение устанавливается внешними средствами (1, 2 или 3), по умолчанию 1."},"task":{"$ref":"#/$defs/MedullaTask","description":"Интеллектуальная задача выполняемая сервисом, 'intent' - Интент классификатор по запросу (query), 'rag' - ответ на запрос (query) по документу расположенному по пути (doc_path), 'chat' - ответ на запросы по логу сообщений messages, 'contents' - ответ на запрос (query) по приложенному контенту (contents), 'summarizer' - cуммаризация информации по запросу (query) документа расположенного по пути (doc_path), 'checklist' - проверка документа в директории по пути doc_path в соответствии с запросом (query) и шаблоном требований по пути (requirements_path), 'chitchat' - свободный ответ по запросу (query), 'freeflight' - Свободный формат (обязательно передать template_path)."},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","default":null,"description":"Текст запроса пользователя. Используется в задачах: intent, rag, contents, summarizer, checklist, chitchat."},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","default":null,"description":"Текстовый контент на основе которого формируется ответ. Используется в задачах: contents."},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к файлу на основе которого формируется ответ. Используется в задачах: rag, summarizer, checklist."},"messages":{"anyOf":[{"type":"array","items":{"$ref":"#/$defs/MedullaInputMessage"}},{"type":"null"}],"title":"Messages","default":null,"description":"Список сообщений на основе которых формируется ответ. Используется в задачах: chat."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"template_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Path","default":null,"description":"Путь к шаблону документа который используется для формирования ответа. Используется в задачах: checklist."},"requirements_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requirements Path","default":null,"description":"Путь к директории с файлом требований для формирования ответа. Используется в задачах: checklist."}}},"description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки."}},{"type":"function","function":{"name":"parse","parameters":{"type":"object","$defs":{"Mode":{"enum":["skip_parsed","always_rewrite"],"type":"string","title":"Mode"}},"title":"PaleographInput","required":["request_id","tenant_id","input_path","output_path","mode"],"properties":{"mode":{"$ref":"#/$defs/Mode","description":"Режим работы парсера: 'skip_parsed' если нужно пропустить уже обработанные файлы из входной директории при повторном вызове, 'always_rewrite' всегда обрабатывать все файлы находящиеся во входной директории."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_path":{"type":"string","title":"Input Path","description":"Путь до директории с файлами которые нужно обработать."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_path":{"type":"string","title":"Output Path","description":"Путь до директории в которую необходимо сложить результат."}}},"description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла."}},{"type":"function","function":{"name":"page_download","parameters":{"type":"object","$defs":{"SearcherSaveList":{"enum":["urls","svgs","images"],"type":"string","title":"SearcherSaveList"}},"title":"SearcherDownloadInput","required":["request_id","urls","names","save_path","save_list"],"properties":{"urls":{"type":"array","items":{"type":"string"},"title":"Urls","description":"Список ссылок на сайты для загрузки"},"names":{"type":"array","items":{"type":"string"},"title":"Names","description":"Список именов сайтов"},"save_list":{"type":"array","items":{"$ref":"#/$defs/SearcherSaveList"},"title":"Save List","description":"Перечисление того, что оставить при загрузке сайта"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения сайтов"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно."}},{"type":"function","function":{"name":"convert-content","parameters":{"type":"object","title":"PandockerDocumentInput","required":["request_id","tenant_id","contents","input_file","input_format","output_format","output_file","reference_doc","filters","defaults_file"],"properties":{"filters":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Filters","description":"Список фильтров для пандока, отправляется либо строкой, если фильтр один, или списком, если их несколько"},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","description":"Контент документа в виде текста, допустим mardown, указаывается если нет input_file"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input File","description":"Путь до входного файла"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output File","description":"Путь до выходного файла"},"input_format":{"type":"string","title":"Input Format","description":"Формат входного документа"},"defaults_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Defaults File","description":"Путь до файла настроек pandoc"},"output_format":{"type":"string","title":"Output Format","description":"Формат выходного документа"},"reference_doc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Doc","description":"Путь до референсного файла для стилизации"}}},"description":"Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно."}},{"type":"function","function":{"name":"transcribe","parameters":{"type":"object","$defs":{"ScriberEngine":{"enum":["gigaam"],"type":"string","title":"ScriberEngine"}},"title":"ScriberInput","required":["request_id","paths","save_path"],"properties":{"paths":{"type":"array","items":{"type":"string"},"title":"Paths","description":"Пути до аудио/видео файлов"},"engine":{"$ref":"#/$defs/ScriberEngine","default":"gigaam","description":"Система транскрибации"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения транскрибации"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"diarization":{"type":"boolean","title":"Diarization","default":false,"description":"Флаг включения диаризации"}}},"description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"80637eed-9bcc-408e-833f-19f162da25b8","tool_choice":"required","template_path":"templates/planning/qwen_plan.yaml","tools_description":"\n**internet_search**: Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.\n**doc_vector_search**: Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.\n**completion**: Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.\n**parse**: Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.\n**page_download**: Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.\n**convert-content**: Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.\n**transcribe**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."},"name":"planning"},"PLAN_FORMED":{"data":{"think":null,"answer":"","values":{"cut_off_tkns":0,"prompt_tkn_len":1693,"words_per_token":0.0,"document_tkn_len":1693,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"12:22:01","finish":"12:22:06","duration":"4796.0ms"},"tenant_id":"nmg","request_id":"80637eed-9bcc-408e-833f-19f162da25b8","tool_calls":[{"name":"doc_vector_search","arguments":"{}"}]},"error":null,"status":"ok"},"WAITING_FOR_INTENT_CLASSIFIED":{"data":{"mode":null,"task":"intent","query":"Найди в базе знаний что нибудь про MLOPS и Тестирование","contents":null,"doc_path":null,"messages":null,"tenant_id":"nmg","request_id":"80637eed-9bcc-408e-833f-19f162da25b8","template_path":"templates/intent/qwen_intent.yaml","requirements_path":null},"name":"completion"},"INTENT_CLASSIFIED":{"data":{"think":null,"answer":"{\n  \"summary\": \"Поиск информации в базе знаний по темам MLOPS и Тестирование\",\n  \"query\": \"MLOPS Тестирование\",\n  \"intent\": {\n    \"document_search\": 0.95,\n    \"internet_search\": 0.0,\n    \"audio_transcribe\": 0.0,\n    \"forget\": 0.0,\n    \"take\": 0.0,\n    \"attach\": 0.0,\n    \"convert\": 0.0,\n    \"chat\": 0.05,\n    \"predicted_intent\": \"document_search\"\n  },\n  \"events\": [],\n  \"peoples\": [],\n  \"documents\": [],\n  \"entities\": [\n    {\n      \"text\": \"MLOPS\",\n      \"label\": \"PRODUCT\",\n      \"start\": 33,\n      \"end\": 39,\n      \"confidence\": 0.9\n    },\n    {\n      \"text\": \"Тестирование\",\n      \"label\": \"EVENT\",\n      \"start\": 42,\n      \"end\": 54,\n      \"confidence\": 0.85\n    }\n  ]\n}","values":{"cut_off_tkns":0,"prompt_tkn_len":1753,"words_per_token":0.0,"document_tkn_len":1753,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"12:10:58","finish":"12:11:07","duration":"8748.8ms"},"tenant_id":"nmg","request_id":"80637eed-9bcc-408e-833f-19f162da25b8"},"error":null,"status":"ok","answer":{"summary":"Поиск информации в базе знаний по темам MLOPS и Тестирование","query":"MLOPS Тестирование","intent":{"document_search":0.95,"internet_search":0.0,"audio_transcribe":0.0,"forget":0.0,"take":0.0,"attach":0.0,"convert":0.0,"chat":0.05,"predicted_intent":"document_search"},"events":[],"peoples":[],"documents":[],"entities":[{"text":"MLOPS","label":"PRODUCT","start":33,"end":39,"confidence":0.9},{"text":"Тестирование","label":"EVENT","start":42,"end":54,"confidence":0.85}]}},"WAITING_FOR_INTENT_EXTRACTED":{"intent":"document_search","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"80637eed-9bcc-408e-833f-19f162da25b8","user_message":"Найди в базе знаний что нибудь про MLOPS и Тестирование"},"INTENT_EXTRACTED":{"intent":"document_search","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"80637eed-9bcc-408e-833f-19f162da25b8","user_message":"Найди в базе знаний что нибудь про MLOPS и Тестирование"},"WAITING_FOR_DOCS_RETRIEVED":{"data":{"task":["chunk","doclet","sense"],"limit":10,"question":"MLOPS Тестирование","treshold":0.01,"tenant_id":"nmg","request_id":"80637eed-9bcc-408e-833f-19f162da25b8"},"name":"doc_vector_search"},"DOCS_RETRIEVED":{"data":{"result":{"ranked":{"found":[{"id_doc":28,"content":null,"distance":0.08235485851764679,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.060822522888580956,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.059142790734767914,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.044927077988783516,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.04474156970779101,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":14,"content":null,"distance":0.04259274030725161,"id_chunk":null,"file_name":"10002.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":8,"content":null,"distance":0.04208103815714518,"id_chunk":null,"file_name":"10030.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":24,"content":null,"distance":0.038713318606217705,"id_chunk":null,"file_name":"10017.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.02380158503850301,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":57,"content":null,"distance":0.021585611005624134,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:11:08","finish":"12:11:08","duration":"5.0ms"},"collection":"ranked"},"chunk/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.08551321923732758,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.08223353326320648,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.07140475511550903,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.06997903436422348,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.06990161538124084,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":8,"content":null,"distance":0.06633831560611725,"id_chunk":null,"file_name":"10030.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.06178202107548714,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":24,"content":null,"distance":0.061658136546611786,"id_chunk":null,"file_name":"10017.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":14,"content":null,"distance":0.06147480383515358,"id_chunk":null,"file_name":"10002.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.05849185213446617,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:11:08","finish":"12:11:08","duration":"0.0ms"},"collection":"chunks"},"sense/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.08268055319786072,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.07210169732570648,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":57,"content":null,"distance":0.0647568330168724,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.06420909613370895,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":27,"content":null,"distance":0.03165856748819351,"id_chunk":null,"file_name":"10005.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":43,"content":null,"distance":0.024112407118082047,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":17,"content":null,"distance":0.02212800830602646,"id_chunk":null,"file_name":"10003.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":72,"content":null,"distance":0.019002800807356834,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440003.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":45,"content":null,"distance":0.01858600415289402,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":11,"content":null,"distance":0.016513027250766754,"id_chunk":null,"file_name":"10009.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:11:08","finish":"12:11:08","duration":"0.0ms"},"collection":"senses/sparse"},"doclet/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.07887080311775208,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":14,"content":null,"distance":0.06630341708660126,"id_chunk":null,"file_name":"10002.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.06487961858510971,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":8,"content":null,"distance":0.0599047988653183,"id_chunk":null,"file_name":"10030.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":24,"content":null,"distance":0.05448181927204132,"id_chunk":null,"file_name":"10017.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.05199117586016655,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":5,"content":null,"distance":0.04860774055123329,"id_chunk":null,"file_name":"10011.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.04827943816781044,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.04354465380311012,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.03961745277047157,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:11:08","finish":"12:11:08","duration":"0.0ms"},"collection":"doclets"}},"tenant_id":"nmg","request_id":"80637eed-9bcc-408e-833f-19f162da25b8"},"error":null,"status":"ok"}},"answer":"\nНайдены следующие документы (поиск 1): \n- 1. [10027.pdf](http://localhost/data/nmg/source/cands/10027.pdf)\n- 2. [transcrib_550e8400-e29b-41d4-a716-446655440101.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440101.txt)\n- 3. [retelling_550e8400-e29b-41d4-a716-446655440101.txt](http://localhost/data/nmg/source/meetings/retelling_550e8400-e29b-41d4-a716-446655440101.txt)\n- 4. [10015.docx](http://localhost/data/nmg/source/cands/10015.docx)\n- 5. [10024.pdf](http://localhost/data/nmg/source/cands/10024.pdf)\n- 6. [10002.docx](http://localhost/data/nmg/source/cands/10002.docx)\n- 7. [10030.pdf](http://localhost/data/nmg/source/cands/10030.pdf)\n- 8. [10017.docx](http://localhost/data/nmg/source/cands/10017.docx)\n- 9. [10004.docx](http://localhost/data/nmg/source/cands/10004.docx)\n- 10. [protocol_550e8400-e29b-41d4-a716-446655440011.txt](http://localhost/data/nmg/source/meetings/protocol_550e8400-e29b-41d4-a716-446655440011.txt)\n","answer_context":"\n<ПОИСК1>\n\nНайдены следующие документы: \n- 1. 10027.pdf  \n- 2. transcrib_550e8400-e29b-41d4-a716-446655440101.txt  \n- 3. retelling_550e8400-e29b-41d4-a716-446655440101.txt  \n- 4. 10015.docx  \n- 5. 10024.pdf  \n- 6. 10002.docx  \n- 7. 10030.pdf  \n- 8. 10017.docx  \n- 9. 10004.docx  \n- 10. protocol_550e8400-e29b-41d4-a716-446655440011.txt  \n\n</ПОИСК1>\n","exec_time":0.0}
Partition: 0   Offset: 723   Key: empty   Timestamp: 2026-05-28 12:24:21.798 Headers: content-type: application/json, correlation_id: 63052d85-55a3-4036-9521-7ca074caca4e
 
{"request_id":"63052d85-55a3-4036-9521-7ca074caca4e","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","response_collection":{"REQUEST_ACCEPTED":{"query":"Найди в базе знаний что нибудь про MLOPS и Тестирование","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","admin_tag":true,"tenant_id":"nmg","request_id":"63052d85-55a3-4036-9521-7ca074caca4e","user_email":"p.slivnitsyn@zebrains.team","attached_files":[]},"WAITING_FOR_PLAN_FORMED":{"data":{"mode":2,"task":"rag","query":"Найди в базе знаний что нибудь про MLOPS и Тестирование","tools":[{"type":"function","function":{"name":"internet_search","parameters":{"type":"object","$defs":{"SearcherEngine":{"enum":["brave","searxng"],"type":"string","title":"SearcherEngine"}},"title":"SearcherInput","required":["request_id","question"],"properties":{"limit":{"type":"integer","title":"Limit","default":5,"description":"Количество результатов поиска"},"engine":{"$ref":"#/$defs/SearcherEngine","default":"searxng","description":"Система поиска"},"question":{"type":"string","title":"Question","description":"Строка для поиска"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно."}},{"type":"function","function":{"name":"doc_vector_index","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу."}},{"type":"function","function":{"name":"doc_vector_search","parameters":{"type":"object","$defs":{"DocumentSearchTask":{"enum":["path","hybrid_chunk","hybrid_doclet","chunk","doclet","sense","jsondocs"],"type":"string","title":"DocumentSearchTask"}},"title":"HippocampusDocumentInput","required":["request_id","tenant_id","question","treshold","limit","task"],"properties":{"task":{"type":"array","items":{"$ref":"#/$defs/DocumentSearchTask"},"title":"Task","description":"Задачи поиска которые нужно выполнить.\n        'path' - Только по пути/имени файла (docs/dence),\n        'hybrid_chunk' - По пути/имени файла и содержимому чанка (chunks/hybrid),\n        'hybrid_doclet' - По пути/имени файла и содержимому доклета (doclets/hybrid),\n        'chunk' - По содержимому чанка (chunks/sparce),\n        'doclet' - По содержимому доклета (doclets/sparce),\n        'jsondocs' - По содержимому jsondocs (jsondocs/sparce). Можно выбирать от 1 до всех одновременно."},"limit":{"type":"integer","title":"Limit","description":"Лимит длины списка выдаваемых в результате документов."},"question":{"type":"string","title":"Question","description":"Вопрос пользователя "},"treshold":{"type":"number","title":"Treshold","description":"Пороговое значение ниже которого докоменты не учитываются"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний."}},{"type":"function","function":{"name":"completion","parameters":{"type":"object","$defs":{"APIMode":{"enum":[1,2,3],"type":"integer","title":"APIMode"},"MedullaTask":{"enum":["intent","rag","chat","contents","summarizer","checklist","chitchat","freeflight"],"type":"string","title":"MedullaTask"},"MedullaInputMessage":{"type":"object","title":"MedullaInputMessage","required":["role","content"],"properties":{"role":{"type":"string","title":"Role","description":"Роль: 'system', 'user', 'agent'"},"content":{"type":"string","title":"Content","description":"Содержимое сообщения"},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к директории с документом используемым для ответа"}}}},"title":"MedullaInput","required":["request_id","task","tenant_id"],"properties":{"mode":{"anyOf":[{"$ref":"#/$defs/APIMode"},{"type":"null"}],"default":null,"description":"Режим работы значение устанавливается внешними средствами (1, 2 или 3), по умолчанию 1."},"task":{"$ref":"#/$defs/MedullaTask","description":"Интеллектуальная задача выполняемая сервисом, 'intent' - Интент классификатор по запросу (query), 'rag' - ответ на запрос (query) по документу расположенному по пути (doc_path), 'chat' - ответ на запросы по логу сообщений messages, 'contents' - ответ на запрос (query) по приложенному контенту (contents), 'summarizer' - cуммаризация информации по запросу (query) документа расположенного по пути (doc_path), 'checklist' - проверка документа в директории по пути doc_path в соответствии с запросом (query) и шаблоном требований по пути (requirements_path), 'chitchat' - свободный ответ по запросу (query), 'freeflight' - Свободный формат (обязательно передать template_path)."},"query":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Query","default":null,"description":"Текст запроса пользователя. Используется в задачах: intent, rag, contents, summarizer, checklist, chitchat."},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","default":null,"description":"Текстовый контент на основе которого формируется ответ. Используется в задачах: contents."},"doc_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Doc Path","default":null,"description":"Путь к файлу на основе которого формируется ответ. Используется в задачах: rag, summarizer, checklist."},"messages":{"anyOf":[{"type":"array","items":{"$ref":"#/$defs/MedullaInputMessage"}},{"type":"null"}],"title":"Messages","default":null,"description":"Список сообщений на основе которых формируется ответ. Используется в задачах: chat."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"template_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Template Path","default":null,"description":"Путь к шаблону документа который используется для формирования ответа. Используется в задачах: checklist."},"requirements_path":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Requirements Path","default":null,"description":"Путь к директории с файлом требований для формирования ответа. Используется в задачах: checklist."}}},"description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки."}},{"type":"function","function":{"name":"parse","parameters":{"type":"object","$defs":{"Mode":{"enum":["skip_parsed","always_rewrite"],"type":"string","title":"Mode"}},"title":"PaleographInput","required":["request_id","tenant_id","input_path","output_path","mode"],"properties":{"mode":{"$ref":"#/$defs/Mode","description":"Режим работы парсера: 'skip_parsed' если нужно пропустить уже обработанные файлы из входной директории при повторном вызове, 'always_rewrite' всегда обрабатывать все файлы находящиеся во входной директории."},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_path":{"type":"string","title":"Input Path","description":"Путь до директории с файлами которые нужно обработать."},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_path":{"type":"string","title":"Output Path","description":"Путь до директории в которую необходимо сложить результат."}}},"description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла."}},{"type":"function","function":{"name":"page_download","parameters":{"type":"object","$defs":{"SearcherSaveList":{"enum":["urls","svgs","images"],"type":"string","title":"SearcherSaveList"}},"title":"SearcherDownloadInput","required":["request_id","urls","names","save_path","save_list"],"properties":{"urls":{"type":"array","items":{"type":"string"},"title":"Urls","description":"Список ссылок на сайты для загрузки"},"names":{"type":"array","items":{"type":"string"},"title":"Names","description":"Список именов сайтов"},"save_list":{"type":"array","items":{"$ref":"#/$defs/SearcherSaveList"},"title":"Save List","description":"Перечисление того, что оставить при загрузке сайта"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения сайтов"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"}}},"description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно."}},{"type":"function","function":{"name":"convert-content","parameters":{"type":"object","title":"PandockerDocumentInput","required":["request_id","tenant_id","contents","input_file","input_format","output_format","output_file","reference_doc","filters","defaults_file"],"properties":{"filters":{"anyOf":[{"type":"string"},{"type":"array","items":{"type":"string"}},{"type":"null"}],"title":"Filters","description":"Список фильтров для пандока, отправляется либо строкой, если фильтр один, или списком, если их несколько"},"contents":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Contents","description":"Контент документа в виде текста, допустим mardown, указаывается если нет input_file"},"tenant_id":{"type":"string","title":"Tenant Id","description":"ID тенанта (домена)."},"input_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Input File","description":"Путь до входного файла"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"output_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output File","description":"Путь до выходного файла"},"input_format":{"type":"string","title":"Input Format","description":"Формат входного документа"},"defaults_file":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Defaults File","description":"Путь до файла настроек pandoc"},"output_format":{"type":"string","title":"Output Format","description":"Формат выходного документа"},"reference_doc":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reference Doc","description":"Путь до референсного файла для стилизации"}}},"description":"Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно."}},{"type":"function","function":{"name":"transcribe","parameters":{"type":"object","$defs":{"ScriberEngine":{"enum":["gigaam"],"type":"string","title":"ScriberEngine"}},"title":"ScriberInput","required":["request_id","paths","save_path"],"properties":{"paths":{"type":"array","items":{"type":"string"},"title":"Paths","description":"Пути до аудио/видео файлов"},"engine":{"$ref":"#/$defs/ScriberEngine","default":"gigaam","description":"Система транскрибации"},"save_path":{"type":"string","title":"Save Path","description":"Путь сохранения транскрибации"},"request_id":{"type":"string","title":"Request Id","description":"Request ID to trace request"},"diarization":{"type":"boolean","title":"Diarization","default":false,"description":"Флаг включения диаризации"}}},"description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"63052d85-55a3-4036-9521-7ca074caca4e","tool_choice":"required","template_path":"templates/planning/qwen_plan.yaml","tools_description":"\n**internet_search**: Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.\n**doc_vector_search**: Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.\n**completion**: Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.\n**parse**: Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.\n**page_download**: Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.\n**convert-content**: Конвертация контента между различными форматами документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'конвертируй файл', 'преобразуй в PDF/DOCX/HTML', 'сохрани как .docx', 'сделай из markdown PDF', а также для генерации документов с применением шаблонов стилей (reference_doc), пользовательских Pandoc-фильтров или YAML-конфигов (defaults_file). Поддерживаемые форматы: txt, html, markdown, ipynb, odt, pdf, docx, rst, latex, epub. Для расширенных форматов (pdf, docx, rst, latex, epub) ОБЯЗАТЕЛЬНО указывать полный путь + имя файла + расширение (например, '/output/report.pdf'). Для PDF требуется предустановленный TeX Live. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.\n**transcribe**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."},"name":"planning"},"PLAN_FORMED":{"data":{"think":null,"answer":"","values":{"cut_off_tkns":0,"prompt_tkn_len":1693,"words_per_token":0.0,"document_tkn_len":1693,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"12:24:08","finish":"12:24:11","duration":"2767.0ms"},"tenant_id":"nmg","request_id":"63052d85-55a3-4036-9521-7ca074caca4e","tool_calls":[{"name":"doc_vector_search","arguments":"{}"}]},"error":null,"status":"ok"},"WAITING_FOR_INTENT_CLASSIFIED":{"data":{"mode":null,"task":"intent","query":"Найди в базе знаний что нибудь про MLOPS и Тестирование","contents":null,"doc_path":null,"messages":null,"tenant_id":"nmg","request_id":"63052d85-55a3-4036-9521-7ca074caca4e","template_path":"templates/intent/qwen_intent.yaml","requirements_path":null},"name":"completion"},"INTENT_CLASSIFIED":{"data":{"think":null,"answer":"{\n  \"summary\": \"Поиск информации в базе знаний по темам MLOPS и Тестирование\",\n  \"query\": \"MLOPS Тестирование\",\n  \"intent\": {\n    \"document_search\": 0.95,\n    \"internet_search\": 0.0,\n    \"audio_transcribe\": 0.0,\n    \"forget\": 0.0,\n    \"take\": 0.0,\n    \"attach\": 0.0,\n    \"convert\": 0.0,\n    \"chat\": 0.05,\n    \"predicted_intent\": \"document_search\"\n  },\n  \"events\": [],\n  \"peoples\": [],\n  \"documents\": [],\n  \"entities\": [\n    {\n      \"text\": \"MLOPS\",\n      \"label\": \"PRODUCT\",\n      \"start\": 33,\n      \"end\": 39,\n      \"confidence\": 0.9\n    },\n    {\n      \"text\": \"Тестирование\",\n      \"label\": \"EVENT\",\n      \"start\": 42,\n      \"end\": 54,\n      \"confidence\": 0.85\n    }\n  ]\n}","values":{"cut_off_tkns":0,"prompt_tkn_len":1753,"words_per_token":0.0,"document_tkn_len":1753,"prompt_tkn_limit":34900,"document_words_len":0},"profile":{"start":"12:13:04","finish":"12:13:13","duration":"8734.3ms"},"tenant_id":"nmg","request_id":"63052d85-55a3-4036-9521-7ca074caca4e"},"error":null,"status":"ok","answer":{"summary":"Поиск информации в базе знаний по темам MLOPS и Тестирование","query":"MLOPS Тестирование","intent":{"document_search":0.95,"internet_search":0.0,"audio_transcribe":0.0,"forget":0.0,"take":0.0,"attach":0.0,"convert":0.0,"chat":0.05,"predicted_intent":"document_search"},"events":[],"peoples":[],"documents":[],"entities":[{"text":"MLOPS","label":"PRODUCT","start":33,"end":39,"confidence":0.9},{"text":"Тестирование","label":"EVENT","start":42,"end":54,"confidence":0.85}]}},"WAITING_FOR_INTENT_EXTRACTED":{"intent":"document_search","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"63052d85-55a3-4036-9521-7ca074caca4e","user_message":"Найди в базе знаний что нибудь про MLOPS и Тестирование"},"INTENT_EXTRACTED":{"intent":"document_search","chat_id":"3787e516-e183-4eb1-aa95-15faf851b975","user_id":"38789850-a55f-45fe-990d-217b1fb9f88f","request_id":"63052d85-55a3-4036-9521-7ca074caca4e","user_message":"Найди в базе знаний что нибудь про MLOPS и Тестирование"},"WAITING_FOR_DOCS_RETRIEVED":{"data":{"task":["chunk","doclet","sense"],"limit":10,"question":"MLOPS Тестирование","treshold":0.01,"tenant_id":"nmg","request_id":"63052d85-55a3-4036-9521-7ca074caca4e"},"name":"doc_vector_search"},"DOCS_RETRIEVED":{"data":{"result":{"ranked":{"found":[{"id_doc":28,"content":null,"distance":0.08235485851764679,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.060822522888580956,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.059142790734767914,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.044927077988783516,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.04474156970779101,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":14,"content":null,"distance":0.04259274030725161,"id_chunk":null,"file_name":"10002.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":8,"content":null,"distance":0.04208103815714518,"id_chunk":null,"file_name":"10030.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":24,"content":null,"distance":0.038713318606217705,"id_chunk":null,"file_name":"10017.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.02380158503850301,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":57,"content":null,"distance":0.021585611005624134,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:13:14","finish":"12:13:14","duration":"6.8ms"},"collection":"ranked"},"chunk/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.08551321923732758,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.08223353326320648,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":30,"content":null,"distance":0.07140475511550903,"id_chunk":null,"file_name":"10004.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.06997903436422348,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.06990161538124084,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":8,"content":null,"distance":0.06633831560611725,"id_chunk":null,"file_name":"10030.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.06178202107548714,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":24,"content":null,"distance":0.061658136546611786,"id_chunk":null,"file_name":"10017.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":14,"content":null,"distance":0.06147480383515358,"id_chunk":null,"file_name":"10002.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":29,"content":null,"distance":0.05849185213446617,"id_chunk":null,"file_name":"10025.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:13:14","finish":"12:13:14","duration":"0.0ms"},"collection":"chunks"},"sense/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.08268055319786072,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.07210169732570648,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":57,"content":null,"distance":0.0647568330168724,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440011.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.06420909613370895,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":27,"content":null,"distance":0.03165856748819351,"id_chunk":null,"file_name":"10005.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":43,"content":null,"distance":0.024112407118082047,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":17,"content":null,"distance":0.02212800830602646,"id_chunk":null,"file_name":"10003.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":72,"content":null,"distance":0.019002800807356834,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440003.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":45,"content":null,"distance":0.01858600415289402,"id_chunk":null,"file_name":"protocol_550e8400-e29b-41d4-a716-446655440002.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":11,"content":null,"distance":0.016513027250766754,"id_chunk":null,"file_name":"10009.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:13:14","finish":"12:13:14","duration":"0.0ms"},"collection":"senses/sparse"},"doclet/sparse":{"found":[{"id_doc":28,"content":null,"distance":0.07887080311775208,"id_chunk":null,"file_name":"10027.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":14,"content":null,"distance":0.06630341708660126,"id_chunk":null,"file_name":"10002.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":26,"content":null,"distance":0.06487961858510971,"id_chunk":null,"file_name":"10015.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":8,"content":null,"distance":0.0599047988653183,"id_chunk":null,"file_name":"10030.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":24,"content":null,"distance":0.05448181927204132,"id_chunk":null,"file_name":"10017.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":15,"content":null,"distance":0.05199117586016655,"id_chunk":null,"file_name":"10024.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":5,"content":null,"distance":0.04860774055123329,"id_chunk":null,"file_name":"10011.docx.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":64,"content":null,"distance":0.04827943816781044,"id_chunk":null,"file_name":"transcrib_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":68,"content":null,"distance":0.04354465380311012,"id_chunk":null,"file_name":"retelling_550e8400-e29b-41d4-a716-446655440101.txt.md","file_path":"meetings","id_doclet":null,"created_at":null,"file_datetime":null},{"id_doc":12,"content":null,"distance":0.03961745277047157,"id_chunk":null,"file_name":"10026.pdf.md","file_path":"cands","id_doclet":null,"created_at":null,"file_datetime":null}],"profile":{"start":"12:13:14","finish":"12:13:14","duration":"0.0ms"},"collection":"doclets"}},"tenant_id":"nmg","request_id":"63052d85-55a3-4036-9521-7ca074caca4e"},"error":null,"status":"ok"}},"answer":"\nНайдены следующие документы (поиск 2): \n- 1. [10027.pdf](http://localhost/data/nmg/source/cands/10027.pdf)\n- 2. [transcrib_550e8400-e29b-41d4-a716-446655440101.txt](http://localhost/data/nmg/source/meetings/transcrib_550e8400-e29b-41d4-a716-446655440101.txt)\n- 3. [retelling_550e8400-e29b-41d4-a716-446655440101.txt](http://localhost/data/nmg/source/meetings/retelling_550e8400-e29b-41d4-a716-446655440101.txt)\n- 4. [10015.docx](http://localhost/data/nmg/source/cands/10015.docx)\n- 5. [10024.pdf](http://localhost/data/nmg/source/cands/10024.pdf)\n- 6. [10002.docx](http://localhost/data/nmg/source/cands/10002.docx)\n- 7. [10030.pdf](http://localhost/data/nmg/source/cands/10030.pdf)\n- 8. [10017.docx](http://localhost/data/nmg/source/cands/10017.docx)\n- 9. [10004.docx](http://localhost/data/nmg/source/cands/10004.docx)\n- 10. [protocol_550e8400-e29b-41d4-a716-446655440011.txt](http://localhost/data/nmg/source/meetings/protocol_550e8400-e29b-41d4-a716-446655440011.txt)\n","answer_context":"\n<ПОИСК2>\n\nНайдены следующие документы: \n- 1. 10027.pdf  \n- 2. transcrib_550e8400-e29b-41d4-a716-446655440101.txt  \n- 3. retelling_550e8400-e29b-41d4-a716-446655440101.txt  \n- 4. 10015.docx  \n- 5. 10024.pdf  \n- 6. 10002.docx  \n- 7. 10030.pdf  \n- 8. 10017.docx  \n- 9. 10004.docx  \n- 10. protocol_550e8400-e29b-41d4-a716-446655440011.txt  \n\n</ПОИСК2>\n","exec_time":0.0}