This commit is contained in:
2026-02-01 17:57:16 +03:00
parent 3b4430086b
commit 56c4042539
3 changed files with 22 additions and 0 deletions

View File

@@ -16,6 +16,14 @@ OLLAMA_URL = "http://localhost:11434"
MODEL = "qwen3:14b" MODEL = "qwen3:14b"
DIR = Path(__file__).resolve().parent DIR = Path(__file__).resolve().parent
# Параметры для стабильного структурированного вывода (JSON framework)
OLLAMA_OPTIONS = {
"temperature": 0.3, # ниже = детерминированнее, меньше «творчества» и смены языка
"num_ctx": 8500, # контекст под длинную главу
"num_predict": 4096, # лимит токенов ответа под полный frame
"repeat_penalty": 1.1,
}
def load_input() -> dict: def load_input() -> dict:
with open(DIR / "вход_главы.json", encoding="utf-8") as f: with open(DIR / "вход_главы.json", encoding="utf-8") as f:
@@ -49,6 +57,7 @@ def call_ollama(prompt: str) -> str:
"messages": [{"role": "user", "content": prompt}], "messages": [{"role": "user", "content": prompt}],
"stream": False, "stream": False,
"format": "json", "format": "json",
"options": OLLAMA_OPTIONS,
}, },
ensure_ascii=False, ensure_ascii=False,
).encode("utf-8") ).encode("utf-8")

View File

@@ -44,6 +44,19 @@
В коде пайплайна имя модели задаётся конфигом (например, `OLLAMA_LLM_MODEL=qwen3:14b`). В коде пайплайна имя модели задаётся конфигом (например, `OLLAMA_LLM_MODEL=qwen3:14b`).
## Параметры генерации (options) для LLM
Для стабильного структурированного вывода (JSON framework) в `run_framework_ollama.py` передаётся блок `options`:
| Параметр | Значение | Назначение |
|----------------|----------|------------|
| `temperature` | 0.3 | Ниже = детерминированнее ответ, меньше смены языка и «творчества». Для извлечения frame лучше 0.20.5. |
| `num_ctx` | 8192 | Размер контекста (токены). Должен вмещать главу + промпт. |
| `num_predict` | 4096 | Макс. токенов ответа, чтобы полный JSON не обрезался. |
| `repeat_penalty` | 1.1 | Снижает повторения в тексте. |
Изменить можно в коде (`OLLAMA_OPTIONS`) или через переменные окружения, если скрипт будет их читать.
## Локальный Ollama (без Docker) ## Локальный Ollama (без Docker)
Если Ollama установлен локально: Если Ollama установлен локально: