交互式AI助手

一个基于Streamlit、NVIDIA NIM/Ollama API和模型控制协议(MCP)的交互式AI助手,提供聊天界面以执行实时外部工具、检索数据和执行操作。

  • by VanshSutariya
  • Python
  • 本地部署
  • 1 星标
  • 更新于
在 GitHub 查看 VanshSutariya/LLaMa-MCP-Streamlit

使用说明

火焰MCP流

该项目是一个交互式人工智能助手,由 溪流, Nvidia Nim的API(火焰3.3:70b)/Ollama,以及 **模型控制协议(MCP)**它提供了一个对话界面,您可以在其中与LLM交互,通过MCP执行实时外部工具,检索数据,并无缝执行操作。

助理支持:

  • 自定义模型选择 (英伟达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

🔧 环境变量

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

# 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

🚀 运行项目

用诗

  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实时执行工具
  • LLM驱动的聊天界面
  • 带有交互式聊天元素的流线型用户界面
  • 支持多个LLM后端(NVIDIA NIM和Ollama)
  • Docker支持,易于部署

🛠 依赖项

  • Python 3.11+
  • 溪流
  • OpenAI API(用于NVIDIA NIM集成)
  • MCP(模型控制协议)
  • 诗歌(用于依赖管理)
  • Docker(可选,用于容器化部署)

📜 许可证

该项目根据MIT许可证获得许可。


🤝 贡献

请随时提交拉取请求或报告问题!


📬 联系

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