news 2026/4/11 23:04:23

AI智能助手草稿与发布版本管理设计方案

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
AI智能助手草稿与发布版本管理设计方案

1. 核心设计思想

我们采用“草稿-发布”分离的模式来管理智能助手的不同版本。其核心思想如下:

  1. 分离存储:系统中同时存在两种状态的智能助手,通过两个独立的数据库表进行管理:

    • 草稿 (assistant表):这是主要的工作表,包含了所有版本的智能助手,无论是草稿状态还是已发布状态。通过is_published字段来区分。草稿是编辑中的版本,对它的任何修改都不会影响线上正在运行的版本。
    • 发布 (assistant_published表):这张表可以看作是线上服务版本的“指针”或“快照”集合。当一个草稿被发布时,系统会将该草稿版本的数据复制一份到这张表中,作为线上服务的权威数据源。
  2. 版本关联:通过parent_idassistant_id字段建立草稿与发布版本之间的关联。

    • assistant表中的parent_id指向assistant_published表的id,用于标识一个草稿是从哪个发布版本创建的。
    • assistant_published表中的assistant_id指向assistant表的id,用于标识当前线上版本对应的是哪一条具体的记录。
  3. 原子化操作:发布、下线、创建草稿等核心操作都封装在独立的业务逻辑层(Service)中,确保数据在多个表之间操作时的一致性和完整性。

2. 数据模型 (models/assistant.py)

版本管理的核心是数据模型的设计。我们主要依赖以下两个模型:

Assistant模型

该模型代表一个智能助手的具体实例,可以是草稿,也可以是已发布的版本。

# models/assistant.pyclassAssistant(db.Model):# ...id=db.Column(db.Integer,primary_key=True)parent_id=db.Column(db.Integer,db.ForeignKey('assistant_published.id'),nullable=True,comment='父版本id')version=db.Column(db.Integer,nullable=False,default=1,comment='版本号')is_published=db.Column(db.Boolean,nullable=False,default=False,comment='是否已发布')status=db.Column(db.String(255),nullable=False,default=AssistantStatus.DRAFT.value,comment='状态')# ... (其他业务字段如 name, description, model_config 等)published_assistant=db.relationship('AssistantPublished',backref='assistants',foreign_keys=[parent_id])

关键字段说明

  • parent_id: 外键,指向assistant_published.id。如果这是一个草稿,parent_id指向它所基于的那个发布版本。
  • is_published: 状态标记。True表示这是一个已发布的版本,False表示这是一个草稿。
  • status: 状态枚举,如DRAFT(草稿)、PUBLISHED(已发布)。
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/3/31 2:23:36

NPM安装Puppeteer抓取TensorRT官网更新公告

使用 Puppeteer 自动化监控 TensorRT 官方更新 在 AI 推理日益成为系统性能瓶颈的今天,NVIDIA 的 TensorRT 已然成为高性能深度学习部署的核心工具。它不仅能将训练好的模型压缩、加速,还能针对特定 GPU 架构生成高度优化的推理引擎,广泛应用…

作者头像 李华
网站建设 2026/4/1 10:14:24

Python全局环境和虚拟环境(venv)

在其他地方查看文章:Python全局环境和虚拟环境(venv) - Liu Zijians Blog - 一个个人博客网站 1.概述 在进行python项目开发时,不同项目可能需要依赖的python版本是不同的,有时电脑上需要安装好几个不同版本的python解…

作者头像 李华
网站建设 2026/4/7 11:52:09

Excalidraw:手绘风在线白板神器

Excalidraw:当手绘风遇上数字协作,技术人的理想白板长什么样? 你有没有过这样的经历:在远程会议中想快速画个架构草图,打开PPT却发现排版耗时比内容还久;或是用Figma做原型时被复杂的图层和组件搞得头大&a…

作者头像 李华
网站建设 2026/4/5 6:57:44

LobeChat能否支持多轮谈判?复杂决策模拟

LobeChat 能否支持多轮谈判与复杂决策模拟? 在企业智能对话系统日益复杂的今天,用户早已不满足于“问一句答一句”的机械交互。他们期待 AI 能够真正参与薪资谈判、合同协商、商业推演这类需要长期记忆、角色代入和动态决策的高阶任务。这背后考验的不仅…

作者头像 李华
网站建设 2026/4/11 14:00:11

UnityRenderStreaming内网转发到公网

1、coturn 前文已编译好了coturn https://xue-fei.blog.csdn.net/article/details/155945401 配置文件 turnserver.conf # 监听地址和端口 listening-port3478 tls-listening-port5349 listening-ip0.0.0.0# 你的公网 IP(必须!用于 NAT 穿透&#xff0…

作者头像 李华