使用说明
Azure DevOps聊天机器人与GPT-5
基于Python的聊天机器人,由Azure OpenAI的GPT-5模型提供支持,并通过模型上下文协议(MCP)集成了Azure DevOps功能。
🌟 特性
- Azure OpenAI GPT-5集成 -GPT-5驱动的高级对话式人工智能
- Azure DevOps MCP支持 -查询Azure DevOps资源并与之交互
- 自动分页 -检索超出默认100个项目限制的所有结果
- 对话历史 -在多个交互中维护上下文
- 丰富多彩的CLI界面 -易于使用的命令行界面,带有彩色输出
- 安全配置 -基于环境的凭证管理
- 异步架构 -高效处理API调用和MCP操作
🏗️ 建筑
┌─────────────────┐
│ User Input │
└────────┬────────┘
│
▼
┌─────────────────────────┐
│ chatbot.py │
│ ┌──────────────────┐ │
│ │ Azure OpenAI │ │
│ │ Client (GPT-5) │◄──┼── Azure OpenAI Service
│ └──────────────────┘ │
│ ┌──────────────────┐ │
│ │ MCP Client │◄──┼── Azure DevOps MCP Server
│ └──────────────────┘ │
└─────────────────────────┘
📋 先决条件
- Python 3.8或更高版本
- Node.js(适用于Azure DevOps MCP服务器)
- 部署GPT-5的Azure OpenAI资源
- 带有个人访问令牌(PAT)的Azure DevOps帐户
🚀 快速开始
1.克隆或设置项目
cd c:\Users\U742292\devops_mcp
2.创建虚拟环境
python -m venv .venv
.venv\Scripts\activate
3.安装依赖项
pip install -r requirements.txt
4.配置环境变量
复制 .env.example 到 .env 并填写您的凭据:
copy .env.example .env
编辑 .env 根据您的实际值:
# Azure OpenAI Configuration
AZURE_OPENAI_ENDPOINT=https://your-resource-name.openai.azure.com/
AZURE_OPENAI_API_KEY=your-api-key-here
AZURE_OPENAI_DEPLOYMENT_NAME=gpt-5
# Azure DevOps Configuration (for MCP)
AZURE_DEVOPS_ORG_URL=https://dev.azure.com/your-organization
AZURE_DEVOPS_PAT=your-personal-access-token-here
5.运行聊天机器人
python chatbot.py
📖 用法
交互式命令
- 正常聊天 -只需键入您的信息,然后按Enter键
help-显示可用命令clear-清除对话历史记录history-显示对话历史记录quit或exit-退出聊天机器人
对话示例
You: Hello! How are you?
Assistant: Hello! I'm doing great, thank you for asking...
You: What work items are assigned to me in Azure DevOps?
Assistant: Let me check your Azure DevOps work items...
You: clear
✓ Conversation history cleared
🔧 配置文件
.env
包含敏感的凭据和配置。 永远不要提交此文件!
.env.example
显示所需环境变量但没有敏感数据的模板。
mcp_config.json
Azure DevOps集成的MCP服务器配置:
- 服务器命令和参数
- 环境变量映射
- 客户端超时和重试设置
requirements.txt
Python包依赖关系:
openai-Azure OpenAI SDKmcp-模型上下文协议客户端python-dotenv-环境变量加载colorama-彩色端子输出azure-devops-Azure DevOps API客户端
🏗️ 项目结构
devops_mcp/
├── .env # Environment variables (git-ignored)
├── .env.example # Environment template
├── .gitignore # Git ignore rules
├── chatbot.py # Main chatbot application
├── mcp_config.json # MCP server configuration
├── requirements.txt # Python dependencies
├── README.md # This file
└── .venv/ # Virtual environment (git-ignored)
🔐 安全最佳实践
- 永不承诺
.env文件 -包含敏感凭据 - 使用个人访问令牌(PAT) -限制范围和到期
- 定期旋转API键 -定期更新Azure OpenAI API密钥
- 限制权限 -授予Azure DevOps PAT的最低访问权限
- 保持依赖关系更新 -定期更新安全补丁包
🛠️ 故障排除
错误:缺少环境变量
解决方案:确保在中设置了所有必需的变量 .env 文件
错误:初始化MCP失败
解决方案:
- 验证是否安装了Node.js
- 检查Azure DevOps PAT是否有效,是否具有所需权限
- 确保
mcp_config.json已正确配置
错误:Azure OpenAI API错误
解决方案:
- 验证端点URL是否正确
- 检查API密钥是否有效
- 确保GPT-5部署存在于Azure OpenAI资源中
- 确认API版本兼容
MCP功能不工作
解决方案:
- 确保Azure DevOps MCP服务器包可访问
- 检查与Azure DevOps的网络连接
- 验证组织URL格式:
https://dev.azure.com/your-org
🔄 发展
添加新功能
- 扩展对话功能 -修改
chat()方法inchatbot.py - 添加新的MCP工具 -在中配置
mcp_config.json - 自定义系统提示 -编辑
get_system_prompt()方法 - 添加新命令 -扩展命令处理
main()循环
测试
使用测试查询运行聊天机器人:
python chatbot.py
📚 资源
🤝 贡献
- 分叉存储库
- 创建要素分支
- 进行更改
- 彻底测试
- 提交拉取请求
📝 许可证
本项目按原样提供,用于教育和发展目的。
💡 提示
- 从简单的查询开始测试连接
- 使用
clear重置新主题上下文的命令 - 检查
history查看对话流程 - Azure DevOps查询在特定情况下效果最佳(例如,“显示项目X中的工作项”)
🔄 自动分页
聊天机器人自动处理返回大型结果集的Azure DevOps MCP工具的分页。默认情况下,Azure DevOps API每次请求仅返回100个项目。聊天机器人现在:
- 自动检索所有结果 用于分页工具(团队、项目、工作项等)
- 显示进度 带有分页状态消息
- 支持两种分页方法:基于偏移(
top/skip)基于令牌(continuationToken) - 有安全限制 防止无限循环(最多5000个项目)
分页工具
以下工具会自动检索所有结果:
core_list_project_teams-项目中的所有团队core_list_projects-您组织中的所有项目wit_list_backlogs-所有积压的工作项work_list_team_iterations-所有团队迭代testplan_list_test_plans-所有测试计划wiki_list_wikis-所有wiki
输出示例
[PAGINATION] Retrieving all results for core_list_project_teams...
[PAGINATION] Retrieved 100 items (total: 100)...
[PAGINATION] Retrieved 100 items (total: 200)...
[PAGINATION] Retrieved 50 items (total: 250)...
[PAGINATION] Complete! Retrieved 250 total items.
手动分页控制
如果你需要手动控制分页(例如,只想要前100个项目),你可以显式传递 top 和 skip 查询中的参数,自动分页将被绕过。
🐛 已知问题
- MCP初始化需要Node.js环境
- 大型对话历史记录可能会影响响应时间
- Azure DevOps PAT必须具有适当的MCP操作范围
🔮 未来的增强功能
- []添加流式响应以实现实时输出
- []实现对话持久性(保存/加载历史记录)
- []添加对多个MCP服务器的支持
- []基于Web的用户界面
- []增强的错误处理和重试逻辑
- []支持Azure DevOps webhooks
- []与其他Azure服务集成
创建于❤️ 使用Azure OpenAI GPT-5和模型上下文协议
