GitHub Copilot SDK 官方管道¶
作者: Fu-Jie | 版本: 0.1.0 | 项目: Awesome OpenWebUI | 许可证: MIT
这是一个用于 OpenWebUI 的高级 Pipe 函数,允许你直接在 OpenWebUI 中使用 GitHub Copilot 模型(如 gpt-5, gpt-5-mini, claude-sonnet-4.5)。它基于官方 GitHub Copilot SDK for Python 构建,提供了原生级的集成体验。
🚀 最新特性 (v0.1.0)¶
- ♾️ 无限会话 (Infinite Sessions):支持长对话的自动上下文压缩,告别上下文超限错误!
- 🧠 思考过程展示:实时显示模型的推理/思考过程(需模型支持)。
- 📂 工作目录控制:支持设置受限工作目录,确保文件操作安全。
- 🔍 模型过滤:支持通过关键词排除特定模型(如
codex,haiku)。 - 💾 会话持久化: 改进的会话恢复逻辑,直接关联 OpenWebUI 聊天 ID,连接更稳定。
✨ 核心特性¶
- 🚀 官方 SDK 集成:基于官方 SDK,稳定可靠。
- 💬 多轮对话支持:自动拼接历史上下文,Copilot 能理解你的前文。
- 🌊 流式输出 (Streaming):支持打字机效果,响应迅速。
- 🖼️ 多模态支持:支持上传图片,自动转换为附件发送给 Copilot(需模型支持)。
- 🛠️ 零配置安装:自动检测并下载 GitHub Copilot CLI,开箱即用。
- 🔑 安全认证:支持 Fine-grained Personal Access Tokens,权限最小化。
- 🐛 调试模式:内置详细的日志输出,方便排查连接问题。
📦 安装与使用¶
1. 导入函数¶
- 打开 OpenWebUI。
- 进入 Workspace -> Functions。
- 点击 + (创建函数)。
- 将
github_copilot_sdk_cn.py的内容完整粘贴进去。 - 保存。
2. 配置 Valves (设置)¶
在函数列表中找到 "GitHub Copilot",点击 ⚙️ (Valves) 图标进行配置:
| 参数 | 说明 | 默认值 |
|---|---|---|
| GH_TOKEN | (必填) 你的 GitHub Token。 | - |
| MODEL_ID | 使用的模型名称。推荐 gpt-5-mini 或 gpt-5。 | gpt-5-mini |
| CLI_PATH | Copilot CLI 的路径。如果未找到会自动下载。 | /usr/local/bin/copilot |
| DEBUG | 是否开启调试日志(输出到对话框)。 | True |
| SHOW_THINKING | 是否显示模型推理/思考过程。 | True |
| EXCLUDE_KEYWORDS | 排除包含这些关键词的模型 (逗号分隔)。 | - |
| WORKSPACE_DIR | 文件操作的受限工作目录。 | - |
| INFINITE_SESSION | 启用无限会话 (自动上下文压缩)。 | True |
| COMPACTION_THRESHOLD | 后台压缩阈值 (0.0-1.0)。 | 0.8 |
| BUFFER_THRESHOLD | 缓冲耗尽阈值 (0.0-1.0)。 | 0.95 |
3. 获取 GH_TOKEN¶
为了安全起见,推荐使用 Fine-grained Personal Access Token:
- 访问 GitHub Token Settings。
- 点击 Generate new token。
- Repository access: 选择
All repositories或Public Repositories。 - Permissions:
- 点击 Account permissions。
- 找到 Copilot Requests,选择 Read and write (或 Access)。
- 生成并复制 Token。
📋 依赖说明¶
该 Pipe 会自动尝试安装以下依赖(如果环境中缺失):
github-copilot-sdk(Python 包)github-copilot-cli(二进制文件,通过官方脚本安装)
⚠️ 常见问题¶
- 一直显示 "Waiting...":
- 检查
GH_TOKEN是否正确且拥有Copilot Requests权限。 - 尝试将
MODEL_ID改为gpt-4o或copilot-chat。 - 图片无法识别:
- 确保
MODEL_ID是支持多模态的模型。 - CLI 安装失败:
- 确保 OpenWebUI 容器有外网访问权限。
- 你可以手动下载 CLI 并挂载到容器中,然后在 Valves 中指定
CLI_PATH。
📄 许可证¶
MIT