API 简介
API 简介
Chatspeed CCProxy 模块为方便各类客户端调用,提供了灵活且强大的 API 访问规则。本节将详细说明这些规则,帮助您理解如何通过 CCProxy 访问和组合各种 AI 模型及工具。
API 索引页面
您可以直接在浏览器中访问代理的根地址(例如 http://localhost:11435/)来查看交互式的 API 索引页面。该页面会列出所有可用的 API 访问组合及其说明。
核心概念
CCProxy 的 API 访问主要基于以下两个核心概念:
分组 (Group) 您可以为不同的客户端或使用场景设置独立的模型分组。通过在 API 路径中加入分组名称,可以方便地隔离不同客户端对模型的访问能力,并根据需求快速切换模型。
- 示例:如果您的分组名称是
gemini,要访问 Claude 协议的聊天接口,可以通过/gemini/v1/messages访问。 - 说明:不带分组前缀的“直接访问”端点会自动路由到名为
default的分组。
- 示例:如果您的分组名称是
工具调用兼容模式 (Tool Compatibility Mode) 对于本身不支持工具调用(Function Calling)的模型,
CCProxy提供了工具兼容模式,使其也能获得并执行工具调用能力。启用工具兼容模式只需在 API 入口端点前加上compat_mode或简写compat。- 示例:
/gemini/compat_mode/v1/messages或/gemini/compat/v1/messages
- 示例:
动态切换分组 (Dynamic Group Switching) 通过在 API 路径中使用
/switch前缀,您可以访问当前在 Chatspeed 界面中设置为“激活”状态的分组。这允许您在不更改客户端(如 IDE、插件等)配置的情况下,直接在界面上一键切换所使用的后端模型和注入规则。- 示例:
/switch/v1/chat/completions
- 示例:
API 访问入口
以下是 CCProxy 提供的各类 API 基础入口。代理默认运行在 11435 端口,您可以在应用的代理设置中自定义该端口。
/mcp/sse:MCP 代理入口 (Server-Sent Events 协议)/mcp/http:MCP 代理入口 (Streamable HTTP 协议)/v1/models:OpenAI 兼容接口和 Claude 格式的模型列表接口/v1/chat/completions:OpenAI 兼容接口的聊天入口/v1/messages:Claude 原生协议的消息接口/v1beta/models:Gemini 聊天的模型列表接口/v1beta/models/{model}/generateContent:Gemini 聊天的同步访问接口/v1beta/models/{model}/streamGenerateContent:Gemini 聊天的流式访问接口/api/tags:Ollama 协议的模型列表接口/api/chat:Ollama 协议的聊天接口/api/show:Ollama 协议的模型详情接口/v1/embeddings:OpenAI 协议文本嵌入接口/v1beta/models/{model}:embedContent:Gemini 协议文本嵌入接口/api/embed:Ollama 协议文本嵌入接口
组合式 API 访问
通过结合分组和工具兼容模式,您可以构建更灵活的 API 访问路径。具体组合方式请参考下方的 API 列表。
API列表
| 接口类型 | 协议 | 分组 | 兼容格式 | API地址 | 备注 |
|---|---|---|---|---|---|
| MCP | Streamable HTTP | false | /mcp/http | 推荐 | |
| MCP | SSE | false | /mcp/sse | 不建议 | |
| Chat | Openai | false | /v1/chat/completions | ||
| Chat | Openai | {group} | false | /{group}/v1/chat/completions | 将 {group} 替换为分组名称 |
| Chat | Openai | {group} | true | /{group}/compat_mode/v1/chat/completions | 支持简写 compat |
| Chat | Openai | true | /compat_mode/v1/chat/completions | 支持简写 compat | |
| Chat | Openai | switch | false | /switch/v1/chat/completions | 使用当前“激活”的分组 |
| Chat | Openai | switch | true | /switch/compat_mode/v1/chat/completions | 支持简写 compat |
| Chat | Claude | false | /v1/messages | ||
| Chat | Claude | {group} | false | /{group}/v1/messages | 将 {group} 替换为分组名称 |
| Chat | Claude | {group} | true | /{group}/compat_mode/v1/messages | 支持简写 compat |
| Chat | Claude | true | /compat_mode/v1/messages | 支持简写 compat | |
| Chat | Claude | switch | false | /switch/v1/messages | 使用当前“激活”的分组 |
| Chat | Claude | switch | true | /switch/compat_mode/v1/messages | 支持简写 compat |
| Chat | Gemini | false | /v1beta/models/{model}/generateContent?key={key} | 将 {model} 替换为模型名称,将 {key} 替换为API Key | |
| Chat | Gemini | {group} | false | /{group}/v1beta/models/{model}/generateContent?key={key} | 将 {group} 替换为分组名称,将 {model} 替换为模型名称,将 {key} 替换为API Key |
| Chat | Gemini | {group} | true | /{group}/compat_mode/v1beta/models/{model}/generateContent?key={key} | 支持简写 compat |
| Chat | Gemini | true | /compat_mode/v1beta/models/{model}/generateContent?key={key} | 支持简写 compat | |
| Chat | Ollama | false | /api/chat | ||
| Chat | Ollama | {group} | false | /{group}/api/chat | 将 {group} 替换为分组名称 |
| Chat | Ollama | {group} | true | /{group}/compat_mode/api/chat | 支持简写 compat |
| Chat | Ollama | true | /compat_mode/api/chat | 支持简写 compat |
| Embed | Openai | | false | /v1/embeddings | | | Embed | Openai | {group} | false | /{group}/v1/embeddings | 将 {group} 替换为分组名称 | | Embed | Gemini | | false | /v1beta/models/{model}:embedContent?key={key} | 将 {model} 替换为模型名称,将 {key} 替换为API Key | | Embed | Ollama | | false | /api/embed | | | List | Openai | | | /v1/models | 支持分组和兼容模式 | | List | Calude | | | /v1/models | 支持分组和兼容模式 | | List | Gemini | | | /v1beta/models | 支持分组和兼容模式 | | List | Ollama | | | /api/tags | 支持分组和兼容模式 |
