项目介绍:txtchat
txtchat 是一个利用检索增强生成(Retrieval Augmented Generation, 简称 RAG)和大型语言模型(Large Language Models, 简称 LLM)技术构建的智能搜索应用程序。这个项目的主要目标是革新传统的搜索方式,不仅仅是简单地提供搜索结果,而是能够通过智能方式提取、总结、翻译并转换内容,以生成更为准确和细致的回答。
项目特色
txtchat 添加了一组智能代理,可以与多种消息平台集成。这些代理或者角色通过一个自动化的账号进行消息响应,利用 AI 提供智能应答。工作流可通过大型或者小型语言模型来实现,甚至可以结合两者的优点。
安装指南
txtchat 最简单的安装方式是通过 pip 和 PyPI:
pip install txtchat
用户也可以直接从 GitHub 安装 txtchat,建议在 Python 虚拟环境中进行安装。支持 Python 3.8 及以上版本。
pip install git+https://github.com/neuml/txtchat
支持的消息平台
目前,txtchat 支持 Rocket.Chat 平台,该平台允许在本地环境中安装,而且基于 MIT 许可。用户可以使用 Docker Compose 快速启动一个本地的 Rocket.Chat 实例。将 txtchat 扩展到其他平台时,仅需为新平台创建一个 Agent 子类。
系统架构
txtchat 的每个角色都是一个代理和工作流的组合,决定了消息响应的类型。代理关联到消息平台的一个账户,而角色工作流是平台无关的。标准角色工作流可以在 txtchat-personas 库中找到,比如:
- Wikitalk:与 Wikipedia 聊天
- Summary:读取输入 URL 并总结文本
- Mr. French:将输入文本翻译成法语
启动一个 txtchat 角色的示例命令如下:
export AGENT_URL=ws://localhost:3000/websocket
export AGENT_USERNAME=<Rocket Chat User>
export AGENT_PASSWORD=<Rocket Chat User Password>
python -m txtchat.agent wikitalk.yml
使用示例
txtchat 有几个使用示例的视频展示,例如 Wikitalk 视频列表,它展示了如何利用 Wikitalk 针对历史、体育、文化和科学等主题进行查询。
整合自有数据
如果希望将 txtchat 连接到自己的数据上,可以创建一个 txtai 工作流程并运行。例如,构建一个 Hacker News 索引工作流程,并定义一个交互角色来实现这一目标。通过示例代码展示如何构建和查询自制数据源的步骤。
这些丰富的功能和模块化设计,使得 txtchat 成为非常灵活且可扩展的搜索和对话系统,能够满足不同用户和应用场景的需求。
进一步阅读
更多关于 txtchat 的信息和更新,请访问 Introducing txtchat — Retrieval Augmented Generation (RAG) powered search 获取详细的说明和背景介绍。