forked from templates/template-go-orm
Go-сервис-прокси между Codex CLI и Ollama. Добавляет Bearer-авторизацию, LLM-маршрутизатор (deepseek классифицирует запросы: code/doc/general), поддержку OpenAI Responses API для Codex CLI, стриминг SSE, кеш модели. Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
85 lines
2.6 KiB
Markdown
85 lines
2.6 KiB
Markdown
# Ollama Proxy
|
||
|
||
[](https://drone.halfakop.ru/templates/orm)
|
||
|
||
Version: 1.0.0
|
||
|
||
Прокси-сервис между Codex CLI и локальной Ollama. Добавляет авторизацию и интеллектуальную маршрутизацию запросов: маленькая LLM-модель определяет тип запроса (код / документ / общее) и перенаправляет его к нужной целевой модели.
|
||
|
||
## Архитектура
|
||
|
||
```
|
||
Codex CLI → Ollama Proxy (:11435) → Ollama (:11434)
|
||
│
|
||
AUTH_TOKEN check
|
||
Router LLM (gemma:1b)
|
||
│
|
||
code document general
|
||
qwen2.5-coder gemma:1b gemma:1b
|
||
```
|
||
|
||
## Быстрый старт
|
||
|
||
### 1. Установить и запустить Ollama
|
||
|
||
```bash
|
||
# Скачать нужные модели
|
||
ollama pull gemma:1b
|
||
ollama pull qwen2.5-coder:1.5b
|
||
```
|
||
|
||
### 2. Настроить .env
|
||
|
||
```env
|
||
PROXY_PORT=11435
|
||
AUTH_TOKEN=my-secret-token
|
||
OLLAMA_URL=http://localhost:11434
|
||
ROUTER_MODEL=gemma:1b
|
||
CODE_MODEL=qwen2.5-coder:1.5b
|
||
DOC_MODEL=gemma:1b
|
||
GENERAL_MODEL=gemma:1b
|
||
```
|
||
|
||
### 3. Запустить прокси
|
||
|
||
```bash
|
||
make run
|
||
```
|
||
|
||
### 4. Настроить Codex CLI
|
||
|
||
Указать прокси вместо Ollama:
|
||
```
|
||
Base URL: http://localhost:11435
|
||
API Key: my-secret-token
|
||
```
|
||
|
||
## Команды
|
||
|
||
```bash
|
||
make build # Собрать бинарник
|
||
make run # Запустить (читает .env)
|
||
make test # Запустить тесты
|
||
```
|
||
|
||
## Переменные окружения
|
||
|
||
| Переменная | Описание | По умолчанию |
|
||
|-----------|----------|-------------|
|
||
| `PROXY_PORT` | Порт прокси | 11435 |
|
||
| `AUTH_TOKEN` | Токен авторизации | — (обязательна) |
|
||
| `OLLAMA_URL` | URL реальной Ollama | http://localhost:11434 |
|
||
| `ROUTER_MODEL` | Модель-классификатор | gemma:1b |
|
||
| `CODE_MODEL` | Модель для кода | qwen2.5-coder:1.5b |
|
||
| `DOC_MODEL` | Модель для документов | gemma:1b |
|
||
| `GENERAL_MODEL` | Общая модель | gemma:1b |
|
||
|
||
## API (Ollama-совместимый)
|
||
|
||
| Метод | URL | Описание |
|
||
|-------|-----|----------|
|
||
| GET | `/health` | Проверка работоспособности |
|
||
| POST | `/api/chat` | Чат (streaming NDJSON) |
|
||
| POST | `/api/generate` | Генерация текста (streaming NDJSON) |
|
||
| GET | `/api/tags` | Список доступных моделей |
|