feat: флажок think_tags — вырезание think-тегов из ответа (split/strip)
Build LLM Proxy / Build and push (release) Successful in 24s
Build LLM Proxy / Build and push (release) Successful in 24s
Некоторые провайдеры (minimax) отдают рассуждения модели текстом внутри content, обернув их тегами think. Новое опциональное поле think_tags у providers[] и upstreams[] (приоритет: апстрим -> провайдер -> off, толерантный разбор true/false, неизвестное = off). - off: поведение не меняется (сырой байтовый passthrough в стриме); - split: блоки think вырезаются из content, текст уходит в reasoning_content; - strip: вырезаются и выбрасываются. Стрим разбирается построчно: отдельный ThinkTagSplitter на каждый choices[].index, хвост, который может оказаться началом разрезанного тега, не отдаётся до разрешения, на конце потока — finish(). Non-stream: тот же трансформ для message.content (и для результата rebuildFromChunks), уже существующий reasoning_content дописывается, а не теряется. Тесты: ThinkTagSplitterTest (7), разбор конфига и эффективный режим в ConfigLogicTest (2) — всего 42 теста, 0 падений. CONFIG.md + README.
This commit is contained in:
@@ -19,6 +19,11 @@ CWD; переопределяется env `CONFIG_PATH`). Блоки: `server` (
|
||||
умолчанию для его апстримов), и на апстриме (перекрывает провайдерский); без
|
||||
обоих — безлимит.
|
||||
|
||||
Обработку think-тегов включает опциональный флажок `think_tags` у провайдера или
|
||||
апстрима (`off` по умолчанию, `split` — рассуждения из `<think>…</think>` уходят
|
||||
в `reasoning_content`, `strip` — выбрасываются); работает и в стриме, и в
|
||||
non-stream.
|
||||
|
||||
| Переменная | Default | Описание |
|
||||
|---|---|---|
|
||||
| `CONFIG_PATH` | `config.yaml` (CWD) | Путь к YAML-конфигу |
|
||||
|
||||
Reference in New Issue
Block a user