AI模型聚合管理中转分发系统,一个应用管理您的所有AI模型,支持将多种大模型转为统一格式调用,支持OpenAI、Claude、Gemini等格式,可供个人或者企业内部管理与分发渠道使用。
|
|
11 mesi fa | |
|---|---|---|
| .github | 11 mesi fa | |
| bin | 2 anni fa | |
| common | 1 anno fa | |
| constant | 1 anno fa | |
| controller | 11 mesi fa | |
| dto | 1 anno fa | |
| middleware | 1 anno fa | |
| model | 11 mesi fa | |
| relay | 11 mesi fa | |
| router | 1 anno fa | |
| service | 11 mesi fa | |
| setting | 1 anno fa | |
| web | 11 mesi fa | |
| .dockerignore | 1 anno fa | |
| .env.example | 1 anno fa | |
| .gitignore | 1 anno fa | |
| BT.md | 1 anno fa | |
| Dockerfile | 1 anno fa | |
| LICENSE | 1 anno fa | |
| Midjourney.md | 1 anno fa | |
| README.en.md | 1 anno fa | |
| README.md | 1 anno fa | |
| Rerank.md | 1 anno fa | |
| Suno.md | 1 anno fa | |
| VERSION | 2 anni fa | |
| docker-compose.yml | 1 anno fa | |
| go.mod | 1 anno fa | |
| go.sum | 1 anno fa | |
| main.go | 1 anno fa | |
| makefile | 1 anno fa | |
| one-api.service | 2 anni fa |
[!NOTE]
This is an open-source project developed based on One API[!IMPORTANT]
- Users must comply with OpenAI's Terms of Use and relevant laws and regulations. Not to be used for illegal purposes.
- This project is for personal learning only. Stability is not guaranteed, and no technical support is provided.
This version additionally supports:
You can add custom models gpt-4-gizmo-* in channels. These are third-party models and cannot be called with official OpenAI keys.
GENERATE_DEFAULT_TOKEN: Generate initial token for new users, default falseSTREAMING_TIMEOUT: Set streaming response timeout, default 60 secondsDIFY_DEBUG: Output workflow and node info to client for Dify channel, default trueFORCE_STREAM_OPTION: Override client stream_options parameter, default trueGET_MEDIA_TOKEN: Calculate image tokens, default trueGET_MEDIA_TOKEN_NOT_STREAM: Calculate image tokens in non-stream mode, default trueUPDATE_TASK: Update async tasks (Midjourney, Suno), default trueGEMINI_MODEL_MAP: Specify Gemini model versions (v1/v1beta), format: "model:version", comma-separatedCOHERE_SAFETY_SETTING: Cohere model safety settings, options: NONE, CONTEXTUAL, STRICT, default NONEGEMINI_VISION_MAX_IMAGE_NUM: Gemini model maximum image number, default 16, set to -1 to disableMAX_FILE_DOWNLOAD_MB: Maximum file download size in MB, default 20CRYPTO_SECRET: Encryption key for encrypting database content[!TIP] Latest Docker image:
calciumion/new-api:latest
Default account: root, password: 123456
Update command:> docker run --rm -v /var/run/docker.sock:/var/run/docker.sock containrrr/watchtower -cR > ``` ### Multi-Server Deployment - Must set `SESSION_SECRET` environment variable, otherwise login state will not be consistent across multiple servers. - If using a public Redis, must set `CRYPTO_SECRET` environment variable, otherwise Redis content will not be able to be obtained in multi-server deployment. ### Requirements - Local database (default): SQLite (Docker deployment must mount `/data` directory) - Remote database: MySQL >= 5.7.8, PgSQL >= 9.6 ### Docker Deployment ### Using Docker Compose (Recommended)shell
Clone project
git clone https://github.com/Calcium-Ion/new-api.git cd new-api
Edit docker-compose.yml as needed
Start
docker-compose up -d
### Direct Docker Image Usageshell
SQLite deployment:
docker run --name new-api -d --restart always -p 3000:3000 -e TZ=Asia/Shanghai -v /home/ubuntu/data/new-api:/data calciumion/new-api:latest
MySQL deployment (add -e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi"), modify database connection parameters as needed
Example:
docker run --name new-api -d --restart always -p 3000:3000 -e SQL_DSN="root:123456@tcp(localhost:3306)/oneapi" -e TZ=Asia/Shanghai -v /home/ubuntu/data/new-api:/data calciumion/new-api:latest
## Channel Retry Channel retry is implemented, configurable in `Settings->Operation Settings->General Settings`. **Cache recommended**. First retry uses same priority, second retry uses next priority, and so on. ### Cache Configuration 1. `REDIS_CONN_STRING`: Use Redis as cache + Example: `REDIS_CONN_STRING=redis://default:redispw@localhost:49153` 2. `MEMORY_CACHE_ENABLED`: Enable memory cache, default `false` + Example: `MEMORY_CACHE_ENABLED=true` ### Why Some Errors Don't Retry Error codes 400, 504, 524 won't retry ### To Enable Retry for 400 In `Channel->Edit`, set `Status Code Override` to:json { "400": "500" } ```