LLM聊天与MCP代理工具应用

一个基于Azure OpenAI和Streamlit的应用,支持与LLM聊天、使用MCP代理工具、查看MCP服务器配置及健康状态,并提供详细的日志记录和简单的成本跟踪功能。

  • by arunksingh16
  • Python
  • 混合部署
  • 更新于
在 GitHub 查看 arunksingh16/langchain-agent-with-mcp-streamlit-ui

使用说明

带有mcp streamlit用户界面的langchain代理

一个由Azure OpenAI驱动的Streamlit应用程序,带有可选的MCP代理工具。它支持:

  • 与LLM(Azure OpenAI)聊天
  • 使用MCP支持的代理调用中定义的工具 mcp.json
  • 查看和验证MCP服务器配置和运行状况
  • 详细的使用记录和简单的成本跟踪

需求

  • Python 3.10+
  • Azure OpenAI访问和部署
  • MCP HTTP服务器(可选,用于代理工具)

安装Python依赖项:

pip install -r requirements.txt

配置

该应用程序从以下位置读取环境变量 config.env (或 .env, config.txt)如果存在。

Azure OpenAI所需:

  • AZURE_OPENAI_API_KEY
  • AZURE_OPENAI_ENDPOINT

可选:

  • LOG_LEVEL (默认值:INFO)
  • ENABLE_CONVERSATION_LOG (默认值:true)
  • ENABLE_DETAILED_LOGGING (默认值:true)
  • STREAMING_DELAY (默认值:0.02秒)
  • MCP_CONFIG_PATH (路径到 mcp.json;默认为 steamlit-app/mcp.json 或回购根)
  • SYSTEM_PROMPT_PATH (系统提示文件的路径;默认为 steamlit-app/system_prompt.md)

MCP配置(工具)

该应用程序仅从以下位置加载MCP服务器 mcp.json。对于可流式传输的HTTP MCP服务器,请使用 transport: "streamable_http".

示例 mcp.json:

{
  "mcpServers": {
    "aws-news": {
      "url": "http://127.0.0.1:8000/mcp",
      "transport": "streamable_http"
    }
  }
}

笔记:

  • MCP服务器必须单独启动。
  • 显示以下项目的本地健康检查 http://127.0.0.1:<port>/health URL。

有关支持的传输和示例,请参阅LangChain MCP适配器文档: langchain mcp适配器.

系统提示

代理的系统提示从以下位置加载 system_prompt.md (或 SYSTEM_PROMPT_PATH).

默认文件: steamlit-app/system_prompt.md.

运行应用程序

从该目录(或repo根目录)运行:

streamlit run app.py

使用应用程序

  1. 在浏览器中打开应用程序(Streamlit将打印URL)。
  2. 在聊天选项卡中,使用切换“使用MCP代理”在以下选项之间切换:
    • LLM直接响应(无工具)
    • MCP代理响应(从加载的工具 mcp.json,带有外部系统提示)
  3. 在MCP选项卡中:
    • 检查负载 mcp.json 以及每台服务器的详细信息
    • 查看生成的客户端配置
    • 点击“列出MCP工具(所有服务器)”或“列出每台服务器的工具”以验证工具发现

故障排除

  • 不支持的传输:http

    • 确保您的 mcp.json 用途 "transport": "streamable_http" 对于HTTP MCP服务器。
    • 这是适配器对流式HTTP所期望的传输。
  • 未配置MCP服务器

    • 提供有效的 mcp.json (套 MCP_CONFIG_PATH 如果不与主机代管 app.py).
  • 代理中没有可用的工具

    • 确保MCP服务器正在运行,并且可以从运行应用程序的计算机访问。
    • 确认工具端点已由服务器装饰和公开。
  • Azure OpenAI错误

    • 验证 AZURE_OPENAI_API_KEY, AZURE_OPENAI_ENDPOINT,以及中的部署名称 model_configs.json.

日志和使用情况

  • 应用程序日志: ai_agent.log
  • 对话日志(如果启用): conversation_log.json

体系结构概述

  • UI:流光显示(app.py)
  • 法学硕士:Azure OpenAI通过 langchain-openai
  • 代理(可选):朗链 create_agent,工具通过加载 langchain-mcp-adapters 从 mcp.json
  • MCP:可流式HTTP MCP服务器(如FastMCP)单独启动