mcpField
L
Llama MCP Streamlit

Llama MCP Streamlit

github.com/nikunj2003聊天应用4389 周前更新

关于 Llama MCP Streamlit

Llama MCP Streamlit 是一个基于 Streamlit 构建的 AI 助手,可接入 NVIDIA NIM(LLaMa 3.3:70B)或 Ollama 作为大模型后端。它通过 MCP 调用外部工具以获取数据并执行操作,适合希望在本地或自有环境中试用 MCP 工具的开发者。

主要功能

  1. 01支持 NVIDIA NIM 与 Ollama 两种后端
  2. 02可通过 .env 文件配置 API 端点与密钥
  3. 03通过 MCP 实时执行外部工具
  4. 04基于 Streamlit 的对话界面
  5. 05提供 Docker 部署方式

适用场景

  1. 01在本地通过 Ollama 运行 AI 助手并调用文件系统工具
  2. 02在对话界面中调用 MCP 工具获取实时数据
  3. 03借助 Docker 快速部署 MCP 助手

MCP 相关

该项目是 MCP 客户端,通过 stdio 启动 NPX 或 Docker 形式的 MCP 服务,例如 @modelcontextprotocol/server-filesystem,并在对话中调用其工具。

详细介绍

Llama MCP Streamlit

这个项目是一个交互式 AI 助手,使用 Streamlit、NVIDIA NIM 的 API (LLaMa 3.3:70b)/Ollama 和 Model Control Protocol (MCP) 构建。它提供了一个对话界面,您可以与大模型交互,通过 MCP 执行实时外部工具、检索数据并无缝执行操作。

该助手支持:

  • 自定义模型选择(NVIDIA NIM / Ollama)
  • 不同后端的 API 配置
  • 通过 MCP 集成工具以增强可用性和实时数据处理
  • 使用 Streamlit 提供的用户友好型聊天体验

📸 截图

主页截图

工具截图

聊天截图

聊天(您可以做什么?)截图


📁 项目结构

llama_mcp_streamlit/
│── ui/
│   ├── sidebar.py       # UI components for Streamlit sidebar
│   ├── chat_ui.py       # Chat interface components
│── utils/
│   ├── agent.py         # Handles interaction with LLM and tools
│   ├── mcp_client.py    # MCP client for connecting to external tools
│   ├── mcp_server.py    # Configuration for MCP server selection
│── config.py            # Configuration settings
│── main.py              # Entry point for the Streamlit app
.env                      # Environment variables
Dockerfile                # Docker configuration
pyproject.toml            # Poetry dependency management

🔧 环境变量

运行项目之前,请使用您的 API 密钥配置 .env 文件:

# Endpoint for the NVIDIA Integrate API
API_ENDPOINT=https://integrate.api.nvidia.com/v1
API_KEY=your_api_key_here

# Endpoint for the Ollama API
API_ENDPOINT=http://localhost:11434/v1/
API_KEY=ollama

🚀 运行项目

使用 Poetry
  1. 安装依赖:
    poetry install
    
  2. 运行 Streamlit 应用:
    poetry run streamlit run llama_mcp_streamlit/main.py
    
使用 Docker
  1. 构建 Docker 镜像:
    docker build -t llama-mcp-assistant .
    
  2. 运行容器:
    docker compose up
    

🔄 更改 MCP 服务配置

要修改要使用的 MCP 服务,请更新 utils/mcp_server.py 文件。 您可以使用 NPX 或 Docker 作为 MCP 服务:

NPX 服务
server_params = StdioServerParameters(
    command="npx",
    args=[
        "-y",
        "@modelcontextprotocol/server-filesystem",
        "/Users/username/Desktop",
        "/path/to/other/allowed/dir"
    ],
    env=None,
)
Docker 服务
server_params = StdioServerParameters(
    command="docker",
    args=[
        "run",
        "-i",
        "--rm",
        "--mount", "type=bind,src=/Users/username/Desktop,dst=/projects/Desktop",
        "--mount", "type=bind,src=/path/to/other/allowed/dir,dst=/projects/other/allowed/dir,ro",
        "--mount", "type=bind,src=/path/to/file.txt,dst=/projects/path/to/file.txt",
        "mcp/filesystem",
        "/projects"
    ],
    env=None,
)

根据需要修改 server_params 配置以适应您的设置。


📌 功能

  • 通过 MCP 实时执行工具
  • 大模型驱动的聊天界面
  • Streamlit UI 与交互式聊天元素
  • 支持多个大模型后端(NVIDIA NIM 和 Ollama)
  • Docker 支持便于部署

🛠 依赖项

  • Python 3.11+
  • Streamlit
  • OpenAI API(用于 NVIDIA NIM 集成)
  • MCP(Model Control Protocol)
  • Poetry(用于依赖项管理)
  • Docker(可选,用于容器化部署)

📜 许可证

本项目采用 MIT 许可证。


🤝 贡献

欢迎提交拉取请求或报告问题!


📬 联系方式

如有任何问题,请通过 GitHub Issues 联系。


评论

支持 Markdown

第一次接触 MCP?

从协议是什么,到在客户端里装上第一个服务,这几条回答覆盖了大多数入门问题。

一个开放协议,规定了 AI 应用如何以统一方式连接外部工具与数据源。客户端负责与模型对话,MCP 服务负责提供工具、资源和提示模板,两者通过标准消息通信,同一个服务可以被不同客户端复用。