AI文档服务设计

  • 作者: 凯哥Java(公众号:凯哥Java)
  • AI相关
  • 时间:2025-11-24 15:57
  • 69人已阅读
简介 在AI问答服务中,设计到新创建问答、问答历史、一个文档中多轮提问、一轮提问中又有多轮回答,然后还可以重新生成、点赞、踩等操作。这个时候表怎么设计呢?一、表关系总览(层级+关联字段)四张表的关联可通过**“主从层级+核心关联字段”**梳理,整体关系链为:ai_application_chat(会话) → ai_application_chat_record(问答记录/版本)&nb

🔔🔔好消息!好消息!🔔🔔

有需要的朋友👉:微信号 kaigejava2022

在AI问答服务中,设计到新创建问答、问答历史、一个文档中多轮提问、一轮提问中又有多轮回答,然后还可以重新生成、点赞、踩等操作。这个时候表怎么设计呢?

一、表关系总览(层级 + 关联字段)

四张表的关联可通过 **“主从层级 + 核心关联字段”** 梳理,整体关系链为:ai_application_chat(会话) → ai_application_chat_record(问答记录/版本) → ai_answer_version(版本聚合)ai_application_chat_record(问答版本) → ai_answer_evaluate(评价)

用可视化结构表示更清晰:


二、各表间具体关联逻辑

1. ai_application_chat(会话表) ↔ ai_application_chat_record(问答记录表)

  • 关系类型1对多

  • 关联字段ai_application_chat.id = ai_application_chat_record.chat_id

  • 业务逻辑
    一个会话(比如用户在“线路安规”应用下的一次聊天)包含多个独立问题(每个问题对应至少一条问答记录)。
    例如:会话ID为chat_001的聊天中,用户问了“什么是安规?”“违规后果?”两个问题,每个问题对应ai_application_chat_record中的一条基础记录(首次回答),以及可能的多条版本记录(重新生成的回答)。

2. ai_application_chat_record(问答记录表) ↔ ai_answer_version(版本关联表)

这是新增表的核心关联,分为两种关联维度:

  • 维度1:基础记录关联

    • 关联字段:ai_application_chat_record.id(首次回答的记录ID) = ai_answer_version.base_record_id

    • 作用:标记“同一问题的所有版本”的根节点(即首次回答的记录)。

  • 维度2:版本记录关联

    • 关联字段:ai_application_chat_record.id(各版本回答的记录ID) = ai_answer_version.version_record_id

    • 作用:将“重新生成的回答版本”绑定到根节点下。

  • 业务逻辑
    用户对“什么是安规?”的首次回答(record_id=rec_001)不满意,点击“重新生成”得到新版本(record_id=rec_002)。此时:

    • ai_answer_version会新增两条记录:
      ① base_record_id=rec_001version_record_id=rec_001(基础版本)
      ② base_record_id=rec_001version_record_id=rec_002(版本2)

    • 通过base_record_id=rec_001可一次性查询到该问题的所有回答版本。

3. ai_application_chat_record(问答记录表) ↔ ai_answer_evaluate(评价表)

  • 关系类型1对多

  • 关联字段ai_application_chat_record.id = ai_answer_evaluate.record_id

  • 业务逻辑
    评价是针对具体的回答版本(而非问题或会话)的互动。比如用户对rec_002版本的回答点赞,就会在ai_answer_evaluate中插入一条record_id=rec_002的记录;若对rec_001点踩,则插入record_id=rec_001的记录。
    同时,通过client_id+record_id的唯一索引,保证同一用户对同一版本只能评价一次。

三、核心业务场景的表数据流转示例

以“用户发起问题→首次回答→重新生成→点赞新版本”为例,数据流转如下:

  1. 用户在会话chat_001中提问“什么是安规?”,系统生成首次回答:

    • ai_application_chat_record新增id=rec_001chat_id=chat_001(基础记录)

    • ai_answer_version新增base_record_id=rec_001version_record_id=rec_001

  2. 用户点击“重新生成”,得到新版本回答:

    • ai_application_chat_record新增id=rec_002chat_id=chat_001(版本2记录)

    • ai_answer_version新增base_record_id=rec_001version_record_id=rec_002

  3. 用户对rec_002版本点赞:

    • ai_answer_evaluate新增record_id=rec_002client_id=user_001evaluate_type=1(点赞)

总结

四张表的核心关联逻辑可概括为:

  1. 会话包含多个问答:通过chat_id关联会话与问答记录;

  2. 问答聚合多个版本:通过ai_answer_versionbase_record_id聚合同一问题的所有回答版本;

  3. 版本绑定用户评价:通过record_id将评价精准关联到具体的回答版本。

这种设计既保持了原有表结构的稳定性,又通过新增表实现了版本管理和互动记录的需求,层级清晰且易于扩展。



TopTop