llm: OpenRouter через прокси — включить агента логов #52

Closed
opened 2026-10-19 14:02:09 +03:00 by Eleboba · 1 comment
Owner

Описание

Агент логов (#18) готов, но выключен: на сервере нет LLM. Ключ OpenRouter появился; OpenRouter блокирует IP из РФ, поэтому, как в meditron (OPENROUTER_PROXY_URL), запросы идут через HTTP-прокси сервера. ADR-008: провайдер за протоколом, OpenRouter — это openai_compat.

Желаемый результат

  • LLM_PROXY_URL — прокси для запросов к LLM; ключ можно задать как LLM_API_KEY или OPENROUTER_API_KEY.
  • Модель со structured output (json_schema) отвечает стражу и планировщику; проверено вживую.
  • На dev-боте «🤖 Спросить агента» работает: обычный вопрос → grep + строки, атака → отказ и 🛡.

Подзадачи

  • app/config.py, app/llm/openai_compat.py — прокси и алиас ключа
  • Тесты
  • Живая проверка стража и планировщика на OpenRouter
  • .env.example, README, DEPLOY
  • Включить на dev (/srv/tgit/dev/.env)

Анализ

Ограничения и риски

Ключ и прокси — секреты (SecretStr), в логи не попадают. OpenRouter — внешний сервис: в LLM уходят только промт и имена контейнеров, логи — нет (ADR-013).

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

uv run python -m app.llm.cli … с ключом; на dev — сценарии 7–8 из docs/DEMO.md.


Лог выполнения

## Описание Агент логов (#18) готов, но выключен: на сервере нет LLM. Ключ OpenRouter появился; OpenRouter блокирует IP из РФ, поэтому, как в meditron (`OPENROUTER_PROXY_URL`), запросы идут через HTTP-прокси сервера. ADR-008: провайдер за протоколом, OpenRouter — это `openai_compat`. ## Желаемый результат - `LLM_PROXY_URL` — прокси для запросов к LLM; ключ можно задать как `LLM_API_KEY` или `OPENROUTER_API_KEY`. - Модель со structured output (`json_schema`) отвечает стражу и планировщику; проверено вживую. - На dev-боте «🤖 Спросить агента» работает: обычный вопрос → grep + строки, атака → отказ и 🛡. ## Подзадачи - [ ] `app/config.py`, `app/llm/openai_compat.py` — прокси и алиас ключа - [ ] Тесты - [ ] Живая проверка стража и планировщика на OpenRouter - [ ] `.env.example`, README, DEPLOY - [ ] Включить на dev (`/srv/tgit/dev/.env`) ## Анализ ### Ограничения и риски Ключ и прокси — секреты (`SecretStr`), в логи не попадают. OpenRouter — внешний сервис: в LLM уходят только промт и имена контейнеров, логи — нет (ADR-013). ## Как проверить `uv run python -m app.llm.cli …` с ключом; на dev — сценарии 7–8 из `docs/DEMO.md`. --- ## Лог выполнения
Author
Owner

2026-10-22

  • Ключ OpenRouter обновлён, валиден (/api/v1/key → 200).
  • Живая проверка на google/gemini-2.5-flash-lite (json_schema): страж — обычный вопрос → safe, prompt injection → attack; планировщик → валидный LogQuery.
  • make lint && make test — 361 passed. PR #53 в dev.
  • Осталось: LLM_* в /srv/tgit/dev/.env + мерж/деплой — сервер не отдаёт SSH-баннер (порт 22 открыт, таймаут на banner exchange).
### 2026-10-22 - Ключ OpenRouter обновлён, валиден (`/api/v1/key` → 200). - Живая проверка на `google/gemini-2.5-flash-lite` (json_schema): страж — обычный вопрос → safe, prompt injection → attack; планировщик → валидный `LogQuery`. - `make lint && make test` — 361 passed. PR #53 в `dev`. - Осталось: `LLM_*` в `/srv/tgit/dev/.env` + мерж/деплой — сервер не отдаёт SSH-баннер (порт 22 открыт, таймаут на banner exchange).
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: HSE/tgit#52