[Feature Request – RAGFlow+OceanBase] OceanBase Implementation for Memory Subsystem

用户(RAGFlow开发者或贡献者)在参与RAGFlow + OceanBase Hackathon活动时,希望为RAGFlow的Memory子系统(消息存储、向量检索、会话管理)添加OceanBase数据库的后端实现。该功能基于GitHub Issue讨论,属于功能增强请求,非Bug报告。

[Feature Request - RAGFlow+OceanBase] OceanBase Implementation for Memory Subsystem

[Feature Request – RAGFlow+OceanBase] OceanBase Implementation for Memory Subsystem

快速结论:该功能请求提出为RAGFlow的Memory子系统增加OceanBase数据库的后端实现,用于替代或补充现有的Elasticsearch和Infinity存储后端。优先排查当前RAGFlow版本是否仍在使用Python原生API,以及是否有计划切换至Go版本。

问题场景

用户(RAGFlow开发者或贡献者)在参与RAGFlow + OceanBase Hackathon活动时,希望为RAGFlow的Memory子系统(消息存储、向量检索、会话管理)添加OceanBase数据库的后端实现。该功能基于GitHub Issue讨论,属于功能增强请求,非Bug报告。

报错原文

[Feature Request - RAGFlow+OceanBase] OceanBase Implementation for Memory Subsystem

(该Issue为功能请求,无具体报错代码。核心需求是实现OceanBase连接类,提供消息存储、向量检索、会话管理等操作。)

原因分析

可能原因:RAGFlow的Memory子系统已有Elasticsearch和Infinity两种后端实现(参考memory/utils/es_conn.pymemory/utils/infinity_conn.py),但缺乏对OceanBase数据库的支持。用户希望通过此功能增强RAGFlow的存储后端选型灵活性。

注意:评论指出RAGFlow项目正在从Python迁移到Go语言(API保持一致),这可能会影响该功能的实际实施方向。

环境排查

  • 确认RAGFlow项目的当前代码分支(Python版本 vs Go版本)
  • 检查memory/utils/目录下是否有ob_conn.py文件
  • 确认OceanBase数据库的Python驱动(如obconnectormysql-connector-python)是否已安装
  • 核实memory/settings.py中是否已定义OceanBase相关配置项
  • 检查现有ES/Infinity连接类的实现细节,确保新实现接口一致

解决步骤

  1. 创建新文件memory/utils/ob_conn.py,实现OBConnection类,参考ESConnectionmemory/utils/es_conn.py第35行)和InfinityConnectionmemory/utils/infinity_conn.py第31行)的接口设计。
  2. 实现消息存储功能:store_message()、消息CRUD操作、消息检索与过滤(search_messages())。
  3. 实现向量检索功能:利用OceanBase的向量检索能力,完成vector_search()函数,支持相似度搜索和向量索引管理。
  4. 实现会话管理功能:create_session()delete_session(),管理会话状态与会话-消息关联。
  5. 更新memory/settings.py,添加OceanBase连接配置项(如主机、端口、用户名、密码等)。
  6. 编写单元测试,确保所有Memory子系统的测试用例通过,性能不低于ES/Infinity实现。
  7. 可优先尝试:确认项目是否已完成Go语言迁移;若已迁移,则需将实现调整为Go版本。

验证方法

运行Memory子系统的所有单元测试,验证OceanBase实现的正确性。对比ES/Infinity实现的性能指标(如消息存储/检索延迟、向量搜索准确率),确保性能可接受。

参考来源

infiniflow/ragflow #12771

GamsGo AI

AI 工具推荐

想把多个 AI 模型放在一个入口?

GamsGo AI 集成 ChatGPT、DeepSeek、Gemini、Claude、Midjourney、Veo 等常用模型,适合写作、绘图、视频和日常 AI 工作流。

了解 GamsGo AI

推广链接:通过此链接购买,我可能获得佣金,不影响你的价格。

celebrityanime
celebrityanime
文章: 12389

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注