![[Feature Request - RAGFlow+OceanBase] OceanBase Implementation for Memory Subsystem](https://www.chat-gpts.plus/wp-content/uploads/2026/07/12771-63a21432.jpg)
[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.py和memory/utils/infinity_conn.py),但缺乏对OceanBase数据库的支持。用户希望通过此功能增强RAGFlow的存储后端选型灵活性。
注意:评论指出RAGFlow项目正在从Python迁移到Go语言(API保持一致),这可能会影响该功能的实际实施方向。
环境排查
- 确认RAGFlow项目的当前代码分支(Python版本 vs Go版本)
- 检查
memory/utils/目录下是否有ob_conn.py文件 - 确认OceanBase数据库的Python驱动(如
obconnector或mysql-connector-python)是否已安装 - 核实
memory/settings.py中是否已定义OceanBase相关配置项 - 检查现有ES/Infinity连接类的实现细节,确保新实现接口一致
解决步骤
- 创建新文件
memory/utils/ob_conn.py,实现OBConnection类,参考ESConnection(memory/utils/es_conn.py第35行)和InfinityConnection(memory/utils/infinity_conn.py第31行)的接口设计。 - 实现消息存储功能:
store_message()、消息CRUD操作、消息检索与过滤(search_messages())。 - 实现向量检索功能:利用OceanBase的向量检索能力,完成
vector_search()函数,支持相似度搜索和向量索引管理。 - 实现会话管理功能:
create_session()和delete_session(),管理会话状态与会话-消息关联。 - 更新
memory/settings.py,添加OceanBase连接配置项(如主机、端口、用户名、密码等)。 - 编写单元测试,确保所有Memory子系统的测试用例通过,性能不低于ES/Infinity实现。
- 可优先尝试:确认项目是否已完成Go语言迁移;若已迁移,则需将实现调整为Go版本。
验证方法
运行Memory子系统的所有单元测试,验证OceanBase实现的正确性。对比ES/Infinity实现的性能指标(如消息存储/检索延迟、向量搜索准确率),确保性能可接受。



![GPT-5.6 Sol Ultra 证明了循环双盖猜想 [pdf]](https://www.chat-gpts.plus/wp-content/uploads/2026/07/ai_cover_3-319-768x403.jpg)