Files
Proxy_for_codex/README.md
2026-03-19 22:36:49 +03:00

219 lines
7.4 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Подключение Codex к удалённой машине через Ollama
---
## 1. Узнаём IP сервера
Первым делом нужно узнать IP выбранного сервера.
**Linux:**
```bash
hostname -I
```
Первый адрес в выводе — это ваш IP.
**Windows:**
```cmd
ipconfig
```
Ищешь строку:
```
IPv4 Address: 192.168.x.x
```
---
## 2. Устанавливаем Ollama
**Linux:**
```bash
curl -fsSL https://ollama.com/install.sh | sh
```
**Windows:** самый удобный способ установки — через [официальный сайт](https://ollama.com) через установщик (.exe).
> **ВАЖНО:** Если у сервера недостаточно мощная GPU или её вообще нет, то отвечать модели будут очень долго.
---
## 3. Скачиваем модель
Заходим на сайт https://ollama.com/library и выбираем любую/любые модели для установки. Внимательно смотрите на её объём (он измеряется в миллиардах параметров) и на то, совместима ли она с Codex (это можно узнать, кликнув на модель и внизу под **Applications** будет написан `codex`, если совместима, и ничего если нет).
Копируем название модели (для примера я взял `qwen3:0.6b`). Теперь на сервере пишем:
```bash
ollama pull qwen3:0.6b
```
Пойдёт установка модели на сервер.
---
## 4. Настройка переменных окружения (самое важное)
### Зачем это нужно
По умолчанию Ollama:
- слушает только `localhost` (другие устройства не видят)
- может выгружать модель из памяти
- может обрабатывать несколько запросов и падать (на слабых устройствах)
### Переменные
| Переменная | Значение | Описание |
|---|---|---|
| `OLLAMA_HOST` | `0.0.0.0` | **ОБЯЗАТЕЛЕН.** Открывает доступ к серверу по сети. |
| `OLLAMA_KEEP_ALIVE` | `30m` или `-1` | **ОБЯЗАТЕЛЕН.** Держит модель в памяти. `30m` — выгрузит через 30 минут, если запросов не будет, `-1` — не выгружает вообще. Без этого модель будет постоянно перезагружаться. |
| `OLLAMA_NUM_PARALLEL` | `1`, `2`, `3` или `4` | Количество одновременных запросов. Можно не ставить, если не нужны параллельные запросы. |
| `OLLAMA_FLASH_ATTENTION` | `1` | Ускоряет инференс на GPU (если поддерживается). Полезен, если есть GPU. |
| `OLLAMA_KV_CACHE_TYPE` | `q8_0` / `f16` / `q4_0` | Кэш ключ-значение (KV cache), который модель использует для контекста. |
**Типы KV-кэша:**
| Значение | Память | Скорость |
|---|---|---|
| `f16` | много | быстрее |
| `q8_0` | средне | нормально |
| `q4_0` | мало | чуть медленнее |
---
### Как задать переменные
#### Linux
```bash
sudo systemctl edit ollama
```
Появится панель в `nano` — что-то вроде такой:
```
### Editing /etc/systemd/system/ollama.service.d/override.conf
### Anything between here and the comment below will become the contents of the drop-in file
### Edits below this comment will be discarded
### /etc/systemd/system/ollama.service
# [Unit]
# Description=Ollama Service
# ...
```
Необходимо **между** строками `Anything between here and the comment below...` и `Edits below this comment will be discarded` вставить:
```ini
[Service]
Environment="OLLAMA_HOST=0.0.0.0"
Environment="OLLAMA_KEEP_ALIVE=30m"
```
(ну и другие Environment если нужно)
Сохраняем и выходим: `Ctrl+O``Enter``Ctrl+X`.
Далее перезагружаем Ollama, чтобы она запускалась как "сервер":
```bash
sudo systemctl daemon-reload
sudo systemctl restart ollama
```
#### Windows
PowerShell **(от имени администратора)**:
```powershell
setx OLLAMA_HOST "0.0.0.0" /M
setx OLLAMA_KEEP_ALIVE "30m" /M
```
И в **новой** консоли запускаем:
```bash
ollama serve
```
---
## 5. Проверка, что Ollama запущена
На самом сервере:
```bash
curl http://localhost:11434/api/tags
```
И с другого ноутбука или ПК пишем в терминале:
```bash
curl http://<IP_СЕРВЕРА>:11434/api/tags
```
Так мы узнаем, запущен ли сервер.
---
## 6. Настройка Codex на клиентском устройстве
Переходим к другому устройству. Предварительно необходимо установить [Node.js](https://nodejs.org) и Codex.
После установки нужно изменить конфиг Codex'а, чтобы Codex отправлял запросы не к `openai.com`, а к нам на сервер.
На **Linux** просто пишем в терминал:
```bash
nano ~/.codex/config.toml
```
**Windows:** файл находится в директории:
```
C:\Users\<user>\.codex\config.toml
```
Далее написан пример конфига с обязательными переменными для заполнения (но можете сами корректировать названия моделей):
```toml
model = "qwen3:0.6b" # по умолчанию стоит auto, теперь при запуске будет запускаться наша установленная модель
model_provider = "ollama_direct"
[model_providers.ollama_direct]
name = "Ollama"
base_url = "http://192.168.1.50:11434/v1" # указываем ip сервера - http://ip:11434/v1
wire_api = "responses"
# Поле для дополнительных моделей — чтобы можно было работать с множеством моделей.
# Название "small" можно заменить на какое угодно.
[profiles.small]
model = "qwen2.5-coder:0.5b" # или любая другая, главное — заранее установить на сервер (ollama pull)
model_provider = "ollama_direct"
```
> **ВАЖНО:** если в конфиге есть поле `OPENAI_API_KEY`, то удалите его.
---
## 7. Запуск
Всё, теперь пишем в терминале:
```bash
codex
```
И работаем с выбранной нами по умолчанию моделью.
Можно также выбрать другую модель, которую написали в доп поле как [profiles.]:
```bash
codex --profile small
```
Тогда будете работать с, как у меня в примере, `qwen2.5-coder:0.5b` или своей другой скачанной моделью.