ZAI 调用与数据模型说明
Z AI 数据模型
Z AI 默认为用户提供如下所示四张数据表来记录与 AI 进行对话时产生的数据,各位开发者可以直接使用这四张数据表来进行 AI 应用数据展示以及交互判断
会话表
用于记录某一次会话内容的数据表,在 Z AI 配置界面调试以及调用下方【开始会话】时,就会自动向会话表中添加一条新的数据
字段说明
账户 ID: 整数类型,是账户表与会话表建立1:N(一对多)关系产生的关系字段,用于记录这条会话是哪一位用户发起的 入参: 在开始会话时,会将这个 AI 配置的相关内容保存在该字段中,即该 AI 的提示词、知识库配置、工具配置、输出配置 状态: 记录这次会话的状态,默认以下六种状态,可以根据对话状态来设定业务逻辑
- CREATED:创建的初始状态
- IN_PROGRESS:发给 AI 之后在等AI回复的状态
- STREAMING:AI 正在进行流式输出回复的状态
- COMPLETED:AI 回复完成
- FAILED:各种各样的失败状态
CANCELED:停止回复之后的状态## 消息表 用于记录某个会话下的消息记录,但不是具体的消息内容
字段说明
账户 ID: 整数类型,是账户表与消息表建立1:N(一对多)关系产生的关系字段,用于记录这条消息是属于哪一个用户 角色: 文本类型,默认以下三种角色,记录这条消息的发送者是谁
system:触发【开始会话】时,会将提示词(包括用户输入的入参)、知识库返回的结果、工具调用的结果发送给 AI ,该条消息会以 system 作为角色来记录
- assistant:AI 返回的结果会以 assistant 作为角色来记录
user:点击继续会话时,用户从输入框中输入,发送给 AI 的内容,该条消息会以 user 作为角色来记录会话 ID:整数类型,是会话表与消息表建立1:N(一对多)关系产生的关系字段,用于记录这条消息是属于哪一个会话
⚠️ 非常重要,请一定要理解!!!
单轮对话时,消息表中只会出现 system 与 assistant 两种角色
多轮对话时,【开始会话】触发的首条消息是 system 发送的,assistant 根据 system 的内容返回结果;【继续会话】时,消息则是以 user 身份发送的,assistant 则继续根据之前的所有消息进行处理后返回结果
消息内容表
用于记录具体的消息内容,由于在给 AI 发送内容时,可能同时包含图片和文本,Z AI 会把图片和文本分开保存在消息内容表中,并自动将其与某条消息进行关联
字段说明
类型: 文本类型,默认以下三种类型,记录这条数据的类型
TEXT:文本类型
- IMAGE:图片类型
- JSON:JSON 类型
文本:文本类型, 如果这条消息是一段文本,则保存在该字段中 图片:图片类型, 如果这条消息是一张图片,则保存在该字段中 JSON:JSON 类型, 如果这条消息是一段 JSON,则保存在该字段中 消息 ID:整数类型, 是消息表与消息内容表建立1:N(一对多)关系产生的关系字段,用于记录这条具体的消息内容是属于哪一条消息
工具使用记录表
用于记录 AI 运行时工具的使用情况,由于 AI 在处理某条消息的任务时,可能会调用多个工具,所以 Z AI 会把某个工具的使用记录保存在该表中,并自动将其与某条消息进行关联
字段说明
名称:文本类型, 记录工具的名称 工具调用ID:文本类型, 记录工具调用ID 类型:文本类型,默认以下四种类型, 记录调用的工具类型
- ACTION_FLOW:行为流
- TPA:第三方 API
- ZAI:其它 AI
- OBTAIN_MORE_INFORMATION:获取更多信息
请求:JSON 类型, 调用工具时发起的请求 响应:JSON 类型, 调用工具时返回的结果 消息ID:整数类型, 是工具使用记录表与消息表建立1:N(一对多)关系产生的关系字段,用于记录这条工具使用记录是属于哪一条消息。