Jira查询聊天客户端

基于Streamlit的聊天客户端,通过MCP工具和LangGraph工作流编排,使用本地Ollama模型回答Jira查询。

  • by aswin-sankaranarayanan
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 aswin-sankaranarayanan/jira-mcp-client

使用说明

Jira MCP流媒体客户端

基于Streamlit的聊天客户端,使用以下方式回答Jira查询:

已实施的工作流

  1. 获取Sprint见解 --总结一个命名板的当前冲刺进度。
  2. 获取问题详细信息 --获取并格式化特定Jira问题密钥的详细信息。
  3. 获取团队状态 --交互式多轮收集每个受让人的状态更新,然后是一份综合的scrum主报告。

路由是基于用户意图自动进行的。

建筑

  • 集中式MCP客户端:src/client/MCP_client.py
  • 集中式结构化日志记录:src/logging_config.py
  • LangGraph路由器:src/graph/router.py
  • 工作流节点:
    • src/graph/workflows/sprint_insights.py
    • src/graph/workflows/issue-details.py
    • src/graph/workflows/team_status.py
  • 流线型用户界面:src/UI/app.py

所有工具和提示调用都通过集中式MCP客户端进行。

团队状态工作流

团队状态工作流是一个多轮交互式收集循环:

  1. 为董事会获取所有活动的冲刺问题,并按受让人对其进行分组。
  2. 依次介绍每个受让人的问题,提示他们提供状态更新。
  3. 在所有受让人都做出回应后,通过LLM生成一份综合的scrum主报告。

会话状态(team_status_session)在Streamlit中跨轮次持久化,因此收集循环可以在多个用户交互中幸存下来。

MCP服务器假设

MCP服务器预计位于:

http://localhost:8000/sse

预期工具:

  • get_active_sprint_issues
  • get_issue_details

预期提示:

  • format_issue_details
  • format_sprint_progress

设置

  1. 安装依赖项:

    pip install -r requirements.txt
    
  2. 确保Ollama正在运行并且模型可用:

    ollama pull llama3.2:latest
    
  3. 确保MCP服务器正在配置的端点上运行。

配置

运行时行为可以通过环境变量进行调整:

变量 默认值 描述
MCP_SERVER_URL http://localhost:8000/sse MCP服务器端点
OLLAMA_MODEL llama3.2:latest 使用Olama模型
APP_TITLE Jira Copilot 流线型页面标题
APP_SUBTITLE LangGraph + MCP powered Jira assistant UI中显示的字幕
STREAMING_ENABLED true 按令牌流启用令牌
LOG_LEVEL INFO 日志冗长(DEBUG, INFO, WARNING, ERROR)
LOG_FORMAT json 日志输出格式(json 或 text)

跑

streamlit run src/main.py

使用示例

  • Show sprint progress for board Platform Team
  • Give me issue details for PROJ-42
  • Get team status for Platform Team --启动交互式状态收集循环

备注

  • 董事会名称从sprint和团队状态工作流的聊天请求中提取;如果无法解析,则要求LLM进行推断。
  • 如果缺少板名或问题密钥,应用程序会要求澄清。
  • UI被配置为页面主体被锁定,消息面板可滚动。
  • 团队状态收集循环通过以下方式在Streamlit重新运行时持续存在 st.session_state.team_status_session.