- 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)
46 lines
2.3 KiB
Markdown
46 lines
2.3 KiB
Markdown
*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).
|