Skip to content

Latest commit

 

History

3 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

StockAI2API

将 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 回复中注入推广信息。本项目实现了双层过滤机制:

  1. 流式 delta 状态机 — 对 text-delta / reasoning-delta 事件使用短关键词(2-4字)做部分匹配,一旦检测到广告片段立即进入广告模式,跳过后续所有 delta,直到 text-end / finish 事件重置
  2. 完整文本检测 — 对 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

Docker 部署

1. 克隆仓库

git clone https://github.com/sliverkiss/stockai2api.git
cd stockai2api

2. 配置环境变量

cp .env.example .env
# 编辑 .env,设置 API_KEYS 和 PORT

3. 构建并运行

docker compose up -d

验证

curl http://localhost:8267/health
# {"status":"ok"}

API 使用

列出模型

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/v1
  • api_key: 你在 .env 中配置的 API Key

环境变量

变量 说明 默认值
API_KEYS API Key,逗号分隔支持多个 空(不验证)
PORT 服务端口 8267

License

MIT

About

将 StockAI 的 Vercel AI SDK 协议转换为 OpenAI 兼容接口的高性能代理服务,使用 Go 编写。

Resources

Stars

7 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages