Модели рассуждений и мышления
ФКТ ИИ обеспечивает первоклассную поддержку моделей, демонстрирующих «мыслительное» или «рассуждающее» поведение (например, DeepSeek R1, OpenAI o1 и другие). Такие модели часто генерируют внутренние цепочки рассуждений, прежде чем выдать окончательный ответ.
Как работают теги для рассуждений
Когда модель генерирует рассуждение, она обычно заключает его в специальные теги, похожие на XML-теги (например, <think>...</think> или <thought>...</thought>).
ФКТ ИИ автоматически:
- Обнаруживает эти теги в выходном потоке модели.
- Извлекает содержимое между тегами.
- Отображает извлеченное содержимое в сворачиваемом элементе пользовательского интерфейса с надписью «Мысль» или «Размышление».
Это позволяет сохранить чистоту основного интерфейса чата, но при этом дает вам доступ к внутренней обработке модели.
Параметр reasoning_tags
Вы можете настроить, какие теги должен искать ФКТ ИИ, с помощью параметра reasoning_tags Это можно сделать для каждого чата или каждой модели.
Теги по умолчанию
По умолчанию ФКТ ИИ ищет несколько распространенных пар тегов для рассуждений:
- <think>, </think>
- <thinking>, </thinking>
- <reason>, </reason>
- <reasoning>, </reasoning>
- <thought>, </thought>
- <|begin_of_thought|>, <|end_of_thought|>
Настройка на заказ
Если в вашей модели используются разные теги, вы можете указать список пар тегов в параметре reasoning_tags . Каждая пара представляет собой кортеж или список из открывающего и закрывающего тегов.
Конфигурация и поведение
- Удаление из полезной нагрузки: сам параметр reasoning_tags является специфичным для ФКТ ИИ элементом управления и удаляется из полезной нагрузки перед отправкой на серверную часть большой языковой модели (OpenAI, Ollama и т. д.). Это обеспечивает совместимость с провайдерами, которые не распознают этот параметр.
- История чата: аргументы сохраняются в истории чата и отправляются обратно в модель при каждом новом ответе. При формировании сообщений для последующих запросов ФКТ ИИ сериализует содержимое рассуждений с исходными тегами (например, <think>...</think>) и включает его в поле content сообщения помощника. Это позволяет модели «запоминать» предыдущие этапы рассуждений на протяжении всего диалога.
- Отображение в пользовательском интерфейсе: внутри системы блоки рассуждений обрабатываются и отображаются с помощью специального компонента пользовательского интерфейса. При сохранении или экспорте они могут быть представлены в виде HTML-тегов <details type="reasoning">.
Откройте настройки ФКТ ИИ
ФКТ ИИ предоставляет несколько встроенных настроек для изменения поведения модели рассуждений. Их можно найти в разделе:
- Управление чатом (боковая панель) → Дополнительные параметры — настройки для каждого чата
- Рабочее пространство → Модели → Редактировать модель → Дополнительные параметры — настройки для каждой модели (только для администраторов)
- Панель администратора → Настройки → Модели → выберите модель → Дополнительные параметры — альтернативное расположение настроек для каждой модели
Настройка тегов рассуждений
Этот параметр определяет, как Open WebUI анализирует и отображает блоки мышления и рассуждений:
| Вариант | Описание |
|---|---|
| По умолчанию | Использует поведение системы по умолчанию |
| Включенный | Явно включает обнаружение тегов с помощью тегов <think>...</think> по умолчанию |
| Отключенный | Полностью отключает обнаружение тегов с пояснениями |
| Обычай | Позволяет указать пользовательские начальные и конечные теги |
Использование пользовательских тегов
Если в вашей модели используются нестандартные теги рассуждений (например, <reasoning>...</reasoning> или [思考]...[/思考]), выберите Пользовательские и введите:
- Начальный тег: открывающий тег (например, <reasoning>)
- Конечный тег: закрывающий тег (например, </reasoning>)
Это полезно для:
- Модели с локализованными тегами для мышления
- Пользовательские модели с тонкой настройкой и уникальными форматами тегов
- Модели, использующие маркеры рассуждений в стиле XML
think (Ollama)
Эта настройка, специфичная для Ollama, включает или отключает встроенную в модель функцию логического вывода:
| Вариант | Описание |
|---|---|
| По умолчанию | Использует стандартное поведение Ollama |
| Вкл . | Явно включает режим мышления для модели |
| ВЫКЛ | Отключает режим мышления |
примечание
Этот параметр отправляет think параметр непосредственно в Ollama. Он отличается от того, как ФКТ ИИ анализирует ответ — вам могут понадобиться как этот параметр, так И правильная настройка тегов рассуждений для полного взаимодействия.
Усилия при логическом выводе
Для моделей, поддерживающих переменную глубину логического вывода (как, например, некоторые поставщики API), этот параметр определяет, сколько усилий модель затрачивает на логический вывод.
- Распространенные значения: low, medium, high
- Некоторые провайдеры принимают числовые значения
Информация
Показатель Reasoning Effort применим только к моделям от определенных поставщиков, поддерживающих этот параметр. Он не влияет на локальные модели Ollama.
Чередование мышления с вызовами инструментов
Когда модель использует вызов нативной функции (использование инструмента) в рамках одного хода, ФКТ ИИ сохраняет содержимое рассуждений и отправляет его обратно в API для последующих вызовов в рамках этого хода. Это обеспечивает по-настоящему «параллельное мышление», при котором:
- Модель генерирует рассуждения → вызывает инструмент
- Инструмент выполняет команду и возвращает результаты
- Модель получает: исходные сообщения + предыдущие рассуждения + вызов инструмента + результат работы инструмента
- Модель продолжает рассуждать → может вызвать еще несколько инструментов или предоставить окончательный ответ
- Процесс повторяется до завершения хода
Как это работает
Во время многоэтапного вызова инструмента откройте веб-интерфейс:
- Фиксирует содержание рассуждений из ответа модели (через reasoning_content, reasoning или thinking поля в дельте)
- Сохраняет это в блоках содержимого вместе с вызовами инструментов
- Сериализует обоснование с его исходными тегами (например, <think>...</think>) при создании сообщений для следующего вызова API.
- Включает сериализованное содержимое в content поле сообщения помощника
Это гарантирует, что модель будет иметь доступ к своему предыдущему мыслительному процессу при принятии решений о последующих действиях в рамках одного хода.
Как происходит возврат к предыдущему этапу
При формировании следующего запроса к API в цикле вызова инструмента ФКТ ИИ сериализует рассуждения в виде текста, заключенного в теги внутри поля content сообщения помощника:
<think>Let me search for the current weather data...</think>
Структура сообщения выглядит следующим образом:
{
"role": "assistant",
"content": "<think>reasoning content here</think>",
"tool_calls": [...]
}Совместимость с провайдерами
ФКТ ИИ соответствует стандарту API чат-комплетов OpenAI. Содержимое с пояснениями сериализуется в виде текста в поле содержимого сообщения, а не в виде структурированных блоков, характерных для конкретного провайдера.
| Тип Поставщика услуг | Совместимость |
|---|---|
| API, совместимые с OpenAI | ✅ Работает — обоснование приведено в тексте |
| Оллама | ✅ Работает — Ollama обрабатывает содержимое сообщения |
| Антропный принцип (расширенное мышление) | ❌ Не поддерживается — для Anthropic требуются структурированные {"type": "thinking"} блоки, используйте функцию pipe |
| OpenAI o-series (с отслеживанием состояния) | ⚠️ Ограничено — обоснование скрыто/внутреннее, ничего не фиксируется |
Важные примечания
- Сохранение в рамках одного обращения: рассуждения сохраняются и отправляются обратно в API в рамках одного обращения (пока обрабатываются вызовы инструмента).
- Поведение при переходе от одного обращения к другому: содержимое рассуждений отправляется обратно в API при переходе от одного обращения к другому. При формировании сообщений для последующих запросов ФКТ ИИ сериализует содержимое рассуждений с исходными тегами (например, <think>...</think>) и включает его в поле content сообщения помощника. Это позволяет модели сохранять контекст предыдущих рассуждений на протяжении всего диалога.
- Сериализация на основе текста: рассуждения отправляются в виде текста, заключенного в теги (например, <think>thinking content</think>), а не в виде структурированных блоков контента. Это работает с большинством API, совместимых с OpenAI, но может не соответствовать специфическим форматам провайдеров, таким как расширенные блоки контента Anthropic.
Потоковая передача и отсутствие потоковой передачи
Режим потоковой передачи (по умолчанию)
В режиме потоковой передачи (stream: true), ФКТ ИИ обрабатывает поступающие токены и может обнаруживать блоки рассуждений в режиме реального времени. Как правило, это работает без дополнительной настройки.
Непотоковый режим
В непотоковом режиме (stream: false ) весь ответ возвращается сразу. Именно здесь возникает большинство проблем с синтаксическим анализом, потому что:
- Ответ приходит в виде одного текстового блока
- . Без парсера рассуждений <think> содержимое не разделяется на части
- Необработанный ответ отображается без изменений
Важный
Если вы используете запросы без потоковой передачи (через API или с определенными настройками), парсер рассуждений необходим для правильного разделения блоков мышления.
Использование API
При использовании ФКТ ИИ API с моделями рассуждений:
{
"model": "qwen3:32b",
"messages": [
{"role": "user", "content": "Solve: What is 234 * 567?"}
],
"stream": true
}Рекомендация: используйте "stream": true для наиболее надежного анализа блока рассуждений.
Устранение неполадок
Контент для размышлений объединен с окончательным ответом
Проблема: при использовании модели рассуждений весь ответ (включая <think>...</think> блоки) отображается как окончательный ответ, а не в виде скрытого/свёрнутого раздела для размышлений.
Пример некорректного отображения:
<think> Okay, the user wants a code snippet for a sticky header using CSS and JavaScript. Let me think about how to approach this. ... I think that's a solid approach. Let me write the code now. </think> Here's a complete code snippet that demonstrates a sticky header using CSS and JavaScript...
Ожидаемое поведение: Контент для размышлений должен быть скрыт или сворачиваться, чтобы был виден только окончательный ответ.
Для пользователей Ollama
Чаще всего это происходит из-за того, что в Ollama не настроен правильный парсер рассуждений. При запуске Ollama необходимо указать флаг --reasoning-parser, чтобы обеспечить корректный анализ блоков мышления.
Шаг 1. Настройка парсера рассуждений
При запуске Ollama добавьте флаг --reasoning-parser:
# For DeepSeek-R1 style reasoning (recommended for most models) ollama serve --reasoning-parser deepseek_r1 # Alternative parsers (if the above doesn't work for your model) ollama serve --reasoning-parser qwen3 ollama serve --reasoning-parser deepseek_v3
Рекомендуемый Синтаксический анализатор
Для большинства моделей логического вывода, включая варианты Qwen3 и DeepSeek, используйте --reasoning-parser deepseek_r1. Этот парсер обрабатывает стандартный формат <think>...</think>, используемый большинством моделей логического вывода.
Шаг 2. Перезапустите Ollama
После добавления флага перезапустите службу Ollama:
# Stop Ollama # On Linux/macOS: pkill ollama # On Windows (PowerShell): Stop-Process -Name ollama -Force # Start with the reasoning parser ollama serve --reasoning-parser deepseek_r1
Шаг 3. Проверка в ФКТ ИИ
- Перейдите в веб-интерфейс ФКТ ИИ и начните новый чат со своей моделью рассуждений
- Задайте вопрос, требующий логического мышления (например, математическую задачу или логическую головоломку)
- В ответе должен появиться сворачиваемый раздел с результатами работы модели
Доступные Анализаторы Рассуждений
| Анализатор | Описание | Пример использования |
|---|---|---|
| deepseek_r1 | Формат DeepSeek R1 | Большинство моделей логического вывода, включая Qwen3 |
| deepseek_v3 | Формат DeepSeek V3 | Некоторые варианты DeepSeek |
| qwen3 | Формат, специфичный для Qwen3 | Если deepseek_r1 не работает с Qwen |
Контрольный список для устранения неполадок
1. Убедитесь, что Ollama работает с парсером Reasoning
Проверьте, был ли Ollama запущен с правильным флагом:
# Check the Ollama process ps aux | grep ollama # or on Windows: Get-Process -Name ollama | Format-List *
Найдите --reasoning-parser в аргументах командной строки.
2. Проверьте совместимость модели
Не все модели выводят рассуждения в одинаковом формате. Проверьте документацию по своей модели на наличие:
- Какие теги используются для отображения контента (например, <think>, <reasoning>, и т. д.).
- Требуется ли специальное приглашение для включения режима мышления
3. Протестируйте с включенной потоковой передачей
Если потоковая передача не работает, попробуйте включить ее в чате:
- Перейдите в раздел Управление чатом (на боковой панели)
- Убедитесь, что потоковая передача включена (по умолчанию так и есть)
- Протестируйте модель еще раз
4. Проверьте версию ФКТ ИИ
Убедитесь, что у вас установлена последняя версия ФКТ ИИ, так как поддержка моделей рассуждений продолжает совершенствоваться:
docker pull ghcr.io/open-webui/open-webui:main
5. Проверьте формат ответа модели
Используйте интерфейс командной строки Ollama, чтобы проверить, в каком формате выдает результаты ваша модель:
ollama run your-model:tag "Explain step by step: What is 15 + 27?"
Найдите в выводе <think> теги. Если их нет, возможно, модели требуются специальные системные подсказки для включения режима мышления.
Модель «забывает», о чем думала, между вызовами инструментов
Симптом: после завершения вызова инструмента модель как будто «забывает», о чем думала.
Возможные причины:
- Модель не выводит рассуждения в фиксированном формате (reasoning_content, reasoning, или thinking дельта-поля)
- Модель использует текстовые теги для рассуждений, которые не анализируются как блоки рассуждений
Решение: Проверьте, выводит ли ваша модель логические рассуждения.
- Структурированные дельта-поля (reasoning_content, reasoning, thinking)
- Текстовые теги, которые распознает ФКТ ИИ (убедитесь, что функция распознавания тегов включена)
Расширенное мышление Anthropic не работает с вызовами инструментов
Проблема: при использовании моделей Claude от Anthropic с включенным расширенным мышлением вызовы инструментов завершаются с ошибками, например:
Expected `thinking` or `redacted_thinking`, but found `text`. When `thinking` is enabled,
a final `assistant` message must start with a thinking block.
Причина: Это фундаментальное архитектурное различие. ФКТ ИИ соответствует стандарту API для завершения предложений в чат-ботах OpenAI и изначально не поддерживает проприетарный формат API Anthropic. Расширенное мышление Anthropic требует структурированных блоков контента с {"type": "thinking"} или {"type": "redacted_thinking"}, которые являются специфичными для Anthropic форматами и отсутствуют в стандарте OpenAI.
ФКТ ИИ сериализует рассуждения в виде текста, заключенного в теги (например, <think>...</think>) внутри поля содержимого сообщения. Это работает с API, совместимыми с OpenAI, но не соответствует требованиям Anthropic к структурированным блокам мышления.
Почему ФКТ ИИне поддерживает эту функцию изначально:
Не существует стандартного способа хранения логических выводов в составе полезной нагрузки API у разных провайдеров. Если бы ФКТ ИИ реализовал поддержку формата одного провайдера, это, скорее всего, нарушило бы работу существующих систем для многих других провайдеров логического вывода. Учитывая широкий спектр бэкендов, поддерживаемых ФКТ ИИ, мы придерживаемся общего стандарта OpenAI Completions API. Подробнее об этом архитектурном решении читайте в нашем разделе часто задаваемых вопросов о поддержке протоколов.
Обходные пути:
- Используйте конвейерную функцию: создайте пользовательскую конвейерную функцию, которая преобразует текстовый формат мышления ФКТ ИИ в структурированные блоки мышления Anthropic перед отправкой запросов в Anthropic API.
- Отключите расширенное мышление: если вам не нужно расширенное мышление для рабочих процессов с использованием инструментов, отключите его, чтобы избежать несоответствия форматов.
примечание
Это ограничение распространяется только на сочетание расширенного мышления Anthropic с вызовами инструментов. Расширенное мышление работает без вызовов инструментов, а вызовы инструментов — без расширенного мышления. Проблема возникает только при совместном использовании этих функций через API Anthropic.
Модели с отслеживанием состояния (GPT-5.2 и т. д.)
Проблема: использование модели, которая скрывает свои логические цепочки (модели с отслеживанием состояния/внутренние логические цепочки), при этом логические цепочки не сохраняются.
Причина: некоторые новые модели (например, GPT-5.2) хранят свои логические обоснования внутри и не передают их в ответе API. ФКТ ИИ может сохранять только те логические обоснования, которые фактически возвращаются моделью.
Поведение: Если модель возвращает краткое описание рассуждений вместо полного текста, то сохраняется и отправляется именно это краткое описание.
Часто задаваемые вопросы
Почему блок размышлений отображается в виде обычного текста?
Если в модели используются теги, которых нет в списке по умолчанию и которые не были настроены в reasoning_tags, ФКТ ИИ будет воспринимать их как обычный текст. Это можно исправить, добавив правильные теги в параметр reasoning_tags в настройках модели или в разделе «Элементы управления чатом».
Видит ли модель ход своих мыслей?
Да. Содержание рассуждений сохраняется и передается модели в обоих случаях:
- В рамках одного хода (при вызовах инструментов): Да. Когда модель вызывает инструменты, ФКТ ИИ сохраняет содержимое рассуждений и отправляет его обратно в API в составе сообщения помощника. Это позволяет модели сохранять контекст своих рассуждений на момент вызова инструмента.
- В разных репликах: Да. При формировании сообщений для последующих запросов ФКТ ИИ сериализует контент с пояснениями из предыдущих реплик с исходными тегами (например, <think>...</think>) и включает его в поле content сообщения помощника. Это позволяет модели ссылаться на свои предыдущие пояснения на протяжении всего диалога.
Как передаются рассуждения при вызовах инструментов?
При вызовах инструментов рассуждения сериализуются в виде текста с исходными тегами и включаются в поле content сообщения помощника. Например:
<think>Let me search for the current weather...</think>
Этот текстовый формат работает с большинством провайдеров, совместимых с OpenAI. Однако некоторые провайдеры (например, Anthropic) могут ожидать структурированные блоки контента для обучения в определенном формате. В настоящее время ФКТ ИИ использует сериализацию на основе текста, а не структурированные форматы, специфичные для конкретного провайдера.