feat: universal LLM gateway with embedded multilingual admin console
- OpenAI-compatible gateway with intelligent routing via cortiq-router (allaigate) - Embedded build-free admin SPA at /admin: 7 languages (en/ru/de/fr/es/zh/tr), light/dark themes, hot config reload (no restart) - Admin API, per-request statistics + Prometheus /metrics, secret store, playground - English documentation (primary) with Russian translations (*.ru.md)
This commit is contained in:
@@ -0,0 +1,45 @@
|
||||
*Read this in [English](CONTRIBUTING.md).*
|
||||
|
||||
# Contributing to Cortiq Gateway
|
||||
|
||||
Спасибо за интерес к проекту! Это открытый шлюз, и мы рады контрибьюциям.
|
||||
|
||||
## С чего начать
|
||||
|
||||
1. Прочитайте [docs/ARCHITECTURE.md](docs/ARCHITECTURE.ru.md) — устройство и дорожная карта.
|
||||
2. Посмотрите [docs/PROTOCOLS.md](docs/PROTOCOLS.ru.md) и [docs/ROUTING.md](docs/ROUTING.ru.md).
|
||||
3. Текущая фаза — **Phase 0** (скелет). Хорошие первые задачи помечены `good first issue`.
|
||||
|
||||
## Как добавить...
|
||||
|
||||
- **Новый входящий протокол** — реализуйте трейт `InboundProtocol` в `src/protocols/`,
|
||||
переведите его в/из канонической модели (`ChatRequest`/`ChatResponse`), добавьте флаг
|
||||
в `[protocols]`. Не трогайте провайдеры.
|
||||
- **Нового провайдера** — реализуйте трейт `Provider` в `src/providers/`. Большинство
|
||||
локальных серверов OpenAI-совместимы → часто достаточно переиспользовать `openai.rs`.
|
||||
- **Новую политику роутинга** — расширьте `src/routing.rs` и секцию `[routing.policy]`.
|
||||
|
||||
Принцип: N протоколов × M провайдеров общаются **только** через каноническую модель —
|
||||
никаких прямых переводов «протокол↔провайдер».
|
||||
|
||||
## Стиль и проверки
|
||||
|
||||
```bash
|
||||
cargo fmt --all
|
||||
cargo clippy --all-targets -- -D warnings
|
||||
cargo test
|
||||
```
|
||||
|
||||
- Пишите код в стиле окружающего кода.
|
||||
- Секреты — только через `*_env`, никогда в репозиторий.
|
||||
- Новый функционал сопровождайте тестами и обновлением docs/.
|
||||
|
||||
## Pull requests
|
||||
|
||||
- Небольшие, сфокусированные PR. Один PR — одна логическая единица.
|
||||
- В описании: что, зачем, как протестировано.
|
||||
- Линкуйте issue, если есть.
|
||||
|
||||
## Лицензия
|
||||
|
||||
Контрибьюции принимаются под [Apache-2.0](LICENSE).
|
||||
Reference in New Issue
Block a user