AI助手通信工具

一个基于Ollama和MCP的本地AI助手,通过Telegram机器人前端提供智能对话和网络搜索功能。

  • by dpak-raman
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 dpak-raman/llm-communicate-mcp

使用说明

llm通信mcp

本地AI助手由 奥拉玛 和 主控程序,配备Telegram机器人前端。

运作原理

Telegram user
     │
     ▼
  bot.py              ← Telegram bot (python-telegram-bot)
     │
     ▼
  client.py
     │
     ├──► Tooling Agent (llama3.1:8b)
     │         decides if web search is needed
     │         calls web_search tool via MCP if required
     │              │
     │              ▼
     │         server.py  ← MCP server exposing web_search (DuckDuckGo)
     │
     └──► Chat Agent (llama3.2:3b)
               synthesises the final answer from search results (if any)
               or answers directly from its own knowledge

管道使用 两个独立的Olama模型:

代理 默认模型 角色
工装代理 llama3.1:8b 决定是否搜索网络;执行工具调用
聊天代理 llama3.2:3b 产生最终的对话答案

流量:

  1. 用户向Telegram机器人(或CLI)发送消息。
  2. 这 工装代理 接收查询并决定是否需要网络搜索。
    • 如果是,它会呼叫 web_search 在MCP服务器上(由DuckDuckGo支持)并收集结果。
    • 如果没有(问候语、数学、编码问题、稳定的事实等),它将跳过搜索。
  3. 这 聊天代理 根据搜索结果(如果有的话)或自身知识合成一个干净的答案。
  4. 答案将返回给Telegram用户(或打印到终端)。

需求


设置

1.克隆并安装依赖项

git clone <repo-url>
cd llm-communicate-mcp
uv sync

2.拉动Olama车型

ollama pull llama3.1:8b   # tooling agent
ollama pull llama3.2:3b   # chat agent

3.配置环境变量

cp .env.example .env

编辑 .env 并填写您的值:

变量 默认值 描述
TELEGRAM_BOT_TOKEN (bot需要) 令牌来自 @植物学家
OLLAMA_HOST http://localhost:11434 Ollama实例的URL
OLLAMA_TOOLING_MODEL llama3.1:8b 路由和工具调用模型(需要函数调用支持)
OLLAMA_CHAT_MODEL llama3.2:3b 最终会话答案模型

用法

运行Telegram机器人

uv run python src/bot.py

在Telegram上向你的机器人发送任何消息,它都会用人工智能生成的答案进行回复,只在必要时搜索网络。

从终端运行(无需电报)

uv run python src/client.py "Who won the 2025 Super Bowl?"
uv run python src/client.py "What is 2 + 2?"
uv run python src/client.py "How does TCP work?"

项目结构

.
├── src/
│   ├── server.py        # MCP server — exposes web_search tool via DuckDuckGo
│   ├── client.py        # MCP client — two-LLM orchestration (tooling + chat)
│   └── bot.py           # Telegram bot — routes messages through the client
├── .env                 # Your local config (gitignored)
├── .env.example         # Template — copy this to .env
├── pyproject.toml
└── README.md

依赖项

包装 用途
mcp 模型上下文协议客户端/服务器
ollama Ollama的Python客户端
ddgs DuckDuckGo搜索
python-telegram-bot Telegram机器人框架
python-dotenv 负载 .env 文件