本项目 Aumi 是一个智能地点地图助理的后端实现,旨在帮助用户从复杂的网络内容(如社交媒体帖子、博客文章等)中自动识别和提取提及的地理位置信息,并通过集成地图服务提供进一步的地点详情和可视化能力。它被设计为一个可由大型语言模型(LLM)客户端调用的 MCP 服务器,作为 LLM 代理工作流中的一个关键组件。

主要功能点:

  • 智能内容抓取与解析: 能够访问和解析来自各种来源(包括普通网页、特定社交媒体如TikTok和小红书)的链接内容,提取其中的文本、图片信息(通过OCR)、视频字幕等。
  • AI赋能的地点信息提取: 利用AI模型(如GPT-4o-mini)处理抓取到的文本及其他信息,准确识别出其中提及的地点名称、地址、以及相关的描述。
  • 地图服务集成与地点增强: 调用如Google Maps Places API等外部地图服务,根据提取到的地点名称和地址查询更详细、结构化的信息,包括地理坐标(经纬度)、评分、营业时间、网站链接、导航链接等。
  • 结构化地点数据输出: 将抓取、AI提取和地图服务查询的结果整合成标准化的地点信息结构,方便LLM客户端或其他应用进行进一步的处理或可视化。
  • MCP工具暴露: 项目将其核心能力(内容抓取和地点信息查询)封装为MCP工具,通过标准化的 JSON-RPC 协议提供给兼容的LLM客户端调用。

安装步骤:

  1. 克隆本项目到本地:
    git clone https://github.com/katwinkl3/aumi.git
    cd aumi
  2. 安装后端所需的Python依赖:
    pip install -r requirements.txt
    (注:仓库未直接提供 requirements.txt,但根据代码(如 'Flask', 'requests', 'openai', 'redis', 'easyocr', 'pytesseract', 'beautifulsoup4', 'trafilatura', 'readability-lxml', 'python-dotenv', 'flask-limiter', 'python-telegram-bot', 'FastMCP' 等),需要手动安装这些库及其依赖,或者自行创建 requirements.txt 文件。)
  3. 安装EasyOCR所需的额外依赖(如PyTorch):请参考 EasyOCR 官方文档进行安装。
  4. 安装Tesseract OCR引擎:请根据你的操作系统安装 Tesseract。
  5. 安装并运行Redis服务器:本项目使用Redis作为缓存,请确保Redis服务正在运行。
  6. 设置环境变量:复制 '.env.example' (如果存在) 或手动创建 '.env' 文件,填入你的API Keys,包括:
    • 'OPENAI_TOKEN' (用于AI模型提取地点信息)
    • 'GOOGLE_TOKEN' (用于Google Maps API查询地点详情)
    • 'TELEGRAM_BOT_TOKEN' (如果需要启用Telegram Bot功能)
    • 其他可能的URL配置(如 'AUMI_URL', 'TIKTOK_PHOTO_URL' 等)
  7. 本项目包含一个React前端和一个Flask后端,MCP服务器是Flask后端的一部分。要运行完整的后端,需要启动Flask应用,但MCP服务器本身是通过'server/mcp.py'脚本单独启动的,并且在示例中使用了 Stdio 传输协议,这通常意味着它是由MCP客户端作为子进程启动的。

服务器配置(供MCP客户端使用):

MCP客户端需要以下配置信息来识别和启动 Aumi MCP 服务器进程,并通过 Stdio 与其通信:

{
  "server name": "aumi", // MCP服务器的唯一名称
  "command": "python", // 启动MCP服务器进程的命令行工具。请根据您的Python安装位置调整,例如 "/usr/bin/python" 或 "C:\\Python3x\\python.exe"
  "args": ["path/to/your/aumi/server/mcp.py"] // 传递给启动命令的参数列表,这里是MCP服务器脚本的路径。请替换 "path/to/your/aumi" 为您实际的项目根目录路径
}

基本使用方法:

  1. 确保 Redis 服务器正在运行。
  2. 启动 Aumi MCP 服务器:通常由兼容的 MCP 客户端根据上述配置信息,以子进程方式启动 'python server/mcp.py' 命令。
  3. MCP客户端(例如,LLM Orchestrator)可以通过标准输入/输出(Stdio)与 Aumi MCP 服务器进行 JSON-RPC 通信。
  4. LLM客户端可以调用暴露的 MCP 工具,例如:
    • 调用 'scraper' 工具并传递一个URL参数,获取该URL页面的抓取文本内容。
    • 处理抓取到的文本,通过LLM或其他方式识别地点名称/地址。
    • 调用 'address_info' 工具并传递地点名称/地址参数,获取该地点的结构化地图详细信息。
  5. LLM客户端接收工具返回的数据,并根据需要进行后续处理或传递给用户。

信息

分类

AI与计算