Skip to content

Chi-Kai/charon

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

AI Gateway

基于 Pingora 开发的高性能 AI 网关服务。支持将不同的 AI 请求路由到不同的 API 端点,并提供可扩展的架构以支持 AI 响应缓存、内容检测等功能。

功能特点

  • 🚀 基于 Pingora 构建,提供高性能的请求处理能力, 安全可靠
  • 🔄 支持多路由配置,可将不同路径的请求转发到不同的 AI 服务
  • 🔑 支持每个路由独立的 API 密钥配置, 支持多个 API 密钥
  • 🎯 当前支持的 AI 服务:
    • Qwen (通义千问)
    • DeepSeek
    • 可扩展支持更多服务
  • 🛠 可扩展的架构设计,支持添加:
    • AI 响应缓存
    • 内容安全检测
    • 更多自定义功能
  • 🐳 支持 Docker 容器化部署
  • ☸️ 支持 Kubernetes 集群部署

快速开始

配置文件

支持 YAML 格式的配置文件,示例如下:

# config.yaml
server:
  host: "0.0.0.0" # 监听地址
  port: 6193 # 监听端口

routes:
  pr1:
    route: "/chat"
    type: "qwen"
    apikey: "sk-"
  pr2:
    route: "/write"
    type: "deepseek"
    apikey: "sk-"

mods: # 可选插件
  - name: "cache"
    config:
      memory_cache_size: "1000"
      redis_ttl: "3600"
      similarity_threshold: "0.95"

部署方式

1. 二进制部署

./charon -c config.yaml

2. Docker 部署

# 构建镜像
docker build -t charon:latest .

# 运行容器
docker run -d \
  --name ai-gateway \
  -p 6193:6193 \
  -v $(pwd)/config.yaml:/app/config.yaml \
  chikai030/charon:0.0.1

3. Kubernetes 部署

项目提供了完整的 Kubernetes 部署配置,位于 k8s 目录下:

# 创建命名空间
kubectl apply -f k8s/namespace.yaml

# 创建配置
kubectl apply -f k8s/configmap.yaml
kubectl apply -f k8s/secrets.yaml

# 部署服务
kubectl apply -f k8s/deployment.yaml
kubectl apply -f k8s/service.yaml
kubectl apply -f k8s/ingress.yaml

配置说明

服务器配置

  • host: 服务监听地址,默认为 "0.0.0.0"
  • port: 服务监听端口,默认为 6193

路由配置

每个路由配置包含以下字段:

  • route: 路由路径,如 "/chat"
  • type: AI 服务类型,当前支持 "qwen" 和 "deepseek"
  • apikey: 对应 AI 服务的 API 密钥

插件配置

  • name: 插件名称,当前支持 "cache"
  • config: 插件配置,具体配置请参考插件文档

Kubernetes 配置说明

  • k8s/namespace.yaml: 定义项目的命名空间
  • k8s/configmap.yaml: 存储服务配置
  • k8s/secrets.yaml: 存储敏感信息(如 API 密钥)
  • k8s/deployment.yaml: 定义服务部署
  • k8s/service.yaml: 定义服务访问方式
  • k8s/ingress.yaml: 配置外部访问入口

示例请求

curl -X POST http://localhost:6193/chat  -d '{
        "model": "deepseek-chat",
        "messages": [
          {"role": "system", "content": "You are a helpful assistant."},
          {"role": "user", "content": "Hello!"}
        ],
        "stream": false
      }'

许可证

MIT License

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published