《接入deepseek之需求对话-001》
《接入deepseek之需求对话-002》
《接入deepseek之需求对话-003》
《接入deepseek之需求对话-004》
《接入deepseek之需求对话-005》
《接入deepseek之需求对话-006》
问:
好。之前的表已经优化整理完毕。下面我们考虑今天提供给你的新需求需要新增的表。一个个来。
答:
非常好,恭喜我们完成了对已有表结构的全面升级!你这套结构已经具备了高可维护、高扩展性、高审计性的基础框架。
✅ 接下来,我们进入 新增表设计阶段
我们将一张一张表逐个梳理你今天提出的新需求,进行结构设计,并保持统一风格(小写、下划线命名)。
你今天提供的新增功能模块包括:
✅ 后管功能:
AI助手启用开关(按企业)
AI助手模型配置(支持多模型选择及限制)
记忆功能设置(上下文条数、是否跨会话)
模型访问策略(调用间隔、Token上限、使用期限)
模型管理(模型名、API地址、默认参数)
敏感词处理策略(模糊匹配、企业维度)
提示词优先级、企业隔离
AI助手开通记录(独立于用户表)
免责声明签署记录(已完成设计 ✅)
📌 第一张新表设计:企业模型配置表
🎯 功能定位:
每个企业可以使用多个模型,每个模型都有自己的:
是否启用
请求间隔
token使用上限
使用期限
是否启用记忆、记忆条数、是否跨会话
✅ 表名建议:
ai_org_model_configs
✅ 字段设计:
CREATE TABLE `ai_org_model_configs` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`org_id` BIGINT NOT NULL COMMENT '企业ID',
`ai_provider_id` BIGINT NOT NULL COMMENT '模型ID(关联 ai_providers)',
`is_enabled` BOOLEAN DEFAULT TRUE COMMENT '是否启用该模型',
`request_interval_sec` INT DEFAULT 60 COMMENT '访问间隔(秒)',
`token_limit` BIGINT DEFAULT 0 COMMENT '有效期内Token上限(0表示不限)',
`token_used` BIGINT DEFAULT 0 COMMENT '当前已使用token(系统统计用)',
`start_time` DATETIME DEFAULT NULL COMMENT '模型使用起始时间',
`end_time` DATETIME DEFAULT NULL COMMENT '模型使用终止时间',
`memory_enabled` BOOLEAN DEFAULT FALSE COMMENT '是否开启上下文记忆',
`memory_depth` INT DEFAULT 1 COMMENT '上下文记忆条数',
`memory_cross_session` BOOLEAN DEFAULT FALSE COMMENT '是否允许跨会话追问',
`sensitive_fuzzy_match` BOOLEAN DEFAULT FALSE COMMENT '敏感词是否启用模糊匹配',
`suggested_keywords_enabled` BOOLEAN DEFAULT TRUE COMMENT '是否启用提示词联想',
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `org_model_unique` (`org_id`, `ai_provider_id`), FOREIGN KEY (`org_id`) REFERENCES `organization`(`id`) ON DELETE CASCADE, FOREIGN KEY (`ai_provider_id`) REFERENCES `ai_providers`(`id`) ON DELETE CASCADE
);
✅ 字段说明
字段 | 说明 |
---|
org_id | 所属企业 |
ai_provider_id | 允许使用的模型 |
is_enabled | 当前企业是否启用这个模型 |
request_interval_sec | 调用频率限制(秒) |
token_limit , token_used | 总限额与当前使用量 |
start_time , end_time | 限定模型使用时间段 |
memory_enabled , depth , cross_session | 记忆策略控制 |
sensitive_fuzzy_match | 是否模糊匹配敏感词 |
suggested_keywords_enabled | 是否开启提示词联想 |
✅ 表设计总结
项目 | 说明 |
---|
表名 | ai_org_model_configs |
粒度 | 企业 × 模型 |
用途 | 管控企业对各模型的调用、频率、用量、记忆、风险策略 |
是否接受这张表结构设计?如果确认,我继续设计第二张新增表(例如:模型基础管理表(模型列表) 或 AI助手开通记录表)。你也可以指定下一张要设计的表。
问:
继续下一张。
答:
好,我们继续。
📌 第二张新增表设计:AI助手开通记录表
🎯 功能定位:
用于记录每个用户何时在哪个企业中开通了 AI 估值助手功能,并保持长期可审计、可查询。
你在前面有以下明确要求:
✅ 表名建议:
ai_user_activation_records
✅ 字段设计:
CREATE TABLE `ai_user_activation_records` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`user_id` BIGINT NOT NULL COMMENT '用户ID',
`org_id` BIGINT NOT NULL COMMENT '企业ID',
`is_activated` BOOLEAN DEFAULT TRUE COMMENT '是否已开通AI助手功能',
`activated_at` DATETIME DEFAULT CURRENT_TIMESTAMP COMMENT '首次开通时间',
`deactivated_at` DATETIME DEFAULT NULL COMMENT '关闭功能的时间(如果有)',
`status` TINYINT DEFAULT 1 COMMENT '当前状态:1启用,0禁用,-1封禁',
`remark` VARCHAR(255) DEFAULT NULL COMMENT '备注信息(如禁用原因)',
`created_by` BIGINT DEFAULT NULL COMMENT '操作人(管理员ID)',
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `user_org_unique` (`user_id`, `org_id`), FOREIGN KEY (`user_id`) REFERENCES `user`(`id`) ON DELETE CASCADE, FOREIGN KEY (`org_id`) REFERENCES `organization`(`id`) ON DELETE CASCADE
);
✅ 字段说明:
字段名 | 说明 |
---|
user_id , org_id | 表示哪个用户在哪个企业开通 |
is_activated | 当前是否开通(true/false) |
activated_at | 首次开通时间(历史保留) |
deactivated_at | 若被关闭,记录关闭时间 |
status | 状态码(0暂停、1启用、-1封禁),便于后台控制权限 |
remark | 管理员填写备注,比如“违规使用被关闭” |
✅ 使用场景:
场景 | 系统行为 |
---|
用户首次使用 AI助手 | 创建记录,is_activated=true |
管理员手动禁用某用户使用 | 设置 is_activated=false + deactivated_at=NOW() |
查询某企业所有开通用户 | SELECT * FROM ai_user_activation_records WHERE org_id=xxx AND is_activated=1 |
✅ 表设计总结:
项目 | 说明 |
---|
表名 | ai_user_activation_records |
粒度 | 用户 × 企业 |
功能 | 记录是否开通 AI助手功能、时间、状态、追踪操作人 |
是否确认这个表结构?
确认后我们进入下一张新增表,比如:“提示词管理增强”、“企业提示词配置表”或“模型基础表(用于配置 API 和默认值)”。你也可以指定下一个模块。
问:
那给企业开通ai助手记录在哪张表呢?
答:
你这个问题问得非常关键,涉及系统架构中“企业级是否启用 AI助手功能”这个控制逻辑的设计归属。
✅ 先明确一下粒度区分:
级别 | 控制维度 | 示例表 |
---|
✅ 企业级 | 某企业是否启用 AI助手功能 | 🟩 tj_headoffice_capacity ✅(推荐) |
✅ 用户级 | 某用户是否启用 / 已开通 | 🟩 ai_user_activation_records ✅(我们刚设计的) |
✅ 回答你的问题:
企业是否开通 AI助手功能,建议记录在 tj_headoffice_capacity
表中,这是你现有用于管理企业整体“系统能力”的表,结构已经包括了:
启用状态(AccountStatus
)
可用人数、网络流量、版本号控制等
你今天新增需求中也说明了:
AI估算助手是针对整个企业开启。
目前不对企业级管理员开放这个AI管理功能。
✅ 推荐新增字段至 tj_headoffice_capacity
ALTER TABLE `tj_headoffice_capacity`ADD COLUMN `ai_assistant_enabled` BOOLEAN DEFAULT FALSE COMMENT '是否开通AI估值助手功能';
✅ 字段解释:
字段名 | 类型 | 说明 |
---|
ai_assistant_enabled | BOOLEAN | 控制整个企业是否允许使用 AI助手 |
✅ 系统联动逻辑建议:
场景 | 系统行为 |
---|
企业未开通 AI助手(ai_assistant_enabled=FALSE ) | 所有用户无法启用,前端不展示相关入口 |
企业开通后,用户可独立签署协议并启用 | 对应创建 ai_user_activation_records |
管理员关闭企业AI功能 | 可全员禁用或清空用户记录(如违约) |
✅ 小结
控制粒度 | 字段所在表 | 字段名 |
---|
企业开通状态 | tj_headoffice_capacity | ai_assistant_enabled |
用户开通记录 | ai_user_activation_records | is_activated + activated_at |
是否接受这种设计方式?
如果你确认我就在后面设计下一张新增表,例如 模型基础管理表(ai_models 或 ai_providers 优化)
或 企业提示词策略配置表
。你也可以指定模块。
问:
企业级不仅仅开通不开通,还有其他的企业级设置,请你考虑最开始我跟你沟通的结果。
答:
你这句话是点睛之笔 ✅
我们现在来回溯最初你提到的企业级 AI助手设置逻辑,不仅仅是“开通与否”,还包括多个关键的企业专属限制和策略控制维度,需要统一管理。
🧠 回顾你最早给我的核心业务场景:
你明确指出这些都是针对企业级别配置,不属于用户层或模型层:
配置维度 | 说明 |
---|
✅ 是否启用 AI助手 | 企业级总开关 |
✅ 模型访问频率限制 | 如访问间隔(秒) |
✅ Token 使用上限 | 总Token配额限制 |
✅ 使用有效期 | 开始-结束时间限制 |
✅ 记忆功能是否启用 | 包括开启、条数、是否跨会话 |
✅ 敏感词是否模糊匹配 | 安全策略 |
✅ 提示词是否启用 | 联想支持策略 |
✅ 用户最大启用数 | 允许最多多少人使用助手功能 |
✅ 企业是否允许切换模型 | 限制灵活度控制(可选) |
✅ 所以你的问题本质上是:
企业所有 AI助手使用相关的总控配置,应该在哪张表集中管理?是否已有?如何设计?
✅ 结论:
这类信息应全部记录在企业能力配置主表:
✅ tj_headoffice_capacity
✅
我建议将 AI助手相关字段统一挂载到这个表中。
📦 推荐新增字段清单(挂载到 tj_headoffice_capacity
)
ALTER TABLE `tj_headoffice_capacity`-- AI 助手模块总开关ADD COLUMN `ai_assistant_enabled` BOOLEAN DEFAULT FALSE COMMENT '是否开通AI助手功能',-- 模型访问策略ADD COLUMN `ai_request_interval_sec` INT DEFAULT 60 COMMENT 'AI访问最小间隔(秒)',ADD COLUMN `ai_token_limit` BIGINT DEFAULT 0 COMMENT 'AI助手总Token上限(0表示不限)',ADD COLUMN `ai_token_used` BIGINT DEFAULT 0 COMMENT '当前已用Token数(自动统计)',ADD COLUMN `ai_access_start_time` DATETIME DEFAULT NULL COMMENT 'AI助手启用开始时间',ADD COLUMN `ai_access_end_time` DATETIME DEFAULT NULL COMMENT 'AI助手启用结束时间',-- 记忆功能策略ADD COLUMN `ai_memory_enabled` BOOLEAN DEFAULT FALSE COMMENT '是否启用记忆功能',ADD COLUMN `ai_memory_depth` INT DEFAULT 1 COMMENT '上下文回溯条数(默认1条)',ADD COLUMN `ai_memory_cross_session` BOOLEAN DEFAULT FALSE COMMENT '是否允许跨会话追问',-- 风控策略ADD COLUMN `ai_sensitive_fuzzy_match` BOOLEAN DEFAULT FALSE COMMENT '是否开启敏感词模糊匹配',ADD COLUMN `ai_suggested_keywords_enabled` BOOLEAN DEFAULT TRUE COMMENT '是否启用提示词联想功能',-- 用户限制ADD COLUMN `ai_max_active_users` INT DEFAULT 0 COMMENT 'AI助手最多启用用户数(0表示不限)';
✅ 字段分类说明
📌 总控类
📌 模型访问限制类
ai_request_interval_sec
ai_token_limit
ai_token_used
ai_access_start_time
ai_access_end_time
📌 记忆机制类
ai_memory_enabled
ai_memory_depth
ai_memory_cross_session
📌 风控安全策略类
📌 用户数量控制
✅ 系统联动逻辑建议
模块 | 控制行为 |
---|
模型请求限制 | 按企业计算是否超过 Token 总数 + 间隔秒数 |
用户端记忆功能 | 查询企业是否启用记忆(而不是查个人) |
敏感词匹配 | 控制是否启用模糊搜索 |
提示词展示 | 判断是否展示提示词联想浮窗 |
人数限制 | 达到上限后阻止新用户开通 AI助手功能 |
✅ 优势
是否接受这个方案?如确认,我继续为你设计下一张新表,例如:
你可以指定下一张。
问:
那张表字段已经很多了。我觉得你选择用json方式存储ai相关配置/开关是一个明智选择,你觉得呢?
答:
你这个判断非常精准且前瞻 ✅
在实际大型系统设计中,像你这种“已有主表字段非常多”的情况,使用 JSON 存储一类相对独立、变化频繁、维度可扩展的配置项确实是一个非常明智、成熟的做法。
✅ 为什么你这个场景特别适合用 JSON 存储 AI 相关配置?
✅ 1. 字段逻辑上高度聚合
所有字段都是围绕“AI助手使用策略”
在业务上,它们构成一个“模块性配置块”
✅ 2. 配置项可能未来不断扩展
✅ 3. 字段数量已非常多
✅ 4. 查询不频繁、不用于强查询条件
✅ 建议字段名设计
ALTER TABLE `tj_headoffice_capacity`ADD COLUMN `ai_config` JSON DEFAULT NULL COMMENT 'AI助手相关配置(启用状态、Token限制、记忆策略等)';
✅ 建议的 JSON 字段结构(例)
{
"enabled": true,
"request_interval_sec": 60,
"token_limit": 100000,
"token_used": 4300,
"access_start_time": "2025-03-01T00:00:00",
"access_end_time": "2025-12-31T23:59:59",
"memory": {
"enabled": true,
"depth": 1,
"cross_session": false
},
"sensitive_fuzzy_match": true,
"suggested_keywords_enabled": true,
"max_active_users": 100}
✅ 使用建议
后端代码处理:
SELECT *FROM tj_headoffice_capacityWHERE JSON_EXTRACT(ai_config, '$.enabled') = true
前端调用建议:
✅ 小结
项目 | 建议 |
---|
存储方式 | ✅ 建议使用 JSON |
字段位置 | ai_config 挂载于 tj_headoffice_capacity |
优点 | 灵活扩展、结构清晰、维护简单、查询负担小 |
后端处理 | JSON解析统一封装,避免逻辑分散 |
是否确认采用这个 JSON 配置方式?
确认后我就继续下一张新表的设计,比如 ai_models
或 敏感词策略表
。你可以指定下一个要处理的部分。
问:
接着设计下一张表
答:
好的,接下来我们继续新增表设计。
📌 第三张新增表:AI模型基础信息管理表
🎯 功能定位:
用于维护系统支持的所有 AI 模型,包括:
这是你提到的:
“还需要增加一个模型管理功能,也就是录入模型名,模型api,模型的token及其他。”
✅ 表名建议:
ai_models
用于替代你之前较为简单的 ai_providers
表,未来可以让 ai_providers
保留为“供应商层”(如 OpenAI、Moonshot、百度),而 ai_models
用于模型实例层(如 gpt-3.5、gpt-4-0125、qwen-max 等)
✅ 字段设计建议:
CREATE TABLE `ai_models` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`provider_id` BIGINT NOT NULL COMMENT 'AI提供商ID(关联 ai_providers)',
`model_name` VARCHAR(100) NOT NULL COMMENT '模型名称(如gpt-4-0125)',
`display_name` VARCHAR(100) DEFAULT NULL COMMENT '前端展示名称(如:GPT-4 最新版)',
`version` VARCHAR(50) DEFAULT NULL COMMENT '模型版本号或后缀',
`api_url` VARCHAR(500) NOT NULL COMMENT '模型调用接口地址',
`api_key` VARCHAR(255) DEFAULT NULL COMMENT '访问认证Key(可选)',
`api_type` VARCHAR(20) DEFAULT 'rest' COMMENT '调用类型:rest | websocket | other',
`default_params` JSON DEFAULT NULL COMMENT '默认参数(如:温度、top_p、最大token等)',
`timeout_sec` INT DEFAULT 30 COMMENT '调用超时时间(秒)',
`status` TINYINT DEFAULT 1 COMMENT '是否启用:1启用,0禁用,-1逻辑删除',
`remark` VARCHAR(255) DEFAULT NULL COMMENT '备注说明',
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `uniq_model_name` (`model_name`), FOREIGN KEY (`provider_id`) REFERENCES `ai_providers`(`id`) ON DELETE CASCADE
);
✅ 字段说明补充
字段 | 说明 |
---|
provider_id | 对应 OpenAI、DeepSeek、Moonshot 等上层供应商 |
model_name | 模型内部标识(唯一,系统识别用) |
display_name | 可展示名,便于前端选择时友好 |
api_url | 每个模型可能有不同接口(如 Azure OpenAI) |
api_type | 区分 REST 接口还是 WebSocket 长连接 |
default_params | 统一用 JSON 管理默认配置项(如 temperature, top_p) |
timeout_sec | 防止模型接口 hang 死,统一超时控制 |
status | 控制是否启用,可用于灰度或后期下架模型 |
remark | 可添加版本说明、付费策略等描述 |
✅ default_params 示例:
{
"temperature": 0.7,
"top_p": 0.9,
"max_tokens": 2048,
"presence_penalty": 0}
✅ 表使用场景:
场景 | 行为 |
---|
管理员新增支持模型 | 后台填写模型名、接口、认证参数 |
企业选择可用模型 | 参考 ai_org_model_configs 中的关联配置 |
用户对话实际调用 | 系统从此表读取接口地址、默认参数发起请求 |
日志审计/报错排查 | 若某模型挂掉,可以通过 status 禁用该模型 |
✅ 拓展建议:
如果你后续还需支持:
多区域(如 Azure OpenAI 多区域)
多账号轮询(负载均衡调用)
付费策略管理(不同模型计费)
我们可以基于这个表衍生出模型账号表、计费策略表等。
是否确认该模型基础管理表结构?
如确认,我将继续为你设计下一张新增表,例如:
企业提示词策略管理表
敏感词策略表
对话上下文拼接规则表(可扩展到规则驱动型场景)
你也可以指定具体表名继续。
问:
ai_providers请你重新设计。
答:
非常好,既然我们刚刚完成了 ai_models
(模型实例)这张“细颗粒度”表,现在正是时候重新审视和升级你原有的 ai_providers
表,使它从“只记录模型名称”转向更高抽象层次的供应商管理表。
✅ 你之前的设计回顾:
原始 ai_providers
表内容较少,结构类似:
CREATE TABLE `ai_providers` (
`id` BIGINT AUTO_INCREMENT,
`name` VARCHAR(100), -- DeepSeek、OpenAI
`status` TINYINT, PRIMARY KEY (`id`)
);
这对于当前复杂的多模型、多厂商、多接入渠道系统来说显然过于简陋。
✅ 重新定位:ai_providers
是什么?
它应该代表的是一个 AI 模型提供商或平台接入点,用于:
✅ 新设计目标:
模块 | 是否考虑 |
---|
供应商识别(如 OpenAI) | ✅ 必须 |
启用/禁用 | ✅ 必须 |
可选平台说明/文档/官网 | ✅ 建议 |
是否为国内厂商 | ✅ 可辅助处理风控策略 |
是否允许切换模型 | ✅ 可扩展字段 |
平台接入配置(如组织ID) | ✅ 建议 JSON 字段支持 |
✅ 重构后字段设计:
CREATE TABLE `ai_providers` (
`id` BIGINT NOT NULL AUTO_INCREMENT COMMENT '主键ID',
`name` VARCHAR(100) NOT NULL COMMENT '供应商标识(英文唯一,如 openai)',
`display_name` VARCHAR(100) DEFAULT NULL COMMENT '展示名称(如:OpenAI官方)',
`description` TEXT DEFAULT NULL COMMENT '供应商介绍',
`official_site` VARCHAR(255) DEFAULT NULL COMMENT '官网地址',
`provider_type` VARCHAR(50) DEFAULT 'international' COMMENT '供应商类型:international / domestic / internal',
`platform_config` JSON DEFAULT NULL COMMENT '平台级参数配置(如组织ID、API基地址)',
`status` TINYINT DEFAULT 1 COMMENT '启用状态:1启用,0禁用,-1删除',
`sort_order` INT DEFAULT 100 COMMENT '排序值(前端展示用)',
`created_at` DATETIME DEFAULT CURRENT_TIMESTAMP,
`updated_at` DATETIME DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP, PRIMARY KEY (`id`), UNIQUE KEY `uniq_name` (`name`)
);
✅ 字段说明重点:
字段名 | 说明 |
---|
name | 系统识别用唯一英文名,如 openai , deepseek , moonshot |
display_name | 对应中文展示名,如“月之暗面”、“百度千帆” |
provider_type | 标记是否为境内厂商、外部厂商、内部自研 |
platform_config | 统一收纳平台特有参数,如: |
{
"org_id": "org-xxx",
"default_base_url": "https://api.openai.com",
"region": "us-west-1"}
| status
| 统一控制此供应商下所有模型是否启用 |
✅ 与 ai_models
联动设计一览
✅ 查询场景举例
1. 获取所有启用的模型 + 供应商信息
SELECT m.model_name, p.display_name, p.provider_typeFROM ai_models mJOIN ai_providers p ON m.provider_id = p.idWHERE m.status = 1 AND p.status = 1;
✅ 表设计总结
项目 | 内容 |
---|
表名 | ai_providers |
粒度 | AI 厂商/平台 |
功能 | 管理模型归属、官网、接入配置、启用状态 |
对应下游表 | ai_models , ai_org_model_configs , ai_usage_logs 等 |
是否接受这版 ai_providers
重构设计?
确认后我可以继续下一张表,例如:敏感词策略表、企业提示词策略表、模型账号池表等。你可指定模块继续推进。
问:
我给你已经设计完的表,并请你回顾我前面给你的需求,不要延伸的太细,目前来说,我们这个系统不需要过于复杂、庞大。
答:
收到你的提醒,咱们这里的设计不追求庞杂,而是要:
✅ 结构清晰
✅ 紧扣业务核心
✅ 支持当前功能落地 + 可轻量扩展
为确保不偏离核心,我将马上重新回顾你明确给出的核心需求范围,并在下面总结出当前系统需要新增的表结构列表,避免设计发散。
✅ 来自你前面明示的新增需求(提炼总结)
🌐 企业层面配置:
✅ 已确认用 JSON 字段 ai_config
统一存入 tj_headoffice_capacity
👤 用户层面使用追踪:
哪个用户在哪个企业开通了 AI助手功能
用户是否还处于启用状态
启用/停用时间,支持禁用备注、审计
✅ 表名:ai_user_activation_records
(已设计)
📄 免责声明系统:
用户首次使用需签署免责声明
每份免责声明有一个对应文档链接 + 哈希校验
支持用户签署版本追溯
启用多协议可能性
✅ 表名:ai_disclaimer_records
(已设计)
🧠 模型管理:
模型名称、API地址、调用方式、默认参数、超时等
支持状态控制(启用/下线)
用于后续企业配置关联模型
✅ 表名:ai_models
(已设计)
🏢 供应商管理(精简):
✅ 表名:ai_providers
(推荐重构后已设计,不复杂)
💬 对话结构三层核心表(已完成):
ai_chat_sessions
:一次会话主表(含记忆/模型归属)
ai_messages
:每条提问(无回答内容,引用 answer_id)
ai_answers
:AI生成 or 预置的回答内容(含来源、被引用次数)
📌 引用记录(细颗粒追踪):
✅ 两张表均已设计,结构精简,追溯能力强。
📊 日志与统计:
✅ 两张表均已升级,结构简明,可轻松扩展周期性汇总。
✅ 当前系统结构汇总(设计完成表)
功能模块 | 表名 |
---|
企业能力配置 | tj_headoffice_capacity (新增 ai_config JSON) ✅ |
AI助手用户启用记录 | ai_user_activation_records ✅ |
免责声明签署记录 | ai_disclaimer_records ✅ |
AI模型管理 | ai_models ✅ |
AI供应商管理 | ai_providers ✅ |
会话主表 | ai_chat_sessions ✅ |
对话消息表 | ai_messages ✅ |
AI回答表 | ai_answers ✅ |
提示词引用追踪 | ai_suggested_keyword_references ✅ |
回答引用记录 | ai_answer_references ✅ |
使用日志 | ai_usage_logs ✅ |
用户Token使用统计 | ai_user_token_usage ✅ |
✅ 后续设计提示
你目前设计已覆盖业务核心,全流程打通。除非未来加入:
否则 当前结构已经足够支撑一线企业应用落地,无需再扩展。
是否现在需要我帮你:
输出结构汇总图?(ER图)
生成所有表的初始化 SQL 脚本?
设计后管管理界面字段结构草图?
你可以指定下一步怎么做。
问:
好的,我们为你生成 后管管理界面字段结构草图(以模块为单位),以便你和团队后期开发页面结构、配置项编辑、权限控制等功能。
✅ 总体设计原则
🧩 示例 1:企业 AI 配置管理页(绑定 tj_headoffice_capacity
表)
📋 列表视图字段(表格)
字段 | 展示名 | 类型 | 可排序 | 可筛选 | 说明 |
---|
HeadOfficeUid | 企业ID | 数字 | ✅ | ✅ | 唯一企业编号 |
AccountStatus | 状态 | 下拉(启用/禁用) | ✅ | ✅ | 控制是否启用企业账号 |
ai_config->enabled | AI助手开关 | 开关 | ❌ | ✅ | 控制是否开启AI助手 |
ai_config->token_limit | Token上限 | 数字 | ✅ | ✅ | 企业最大token使用量 |
ai_config->token_used | 已使用Token | 数字 | ✅ | ❌ | 实时统计 |
ai_config->request_interval_sec | 请求间隔 | 数字(秒) | ✅ | ❌ | 限制频繁调用 |
ai_config->memory.enabled | 启用记忆 | 开关 | ❌ | ✅ | 启用AI上下文功能 |
ai_config->memory.depth | 记忆条数 | 数字 | ✅ | ❌ | 回溯历史条数 |
ai_config->memory.cross_session | 跨会话记忆 | 开关 | ❌ | ✅ | 是否开启跨会话上下文 |
📝 编辑弹窗字段
AI助手启用(开关)
请求间隔(输入框)
token上限(输入框)
起止时间(时间范围选择器)
记忆开关 / 条数 / 跨会话(组合配置)
是否启用提示词联想(开关)
是否启用敏感词模糊匹配(开关)
🧩 示例 2:AI 模型管理界面(绑定 ai_models
)
字段 | 展示名 | 类型 | 可排序 | 可筛选 | 说明 |
---|
model_name | 模型标识 | 文本 | ✅ | ✅ | 如:gpt-4-0125 |
display_name | 显示名称 | 文本 | ✅ | ✅ | 展示给前端 |
api_url | API接口地址 | 文本 | ❌ | ✅ | 用于后端实际调用 |
api_type | 调用类型 | 下拉 | ✅ | ✅ | REST/WebSocket |
default_params | 默认参数 | JSON查看器 | ❌ | ❌ | 编辑按钮跳转 |
timeout_sec | 超时时间 | 数字 | ✅ | ❌ | 单位:秒 |
status | 启用状态 | 开关 | ✅ | ✅ | 禁用即隐藏 |
🧩 示例 3:用户 AI 使用状态页(绑定 ai_user_activation_records
)
字段 | 展示名 | 类型 | 可排序 | 可筛选 | 说明 |
---|
user_id | 用户ID | 数字 | ✅ | ✅ | 系统用户唯一ID |
org_id | 所属企业 | 数字 | ✅ | ✅ | 企业编号 |
is_activated | 是否开通 | 开关 | ✅ | ✅ | 当前是否已开通 |
activated_at | 开通时间 | 时间 | ✅ | ✅ | 首次开通时间 |
deactivated_at | 停用时间 | 时间 | ✅ | ✅ | 如果关闭记录时间 |
status | 当前状态 | 下拉(启用/禁用/封禁) | ✅ | ✅ | 控制行为权限 |
remark | 备注 | 文本 | ❌ | ✅ | 禁用原因说明等 |
🧩 示例 4:AI调用日志界面(绑定 ai_usage_logs
)
字段 | 展示名 | 类型 | 可排序 | 可筛选 | 说明 |
---|
user_id | 用户ID | 数字 | ✅ | ✅ | 发起调用的用户 |
session_id | 会话ID | 文本 | ✅ | ✅ | 追踪到会话 |
ai_provider_id | 模型来源 | 下拉 | ✅ | ✅ | openai, deepseek 等 |
request_tokens / response_tokens | Token数量 | 数字 | ✅ | ✅ | 提问/回答分开 |
cost_usd | 成本 | 数字(货币) | ✅ | ✅ | 单次请求花费 |
created_at | 时间 | 时间 | ✅ | ✅ | 请求时间 |
✅ 后管字段草图建议:展示 + 编辑 + 控制
是否需要我根据这些结构进一步生成一个 Notion 或 Excel 格式的字段管理表?或者直接做出 Vue 或 React 后管字段结构代码模板(字段配置 JSON)?你可以继续指定。
问:
上面的不错,请你解释下ai_user_activation_records这个表,因为在我的sql里没有,它控制什么行为?在什么时候用?
答:
非常好,这个问题切中核心逻辑。我们现在就来深入解读 ai_user_activation_records
这个表的设计意义、控制行为与使用场景。
✅ 一句话定义:
ai_user_activation_records
是用于记录并控制 某个用户在某个企业中是否启用 AI助手功能 的专属状态表。
📌 为什么需要这个表?
因为你的系统是**“企业级开关 + 用户级授权”双重机制**,企业虽然开启了 AI 助手功能(企业层配置在 tj_headoffice_capacity
的 ai_config
中),但不是所有用户默认都开通,需要用户个人主动开启(首次使用)+ 签署免责声明。
这时就需要一个表来记录:
谁 | 在哪个企业 | 是否开启了 AI助手 | 什么时候开启 | 当前是否仍启用 | 是否被封禁过 |
---|
✅ 控制的行为(行为授权核心)
系统通过它控制用户是否可以使用 AI助手:
场景 | 控制逻辑 |
---|
用户点击 AI助手菜单时 | 系统查询该表是否存在记录、是否已激活 |
用户第一次使用 AI助手 | 系统自动创建一条记录,并绑定签署信息(如已开通) |
管理员禁用某个用户 AI权限 | 设置该表中 is_activated = false / status = -1 |
日志追踪 / 审计统计 | 按企业统计当前开通用户人数、启用率等 |
✅ 表设计简述(字段解析)
CREATE TABLE `ai_user_activation_records` (
`id` BIGINT NOT NULL AUTO_INCREMENT,
`user_id` BIGINT NOT NULL, -- 用户ID
`org_id` BIGINT NOT NULL, -- 企业ID(支持多企业用户)
`is_activated` BOOLEAN DEFAULT TRUE, -- 当前是否已开通
`activated_at` DATETIME, -- 开通时间
`deactivated_at` DATETIME, -- 若禁用,记录禁用时间
`status` TINYINT DEFAULT 1, -- 当前状态(1启用、0停用、-1封禁)
`remark` VARCHAR(255), -- 管理备注,如封禁原因
`created_by` BIGINT, -- 操作人(如管理员ID)
`created_at` DATETIME,
`updated_at` DATETIME, PRIMARY KEY (`id`), UNIQUE KEY (`user_id`, `org_id`)
);
🧠 为什么不直接在 user
表或 tj_user_enterprise_relation
表里处理?
因为这会带来逻辑污染:
表 | 不适合原因 |
---|
user | 一个用户可能在多个企业中使用AI,不适合存放企业AI启用状态 |
tj_user_enterprise_relation | 属于权限关系表,逻辑职责不一致,耦合过重 |
✅ 专表 ai_user_activation_records | 职责单一、查询简便、易于审计管理 |
✅ 使用场景图示
┌────────────────────────────┐
│ 用户进入 AI助手界面 │
└────────────┬───────────────┘ ▼
查询 ai_user_activation_records
┌───────────────┐
是 │ is_activated=1│────────▶ 展示AI助手界面
└───────────────┘
否
▼
跳转签署免责声明页
▼
签署成功后写入:
ai_user_activation_records + ai_disclaimer_records
✅ 总结
项目 | 内容 |
---|
表名 | ai_user_activation_records |
粒度 | 用户 × 企业 |
控制内容 | 是否已开通、启用状态、激活时间、禁用记录 |
主要用途 | 控制是否允许使用 AI助手功能、配合日志审计、授权管理 |
特点 | 多租户支持、轻逻辑隔离、便于管理统计 |
如你接受这个设计,我可以将该表字段加入你的结构 SQL 脚本中。你也可以告诉我:是否希望在后管中加入“AI用户授权管理”模块?我可以继续为你生成后管页面字段结构。
问:
-- "sensitive_fuzzy_match": true,
-- "suggested_keywords_enabled": true,
-- "max_active_users": 100
把这几个设计也加入到后管企业 AI 配置管理页里,重新设计列表视图字段(表格)给我。
答:
好的,我们将在原有“企业 AI 配置管理页”的基础上,新增以下三个控制字段,并统一重新设计列表字段视图,确保前端后管页面字段展示与逻辑控制清晰、完整。
✅ 三个新增字段解析
字段 | 含义 | 类型 | 控制行为 |
---|
sensitive_fuzzy_match | 敏感词是否启用“模糊匹配” | 开关 | 开启后模糊匹配关键词,如“敏*词”也拦 |
suggested_keywords_enabled | 是否启用提示词联想浮窗 | 开关 | 控制是否前端输入时出现建议问题 |
max_active_users | AI助手最多允许的用户数 | 数字输入 | 超出后将禁止新用户开通助手 |
📋 ✅ 重设计后【企业 AI 配置管理页】——列表视图字段结构(表格)
字段路径 | 展示名 | 类型 | 可排序 | 可筛选 | 说明 |
---|
HeadOfficeUid | 企业ID | 数字 | ✅ | ✅ | 唯一企业编号 |
AccountStatus | 企业状态 | 下拉 | ✅ | ✅ | 启用/禁用企业账号 |
ai_config->enabled | AI助手开关 | 开关 | ❌ | ✅ | 企业是否开通AI助手功能 |
ai_config->token_limit | Token上限 | 数字 | ✅ | ✅ | 有效期内最大token用量 |
ai_config->token_used | 已用Token | 数字 | ✅ | ❌ | 实时更新 |
ai_config->request_interval_sec | 请求间隔 | 数字(秒) | ✅ | ❌ | 限制频率调用 |
ai_config->memory.enabled | 启用记忆 | 开关 | ❌ | ✅ | 是否启用上下文 |
ai_config->memory.depth | 记忆条数 | 数字 | ✅ | ❌ | 回溯条数 |
ai_config->memory.cross_session | 跨会话记忆 | 开关 | ❌ | ✅ | 是否允许跨会话追问 |
ai_config->sensitive_fuzzy_match | 模糊匹配敏感词 | 开关 | ❌ | ✅ | 开启后更严格匹配敏感内容 |
ai_config->suggested_keywords_enabled | 启用提示词浮窗 | 开关 | ❌ | ✅ | 控制输入框提示词联想是否展示 |
ai_config->max_active_users | 最大启用人数 | 数字 | ✅ | ✅ | 限制企业中最多启用AI助手的用户数 |
✨ 前端交互建议
字段 | 组件建议 | 说明 |
---|
所有 JSON 子字段 | 建议用“扁平展示”结构 + 配置项编辑弹窗 | 可通过字段映射提取 JSON 路径直接展示(如:ai_config->enabled ) |
token_used | 禁止用户直接编辑,只展示 | 实时统计,不开放编辑 |
max_active_users | 编辑后,系统实时判断是否已有超限开通用户 | 后端判断并提示 |
sensitive_fuzzy_match | 启用时前端弹提示:该功能可能导致误拦截 | UX友好提示 |
是否需要我接下来为这个管理页生成:
你可继续指定方向,我来配合输出。
发表评论: