基于 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"
./charon -c config.yaml
# 构建镜像
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
项目提供了完整的 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
: 插件配置,具体配置请参考插件文档
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
}'