Skip to content

zxcnoname666/lm-proxy

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

LM‑Proxy  🦄

GitHub stars GitHub forks GitHub issues GitHub last commit

Repo Stats

LM‑Proxy — миниатюрный, но мощный прокси‑сервер (TypeScript + Deno), который превращает любой OpenAI‑совместимый клиент (например, LM Studio) в универсальный «переводчик» для других LLM‑провайдеров. Скомпилированный бинарник весит всего несколько мегабайт — никакого Node, никаких зависимостей, только один файл.


✨ Ключевые особенности

  • Полная совместимость с OpenAI API — перехватывает маршруты /v1/chat/completions, /v1/models и автоматически перенаправляет устаревшие пути (/api/*, /v0/*) на корректные эндпоинты.
  • Умная трансформация запросов и ответов — удаляет неподдерживаемые поля (keep_alive, пустые tools, неверные max_tokens) и добавляет system_fingerprint, чтобы LM Studio корректно отображал модель.
  • Один статический бинарникdeno compile собирает проект в автономный исполняемый файл; запуск осуществляется буквально «из коробки».
  • Микро‑Docker‑образ < 8 МБ — многоступенчатая сборка копирует готовый бинарник в bitnami/minideb, минимизируя размер контейнера.
  • .env‑конфигурация — достаточно задать AI_BASE_URL и AI_TOKEN; пример файла находится в репозитории.

🚀 Быстрый старт

Локально (Deno)

# 1. Клонируем репозиторий
git clone https://github.com/zxcnoname666/lm-proxy
cd lm-proxy

# 2. Настраиваем окружение
cp .env.example .env            # правим URL и токен

# 3. Запускаем
deno run --allow-env --allow-net main.ts
# По умолчанию LM‑Proxy слушает порт 8000

В Docker

docker build -t lm-proxy .
docker run -d --env-file .env -p 8080:8000 lm-proxy

⚙️ Переменная PORT позволяет изменить порт внутри контейнера (по умолчанию 8000).


🔌 Интеграция с LM Studio

  1. Откройте Settings → Providers → OpenAI compatible;
  2. В поле API Base укажите http://localhost:8000 (или другой адрес, если меняли порт);
  3. API Key впишите любую строку — LM Studio проверяет лишь наличие токена;
  4. Выберите модель из списка — прокси автоматически преобразует JSON /v1/models в формат, понятный LM Studio.

🧩 Как это работает

graph LR
    A[LM Studio / curl] -->|OpenAI JSON| B(LM‑Proxy)
    B -->|Переписанный запрос + Bearer| C[LLM Backend\nAI_BASE_URL]
    C -->|Stream| B -->|Изменённый поток| A
Loading
  1. Маршрутизация — убирает префиксы /api и /v0.
  2. Авторизация — добавляет Authorization: Bearer <AI_TOKEN>.
  3. Трансформация SSE‑потока — подставляет fingerprint модели для корректного рендера.

⚙️ Переменные окружения

Переменная Обязательно Значение по умолчанию Описание
AI_BASE_URL ✔️ URL LLM‑провайдера (например, https://api.endpoints.ai)
AI_TOKEN ✔️ Bearer‑токен для доступа к API
PORT 8000 Локальный порт LM‑Proxy

🛠️ Скрипты задач

Скрипт Что делает
deno task dev Запускает сервер с авто‑перезагрузкой

📜 Лицензия

Проект распространяется под лицензией MIT. Буду рад звёздочке ⭐️ или PR‑у с улучшениями!

About

Proxy lm studio to dest OpenAI like http server

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages