Skip to content

leookun/bolt-2api

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Bolt 2API

将 Anthropic Messages API 请求转换为 Bolt API 请求的代理服务,仅支持 SSE 流式响应。

项目结构

bolt-api/
├── cmd/
│   └── main.go              # 程序入口
├── internal/
│   ├── anthropic/
│   │   └── types.go         # Anthropic API 数据结构
│   ├── bolt/
│   │   ├── types.go         # Bolt API 数据结构
│   │   └── client.go        # Bolt HTTP 客户端
│   ├── converter/
│   │   ├── inbound.go       # 入转换器 (Anthropic → Bolt)
│   │   └── outbound.go      # 出转换器 (Bolt SSE → Anthropic SSE)
│   ├── config/
│   │   └── config.go        # 配置管理
│   └── server/
│       └── server.go        # HTTP 服务器
├── config.yaml              # 配置文件
├── go.mod
└── go.sum

配置

方式一:配置文件

编辑 config.yaml:

server:
  port: 8999

bolt:
  session_token: "your-session-token-here"  # Bolt 的 __session cookie 值
  project_id: "your-project-id"             # Bolt 项目ID

方式二:环境变量

export BOLT_SESSION_TOKEN="your-session-token"
export BOLT_PROJECT_ID="your-project-id"
export PORT=8999  # 可选,默认 8999

构建和运行

# 构建
go build -o bolt-api ./cmd/main.go

# 运行(使用配置文件)
./bolt-api

# 或指定配置文件路径
./bolt-api -config /path/to/config.yaml

# 或使用环境变量
BOLT_SESSION_TOKEN=xxx BOLT_PROJECT_ID=xxx ./bolt-api

API 使用

端点

  • POST /v1/messages - Anthropic Messages API 兼容端点
  • GET /health - 健康检查

请求示例

curl -X POST http://localhost:8999/v1/messages \
  -H "Content-Type: application/json" \
  -H "x-api-key: any-key" \
  -d '{
    "model": "claude-opus-4-6",
    "max_tokens": 1024,
    "stream": true,
    "messages": [
      {"role": "user", "content": "Hello, Claude"}
    ]
  }'

响应格式

返回标准 Anthropic SSE 格式:

event: message_start
data: {"type":"message_start","message":{...}}

event: content_block_start
data: {"type":"content_block_start","index":0,...}

event: content_block_delta
data: {"type":"content_block_delta","index":0,"delta":{"type":"text_delta","text":"..."}}

event: content_block_stop
data: {"type":"content_block_stop","index":0}

event: message_delta
data: {"type":"message_delta","delta":{"stop_reason":"end_turn"},...}

event: message_stop
data: {"type":"message_stop"}

注意事项

  1. 仅支持流式模式 - 请求必须设置 stream: true
  2. 工具调用 - 服务会将模型的 JSON 格式工具调用转换为 Anthropic 标准 tool_use 格式
  3. Session Token - 需要从 Bolt 网站获取有效的 __session cookie 值

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages