Об этом проекте

# One API Доступ ко всем большим языковым моделям через стандартный формат OpenAI API — готов к использованию. ## Поддерживаемые модели и каналы - OpenAI ChatGPT (включая Azure OpenAI) - Anthropic Claude (включая AWS Claude) - Google PaLM2 / Gemini - Mistral - ByteDance Doubao (Volcano Engine) - Baidu Wenxin Yiyan - Alibaba Tongyi Qianwen - iFlytek Spark - Zhipu ChatGLM - 360 Smart Brain - Tencent Hunyuan - Moonshot AI, Baichuan, MINIMAX, DeepSeek - Groq, Ollama, 01.AI, StepFun, Coze - Cohere, Cloudflare Workers AI, together.ai, novita.ai - SiliconCloud, xAI, DeepL и другие ## Ключевые функции 1. **Единая адаптация API**: все каналы предоставляют интерфейс в совместимом с OpenAI формате, изменение кода не требуется. 2. **Балансировка нагрузки**: маршрутизация между каналами с автоматическим распределением запросов по группам. 3. **Управление токенами**: настройка срока действия, лимитов, диапазонов IP и списка моделей для каждого токена. 4. **Управление каналами**: массовое создание и управление downstream-каналами с индивидуальными настройками моделей. 5. **Группы пользователей**: разные группы с различными коэффициентами и правами. 6. **Обменные коды**: массовая генерация и экспорт для пополнения счетов. 7. **Автоматический повтор при сбое**: переключение на другой доступный канал при отказе. 8. **Интерфейс генерации изображений**: ретрансляция API для создания изображений. 9. **Реферальные вознаграждения**: механизм приглашений пользователей. 10. **Многоузловая部署**: распределённое развёртывание по архитектуре master/slave с синхронизацией кэша через Redis. 11. **Кастомизация**: название системы, логотип, подвал, главная и страницы «О нас». 12. **Способы входа**: регистрация по email, авторизация через Feishu, GitHub, WeChat. 13. **Cloudflare AI Gateway**: прямая интеграция. 14. **Смена темы**: поддержка переключения UI-тем. ## Развёртывание ### Docker (рекомендуется) ```shell # SQLite docker run --name one-api -d --restart always -p 3000:3000 \ -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data \ justsong/one-api # MySQL docker run --name one-api -d --restart always -p 3000:3000 \ -e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi" \ -e TZ=Asia/Shanghai -v /home/ubuntu/data/one-api:/data \ justsong/one-api ``` Первоначальный аккаунт: логин `root`, пароль `123456`. ### Docker Compose ```shell docker-compose up -d ``` Данные хранятся в директории `./data/mysql`. ### Ручное развёртывание ```shell git clone https://github.com/songquanpeng/one-api.git cd one-api/web/default && npm install && npm run build cd ../.. && go mod download && go build -ldflags "-s -w" -o one-api ./one-api --port 3000 --log-dir ./logs ``` ### Сторонние платформы Поддерживаются Sealos, Zeabur, Render и другие платформы с одним кликом, совместим с панелью Baota. ## Использование 1. На странице «Каналы» добавьте API Key для каждой модели. 2. На странице «Токены» создайте access-токен для нужного пользователя. 3. Укажите в клиенте API Base как адрес One API (например, `https://your-domain/v1`), API Key — сгенерированный токен. Для указания конкретного канала добавьте `-CHANNEL_ID` после токена: `Authorization: Bearer ONE_API_KEY-1`. ## Ключевые переменные окружения | Переменная | Описание | |---|---| | `REDIS_CONN_STRING` | Включение кэша Redis | | `SESSION_SECRET` | Фиксированный ключ сессии, сохранение входа после перезапуска | | `SQL_DSN` | Замена SQLite на MySQL/PostgreSQL | | `SYNC_FREQUENCY` | Частота синхронизации кэша (сек), рекомендуется для многоузловой部署 | | `NODE_TYPE` | `master` или `slave`, для многоузловой部署 | | `FRONTEND_BASE_URL` | Переадресация фронтенд-запросов с сервера | | `INITIAL_ROOT_TOKEN` | Автоматическое создание root-токена при первом запуске | ## Лицензия MIT — требуется сохранение атрибуции и ссылки на проект в подвале страницы.