Sign inSign up

jsntwdj/aiproxy

By jsntwdj

Updated over 1 year ago

labring/aiproxy (适配arm64/v8运行环境)

Image
Machine learning & AI
0

1.2K

jsntwdj/aiproxy repository overview

English | 简体中文

AI Proxy

新一代 AI 网关,使用 OpenAI 作为协议入口。

特性

  • 智能错误重试
  • 基于优先级与错误率选择渠道
  • 告警通知
    • 渠道余额预警
    • 错误率预警
    • 无权限渠道预警
    • 更多...
  • 日志与审计
    • 完善的请求日志数据
    • 请求体、响应体记录
    • 请求日志链路追踪
  • 数据统计分析
    • 请求量统计
    • 错误量统计
    • RPM TPM 统计
    • 消费统计
    • 模型统计
    • 渠道错误率分析
    • 更多...
  • Rerank 支持
  • PDF 支持
  • STT 模型映射支持
  • 多租户系统分离
  • 模型 RPM TPM 限制
  • Think 模型支持 <think> 切分到 reasoning_content
  • 提示词缓存计费支持
  • 内敛分词器,无需额外下载 tiktoken 文件
  • API Swagger 文档支持 http://host:port/swagger/index.html

如何使用

Sealos

使用Sealos 内置模型能力,点击前往 Sealos

FastGPT

通过 AI Proxy 接入模型,点击前往 FastGPT

部署

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

docker-compose.yaml 复制到目录。

docker network create fastgpt
version: '3.3'
services:
  # AI Proxy
  aiproxy:
    image: jsntwdj/aiproxy
    container_name: aiproxy
    restart: unless-stopped
    depends_on:
      aiproxy_pg:
        condition: service_healthy
    ports:
      - 3000:3000
    networks:
      - fastgpt
    environment:
      # 对应 fastgpt 里的AIPROXY_API_TOKEN
      - ADMIN_KEY=aiproxy
      # 错误日志详情保存时间(小时)
      - LOG_DETAIL_STORAGE_HOURS=1
      # 数据库连接地址
      - SQL_DSN=postgres://postgres:aiproxy@aiproxy_pg:5432/aiproxy
      # 最大重试次数
      - RETRY_TIMES=3
      # 不需要计费
      - BILLING_ENABLED=false
      # 不需要严格检测模型
      - DISABLE_MODEL_CONFIG=true
    healthcheck:
      test: ['CMD', 'curl', '-f', 'http://localhost:3000/api/status']
      interval: 5s
      timeout: 5s
      retries: 10

  aiproxy_pg:
    image: pgvector/pgvector:0.8.0-pg15 # docker hub
    # image: registry.cn-hangzhou.aliyuncs.com/fastgpt/pgvector:v0.8.0-pg15 # 阿里云
    restart: unless-stopped
    container_name: aiproxy_pg
    volumes:
      - ./aiproxy_pg:/var/lib/postgresql/data
    networks:
      - fastgpt
    environment:
      TZ: Asia/Shanghai
      POSTGRES_USER: postgres
      POSTGRES_DB: aiproxy
      POSTGRES_PASSWORD: aiproxy
    healthcheck:
      test: ['CMD', 'pg_isready', '-U', 'postgres', '-d', 'aiproxy']
      interval: 5s
      timeout: 5s
      retries: 10
networks:
     fastgpt:
        external: true

docker-compose up -d

环境变量

基础配置
  • LISTEN: 监听地址,默认 :3000
  • ADMIN_KEY: 管理员密钥,用于管理 API 和转发 API,默认空
  • INTERNAL_TOKEN: 内部服务认证 token,默认空
  • FFMPEG_ENABLED: 是否启用 ffmpeg,默认 false
Debug 选项
  • DEBUG: 启用调试模式,默认 false
  • DEBUG_SQL: 启用 SQL 调试,默认 false
数据库选项
  • SQL_DSN: 数据库连接字符串,默认空,eg: postgres://postgres:postgres@localhost:5432/postgres
  • LOG_SQL_DSN: 日志数据库连接字符串,默认空,eg: postgres://postgres:postgres@localhost:5432/postgres
  • REDIS_CONN_STRING: Redis 连接字符串,默认空,eg: redis://localhost:6379
  • DISABLE_AUTO_MIGRATE_DB: 禁用自动数据库迁移,默认 false
  • SQL_MAX_IDLE_CONNS: 数据库最大空闲连接数,默认 100
  • SQL_MAX_OPEN_CONNS: 数据库最大打开连接数,默认 1000
  • SQL_MAX_LIFETIME: 数据库连接最大生命周期,默认 60
  • SQLITE_PATH: SQLite 数据库路径,默认 aiproxy.db
  • SQL_BUSY_TIMEOUT: 数据库繁忙超时时间,默认 3000
通知选项
  • NOTIFY_NOTE: 自定义通知备注,默认 AI Proxy
  • NOTIFY_FEISHU_WEBHOOK: 飞书通知 webhook url,默认空,eg: https://open.feishu.cn/open-apis/bot/v2/hook/xxxx
模型配置
  • DISABLE_MODEL_CONFIG: 禁用模型配置,默认 false
  • RETRY_TIMES: 重试次数,默认 0
  • ENABLE_MODEL_ERROR_AUTO_BAN: 启用模型错误自动禁用,默认 false
  • MODEL_ERROR_AUTO_BAN_RATE: 模型错误自动禁用阈值,默认 0.3
  • TIMEOUT_WITH_MODEL_TYPE: 不同模型类型超时设置,默认 {}
  • DEFAULT_CHANNEL_MODELS: 每个渠道默认模型,默认 {}
  • DEFAULT_CHANNEL_MODEL_MAPPING: 每个渠道模型映射,默认 {}
日志配置
  • LOG_STORAGE_HOURS: 日志存储时间(0 表示不限),默认 0
  • LOG_CONTENT_STORAGE_HOURS: 日志 content ip endpoint ttfb_milliseconds 存储时间(0 表示不限),默认 0
  • SAVE_ALL_LOG_DETAIL: 保存所有日志详情,默认 false 则只保存错误日志
  • LOG_DETAIL_REQUEST_BODY_MAX_SIZE: 日志详情请求体最大大小,默认 128KB
  • LOG_DETAIL_RESPONSE_BODY_MAX_SIZE: 日志详情响应体最大大小,默认 128KB
  • LOG_DETAIL_STORAGE_HOURS: 日志详情存储时间,默认 72(3 天)
  • CLEAN_LOG_BATCH_SIZE: 日志清理批量大小,清理间隔一分钟,默认 2000
服务控制
  • DISABLE_SERVICE_CONTROL: 禁用服务控制,默认 false
  • GROUP_MAX_TOKEN_NUM: 每个组最大 token 数量(0 表示不限),默认 0
  • GROUP_CONSUME_LEVEL_RATIO: 每个组消费等级比例,默认 {}
  • GEMINI_SAFETY_SETTING: Gemini 模型安全设置,默认 BLOCK_NONE
  • BILLING_ENABLED: 启用计费功能,默认 true
  • IP_GROUPS_THRESHOLD: IP 组阈值,当同一个 IP 被多个组使用时发出预警,默认 0
  • IP_GROUPS_BAN_THRESHOLD: IP 组禁用阈值,当同一个 IP 被多个组使用时禁用其所有组和 IP,默认 0

Tag summary

Content type

Image

Digest

sha256:2cad29770

Size

69.8 MB

Last updated

over 1 year ago

docker pull jsntwdj/aiproxy