HEXUXIU/M365-Copilot2API

Microsoft 365 Copilot → OpenAI / Anthropic 兼容 API 网关。

它是什么

M365‑Copilot2API 是一个用 Go 编写的自托管网关,允许你将 Microsoft 365 Copilot(商业订阅背后的 ChatHub 服务)视为标准的 OpenAI 或 Anthropic 兼容 API。它将 Copilot 使用的私有 WebSocket 协议转换为熟悉的 /v1/chat/completions、/v1/messages 等端点,因此任何与 OpenAI 或 Claude 风格 API 通信的客户端(Claude Code、OpenCode、Cursor、Codex 等)都可以直接调用 Copilot,无需修改代码。

核心理念

理念 工作原理
协议桥接 内置的 chathub 模块处理 Copilot WebSocket 握手、心跳、令牌流式传输、工具调用和多模态(图像)上传。该桥接在外部呈现一个简洁的 HTTP/JSON API。
OpenAI 与 Anthropic 兼容性 暴露 /v1/chat/completions、/v1/responses (OpenAI)、/v1/messages (Anthropic) 和 /v1/images/generations。支持流式传输 (stream:true)、函数调用转换以及通过 OpenAI image_url 格式进行图像输入。
会话复用 请求可以携带 X‑M365‑Session‑Id 以绑定到特定的云端对话,或者网关可以根据 内容键(精确前缀匹配或基于相似度的匹配)自动复用对话。当找到匹配项时,仅将新消息发送到上游,从而节省令牌。
多账号与故障转移 你可以添加多个 Microsoft 365 账号。网关会轮询流量、监控健康状况,并在某个账号失败时自动切换到另一个账号。
代理池 可选的 HTTP/HTTPS/SOCKS5 代理轮换及健康检查,在通过代理访问上游服务时非常有用。
Web 管理控制台 一个单页 UI,用于管理员登录、账号 OAuth/PKCE 链接、API 密钥创建、代理管理、使用统计、对话浏览和设置。

适用人群

  • 开发者:拥有 Microsoft 365 Copilot 订阅,希望在不重写代码的情况下复用现有的 OpenAI 兼容客户端库或工具。
  • 研究人员:正在试验 Copilot 的 LLM 能力,但需要一个标准的 API 接口进行基准测试或与其他框架集成。
  • 个人自托管用户:希望拥有一个本地“API 中继”,在保留 Copilot 后端的同时增加会话缓存、使用统计和 UI 管理功能。

快速开始(README 摘要)

  1. 下载:从 GitHub 发布页面下载适用于你操作系统的预编译二进制文件。
  2. 设置管理员密码:设置环境变量 M365_ADMIN_PASSWORD。
  3. 运行:运行二进制文件,默认监听 127.0.0.1:4141。
  4. 配置:在浏览器打开该地址,使用管理员密码登录,并通过 UI 进行:
    • 通过 PKCE OAuth 流程授权一个或多个 Microsoft 365 账号。
    • 创建 API 密钥。
  5. 调用:像使用任何 OpenAI 服务一样调用网关,例如:
    curl http://127.0.0.1:4141/v1/chat/completions \
         -H "Authorization: Bearer <YOUR_API_KEY>" \
         -H "Content-Type: application/json" \
         -d '{"model":"gpt-5.6-sol","messages":[{"role":"user","content":"你好"}]}'
    

显著特性

  • 流式 SSE:令牌级输出,支持 stream:true。
  • 工具/函数调用:OpenAI 风格的 function 调用被映射到 Copilot 的工具协议(路由模式可直接使用)。
  • 多模态:可以通过 base64 数据 URL 或 HTTPS URL 发送图像;网关将其上传至 Copilot 并注入文件引用。
  • 图像生成:/v1/images/generations 转发至 Copilot 的图像模型 (flux‑3/4)。
  • 使用日志:按密钥、按模型、按端点的统计数据被写入 usage.jsonl 并在仪表板中显示。
  • 自动清理:空闲的云端对话会在可配置的 TTL(默认 2 小时)后或超过最大数量时被回收。

限制/警告(README 中所述)

  • 本项目不是微软官方产品,与微软、OpenAI 或 Anthropic 无任何关联。
  • 使用第三方账号或代理技巧可能违反服务条款;用户需承担所有风险。
  • 本项目基于 AGPL‑3.0 协议发布,并带有非商业中继限制——你不得销售基于此构建的托管 API 服务。
  • 网关默认仅在本地网络运行;将其公开暴露需要你自行配置 TLS 反向代理并进行适当的安全加固。

更多信息

  • 完整的 API 参考 (/v1/models, /v1/chat/completions, /v1/messages, /v1/images/generations, /v1/sessions, 管理端 /api/*)。
  • 源码布局 (cmd/server, internal/web, internal/chathub, 静态 web/ UI, 辅助脚本)。
  • 贡献指南和测试套件 (go test ./...)。

以上所有详细信息均直接摘自仓库的 README;未推断任何额外功能。

相关

  • 项目
  • 项目
  • 项目
  • Dispatch
  • 项目