新一代 AI 网关,采用 OpenAI 兼容协议

zijiren233 a45bbb5110 docs: update readme 9 місяців тому
.github e847467840 fix: workflow yaml 9 місяців тому
common 5a165e8a0e fix: rename paceage 9 місяців тому
controller 5a165e8a0e fix: rename paceage 9 місяців тому
deploy eac3e0d51f first commit 9 місяців тому
middleware 5a165e8a0e fix: rename paceage 9 місяців тому
model 5a165e8a0e fix: rename paceage 9 місяців тому
monitor 5a165e8a0e fix: rename paceage 9 місяців тому
relay 5a165e8a0e fix: rename paceage 9 місяців тому
router 5a165e8a0e fix: rename paceage 9 місяців тому
.gitignore eac3e0d51f first commit 9 місяців тому
Dockerfile 349b765e18 feat: update dockerfile 9 місяців тому
README.md a45bbb5110 docs: update readme 9 місяців тому
docker-compose.yaml eac3e0d51f first commit 9 місяців тому
go.mod cd75ca9ec0 chore: bump go mod 9 місяців тому
go.sum cd75ca9ec0 chore: bump go mod 9 місяців тому
main.go 5a165e8a0e fix: rename paceage 9 місяців тому

README.md

Deploy

Use Docker

docker run -d --name aiproxy -p 3000:3000 -v $(pwd)/aiproxy:/aiproxy ghcr.io/labring/aiproxy:latest

Use Docker Compose

Copy docker-compose.yaml to the same directory as the aiproxy binary.

docker-compose up -d

Envs

Basic Configuration

  • ADMIN_KEY: The admin key for the AI Proxy Service, admin key is used to admin api and relay api, default is empty
  • SQL_DSN: The database connection string, default is empty, eg: postgres://postgres:postgres@localhost:5432/postgres
  • LOG_SQL_DSN: The log database connection string, default is empty, eg: postgres://postgres:postgres@localhost:5432/postgres
  • REDIS_CONN_STRING: The redis connection string, default is empty, eg: redis://localhost:6379
  • INTERNAL_TOKEN: Internal token for service authentication, default is empty
  • FFPROBE_ENABLED: Whether to enable ffprobe, default is false

Debug Options

  • DEBUG: Enable debug mode, default is false
  • DEBUG_SQL: Enable SQL debugging, default is false

Database Options

  • DISABLE_AUTO_MIGRATE_DB: Disable automatic database migration, default is false
  • SQL_MAX_IDLE_CONNS: The maximum number of idle connections in the database, default is 100
  • SQL_MAX_OPEN_CONNS: The maximum number of open connections to the database, default is 1000
  • SQL_MAX_LIFETIME: The maximum lifetime of a connection in seconds, default is 60
  • SQLITE_PATH: The path to the sqlite database, default is aiproxy.db
  • SQL_BUSY_TIMEOUT: The busy timeout for the database, default is 3000

Notify Options

  • NOTIFY_NOTE: Custom notification note, default is AI Proxy
  • NOTIFY_FEISHU_WEBHOOK: The feishu notify webhook url, default is empty, eg: https://open.feishu.cn/open-apis/bot/v2/hook/xxxx

Model Configuration

  • DISABLE_MODEL_CONFIG: Disable model configuration, default is false
  • RETRY_TIMES: Number of retry attempts, default is 0
  • ENABLE_MODEL_ERROR_AUTO_BAN: Enable automatic banning of models with errors, default is false
  • MODEL_ERROR_AUTO_BAN_RATE: Rate threshold for auto-banning models with errors, default is 0.3
  • TIMEOUT_WITH_MODEL_TYPE: Timeout settings for different model types, default is {}
  • DEFAULT_CHANNEL_MODELS: Default models for each channel, default is {}
  • DEFAULT_CHANNEL_MODEL_MAPPING: Model mapping for each channel, default is {}

Logging Configuration

  • LOG_STORAGE_HOURS: Hours to store logs (0 means unlimited), default is 0
  • SAVE_ALL_LOG_DETAIL: Save all log details, default is false
  • LOG_DETAIL_REQUEST_BODY_MAX_SIZE: Maximum size for request body in log details, default is 128KB
  • LOG_DETAIL_RESPONSE_BODY_MAX_SIZE: Maximum size for response body in log details, default is 128KB
  • LOG_DETAIL_STORAGE_HOURS: Hours to store log details, default is 72 (3 days)

Service Control

  • DISABLE_SERVE: Disable serving requests, default false
  • GROUP_MAX_TOKEN_NUM: Maximum number of tokens per group (0 means unlimited), default is 0
  • GROUP_CONSUME_LEVEL_RATIO: Consumption level ratio for groups, default is {}
  • GEMINI_SAFETY_SETTING: Safety setting for Gemini models, default is BLOCK_NONE
  • BILLING_ENABLED: Enable billing functionality, default is true