Topic Messages: medulla-fs0-answer-local-in

Partition: 0   Offset: 0   Key: empty   Timestamp: 2026-05-22 04:59:50.289 Headers: content-type: application/json, correlation_id: 784b2399-351f-4a05-8602-0af3d62abfa0, reply_to: medulla-fs0-answer-local-in
 
{"name":"completion","data":{"mode":1,"task":"intent","query":"привет","contents":null,"doc_path":null,"messages":null,"tenant_id":"zebrains","request_id":"784b2399-351f-4a05-8602-0af3d62abfa0","template_path":null,"requirements_path":null}}
Partition: 0   Offset: 1   Key: empty   Timestamp: 2026-05-22 05:07:45.886 Headers: content-type: application/json, correlation_id: c3465a33-3ec4-406b-a3ca-9246a7d0a641, reply_to: medulla-fs0-answer-local-in
 
{"name":"completion","data":{"mode":1,"task":"intent","query":"привет","contents":null,"doc_path":null,"messages":null,"tenant_id":"zebrains","request_id":"c3465a33-3ec4-406b-a3ca-9246a7d0a641","template_path":null,"requirements_path":null}}
Partition: 0   Offset: 2   Key: empty   Timestamp: 2026-05-22 05:21:00.436 Headers: content-type: application/json, correlation_id: ef89b0f7-9e03-4fb5-a955-165600c0b61e, reply_to: medulla-fs0-answer-local-in
 
{"name":"completion","data":{"mode":1,"task":"intent","query":"привет\n\nДЛЯ СОСТАВЛЕНИЯ ПЛАНА У ТЕБЯ ЕСТЬ СЛЕДУЮЩИЕ TOOLS:\n\n**completion**: Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.\n**page_download**: \n**doc_vector_index**: \n**parse**: \n**internet_search**: \n**doc_vector_search**: \n**transcribe**: \n**convert-content**: Converts content between different formats. Transforms input content from any supported format into the specified output format.\n\n🚨 CRITICAL REQUIREMENTS - PLEASE READ:\n1. PDF Conversion:\n   * You MUST install TeX Live BEFORE attempting PDF conversion:\n   * Ubuntu/Debian: `sudo apt-get install texlive-xetex`\n   * macOS: `brew install texlive`\n   * Windows: Install MiKTeX or TeX Live from https://miktex.org/ or https://tug.org/texlive/\n   * PDF conversion will FAIL without this installation\n\n2. File Paths - EXPLICIT REQUIREMENTS:\n   * When asked to save or convert to a file, you MUST provide:\n     - Complete directory path\n     - Filename\n     - File extension\n   * Example request: 'Write a story and save as PDF'\n   * You MUST specify: '/path/to/story.pdf' or 'C:\\Documents\\story.pdf'\n   * The tool will NOT automatically generate filenames or extensions\n\n3. File Location After Conversion:\n   * After successful conversion, the tool will display the exact path where the file is saved\n   * Look for message: 'Content successfully converted and saved to: [file_path]'\n   * You can find your converted file at the specified location\n   * If no path is specified, files may be saved in system temp directory (/tmp/ on Unix systems)\n   * For better control, always provide explicit output file paths\n\nSupported formats:- Basic: txt, html, markdown, ipynb, odt- Advanced (REQUIRE complete file paths): pdf, docx, rst, latex, epub✅ CORRECT Usage Examples:\n1. 'Convert this text to HTML' (basic conversion)\n   - Tool will show converted content\n\n2. 'Save this text as PDF at /documents/story.pdf'\n   - Correct: specifies path + filename + extension\n   - Tool will show: 'Content successfully converted and saved to: /documents/story.pdf'\n\n❌ INCORRECT Usage Examples:\n1. 'Save this as PDF in /documents/'\n   - Missing filename and extension\n2. 'Convert to PDF'\n   - Missing complete file path\n\nWhen requesting conversion, ALWAYS specify:\n1. The content or input file\n2. The desired output format\n3. For advanced formats: complete output path + filename + extension\nExample: 'Convert this markdown to PDF and save as /path/to/output.pdf'\n\n🎨 DOCX STYLING (NEW FEATURE):\n4. Custom DOCX Styling with Reference Documents:\n   * Use reference_doc parameter to apply professional styling to DOCX output\n   * Create custom templates with your branding, fonts, and formatting\n   * Perfect for corporate reports, academic papers, and professional documents\n   * Example: 'Convert this report to DOCX using /templates/corporate-style.docx as reference and save as /reports/Q4-report.docx'\n\n🎯 PANDOC FILTERS (NEW FEATURE):\n5. Pandoc Filter Support:\n   * Use filters parameter to apply custom Pandoc filters during conversion\n   * Filters are Python scripts that modify document content during processing\n   * Perfect for Mermaid diagram conversion, custom styling, and content transformation\n   * Example: 'Convert this markdown with mermaid diagrams to DOCX using filters=[\"./filters/mermaid-to-png-vibrant.py\"] and save as /reports/diagram-report.docx'\n\n📋 Creating Reference Documents:\n   * Generate template: pandoc -o template.docx --print-default-data-file reference.docx\n   * Customize in Word/LibreOffice: fonts, colors, headers, margins\n   * Use for consistent branding across all documents\n\n📋 Filter Requirements:\n   * Filters must be executable Python scripts\n   * Use absolute paths or paths relative to current working directory\n   * Filters are applied in the order specified\n   * Common filters: mermaid conversion, color processing, table formatting\n\n📄 Defaults File Support (NEW FEATURE):\n7. Pandoc Defaults File Support:\n   * Use defaults_file parameter to specify a YAML configuration file\n   * Similar to using pandoc -d option in the command line\n   * Allows setting multiple options in a single file\n   * Options in the defaults file can include filters, reference-doc, and other Pandoc options\n   * Example: 'Convert this markdown to DOCX using defaults_file=\"/path/to/defaults.yaml\" and save as /reports/report.docx'\n\nNote: After conversion, always check the success message for the exact file location.","contents":null,"doc_path":null,"messages":null,"tenant_id":"zebrains","request_id":"ef89b0f7-9e03-4fb5-a955-165600c0b61e","template_path":null,"requirements_path":null}}
Partition: 0   Offset: 3   Key: empty   Timestamp: 2026-05-22 05:21:10.238 Headers: content-type: application/json, correlation_id: ef89b0f7-9e03-4fb5-a955-165600c0b61e
 
{"status":"ok","data":{"request_id":"ef89b0f7-9e03-4fb5-a955-165600c0b61e","tenant_id":"zebrains","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}","profile":{"duration":"8923.7ms","start":"05:21:00","finish":"05:21:09"},"think":null,"values":{"prompt_tkn_limit":34900,"prompt_tkn_len":4062,"document_tkn_len":4062,"document_words_len":0,"cut_off_tkns":0,"words_per_token":0.0}},"error":null}
Partition: 0   Offset: 4   Key: empty   Timestamp: 2026-05-22 06:42:31.451 Headers: content-type: application/json, correlation_id: cea66a67-0673-4cd9-8aab-8bc8f0c76778, reply_to: medulla-fs0-answer-local-in
 
{"name":"completion","data":{"mode":1,"task":"rag","query":"привет\n\nДЛЯ СОСТАВЛЕНИЯ ПЛАНА У ТЕБЯ ЕСТЬ СЛЕДУЮЩИЕ TOOLS:\n\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**internet_search**: Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.\n**transcribe**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.\n**convert-content**: Converts content between different formats. Transforms input content from any supported format into the specified output format.\n\n🚨 CRITICAL REQUIREMENTS - PLEASE READ:\n1. PDF Conversion:\n   * You MUST install TeX Live BEFORE attempting PDF conversion:\n   * Ubuntu/Debian: `sudo apt-get install texlive-xetex`\n   * macOS: `brew install texlive`\n   * Windows: Install MiKTeX or TeX Live from https://miktex.org/ or https://tug.org/texlive/\n   * PDF conversion will FAIL without this installation\n\n2. File Paths - EXPLICIT REQUIREMENTS:\n   * When asked to save or convert to a file, you MUST provide:\n     - Complete directory path\n     - Filename\n     - File extension\n   * Example request: 'Write a story and save as PDF'\n   * You MUST specify: '/path/to/story.pdf' or 'C:\\Documents\\story.pdf'\n   * The tool will NOT automatically generate filenames or extensions\n\n3. File Location After Conversion:\n   * After successful conversion, the tool will display the exact path where the file is saved\n   * Look for message: 'Content successfully converted and saved to: [file_path]'\n   * You can find your converted file at the specified location\n   * If no path is specified, files may be saved in system temp directory (/tmp/ on Unix systems)\n   * For better control, always provide explicit output file paths\n\nSupported formats:- Basic: txt, html, markdown, ipynb, odt- Advanced (REQUIRE complete file paths): pdf, docx, rst, latex, epub✅ CORRECT Usage Examples:\n1. 'Convert this text to HTML' (basic conversion)\n   - Tool will show converted content\n\n2. 'Save this text as PDF at /documents/story.pdf'\n   - Correct: specifies path + filename + extension\n   - Tool will show: 'Content successfully converted and saved to: /documents/story.pdf'\n\n❌ INCORRECT Usage Examples:\n1. 'Save this as PDF in /documents/'\n   - Missing filename and extension\n2. 'Convert to PDF'\n   - Missing complete file path\n\nWhen requesting conversion, ALWAYS specify:\n1. The content or input file\n2. The desired output format\n3. For advanced formats: complete output path + filename + extension\nExample: 'Convert this markdown to PDF and save as /path/to/output.pdf'\n\n🎨 DOCX STYLING (NEW FEATURE):\n4. Custom DOCX Styling with Reference Documents:\n   * Use reference_doc parameter to apply professional styling to DOCX output\n   * Create custom templates with your branding, fonts, and formatting\n   * Perfect for corporate reports, academic papers, and professional documents\n   * Example: 'Convert this report to DOCX using /templates/corporate-style.docx as reference and save as /reports/Q4-report.docx'\n\n🎯 PANDOC FILTERS (NEW FEATURE):\n5. Pandoc Filter Support:\n   * Use filters parameter to apply custom Pandoc filters during conversion\n   * Filters are Python scripts that modify document content during processing\n   * Perfect for Mermaid diagram conversion, custom styling, and content transformation\n   * Example: 'Convert this markdown with mermaid diagrams to DOCX using filters=[\"./filters/mermaid-to-png-vibrant.py\"] and save as /reports/diagram-report.docx'\n\n📋 Creating Reference Documents:\n   * Generate template: pandoc -o template.docx --print-default-data-file reference.docx\n   * Customize in Word/LibreOffice: fonts, colors, headers, margins\n   * Use for consistent branding across all documents\n\n📋 Filter Requirements:\n   * Filters must be executable Python scripts\n   * Use absolute paths or paths relative to current working directory\n   * Filters are applied in the order specified\n   * Common filters: mermaid conversion, color processing, table formatting\n\n📄 Defaults File Support (NEW FEATURE):\n7. Pandoc Defaults File Support:\n   * Use defaults_file parameter to specify a YAML configuration file\n   * Similar to using pandoc -d option in the command line\n   * Allows setting multiple options in a single file\n   * Options in the defaults file can include filters, reference-doc, and other Pandoc options\n   * Example: 'Convert this markdown to DOCX using defaults_file=\"/path/to/defaults.yaml\" and save as /reports/report.docx'\n\nNote: After conversion, always check the success message for the exact file location.\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","contents":null,"doc_path":null,"messages":null,"tenant_id":"zebrains","request_id":"cea66a67-0673-4cd9-8aab-8bc8f0c76778","template_path":null,"requirements_path":null}}
Partition: 0   Offset: 5   Key: empty   Timestamp: 2026-05-22 06:42:37.339 Headers: content-type: application/json, correlation_id: cea66a67-0673-4cd9-8aab-8bc8f0c76778
 
{"status":"ok","data":{"request_id":"cea66a67-0673-4cd9-8aab-8bc8f0c76778","tenant_id":"zebrains","answer":"Привет! Чем я могу вам помочь?","profile":{"duration":"5389.0ms","start":"06:42:31","finish":"06:42:36"},"think":null,"values":{"prompt_tkn_limit":34900,"prompt_tkn_len":3800,"document_tkn_len":3800,"document_words_len":0,"cut_off_tkns":0,"words_per_token":0.0}},"error":null}
Partition: 0   Offset: 6   Key: empty   Timestamp: 2026-05-22 06:49:56.868 Headers: content-type: application/json, correlation_id: a2cb628c-736c-4122-a248-49842bb6cdfb, reply_to: medulla-fs0-answer-local-out
 
{"name":"completion","data":{"mode":1,"task":"rag","query":"привет\n\nДЛЯ СОСТАВЛЕНИЯ ПЛАНА У ТЕБЯ ЕСТЬ СЛЕДУЮЩИЕ TOOLS:\n\n**completion**: Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.\n**page_download**: Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.\n**internet_search**: Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.\n**parse**: Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.\n**transcribe**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.\n**convert-content**: Converts content between different formats. Transforms input content from any supported format into the specified output format.\n\n🚨 CRITICAL REQUIREMENTS - PLEASE READ:\n1. PDF Conversion:\n   * You MUST install TeX Live BEFORE attempting PDF conversion:\n   * Ubuntu/Debian: `sudo apt-get install texlive-xetex`\n   * macOS: `brew install texlive`\n   * Windows: Install MiKTeX or TeX Live from https://miktex.org/ or https://tug.org/texlive/\n   * PDF conversion will FAIL without this installation\n\n2. File Paths - EXPLICIT REQUIREMENTS:\n   * When asked to save or convert to a file, you MUST provide:\n     - Complete directory path\n     - Filename\n     - File extension\n   * Example request: 'Write a story and save as PDF'\n   * You MUST specify: '/path/to/story.pdf' or 'C:\\Documents\\story.pdf'\n   * The tool will NOT automatically generate filenames or extensions\n\n3. File Location After Conversion:\n   * After successful conversion, the tool will display the exact path where the file is saved\n   * Look for message: 'Content successfully converted and saved to: [file_path]'\n   * You can find your converted file at the specified location\n   * If no path is specified, files may be saved in system temp directory (/tmp/ on Unix systems)\n   * For better control, always provide explicit output file paths\n\nSupported formats:- Basic: txt, html, markdown, ipynb, odt- Advanced (REQUIRE complete file paths): pdf, docx, rst, latex, epub✅ CORRECT Usage Examples:\n1. 'Convert this text to HTML' (basic conversion)\n   - Tool will show converted content\n\n2. 'Save this text as PDF at /documents/story.pdf'\n   - Correct: specifies path + filename + extension\n   - Tool will show: 'Content successfully converted and saved to: /documents/story.pdf'\n\n❌ INCORRECT Usage Examples:\n1. 'Save this as PDF in /documents/'\n   - Missing filename and extension\n2. 'Convert to PDF'\n   - Missing complete file path\n\nWhen requesting conversion, ALWAYS specify:\n1. The content or input file\n2. The desired output format\n3. For advanced formats: complete output path + filename + extension\nExample: 'Convert this markdown to PDF and save as /path/to/output.pdf'\n\n🎨 DOCX STYLING (NEW FEATURE):\n4. Custom DOCX Styling with Reference Documents:\n   * Use reference_doc parameter to apply professional styling to DOCX output\n   * Create custom templates with your branding, fonts, and formatting\n   * Perfect for corporate reports, academic papers, and professional documents\n   * Example: 'Convert this report to DOCX using /templates/corporate-style.docx as reference and save as /reports/Q4-report.docx'\n\n🎯 PANDOC FILTERS (NEW FEATURE):\n5. Pandoc Filter Support:\n   * Use filters parameter to apply custom Pandoc filters during conversion\n   * Filters are Python scripts that modify document content during processing\n   * Perfect for Mermaid diagram conversion, custom styling, and content transformation\n   * Example: 'Convert this markdown with mermaid diagrams to DOCX using filters=[\"./filters/mermaid-to-png-vibrant.py\"] and save as /reports/diagram-report.docx'\n\n📋 Creating Reference Documents:\n   * Generate template: pandoc -o template.docx --print-default-data-file reference.docx\n   * Customize in Word/LibreOffice: fonts, colors, headers, margins\n   * Use for consistent branding across all documents\n\n📋 Filter Requirements:\n   * Filters must be executable Python scripts\n   * Use absolute paths or paths relative to current working directory\n   * Filters are applied in the order specified\n   * Common filters: mermaid conversion, color processing, table formatting\n\n📄 Defaults File Support (NEW FEATURE):\n7. Pandoc Defaults File Support:\n   * Use defaults_file parameter to specify a YAML configuration file\n   * Similar to using pandoc -d option in the command line\n   * Allows setting multiple options in a single file\n   * Options in the defaults file can include filters, reference-doc, and other Pandoc options\n   * Example: 'Convert this markdown to DOCX using defaults_file=\"/path/to/defaults.yaml\" and save as /reports/report.docx'\n\nNote: After conversion, always check the success message for the exact file location.\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","contents":null,"doc_path":null,"messages":null,"tenant_id":"zebrains","request_id":"a2cb628c-736c-4122-a248-49842bb6cdfb","template_path":null,"requirements_path":null}}
Partition: 0   Offset: 7   Key: empty   Timestamp: 2026-05-22 06:58:38.389 Headers: content-type: application/json, correlation_id: d032d6cd-0cf3-49b9-9d21-d6c3828bce31, reply_to: medulla-fs0-answer-local-out
 
{"name":"completion","data":{"mode":1,"task":"rag","query":"найди документ про mlops\n\nДЛЯ СОСТАВЛЕНИЯ ПЛАНА У ТЕБЯ ЕСТЬ СЛЕДУЮЩИЕ TOOLS:\n\n**completion**: Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.\n**page_download**: Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.\n**internet_search**: Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.\n**parse**: Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.\n**transcribe**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.\n**convert-content**: Converts content between different formats. Transforms input content from any supported format into the specified output format.\n\n🚨 CRITICAL REQUIREMENTS - PLEASE READ:\n1. PDF Conversion:\n   * You MUST install TeX Live BEFORE attempting PDF conversion:\n   * Ubuntu/Debian: `sudo apt-get install texlive-xetex`\n   * macOS: `brew install texlive`\n   * Windows: Install MiKTeX or TeX Live from https://miktex.org/ or https://tug.org/texlive/\n   * PDF conversion will FAIL without this installation\n\n2. File Paths - EXPLICIT REQUIREMENTS:\n   * When asked to save or convert to a file, you MUST provide:\n     - Complete directory path\n     - Filename\n     - File extension\n   * Example request: 'Write a story and save as PDF'\n   * You MUST specify: '/path/to/story.pdf' or 'C:\\Documents\\story.pdf'\n   * The tool will NOT automatically generate filenames or extensions\n\n3. File Location After Conversion:\n   * After successful conversion, the tool will display the exact path where the file is saved\n   * Look for message: 'Content successfully converted and saved to: [file_path]'\n   * You can find your converted file at the specified location\n   * If no path is specified, files may be saved in system temp directory (/tmp/ on Unix systems)\n   * For better control, always provide explicit output file paths\n\nSupported formats:- Basic: txt, html, markdown, ipynb, odt- Advanced (REQUIRE complete file paths): pdf, docx, rst, latex, epub✅ CORRECT Usage Examples:\n1. 'Convert this text to HTML' (basic conversion)\n   - Tool will show converted content\n\n2. 'Save this text as PDF at /documents/story.pdf'\n   - Correct: specifies path + filename + extension\n   - Tool will show: 'Content successfully converted and saved to: /documents/story.pdf'\n\n❌ INCORRECT Usage Examples:\n1. 'Save this as PDF in /documents/'\n   - Missing filename and extension\n2. 'Convert to PDF'\n   - Missing complete file path\n\nWhen requesting conversion, ALWAYS specify:\n1. The content or input file\n2. The desired output format\n3. For advanced formats: complete output path + filename + extension\nExample: 'Convert this markdown to PDF and save as /path/to/output.pdf'\n\n🎨 DOCX STYLING (NEW FEATURE):\n4. Custom DOCX Styling with Reference Documents:\n   * Use reference_doc parameter to apply professional styling to DOCX output\n   * Create custom templates with your branding, fonts, and formatting\n   * Perfect for corporate reports, academic papers, and professional documents\n   * Example: 'Convert this report to DOCX using /templates/corporate-style.docx as reference and save as /reports/Q4-report.docx'\n\n🎯 PANDOC FILTERS (NEW FEATURE):\n5. Pandoc Filter Support:\n   * Use filters parameter to apply custom Pandoc filters during conversion\n   * Filters are Python scripts that modify document content during processing\n   * Perfect for Mermaid diagram conversion, custom styling, and content transformation\n   * Example: 'Convert this markdown with mermaid diagrams to DOCX using filters=[\"./filters/mermaid-to-png-vibrant.py\"] and save as /reports/diagram-report.docx'\n\n📋 Creating Reference Documents:\n   * Generate template: pandoc -o template.docx --print-default-data-file reference.docx\n   * Customize in Word/LibreOffice: fonts, colors, headers, margins\n   * Use for consistent branding across all documents\n\n📋 Filter Requirements:\n   * Filters must be executable Python scripts\n   * Use absolute paths or paths relative to current working directory\n   * Filters are applied in the order specified\n   * Common filters: mermaid conversion, color processing, table formatting\n\n📄 Defaults File Support (NEW FEATURE):\n7. Pandoc Defaults File Support:\n   * Use defaults_file parameter to specify a YAML configuration file\n   * Similar to using pandoc -d option in the command line\n   * Allows setting multiple options in a single file\n   * Options in the defaults file can include filters, reference-doc, and other Pandoc options\n   * Example: 'Convert this markdown to DOCX using defaults_file=\"/path/to/defaults.yaml\" and save as /reports/report.docx'\n\nNote: After conversion, always check the success message for the exact file location.\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","contents":null,"doc_path":null,"messages":null,"tenant_id":"zebrains","request_id":"d032d6cd-0cf3-49b9-9d21-d6c3828bce31","template_path":null,"requirements_path":null}}
Partition: 0   Offset: 8   Key: empty   Timestamp: 2026-05-22 07:03:55.728 Headers: content-type: application/json, correlation_id: 0d692df0-0868-46f6-b42f-c3926bf75ad1, reply_to: medulla-fs0-answer-local-out
 
{"name":"completion","data":{"mode":1,"task":"rag","query":"найди документы про mlops и тестирование\n\nДЛЯ СОСТАВЛЕНИЯ ПЛАНА У ТЕБЯ ЕСТЬ СЛЕДУЮЩИЕ TOOLS:\n\n**completion**: Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.\n**page_download**: Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.\n**internet_search**: Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.\n**parse**: Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.\n**transcribe**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.\n**convert-content**: Converts content between different formats. Transforms input content from any supported format into the specified output format.\n\n🚨 CRITICAL REQUIREMENTS - PLEASE READ:\n1. PDF Conversion:\n   * You MUST install TeX Live BEFORE attempting PDF conversion:\n   * Ubuntu/Debian: `sudo apt-get install texlive-xetex`\n   * macOS: `brew install texlive`\n   * Windows: Install MiKTeX or TeX Live from https://miktex.org/ or https://tug.org/texlive/\n   * PDF conversion will FAIL without this installation\n\n2. File Paths - EXPLICIT REQUIREMENTS:\n   * When asked to save or convert to a file, you MUST provide:\n     - Complete directory path\n     - Filename\n     - File extension\n   * Example request: 'Write a story and save as PDF'\n   * You MUST specify: '/path/to/story.pdf' or 'C:\\Documents\\story.pdf'\n   * The tool will NOT automatically generate filenames or extensions\n\n3. File Location After Conversion:\n   * After successful conversion, the tool will display the exact path where the file is saved\n   * Look for message: 'Content successfully converted and saved to: [file_path]'\n   * You can find your converted file at the specified location\n   * If no path is specified, files may be saved in system temp directory (/tmp/ on Unix systems)\n   * For better control, always provide explicit output file paths\n\nSupported formats:- Basic: txt, html, markdown, ipynb, odt- Advanced (REQUIRE complete file paths): pdf, docx, rst, latex, epub✅ CORRECT Usage Examples:\n1. 'Convert this text to HTML' (basic conversion)\n   - Tool will show converted content\n\n2. 'Save this text as PDF at /documents/story.pdf'\n   - Correct: specifies path + filename + extension\n   - Tool will show: 'Content successfully converted and saved to: /documents/story.pdf'\n\n❌ INCORRECT Usage Examples:\n1. 'Save this as PDF in /documents/'\n   - Missing filename and extension\n2. 'Convert to PDF'\n   - Missing complete file path\n\nWhen requesting conversion, ALWAYS specify:\n1. The content or input file\n2. The desired output format\n3. For advanced formats: complete output path + filename + extension\nExample: 'Convert this markdown to PDF and save as /path/to/output.pdf'\n\n🎨 DOCX STYLING (NEW FEATURE):\n4. Custom DOCX Styling with Reference Documents:\n   * Use reference_doc parameter to apply professional styling to DOCX output\n   * Create custom templates with your branding, fonts, and formatting\n   * Perfect for corporate reports, academic papers, and professional documents\n   * Example: 'Convert this report to DOCX using /templates/corporate-style.docx as reference and save as /reports/Q4-report.docx'\n\n🎯 PANDOC FILTERS (NEW FEATURE):\n5. Pandoc Filter Support:\n   * Use filters parameter to apply custom Pandoc filters during conversion\n   * Filters are Python scripts that modify document content during processing\n   * Perfect for Mermaid diagram conversion, custom styling, and content transformation\n   * Example: 'Convert this markdown with mermaid diagrams to DOCX using filters=[\"./filters/mermaid-to-png-vibrant.py\"] and save as /reports/diagram-report.docx'\n\n📋 Creating Reference Documents:\n   * Generate template: pandoc -o template.docx --print-default-data-file reference.docx\n   * Customize in Word/LibreOffice: fonts, colors, headers, margins\n   * Use for consistent branding across all documents\n\n📋 Filter Requirements:\n   * Filters must be executable Python scripts\n   * Use absolute paths or paths relative to current working directory\n   * Filters are applied in the order specified\n   * Common filters: mermaid conversion, color processing, table formatting\n\n📄 Defaults File Support (NEW FEATURE):\n7. Pandoc Defaults File Support:\n   * Use defaults_file parameter to specify a YAML configuration file\n   * Similar to using pandoc -d option in the command line\n   * Allows setting multiple options in a single file\n   * Options in the defaults file can include filters, reference-doc, and other Pandoc options\n   * Example: 'Convert this markdown to DOCX using defaults_file=\"/path/to/defaults.yaml\" and save as /reports/report.docx'\n\nNote: After conversion, always check the success message for the exact file location.\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","contents":null,"doc_path":null,"messages":null,"tenant_id":"zebrains","request_id":"0d692df0-0868-46f6-b42f-c3926bf75ad1","template_path":null,"requirements_path":null}}
Partition: 0   Offset: 9   Key: empty   Timestamp: 2026-05-22 07:05:29.673 Headers: content-type: application/json, correlation_id: f6fdb3b8-883c-44f1-8308-a38e9cdcee4f, reply_to: medulla-fs0-answer-local-out
 
{"name":"completion","data":{"mode":1,"task":"rag","query":"найди документы про mlops и тестирование\n\nДЛЯ СОСТАВЛЕНИЯ ПЛАНА У ТЕБЯ ЕСТЬ СЛЕДУЮЩИЕ TOOLS:\n\n**completion**: Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.\n**page_download**: Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.\n**internet_search**: Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.\n**parse**: Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.\n**transcribe**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.\n**convert-content**: Converts content between different formats. Transforms input content from any supported format into the specified output format.\n\n🚨 CRITICAL REQUIREMENTS - PLEASE READ:\n1. PDF Conversion:\n   * You MUST install TeX Live BEFORE attempting PDF conversion:\n   * Ubuntu/Debian: `sudo apt-get install texlive-xetex`\n   * macOS: `brew install texlive`\n   * Windows: Install MiKTeX or TeX Live from https://miktex.org/ or https://tug.org/texlive/\n   * PDF conversion will FAIL without this installation\n\n2. File Paths - EXPLICIT REQUIREMENTS:\n   * When asked to save or convert to a file, you MUST provide:\n     - Complete directory path\n     - Filename\n     - File extension\n   * Example request: 'Write a story and save as PDF'\n   * You MUST specify: '/path/to/story.pdf' or 'C:\\Documents\\story.pdf'\n   * The tool will NOT automatically generate filenames or extensions\n\n3. File Location After Conversion:\n   * After successful conversion, the tool will display the exact path where the file is saved\n   * Look for message: 'Content successfully converted and saved to: [file_path]'\n   * You can find your converted file at the specified location\n   * If no path is specified, files may be saved in system temp directory (/tmp/ on Unix systems)\n   * For better control, always provide explicit output file paths\n\nSupported formats:- Basic: txt, html, markdown, ipynb, odt- Advanced (REQUIRE complete file paths): pdf, docx, rst, latex, epub✅ CORRECT Usage Examples:\n1. 'Convert this text to HTML' (basic conversion)\n   - Tool will show converted content\n\n2. 'Save this text as PDF at /documents/story.pdf'\n   - Correct: specifies path + filename + extension\n   - Tool will show: 'Content successfully converted and saved to: /documents/story.pdf'\n\n❌ INCORRECT Usage Examples:\n1. 'Save this as PDF in /documents/'\n   - Missing filename and extension\n2. 'Convert to PDF'\n   - Missing complete file path\n\nWhen requesting conversion, ALWAYS specify:\n1. The content or input file\n2. The desired output format\n3. For advanced formats: complete output path + filename + extension\nExample: 'Convert this markdown to PDF and save as /path/to/output.pdf'\n\n🎨 DOCX STYLING (NEW FEATURE):\n4. Custom DOCX Styling with Reference Documents:\n   * Use reference_doc parameter to apply professional styling to DOCX output\n   * Create custom templates with your branding, fonts, and formatting\n   * Perfect for corporate reports, academic papers, and professional documents\n   * Example: 'Convert this report to DOCX using /templates/corporate-style.docx as reference and save as /reports/Q4-report.docx'\n\n🎯 PANDOC FILTERS (NEW FEATURE):\n5. Pandoc Filter Support:\n   * Use filters parameter to apply custom Pandoc filters during conversion\n   * Filters are Python scripts that modify document content during processing\n   * Perfect for Mermaid diagram conversion, custom styling, and content transformation\n   * Example: 'Convert this markdown with mermaid diagrams to DOCX using filters=[\"./filters/mermaid-to-png-vibrant.py\"] and save as /reports/diagram-report.docx'\n\n📋 Creating Reference Documents:\n   * Generate template: pandoc -o template.docx --print-default-data-file reference.docx\n   * Customize in Word/LibreOffice: fonts, colors, headers, margins\n   * Use for consistent branding across all documents\n\n📋 Filter Requirements:\n   * Filters must be executable Python scripts\n   * Use absolute paths or paths relative to current working directory\n   * Filters are applied in the order specified\n   * Common filters: mermaid conversion, color processing, table formatting\n\n📄 Defaults File Support (NEW FEATURE):\n7. Pandoc Defaults File Support:\n   * Use defaults_file parameter to specify a YAML configuration file\n   * Similar to using pandoc -d option in the command line\n   * Allows setting multiple options in a single file\n   * Options in the defaults file can include filters, reference-doc, and other Pandoc options\n   * Example: 'Convert this markdown to DOCX using defaults_file=\"/path/to/defaults.yaml\" and save as /reports/report.docx'\n\nNote: After conversion, always check the success message for the exact file location.\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","contents":null,"doc_path":null,"messages":null,"tenant_id":"zebrains","request_id":"f6fdb3b8-883c-44f1-8308-a38e9cdcee4f","template_path":null,"requirements_path":null}}
Partition: 0   Offset: 10   Key: empty   Timestamp: 2026-05-22 07:08:39.365 Headers: content-type: application/json, correlation_id: c9c96ed4-3627-483d-8e73-197b5ab30027, reply_to: medulla-fs0-answer-local-out
 
{"name":"completion","data":{"mode":1,"task":"rag","query":"найди документы про mlops и тестирование\n\nДЛЯ СОСТАВЛЕНИЯ ПЛАНА У ТЕБЯ ЕСТЬ СЛЕДУЮЩИЕ TOOLS:\n\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**internet_search**: Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.\n**transcribe**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.\n**convert-content**: Converts content between different formats. Transforms input content from any supported format into the specified output format.\n\n🚨 CRITICAL REQUIREMENTS - PLEASE READ:\n1. PDF Conversion:\n   * You MUST install TeX Live BEFORE attempting PDF conversion:\n   * Ubuntu/Debian: `sudo apt-get install texlive-xetex`\n   * macOS: `brew install texlive`\n   * Windows: Install MiKTeX or TeX Live from https://miktex.org/ or https://tug.org/texlive/\n   * PDF conversion will FAIL without this installation\n\n2. File Paths - EXPLICIT REQUIREMENTS:\n   * When asked to save or convert to a file, you MUST provide:\n     - Complete directory path\n     - Filename\n     - File extension\n   * Example request: 'Write a story and save as PDF'\n   * You MUST specify: '/path/to/story.pdf' or 'C:\\Documents\\story.pdf'\n   * The tool will NOT automatically generate filenames or extensions\n\n3. File Location After Conversion:\n   * After successful conversion, the tool will display the exact path where the file is saved\n   * Look for message: 'Content successfully converted and saved to: [file_path]'\n   * You can find your converted file at the specified location\n   * If no path is specified, files may be saved in system temp directory (/tmp/ on Unix systems)\n   * For better control, always provide explicit output file paths\n\nSupported formats:- Basic: txt, html, markdown, ipynb, odt- Advanced (REQUIRE complete file paths): pdf, docx, rst, latex, epub✅ CORRECT Usage Examples:\n1. 'Convert this text to HTML' (basic conversion)\n   - Tool will show converted content\n\n2. 'Save this text as PDF at /documents/story.pdf'\n   - Correct: specifies path + filename + extension\n   - Tool will show: 'Content successfully converted and saved to: /documents/story.pdf'\n\n❌ INCORRECT Usage Examples:\n1. 'Save this as PDF in /documents/'\n   - Missing filename and extension\n2. 'Convert to PDF'\n   - Missing complete file path\n\nWhen requesting conversion, ALWAYS specify:\n1. The content or input file\n2. The desired output format\n3. For advanced formats: complete output path + filename + extension\nExample: 'Convert this markdown to PDF and save as /path/to/output.pdf'\n\n🎨 DOCX STYLING (NEW FEATURE):\n4. Custom DOCX Styling with Reference Documents:\n   * Use reference_doc parameter to apply professional styling to DOCX output\n   * Create custom templates with your branding, fonts, and formatting\n   * Perfect for corporate reports, academic papers, and professional documents\n   * Example: 'Convert this report to DOCX using /templates/corporate-style.docx as reference and save as /reports/Q4-report.docx'\n\n🎯 PANDOC FILTERS (NEW FEATURE):\n5. Pandoc Filter Support:\n   * Use filters parameter to apply custom Pandoc filters during conversion\n   * Filters are Python scripts that modify document content during processing\n   * Perfect for Mermaid diagram conversion, custom styling, and content transformation\n   * Example: 'Convert this markdown with mermaid diagrams to DOCX using filters=[\"./filters/mermaid-to-png-vibrant.py\"] and save as /reports/diagram-report.docx'\n\n📋 Creating Reference Documents:\n   * Generate template: pandoc -o template.docx --print-default-data-file reference.docx\n   * Customize in Word/LibreOffice: fonts, colors, headers, margins\n   * Use for consistent branding across all documents\n\n📋 Filter Requirements:\n   * Filters must be executable Python scripts\n   * Use absolute paths or paths relative to current working directory\n   * Filters are applied in the order specified\n   * Common filters: mermaid conversion, color processing, table formatting\n\n📄 Defaults File Support (NEW FEATURE):\n7. Pandoc Defaults File Support:\n   * Use defaults_file parameter to specify a YAML configuration file\n   * Similar to using pandoc -d option in the command line\n   * Allows setting multiple options in a single file\n   * Options in the defaults file can include filters, reference-doc, and other Pandoc options\n   * Example: 'Convert this markdown to DOCX using defaults_file=\"/path/to/defaults.yaml\" and save as /reports/report.docx'\n\nNote: After conversion, always check the success message for the exact file location.\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","contents":null,"doc_path":null,"messages":null,"tenant_id":"zebrains","request_id":"c9c96ed4-3627-483d-8e73-197b5ab30027","template_path":"templates/planning/qwen_plan.yaml","requirements_path":null}}
Partition: 0   Offset: 11   Key: empty   Timestamp: 2026-05-26 07:18:15.829 Headers: content-type: application/json, correlation_id: aa4253b1-5b9b-478a-9acf-730185e03454, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"найди документы про mlops и тестирование","tools":[{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}}],"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":""}}
Partition: 0   Offset: 12   Key: empty   Timestamp: 2026-05-26 07:25:04.184 Headers: content-type: application/json, correlation_id: fefaf7ad-b4cf-457a-ab00-63367203d27f, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"найди документы про mlops и тестирование","tools":[{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}}],"contents":null,"doc_path":null,"tenant_id":"zebrains","request_id":"fefaf7ad-b4cf-457a-ab00-63367203d27f","tool_choice":"required","template_path":"templates/planning/qwen_plan.yaml","tools_description":""}}
Partition: 0   Offset: 13   Key: empty   Timestamp: 2026-05-26 07:37:24.914 Headers: content-type: application/json, correlation_id: 98bf99ac-73c9-4ee1-9423-60d0685c0f1e, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"найди документы про mlops и тестирование","tools":[{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}}],"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":""}}
Partition: 0   Offset: 14   Key: empty   Timestamp: 2026-05-26 07:38:38.493 Headers: content-type: application/json, correlation_id: c5e1fd45-3c60-47aa-9aff-5bd2bbd6f9e8, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"найди документы про mlops и тестирование","tools":[{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}}],"contents":null,"doc_path":null,"tenant_id":"zebrains","request_id":"c5e1fd45-3c60-47aa-9aff-5bd2bbd6f9e8","tool_choice":"required","template_path":"templates/planning/qwen_plan.yaml","tools_description":""}}
Partition: 0   Offset: 15   Key: empty   Timestamp: 2026-05-26 07:48:47.390 Headers: content-type: application/json, correlation_id: 6b40a2f5-59f1-4a75-9063-98999d16af2c, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"найди документы про mlops и тестирование","tools":[{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 16   Key: empty   Timestamp: 2026-05-26 12:17:30.237 Headers: content-type: application/json, correlation_id: b8393359-37c0-47ad-b4b3-8ae5f9389950, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"Найди что нибудь про MLOPS и Тестирование","tools":[{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 17   Key: empty   Timestamp: 2026-05-26 12:19:32.373 Headers: content-type: application/json, correlation_id: 20455611-63db-4967-b59f-8189b7c3d6c1, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"Найди что нибудь про MLOPS и Тестирование","tools":[{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 18   Key: empty   Timestamp: 2026-05-26 12:24:03.313 Headers: content-type: application/json, correlation_id: 036badbd-5f27-4e26-b5c2-d198b752b84c, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"Найди что нибудь про MLOPS и Тестирование","tools":[{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"036badbd-5f27-4e26-b5c2-d198b752b84c","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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 19   Key: empty   Timestamp: 2026-05-26 12:25:46.113 Headers: content-type: application/json, correlation_id: 106504e3-fcb4-4c43-986f-f3b7155c1194, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"Найди что нибудь про MLOPS и Тестирование","tools":[{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 20   Key: empty   Timestamp: 2026-05-26 13:03:37.233 Headers: content-type: application/json, correlation_id: 4ffad9a0-18e7-4606-88fd-8d4e54998fdb, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"Найди что нибудь про MLOPS и Тестирование","tools":[{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 21   Key: empty   Timestamp: 2026-05-26 13:06:27.112 Headers: content-type: application/json, correlation_id: a2470e77-ede0-4b7a-89b2-80a4ee0178f5, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"Найди что нибудь про MLOPS и Тестирование","tools":[{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 22   Key: empty   Timestamp: 2026-05-26 13:07:43.478 Headers: content-type: application/json, correlation_id: f8ef8ea3-0280-4252-873e-fae1a14b8961, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"Найди что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF","tools":[{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 23   Key: empty   Timestamp: 2026-05-26 13:10:33.629 Headers: content-type: application/json, correlation_id: 435ea5ac-f75e-455d-bc2d-9e33f9163ed4, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"Найди что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF","tools":[{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 24   Key: empty   Timestamp: 2026-05-27 10:21:22.776 Headers: content-type: application/json, correlation_id: 813b189c-86ce-4be3-a126-8f8eb23df8ab, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"найди документы про mlops и тестирование","tools":[{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"813b189c-86ce-4be3-a126-8f8eb23df8ab","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**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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 25   Key: empty   Timestamp: 2026-05-27 10:22:30.461 Headers: content-type: application/json, correlation_id: b655eb40-ec0f-40cb-816b-2090aa48d40f, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"найди документы про mlops и тестирование","tools":[{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"b655eb40-ec0f-40cb-816b-2090aa48d40f","tool_choice":"required","template_path":"templates/planning/qwen_plan.yaml","tools_description":"\n**doc_vector_search**: Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.\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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 26   Key: empty   Timestamp: 2026-05-27 10:24:07.815 Headers: content-type: application/json, correlation_id: b654603a-3e64-4b75-8fe9-b179216501ea, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"найди документы про mlops и тестирование","tools":[{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"b654603a-3e64-4b75-8fe9-b179216501ea","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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 27   Key: empty   Timestamp: 2026-05-27 10:29:37.186 Headers: content-type: application/json, correlation_id: eb8d24d3-da18-4397-aa34-964b66037d04, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"найди документы про mlops и тестирование","tools":[{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"eb8d24d3-da18-4397-aa34-964b66037d04","tool_choice":"required","template_path":"templates/planning/qwen_plan.yaml","tools_description":"\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.\n**internet_search**: Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.\n**doc_vector_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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 28   Key: empty   Timestamp: 2026-05-27 10:33:37.258 Headers: content-type: application/json, correlation_id: 06f12ac6-8038-4de5-9577-21010dc38788, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"найди документы про mlops и тестирование","tools":[{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"06f12ac6-8038-4de5-9577-21010dc38788","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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 29   Key: empty   Timestamp: 2026-05-27 10:38:58.811 Headers: content-type: application/json, correlation_id: dc301644-be67-4c4a-91fb-66d9a0ed59ce, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"найди документы про mlops и тестирование","tools":[{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"dc301644-be67-4c4a-91fb-66d9a0ed59ce","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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 30   Key: empty   Timestamp: 2026-05-27 10:48:41.190 Headers: content-type: application/json, correlation_id: 5de14089-934e-40f4-9fae-91b87c25d33d, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"найди документы про mlops и тестирование","tools":[{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 31   Key: empty   Timestamp: 2026-05-27 10:51:15.297 Headers: content-type: application/json, correlation_id: 8ca036dd-5a79-4fec-b2b2-4e62976e65d1, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"найди документы про mlops и тестирование","tools":[{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"8ca036dd-5a79-4fec-b2b2-4e62976e65d1","tool_choice":"required","template_path":"templates/planning/qwen_plan.yaml","tools_description":"\n**doc_vector_search**: Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.\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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 32   Key: empty   Timestamp: 2026-05-27 10:52:50.738 Headers: content-type: application/json, correlation_id: 4a878f37-ba84-435d-90ad-dadf6f59f0a4, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"найди документы про mlops и тестирование","tools":[{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"4a878f37-ba84-435d-90ad-dadf6f59f0a4","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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 33   Key: empty   Timestamp: 2026-05-27 10:54:57.212 Headers: content-type: application/json, correlation_id: bb6ba018-bee9-49d8-bbb8-9859eabf47a1, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"найди документы про mlops и тестирование","tools":[{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"bb6ba018-bee9-49d8-bbb8-9859eabf47a1","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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 34   Key: empty   Timestamp: 2026-05-27 10:59:24.516 Headers: content-type: application/json, correlation_id: cfa33ec4-2cba-44eb-a814-8a6fda931d52, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"найди документы про mlops и тестирование","tools":[{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 35   Key: empty   Timestamp: 2026-05-28 07:44:18.268 Headers: content-type: application/json, correlation_id: 060e8e5c-6109-4522-b83e-1cf0ad744003, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"Найди что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF","tools":[{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 36   Key: empty   Timestamp: 2026-05-28 07:52:25.917 Headers: content-type: application/json, correlation_id: 92a33daa-476e-48ac-a569-7c961d51bcc8, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"Найди в базе знаний что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF","tools":[{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 37   Key: empty   Timestamp: 2026-05-28 11:27:27.350 Headers: content-type: application/json, correlation_id: 248b18fb-4bd0-454e-a977-58b2a63dd036, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"Найди в базе знаний что нибудь про MLOPS и Тестирование, придумай типовой пайплайн CI/CD, сгенерируй PDF","tools":[{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"248b18fb-4bd0-454e-a977-58b2a63dd036","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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 38   Key: empty   Timestamp: 2026-05-28 11:29:41.930 Headers: content-type: application/json, correlation_id: 19adf257-d780-4a1b-a11b-f7fce79c2a87, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"Найди в базе знаний что нибудь про MLOPS и Тестирование","tools":[{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"19adf257-d780-4a1b-a11b-f7fce79c2a87","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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 39   Key: empty   Timestamp: 2026-05-28 11:39:51.251 Headers: content-type: application/json, correlation_id: dd403186-4c99-479f-9f67-a1c2bb15e866, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"привет","tools":[{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"dd403186-4c99-479f-9f67-a1c2bb15e866","tool_choice":"required","template_path":"templates/planning/qwen_plan.yaml","tools_description":"\n**doc_vector_search**: Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.\n**doc_vector_index**: Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.\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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 40   Key: empty   Timestamp: 2026-05-28 11:42:02.150 Headers: content-type: application/json, correlation_id: a92ca607-2eb0-41a2-8833-ec1c3ac26120, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"забудь","tools":[{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 41   Key: empty   Timestamp: 2026-05-28 11:53:28.644 Headers: content-type: application/json, correlation_id: 6b6c7473-0e35-4b44-bdb5-dfc5b50e16a0, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"привет","tools":[{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"6b6c7473-0e35-4b44-bdb5-dfc5b50e16a0","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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 42   Key: empty   Timestamp: 2026-05-28 11:55:42.227 Headers: content-type: application/json, correlation_id: e346355d-458a-4abf-96f5-597e80283fea, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"привет","tools":[{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"e346355d-458a-4abf-96f5-597e80283fea","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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 43   Key: empty   Timestamp: 2026-05-28 12:10:57.881 Headers: content-type: application/json, correlation_id: 380d93f2-40c2-44cb-ac19-6fe51e822153, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"привет","tools":[{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 44   Key: empty   Timestamp: 2026-05-28 12:11:18.736 Headers: content-type: application/json, correlation_id: 30c5f21f-fec2-411d-b3be-29845907855e, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"Найди в базе знаний что нибудь про MLOPS и Тестирование","tools":[{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"30c5f21f-fec2-411d-b3be-29845907855e","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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 45   Key: empty   Timestamp: 2026-05-28 12:17:09.911 Headers: content-type: application/json, correlation_id: e4e0882c-b972-4dac-a9c8-3859da3f2c87, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"Найди в базе знаний что нибудь про MLOPS и Тестирование","tools":[{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"contents":null,"doc_path":null,"tenant_id":"nmg","request_id":"e4e0882c-b972-4dac-a9c8-3859da3f2c87","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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 46   Key: empty   Timestamp: 2026-05-28 12:22:01.221 Headers: content-type: application/json, correlation_id: 80637eed-9bcc-408e-833f-19f162da25b8, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"Найди в базе знаний что нибудь про MLOPS и Тестирование","tools":[{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}
Partition: 0   Offset: 47   Key: empty   Timestamp: 2026-05-28 12:24:08.763 Headers: content-type: application/json, correlation_id: 63052d85-55a3-4036-9521-7ca074caca4e, reply_to: medulla-fs0-answer-local-out
 
{"name":"planning","data":{"mode":2,"task":"rag","query":"Найди в базе знаний что нибудь про MLOPS и Тестирование","tools":[{"type":"function","function":{"name":"internet_search","description":"Поиск сайтов и веб-страниц в интернете по заданному запросу. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'найди в интернете', 'поищи сайты', 'найди информацию о', 'погугли', 'покажи ссылки на', а также для получения актуальных данных, новостей, обзоров, документации или любого контента, которого нет в базе знаний модели. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого уже открытых страниц, для повторного поиска по тем же ключевым словам в рамках одной сессии, для работы с уже найденными результатами, а также когда поисковый запрос не задан явно.","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"}}}}},{"type":"function","function":{"name":"doc_vector_index","description":"Запуск процесса обновления базы знаний и переиндексации новых документов. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'обнови базу знаний', 'добавь новые документы в индекс', 'переиндексируй', 'загрузи документы в базу знаний', 'синхронизируй с хранилищем'. НЕ ИСПОЛЬЗОВАТЬ для поиска по уже проиндексированной базе когда пользователь просто прикрепляет файл для разового парсинга без сохранения в базу.","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"}}}}},{"type":"function","function":{"name":"doc_vector_search","description":"Поиск релевантных документов в проиндексированной базе знаний по запросу пользователя. ИСПОЛЬЗОВАТЬ, когда пользователь задаёт вопрос, требующий информации из корпоративных/справочных документов, инструкций, нормативной базы, технической документации, ранее загруженных материалов. НЕ ИСПОЛЬЗОВАТЬ для вопросов общего характера, не требующих обращения к базе знаний.","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"}}}}},{"type":"function","function":{"name":"completion","description":"Инструмент для выполнения различных интеллектуальных задач через единый endpoint. ИСПОЛЬЗОВАТЬ для: классификации намерений (intent), поиска с генерацией ответа по базе знаний (RAG), обычного чата с историей (chat), ответа на основе переданного текста (contents), суммаризации документов (summarizer), проверки по чеклисту (checklist), поддержки свободного диалога (chitchat), кастомных сценариев с шаблоном (freeflight). НЕ ИСПОЛЬЗОВАТЬ для прямого парсинга файлов без вызова модели или когда задача не требует языковой обработки.","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."}}}}},{"type":"function","function":{"name":"parse","description":"Извлечение и обработка содержимого из загруженных файлов документов. ИСПОЛЬЗОВАТЬ, когда пользователь прикрепляет новый файл (PDF, DOCX, TXT, XLSX, PPTX, изображение с текстом) или явно просит 'обработай файл', 'распарси документ', 'прочитай данные из приложенного', 'извлеки текст из файла'. НЕ ИСПОЛЬЗОВАТЬ для работы с уже извлечённым ранее текстом или для задач, не требующих доступа к содержимому файла.","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":"Путь до директории в которую необходимо сложить результат."}}}}},{"type":"function","function":{"name":"page_download","description":"Скачивание содержимого сайтов и веб-страниц по указанному URL. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'скачай сайт', 'загрузи страницу', 'сохрани содержимое по ссылке', 'выгрузи HTML', 'забери данные с сайта', а также для получения полного текста статей, документации, веб-страниц или любого контента по конкретному адресу. НЕ ИСПОЛЬЗОВАТЬ для поиска сайтов в интернете без известного URL, для повторного скачивания одной и той же страницы в рамках одной сессии, для работы с уже загруженным содержимым, а также когда ссылка на страницу не задана явно.","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"}}}}},{"type":"function","function":{"name":"convert-content","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. НЕ ИСПОЛЬЗОВАТЬ для извлечения или чтения содержимого существующих файлов, для редактирования документов «на месте», для работы с уже сконвертированным текстом, а также когда формат вывода и выходной путь не заданы явно.","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":"Путь до референсного файла для стилизации"}}}}},{"type":"function","function":{"name":"transcribe","description":"Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно.","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":"Флаг включения диаризации"}}}}}],"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**: Транскрибация аудио- и видеофайлов в текст. ИСПОЛЬЗОВАТЬ, когда пользователь явно просит 'расшифруй аудио', 'сделай транскрипт', 'переведи запись в текст', 'транскрибируй видео', 'распознай речь', а также для получения текстовой версии подкастов, интервью, лекций, совещаний, голосовых сообщений или любых других записей с речью. НЕ ИСПОЛЬЗОВАТЬ для перевода уже готового текста, для анализа или суммаризации уже расшифрованной записи, для повторной транскрибации одного и того же файла в рамках одной сессии, а также когда аудио- или видеофайл не предоставлен явно."}}