LLM工具调用聊天应用

一个基于Streamlit的聊天应用,连接Ollama LLM后端和多个MCP服务器,允许LLM发现并调用MCP服务器提供的工具。

  • by Bujupah
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Bujupah/streamlit-mcp-app

使用说明

MCP流媒体聊天

该项目是一个Streamlit聊天应用程序,连接到Ollama LLM后端和多个MCP(模型即服务)服务器。该应用程序允许LLM从连接的MCP服务器中发现和调用工具。

项目结构

  • /app:包含Streamlit UI代码。
  • /core:包含聊天机器人和Ollama LLM包装器的核心逻辑。
  • /mcp:包括MCP客户端和工具注册表。
  • /mcp_servers:包括MCP服务器。
  • /config:管理应用程序设置和服务器配置。
  • dummy_server.py:用于演示的MCP服务器示例。
  • uv.toml:项目的依赖关系管理文件。

设置和安装

此项目使用 uv 用于依赖性管理。

  1. 安装 uv: 如果你没有 uv 安装后,您可以使用pip进行安装:

    pip install uv
    
  2. 创建虚拟环境并安装依赖项:

    uv venv
    uv sync
    

如何运行应用程序

  1. 启动Ollama服务: 确保Ollama已安装并正在运行。你可以像这样拉一个模型 llama3 开始:

    ollama pull llama3
    
  2. 运行虚拟MCP服务器: 在单独的终端中,运行虚拟MCP服务器:

    uv run python mcp_servers/dummy_server.py
    

    这将在上启动服务器 http://localhost:3000 带着一个 add 工具。

  3. 运行Streamlit应用程序: 在另一个终端中,运行Streamlit应用程序:

    uv run streamlit run app/main.py
    

    该应用程序将在 http://localhost:8501.

如何使用应用程序

  1. 打开Streamlit应用程序 在您的浏览器中。

  2. 在侧边栏上,您可以 启用或禁用MCP服务器The dummy_server 默认情况下应启用。

  3. 点击 “刷新工具” 从已启用的服务器中发现工具。可用工具将显示在侧边栏中。

  4. 与模特聊天。尝试让它执行需要工具的任务,例如:

    “5+7是什么?”

    模型应调用 dummy_server-add 工具并提供正确答案。