将 StockAI 的 Vercel AI SDK 协议转换为 OpenAI 兼容接口的高性能代理服务,使用 Go 编写。
- ⚡ Go 原生性能 — 零缓冲即时转发,每事件 Flush
- 🔌 兼容 OpenAI
/v1/chat/completions+/v1/models接口 - 🛡️ 双层广告过滤 — 短关键词状态机(流式 delta)+ 完整关键词检测(data-text)
- 🌊 SSE 流式输出,支持
reasoning_content(思考链) - 🔑 Bearer Token 认证
- 🐳 Docker 一键部署,镜像 ~10MB(Alpine + 静态二进制)
- 🔌 HTTP 连接池复用
| 模型 ID | 显示名称 | 上下文长度 |
|---|---|---|
free |
StockAI Free (OpenRouter) | 128K |
free-search |
StockAI Free Search | 128K |
mimo-v2.5 |
Xiaomi MiMo V2.5 | 131K |
mimo-v2.5-pro |
Xiaomi MiMo V2.5 Pro | 131K |
deepseek-v4-flash |
DeepSeek V4 Flash | 131K |
llama-3.1 |
Cerebras Llama 3.1 | 131K |
mercury-2 |
Inception Mercury 2 | 131K |
glm-5.1 |
GLM 5.1 | 131K |
m2.5 |
MiniMax M2.5 | 1M |
news |
StockAI News | 128K |
cogito-v2.1-671b |
Cogito V2.1 671B | 131K |
glm-4.5-air |
GLM 4.5 Air | 131K |
llama-4-scout |
Llama 4 Scout | 1M |
gpt-oss-20b |
GPT-OSS 20B | 131K |
translategemma |
Translate Gemma | 131K |
上游 StockAI 会在 AI 回复中注入推广信息。本项目实现了双层过滤机制:
- 流式 delta 状态机 — 对
text-delta/reasoning-delta事件使用短关键词(2-4字)做部分匹配,一旦检测到广告片段立即进入广告模式,跳过后续所有 delta,直到text-end/finish事件重置 - 完整文本检测 — 对
data-text事件(m2.5、cogito 等模型)使用完整关键词 + 短关键词双重检测,命中则整条丢弃
├── main.go # 入口,HTTP 路由
├── internal/
│ ├── config/config.go # 环境变量配置
│ ├── const/const.go # 模型映射 + 广告关键词
│ ├── handler/
│ │ ├── chat.go # /v1/chat/completions
│ │ ├── models.go # /v1/models
│ │ └── health.go # /health
│ ├── middleware/auth.go # Bearer Token 认证
│ ├── model/schema.go # 请求/响应结构体
│ ├── proxy/
│ │ ├── request.go # OpenAI → StockAI 请求转换
│ │ ├── stream.go # SSE 流转发 + 广告过滤
│ │ └── response.go # 响应转换(内联在 stream.go)
│ └── adfilter/filter.go # 广告过滤核心逻辑
├── Dockerfile # Go 多阶段构建
├── docker-compose.yml
└── .env.example
git clone https://github.com/sliverkiss/stockai2api.git
cd stockai2apicp .env.example .env
# 编辑 .env,设置 API_KEYS 和 PORTdocker compose up -dcurl http://localhost:8267/health
# {"status":"ok"}curl http://localhost:8267/v1/models \
-H "Authorization: Bearer sk-stockai"curl -N http://localhost:8267/v1/chat/completions \
-H "Authorization: Bearer sk-stockai" \
-H "Content-Type: application/json" \
-d '{"model":"free","messages":[{"role":"user","content":"Hello"}],"stream":true}'Cursor、OpenAI SDK 等兼容 OpenAI 接口的客户端,只需设置:
base_url:http://YOUR_SERVER:8267/v1api_key: 你在.env中配置的 API Key
| 变量 | 说明 | 默认值 |
|---|---|---|
API_KEYS |
API Key,逗号分隔支持多个 | 空(不验证) |
PORT |
服务端口 | 8267 |