feat(llm): провайдер за протоколом, OpenAI-совместимый API и mock #33

Merged
Eleboba merged 1 commits from feat/17-llm-provider into dev 2026-10-15 18:43:27 +03:00
Owner

Что меняется

LLM-провайдер за протоколом (ADR-008): OpenAI-совместимый API (OpenAI, YandexGPT, локальная модель) и mock для тестов/демо; выбор — LLM_PROVIDER. Ответы по JSON-схеме — для стража и планировщика агента (#18).

Closes #17

Как проверить

make lint && make test
LLM_PROVIDER=mock uv run python -m app.llm.cli 'привет'
# с реальной моделью: LLM_PROVIDER=openai_compat LLM_BASE_URL=… LLM_MODEL=… LLM_API_KEY=…

Открыто

Модель не выбрана — живой прогон после решения (вопрос в docs/QUESTIONS_IDEAS.md).

Чек-лист

  • ветка от origin/dev
  • lint + тесты зелёные
  • секретов в диффе нет
  • лог в issue дописан

🤖 Generated with Claude Code

## Что меняется LLM-провайдер за протоколом (ADR-008): OpenAI-совместимый API (OpenAI, YandexGPT, локальная модель) и `mock` для тестов/демо; выбор — `LLM_PROVIDER`. Ответы по JSON-схеме — для стража и планировщика агента (#18). Closes #17 ## Как проверить ```bash make lint && make test LLM_PROVIDER=mock uv run python -m app.llm.cli 'привет' # с реальной моделью: LLM_PROVIDER=openai_compat LLM_BASE_URL=… LLM_MODEL=… LLM_API_KEY=… ``` ## Открыто Модель не выбрана — живой прогон после решения (вопрос в `docs/QUESTIONS_IDEAS.md`). ## Чек-лист - [x] ветка от origin/dev - [x] lint + тесты зелёные - [x] секретов в диффе нет - [x] лог в issue дописан 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Eleboba added 1 commit 2026-10-14 18:07:16 +03:00
- LLMProvider: complete(messages, schema) -> LLMResult (текст, разобранный JSON, токены)
- openai_compat: /chat/completions, structured output через response_format json_schema,
  JSON из ```-обёртки тоже разбирается; ретраи на 429/5xx и сетевые ошибки, 4xx — сразу ошибка
- mock: детерминированные правила для тестов и демо без сети
- LLMSettings (LLM_PROVIDER/BASE_URL/MODEL/API_KEY…), CLI python -m app.llm.cli

Refs #17

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Eleboba merged commit b70797c805 into dev 2026-10-15 18:43:27 +03:00
Sign in to join this conversation.