内容
# gollm
OpenAI兼容LLM网关 — Go实现。单个静态二进制文件,无运行时依赖。
## 亮点
- **OpenAI兼容** `/v1/chat/completions`, `/v1/embeddings`, `/v1/rerank`, `/v1/models`
- **Anthropic 消息 API** `/v1/messages`
- **提供商**: OpenAI / Anthropic / Ollama (含云) / OpenRouter / TEI / A2A / `execcli` (Codex CLI, Claude CLI 作为提供商)
- **路由器**: 负载均衡(轮询 / 随机 / 加权 / 最少忙碌),重试,多部署回退,模型重命名代理,参数注入(例如 `no_reason=true`)
- **高级路由**: 基于标签(免费/付费层级,团队访问),通配符模式(anthropic/*, groq/*)
- **请求/响应缓存**,带有TTL,按模型选择缓存
- **流式 + 非流式** 端到端(包括工具调用流)
- **网络搜索 / 读取** 子系统 — 10个提供商(searxng/brave/tavily/exa/ firecrawl/serpapi/jina/zai/ollama/http_fetch),策略 auto/fallback/best/blend,供应商格式别名路由(`/tavily/search`, `/brave/res/v1/web/search`, `/reader/<url>`,…),自动注入为 `web_search`/`web_fetch` 工具到聊天模型
- **MCP** 集成(HTTP / SSE),工具自动注入到匹配的模型
- **注入管道** — 声明式请求变体(系统提示前缀,参数覆盖,条件 `no_reason` 等)
- **直通端点** — 通过gollm代理任意外部API
- **虚拟密钥** (身份验证 + 按密钥TPM/RPM),Prometheus `/metrics`,Swagger风格的管理UI
- **调试捕获** — 按需输入/输出转储,原始转储触发词
- **A2A协议** — 代理到代理端点
## 快速开始
```bash
# 1) 获取二进制文件
VERSION=v0.1.0
PLATFORM=darwin-arm64 # 或 darwin-amd64 / linux-amd64 / linux-arm64
curl -L -o gollm "https://github.com/yourusername/gollm/releases/download/${VERSION}/gollm-${PLATFORM}"
chmod +x gollm
# 2) 运行最小配置
cat > config.yaml <<'YAML'
server: { addr: ":4000" }
model_list:
- model_name: gpt-4o-mini
litellm_params: { model: openai/gpt-4o-mini, api_key: ${OPENAI_API_KEY} }
YAML
OPENAI_API_KEY=sk-... ./gollm -config config.yaml
# 3) 调用它(替换OpenAI SDK)
curl http://localhost:4000/v1/chat/completions \
-H "Content-Type: application/json" \
-d '{"model":"gpt-4o-mini","messages":[{"role":"user","content":"hi"}]}'
```
完整教程: **[docs/zh/quickstart.md](docs/zh/quickstart.md)** ·
한국어: **[docs/ko/quickstart.md](docs/ko/quickstart.md)**.
## 从源代码构建
```bash
git clone https://github.com/yourusername/gollm
cd gollm
go build ./cmd/gollm # → ./gollm
go test ./...
```
跨编译(无CGO,完全静态):
```bash
GOOS=linux GOARCH=amd64 CGO_ENABLED=0 \
go build -trimpath -ldflags="-s -w" -o gollm-linux-amd64 ./cmd/gollm
```
## 文档
| 主题 | 简体中文 | 한국어 |
|---|---|---|
| 快速入门 | [quickstart.md](docs/zh/quickstart.md) | [quickstart.md](docs/ko/quickstart.md) |
| 配置 | [config.md](docs/zh/config.md) | [config.md](docs/ko/config.md) |
| 提供商 | [providers.md](docs/zh/providers.md) | [providers.md](docs/ko/providers.md) |
| HTTP API | [api.md](docs/zh/api.md) | [api.md](docs/ko/api.md) |
| 网络搜索/读取 | [web.md](docs/zh/web.md) | [web.md](docs/ko/web.md) |
| 头部转换 | [headers.md](docs/zh/headers.md) | [headers.md](docs/ko/headers.md) |
| 注入管道 | [inject.md](docs/zh/inject.md) | — |
| PII检测 | [pii.md](docs/zh/pii.md) | [pii.md](docs/ko/pii.md) |
| 响应清理 | [sanitize.md](docs/zh/sanitize.md) | [sanitize.md](docs/ko/sanitize.md) |
| 预算管理 | [budget.md](docs/zh/budget.md) | [budget.md](docs/ko/budget.md) |
| 并发 | [concurrency.md](docs/zh/concurrency.md) | [concurrency.md](docs/ko/concurrency.md) |
| 配额管理 | [quota.md](docs/zh/quota.md) | [quota.md](docs/ko/quota.md) |
| 日志 | [logging.md](docs/zh/logging.md) | [logging.md](docs/ko/logging.md) |
| 缓存 | [caching.md](docs/zh/caching.md) | [caching.md](docs/ko/caching.md) |
| 高级路由 | [routing.md](docs/zh/routing.md) | [routing.md](docs/ko/routing.md) |
| A2A协议 | [a2a.md](docs/zh/a2a.md) | — |
## 许可证
Apache License 2.0 — 请参阅 [LICENSE](LICENSE) 以获取详细信息。