feat(proxy): sing-box для обхода блокировки OpenRouter из РФ
All checks were successful
Deploy / test (push) Successful in 3m48s
Deploy / deploy (push) Successful in 17m25s

OpenRouter отдаёт 403 с российских IP (подтверждено вживую). Добавлен
sing-box как отдельный сервис (VLESS+WS+TLS до ноды вне РФ) — только для
исходящих запросов к OpenRouter из ollama_client.py, остальной трафик
(Postgres/RabbitMQ/MinIO/Ollama) идёт напрямую. Реальный конфиг с UUID —
только на проде (см. config.json.example), в git не попадает.
This commit is contained in:
jze9
2026-08-26 17:37:26 +05:00
parent c156fb2b78
commit e05e658d81
6 changed files with 62 additions and 0 deletions

View File

@@ -45,6 +45,9 @@ class Settings(BaseSettings):
OPENROUTER_API_KEY: str = ""
OPENROUTER_MODEL: str = "deepseek/deepseek-chat"
OPENROUTER_URL: str = "https://openrouter.ai/api/v1/chat/completions"
# OpenRouter блокирует запросы из РФ — заворачиваем именно эти запросы
# через sing-box (docker-compose сервис singbox-proxy). Пусто = без прокси.
OPENROUTER_PROXY_URL: str = "socks5://singbox-proxy:1080"
# FAISS / ML
FAISS_INDEX_PATH: str = "/data/index/faiss.index"

View File

@@ -67,6 +67,7 @@ class OllamaClient:
json=payload,
headers={"Authorization": f"Bearer {settings.OPENROUTER_API_KEY}"},
timeout=self.timeout,
proxy=settings.OPENROUTER_PROXY_URL or None,
)
response.raise_for_status()
return response.json()["choices"][0]["message"]["content"]

View File

@@ -8,6 +8,7 @@ qdrant-client==1.19.0 # альтернативный векторный бэк
torch==2.3.0
numpy==1.26.4
httpx==0.27.0
socksio==1.0.0 # SOCKS5-прокси для httpx (нужен для OpenRouter из РФ, см. app.ollama_client)
minio==7.2.7
datasketch==1.6.5
pydantic-settings==2.2.1