项目简介

tg-note是一个智能知识库构建机器人,通过Telegram接收用户输入,并利用AI代理系统对其进行分析、分类和结构化,最终以Markdown格式存储到用户选择的知识库中(支持本地或GitHub仓库)。它集成了Docling MCP服务器进行文档处理,并可使用MCP Hub管理记忆和工具。

主要功能点

  • AI驱动内容分析: 使用AI代理系统智能分类和结构化内容。
  • 自动Markdown生成: 将各类内容转换为格式良好的Markdown文件。
  • 智能组织: 自动按主题(如AI、生物、技术等)进行分类。
  • GitHub集成: 直接将笔记提交到GitHub知识库仓库。
  • 多用户支持: 每个用户可拥有独立知识库,或协作共享。
  • 文件格式识别: 使用Docling自动从PDF、DOCX、图片等多种文件格式中提取内容。
  • 交互式管理: 通过Telegram按钮菜单管理知识库、切换模式和配置设置。
  • MCP服务器集成: 作为Docling MCP服务器和MCP Hub的客户端,使用其提供的文档转换和记忆功能。

安装步骤

  1. 克隆仓库: 打开终端,运行以下命令克隆项目:
    git clone https://github.com/ArtyomZemlyak/tg-note.git
    cd tg-note
  2. 安装依赖:
    • 确保您的系统已安装 Python 3.11 或 3.12Poetry (Python依赖管理器) 和 Git
    • 运行 'poetry install' 安装项目核心依赖。
    • 为启用MCP功能,请额外运行 'poetry install -E mcp -E mem-agent'。
  3. 配置Telegram Bot:
    • 在Telegram中搜索 '@BotFather',发送 '/newbot' 并按照提示创建一个新机器人,获取您的 'TELEGRAM_BOT_TOKEN'。
    • 在项目根目录创建 '.env' 文件,并填入您的Telegram机器人令牌:
      TELEGRAM_BOT_TOKEN=你的机器人token
      # 根据需要,您可以在此处添加其他API密钥,例如 OPENAI_API_KEY=sk-...
  4. 配置 'config.yaml':
    • 复制示例配置文件 'cp config.example.yaml config.yaml'。
    • 编辑 'config.yaml' 文件,根据您的需求调整基本设置,例如 'AGENT_TYPE' (代理类型)、'KB_PATH' (知识库路径) 等。
  5. 运行机器人:
    poetry run tg-note
    您将看到机器人启动日志,提示Telegram机器人已成功启动。
  6. 在Telegram中设置知识库:
    • 打开Telegram,找到您的机器人,发送 '/start' 命令。
    • 通过交互式菜单点击 ➕ Создать БЗ (Create KB) 按钮,然后选择创建本地知识库或连接到GitHub仓库,并按照提示输入相关信息。

MCP服务器配置(供MCP客户端开发者参考)

tg-note项目在其完整的部署环境中包含多个MCP服务器组件,例如用于文档处理的Docling MCP服务器和用于记忆与工具注册的MCP Hub服务器。这些服务器在tg-note部署时自动启动并协同工作,主要为tg-note自身的AI代理提供后端服务。

如果您是一位MCP客户端开发者,希望您的LLM客户端连接到这些由tg-note部署的MCP服务器,以下是连接信息和它们提供的核心功能概述。请注意,这些配置信息不是您直接在tg-note代码中修改的,而是您的MCP客户端在建立连接时需要用到的元数据。

  1. Docling MCP服务器

    • 用途: 提供强大的文档内容提取、转换和处理能力,支持多种文件格式(如PDF, DOCX, 图片等)。
    • 连接URL: 在Docker部署中,通常可以通过 'http://localhost:8077/sse' 访问。
    • 主要工具:
      • 'convert_document_from_content':
        • 功能: 将Base64编码的文档内容进行解码,并使用Docling引擎转换为Docling内部格式,或直接导出为Markdown、JSON、纯文本等。
        • 参数:
          • 'content' (字符串): 必需,Base64编码的文档原始内容。
          • 'filename' (字符串): 可选,文档的原始文件名,有助于MIME类型识别和元数据处理。
          • 'mime_type' (字符串): 可选,文档的MIME类型(例如 'application/pdf')。
          • 'export_format' (字符串): 可选,指定导出格式,例如 '"markdown"'、'"json"' 或 '"text"'。如果未指定,将返回内部文档缓存键。
        • 返回: 包含文档缓存键、根据请求导出的内容(如Markdown文本)和任何错误信息的JSON对象。
      • 'sync_docling_models':
        • 功能: 触发Docling模型组件(如布局分析模型、OCR模型等)的下载或更新。
        • 参数:
          • 'force' (布尔值): 可选,设置为 'true' 可强制重新下载即使已存在的模型。
        • 返回: 包含操作成功状态、是否强制下载以及详细同步结果的JSON对象。
  2. MCP Hub服务器

    • 用途: 提供会话管理、能力声明,并作为中央注册中心,管理记忆和更多工具。
    • 连接URL: 在Docker部署中,通常可以通过 'http://localhost:8765/sse' 访问。
    • 主要功能:
      • 管理并提供LLM代理的记忆存储(例如,长期记忆的存储和检索)。
      • 注册和发现其他MCP服务器提供的工具。
      • 提供会话上下文管理功能。
      • (具体工具列表需通过Hub的 'registry_list_servers' 或 'health_check' 查询)

MCP客户端配置示例: 您的MCP客户端需要类似的配置(例如,作为JSON文件或程序内数据结构),以了解如何连接到这些服务器以及它们提供了哪些工具:

[
  {
    "server_name": "docling-mcp",
    "transport_protocol": "sse",
    "connection_url": "http://localhost:8077/sse",
    "description": "Docling文档处理MCP服务器,负责文件内容转换和模型管理。"
  },
  {
    "server_name": "mcp-hub",
    "transport_protocol": "sse",
    "connection_url": "http://localhost:8765/sse",
    "description": "中央MCP Hub服务器,提供记忆服务和工具注册。"
  }
]

请注意,上述 'server_name'、'transport_protocol' 和 'connection_url' 是客户端连接MCP服务器所需的基本信息。具体工具的详细说明和使用方式,通常会在客户端与服务器成功连接后,通过MCP协议进行能力声明时获取。

基本使用方法

  1. 启动机器人: 按照上述安装步骤运行机器人。
  2. 初始化知识库: 在Telegram中,向机器人发送 '/start' 命令,然后按照按钮提示选择创建本地知识库或连接GitHub仓库。
  3. 发送内容: 您可以直接向机器人发送任意文本消息、转发来自其他频道的帖子、发送带有标题的图片或上传文档(支持PDF、DOCX、HTML、MD、TXT、JPG、PNG等多种格式)。机器人将自动处理并转化为知识库笔记。
  4. 切换工作模式:
    • '/note': 进入笔记模式(默认),机器人将分析并保存您的内容。
    • '/ask': 进入提问模式,您可以向机器人提问关于知识库内容的问题。
    • '/agent': 进入代理模式,AI代理将拥有对知识库的完全自主访问权限,可以回答问题、添加/编辑/删除内容、重构组织知识库等。
  5. 管理设置: 发送 '/settings' 命令,通过交互式菜单调整机器人的各项配置,例如代理模型、Git自动推送、消息分组超时等。

信息

分类

生产力应用