LLM-провайдер за протоколом (ADR-008): OpenAI-совместимый API (OpenAI, YandexGPT, локальная модель) и mock для тестов/демо; выбор — LLM_PROVIDER. Ответы по JSON-схеме — для стража и планировщика агента (#18).
make lint && make testLLM_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).
## Что меняется
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)
- 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>
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
Что меняется
LLM-провайдер за протоколом (ADR-008): OpenAI-совместимый API (OpenAI, YandexGPT, локальная модель) и
mockдля тестов/демо; выбор —LLM_PROVIDER. Ответы по JSON-схеме — для стража и планировщика агента (#18).Closes #17
Как проверить
Открыто
Модель не выбрана — живой прогон после решения (вопрос в
docs/QUESTIONS_IDEAS.md).Чек-лист
🤖 Generated with Claude Code