db / README.md
caidaohz's picture
更新README.md,完善项目描述和使用说明;优化main.go,改进chatID获取逻辑和响应处理
e811e5c
metadata
title: AIChatbot2API
emoji: 🏃
colorFrom: yellow
colorTo: indigo
sdk: docker
pinned: false
app_port: 7860

AIChatbot2API (Go版)

本项目是一个将 ai-chatbot.top 服务转换为 OpenAI API 格式的代理服务器,使用 Go 语言实现。它旨在提供一个高性能、易于部署的解决方案,兼容各种支持 OpenAI API 的客户端。

✨ 特性

  • 🚀 高性能: 使用 Go 语言原生实现,性能优越,资源占用低。
  • 🔄 OpenAI 格式兼容: 完全兼容 OpenAI 的 /v1/chat/completions/v1/models 接口。
  • 🌊 支持流式与非流式响应: 可根据客户端请求参数 stream 自动切换。
  • 🧠 保留思考过程: 将 ai-chatbot.top 的思考过程以 <think>...</think> 标签的形式保留在响应中。
  • 🔐 API 密钥保护: 通过环境变量设置 API_KEY,保护您的服务不被滥用。
  • 🤖 随机 User-Agent: 可选开启随机 User-Agent,模拟不同设备。
  • ⚡️ 智能会话管理: 自动缓存和异步预加载会话 ID (chatID),提升响应速度。
  • 🐳 Docker 支持: 提供 Dockerfile,方便容器化部署。
  • ጤ 健康检查: 提供 /health 端点,方便监控服务状态。

⚙️ 环境变量

在运行前,您需要在项目根目录下创建一个 .env 文件,或直接设置环境变量:

变量名 说明 是否必须 默认值
API_KEY 用于访问 API 的密钥,客户端需要在 Authorization 头中提供。
RANDOM_UA 是否为每个请求使用随机的 User-Agent。可选值为 truefalse false

.env 文件示例:

API_KEY=your_secret_api_key
RANDOM_UA=true

🚀 如何运行

1. 使用 Docker (推荐)

这是最简单的部署方式。

# 1. 构建 Docker 镜像
docker build -t aichatbot2api .

# 2. 运行容器
docker run -d -p 7860:7860 --name aichatbot-api \
  -e API_KEY="your_secret_api_key" \
  -e RANDOM_UA="true" \
  aichatbot2api

2. 本地直接运行

如果您本地已经配置好 Go 环境。

# 1. 安装依赖
go mod tidy

# 2. 创建 .env 文件并填入配置 (参考上文)

# 3. 运行程序
go run main.go

服务将启动在 http://localhost:7860

📝 API 使用示例

您可以使用任何兼容 OpenAI 的客户端。以下是一个 curl 示例:

curl http://127.0.0.1:7860/v1/chat/completions \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer your_secret_api_key" \
  -d '{
    "model": "DeepSeek-V3",
    "messages": [
      {
        "role": "user",
        "content": "你好,请介绍一下你自己"
      }
    ],
    "stream": true
  }'

支持的模型

  • DeepSeek-R1
  • DeepSeek-V3

端点列表

  • POST /v1/chat/completions: 聊天接口 (需要认证)。
  • GET /v1/models: 获取模型列表 (需要认证)。
  • GET /health: 健康检查接口 (无需认证)。