项目简介
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的客户端,使用其提供的文档转换和记忆功能。
安装步骤
- 克隆仓库: 打开终端,运行以下命令克隆项目:
git clone https://github.com/ArtyomZemlyak/tg-note.git cd tg-note - 安装依赖:
- 确保您的系统已安装 Python 3.11 或 3.12、Poetry (Python依赖管理器) 和 Git。
- 运行 'poetry install' 安装项目核心依赖。
- 为启用MCP功能,请额外运行 'poetry install -E mcp -E mem-agent'。
- 配置Telegram Bot:
- 在Telegram中搜索 '@BotFather',发送 '/newbot' 并按照提示创建一个新机器人,获取您的 'TELEGRAM_BOT_TOKEN'。
- 在项目根目录创建 '.env' 文件,并填入您的Telegram机器人令牌:
TELEGRAM_BOT_TOKEN=你的机器人token # 根据需要,您可以在此处添加其他API密钥,例如 OPENAI_API_KEY=sk-...
- 配置 'config.yaml':
- 复制示例配置文件 'cp config.example.yaml config.yaml'。
- 编辑 'config.yaml' 文件,根据您的需求调整基本设置,例如 'AGENT_TYPE' (代理类型)、'KB_PATH' (知识库路径) 等。
- 运行机器人:
您将看到机器人启动日志,提示Telegram机器人已成功启动。poetry run tg-note - 在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客户端在建立连接时需要用到的元数据。
-
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对象。
- 'convert_document_from_content':
-
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协议进行能力声明时获取。
基本使用方法
- 启动机器人: 按照上述安装步骤运行机器人。
- 初始化知识库: 在Telegram中,向机器人发送 '/start' 命令,然后按照按钮提示选择创建本地知识库或连接GitHub仓库。
- 发送内容: 您可以直接向机器人发送任意文本消息、转发来自其他频道的帖子、发送带有标题的图片或上传文档(支持PDF、DOCX、HTML、MD、TXT、JPG、PNG等多种格式)。机器人将自动处理并转化为知识库笔记。
- 切换工作模式:
- '/note': 进入笔记模式(默认),机器人将分析并保存您的内容。
- '/ask': 进入提问模式,您可以向机器人提问关于知识库内容的问题。
- '/agent': 进入代理模式,AI代理将拥有对知识库的完全自主访问权限,可以回答问题、添加/编辑/删除内容、重构组织知识库等。
- 管理设置: 发送 '/settings' 命令,通过交互式菜单调整机器人的各项配置,例如代理模型、Git自动推送、消息分组超时等。
信息
分类
生产力应用