dify在1.0开始,开源部分已经拆分两个数据库,一个是原来的dify,另外一个是dify_plugin,本次先基于dify库进行分析,大概有83张表:
版本:1.17.0
来源:基于开源项目https://github.com/langgenius/dify.git

整理方法:cusor工具

accounts 表结构详细分析
表基本信息
表名: accounts
主键: id (UUID)
索引: account_email_idx (email字段)
字段详细说明

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 用户唯一标识符
name VARCHAR(255) 非空 - 用户姓名/昵称
email VARCHAR(255) 非空 - 用户邮箱地址
password VARCHAR(255) 可空 NULL 加密后的密码
password_salt VARCHAR(255) 可空 NULL 密码加密盐值
avatar VARCHAR(255) 可空 NULL 用户头像URL
interface_language VARCHAR(255) 可空 NULL 界面语言设置
interface_theme VARCHAR(255) 可空 NULL 界面主题设置
timezone VARCHAR(255) 可空 NULL 用户时区设置
status VARCHAR(16) 非空 ‘active’ 账户状态
last_login_at DATETIME 可空 NULL 最后登录时间
last_login_ip VARCHAR(255) 可空 NULL 最后登录IP地址
last_active_at DATETIME 非空 CURRENT_TIMESTAMP 最后活跃时间
initialized_at DATETIME 可空 NULL 账户初始化时间
created_at DATETIME 非空 CURRENT_TIMESTAMP 账户创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 账户更新时间

tenants 表结构详细分析
表基本信息
表名: tenants
主键: id (UUID)
描述: 租户/工作空间表,是多租户SaaS系统的核心表
字段详细说明

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 租户唯一标识符
name VARCHAR(255) 非空 - 租户/工作空间名称
encrypt_public_key TEXT 可空 NULL 加密公钥,用于数据加密
plan VARCHAR(255) 非空 ‘basic’ 订阅计划类型
status VARCHAR(255) 非空 ‘normal’ 租户状态
custom_config TEXT 可空 NULL 自定义配置(JSON格式)
created_at DATETIME 非空 CURRENT_TIMESTAMP 租户创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 租户更新时间

account_integrates 表结构详细分析

  • 表基本信息
  • 表名: account_integrates
  • 主键: id (UUID)
  • 描述: 第三方账户集成表,用于存储用户的第三方登录信息
  • 字段详细说明
字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 集成记录唯一标识符
account_id UUID 非空 - 关联的账户ID

第三方提供商信息

字段名 类型 约束 默认值 说明
provider VARCHAR(16) 非空 - 第三方提供商名称
open_id VARCHAR(255) 非空 - 第三方平台返回的用户唯一标识
encrypted_token VARCHAR(255) 非空 - 加密存储的第三方访问令牌
created_at DATETIME 非空 CURRENT_TIMESTAMP 集成记录创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 集成记录更新时间

– 每个账户在每个提供商下只能有一个集成记录
UNIQUE(account_id, provider)

– 每个提供商下的open_id必须唯一
UNIQUE(provider, open_id)

  1. 与账户表的一对多关系
    account_integrates.account_id → accounts.id
    一个账户可以有多个第三方集成
    每个第三方集成只属于一个账户

invitation_codes 表 - 邀请码表

表基本信息
– 表名: invitation_codes
– 主键: id (INTEGER)
– 描述: 系统邀请码管理表,用于控制用户注册

字段名 类型 约束 默认值 说明
id INTEGER 主键 - 邀请码记录ID
batch VARCHAR(255) 非空 - 邀请码批次名称
code VARCHAR(32) 非空 - 邀请码字符串
status VARCHAR(16) 非空 ‘unused’ 邀请码状态
used_at DATETIME 可空 NULL 使用时间
used_by_tenant_id UUID 可空 NULL 使用该邀请码的租户ID
used_by_account_id UUID 可空 NULL 使用该邀请码的账户ID
deprecated_at DATETIME 可空 NULL 邀请码废弃时间
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间

索引
主键索引: invitation_code_pkey
批次索引: invitation_codes_batch_idx
状态索引: invitation_codes_code_idx (code, status)

account_plugin_permissions 表 - 账户插件权限表
表基本信息
表名: account_plugin_permissions (注意:类名是TenantPluginPermission,但表名是account_plugin_permissions)
主键: id (UUID)
描述: 租户插件权限管理表

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 权限记录ID
tenant_id UUID 非空 - 租户ID
install_permission VARCHAR(16) 非空 ‘everyone’ 安装权限
debug_permission VARCHAR(16) 非空 ‘noone’ 调试权限

权限枚举
安装权限 (InstallPermission)
EVERYONE = “everyone” # 所有人可安装
ADMINS = “admins” # 仅管理员可安装
NOBODY = “noone” # 禁止安装

调试权限 (DebugPermission)
EVERYONE = “everyone” # 所有人可调试
ADMINS = “admins” # 仅管理员可调试
NOBODY = “noone” # 禁止调试
约束
主键约束: account_plugin_permission_pkey
唯一约束: unique_tenant_plugin (tenant_id)
3. tenant_plugin_auto_upgrade_strategies 表 - 租户插件自动升级策略表
表基本信息
表名: tenant_plugin_auto_upgrade_strategies
主键: id (UUID)
描述: 租户插件自动升级策略配置表

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 策略记录ID
tenant_id UUID 非空 - 租户ID
strategy_setting VARCHAR(16) 非空 ‘fix_only’ 升级策略设置
upgrade_time_of_day INTEGER 非空 0 每日升级时间(秒)
upgrade_mode VARCHAR(16) 非空 ‘exclude’ 升级模式
exclude_plugins ARRAY[VARCHAR(255)] 非空 - 排除的插件列表
include_plugins ARRAY[VARCHAR(255)] 非空 - 包含的插件列表
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间

策略枚举
升级策略设置 (StrategySetting)
DISABLED = “disabled” # 禁用自动升级
FIX_ONLY = “fix_only” # 仅修复版本升级
LATEST = “latest” # 升级到最新版本
升级模式 (UpgradeMode)
ALL = “all” # 升级所有插件
PARTIAL = “partial” # 部分升级
EXCLUDE = “exclude” # 排除模式
约束
主键约束: tenant_plugin_auto_upgrade_strategy_pkey
唯一约束: unique_tenant_plugin_auto_upgrade_strategy (tenant_id)

tenant_account_joins 表结构详细分析
表基本信息
表名: tenant_account_joins
主键: id (UUID)
描述: 租户-用户关联表(中间表),实现多对多关系
作用: 管理用户在不同租户中的成员关系和权限

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 关联记录唯一标识符
tenant_id UUID 非空 - 租户ID
account_id UUID 非空 - 用户账户ID
current BOOLEAN 非空 false 是否为当前活跃租户
role VARCHAR(16) 非空 ‘normal’ 用户在租户中的角色
invited_by UUID 可空 NULL 邀请人账户ID
created_at DATETIME 非空 CURRENT_TIMESTAMP 关联记录创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 关联记录更新时间

class TenantAccountRole(enum.StrEnum):
OWNER = “owner” # 所有者 - 最高权限
ADMIN = “admin” # 管理员 - 管理权限
EDITOR = “editor” # 编辑者 - 编辑权限
NORMAL = “normal” # 普通用户 - 基础权限
DATASET_OPERATOR = “dataset_operator” # 数据集操作员 - 数据集权限

  1. 多对多关系
    tenants (租户) ←→ tenant_account_joins (中间表) ←→ accounts (用户)
  2. 外键关联
    tenant_account_joins.tenant_id → tenants.id
    tenant_account_joins.account_id → accounts.id
    tenant_account_joins.invited_by → accounts.id

apps 表结构详细分析

表基本信息
表名: apps
主键: id (UUID)
索引: app_tenant_id_idx (tenant_id字段)
描述: 应用主表,存储所有应用的基本信息和配置

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 应用唯一标识符
tenant_id UUID 非空 - 所属租户ID
name VARCHAR(255) 非空 - 应用名称
description TEXT 可空 ‘’ 应用描述
mode VARCHAR(255) 非空 - 应用模式,可选值: completion, workflow, chat, advanced-chat, agent-chat
icon_type VARCHAR(255) 可空 NULL 图标类型 (image/emoji)
icon VARCHAR(255) 可空 NULL 图标URL或emoji
icon_background VARCHAR(255) 可空 NULL 图标背景色
use_icon_as_answer_icon BOOLEAN 非空 false 是否使用图标作为回答图标
app_model_config_id UUID 可空 NULL 应用模型配置ID
workflow_id UUID 可空 NULL 工作流ID
status VARCHAR(255) 非空 ‘normal’ 应用状态
enable_site BOOLEAN 非空 - 是否启用站点
enable_api BOOLEAN 非空 - 是否启用API
is_demo BOOLEAN 非空 false 是否为演示应用
is_public BOOLEAN 非空 false 是否公开
is_universal BOOLEAN 非空 false 是否通用应用
api_rpm INTEGER 非空 0 API每分钟请求限制
api_rph INTEGER 非空 0 API每小时请求限制
max_active_requests INTEGER 可空 NULL 最大活跃请求数
tracing TEXT 可空 NULL 追踪配置
created_by UUID 可空 NULL 创建者ID
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_by UUID 可空 NULL 更新者ID
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间

与其他表的关联关系

  1. 一对多关系
    apps → conversations: 一个应用可以有多个对话
    关联字段: conversations.app_id = apps.id
    apps → messages: 一个应用可以有多个消息
    关联字段: messages.app_id = apps.id
    apps → sites: 一个应用可以有多个站点配置
    关联字段: sites.app_id = apps.id
    apps → api_tokens: 一个应用可以有多个API令牌
    关联字段: api_tokens.app_id = apps.id
  2. 多对一关系
    tenants → apps: 一个租户可以有多个应用
    关联字段: apps.tenant_id = tenants.id
    app_model_configs → apps: 一个应用配置对应一个应用
    关联字段: apps.app_model_config_id = app_model_configs.id
    workflows → apps: 一个工作流对应一个应用
    关联字段: apps.workflow_id = workflows.id
  3. 多对多关系
    apps ↔ tags: 通过 tag_bindings 中间表
    关联字段: tag_bindings.target_id = apps.id AND tag_bindings.tag_id = tags.id
  4. 特殊关联
    installed_apps: 应用安装关系表
    关联字段: installed_apps.app_id = apps.id AND installed_apps.tenant_id = apps.tenant_id
    recommended_apps: 推荐应用表
    关联字段: recommended_apps.app_id = apps.id

应用模式说明

应用支持以下5种模式:
completion: 文本补全模式
workflow: 工作流模式
chat: 聊天模式
advanced-chat: 高级聊天模式
agent-chat: 智能体聊天模式

重要属性方法

is_agent: 判断是否为智能体应用
mode_compatible_with_agent: 获取兼容智能体的模式
site: 获取应用的站点配置
app_model_config: 获取应用的模型配置
workflow: 获取应用的工作流配置
tenant: 获取应用所属的租户

九个表结构详细分析

  1. app_model_configs - 应用模型配置表
    表基本信息
    表名: app_model_configs
    主键: id (UUID)
    索引: app_app_id_idx (app_id字段)
    描述: 存储应用的AI模型配置和提示词设置
字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 配置唯一标识符
app_id UUID 非空 - 关联的应用ID
provider VARCHAR(255) 可空 NULL AI模型提供商
model_id VARCHAR(255) 可空 NULL 模型ID
configs JSON 可空 NULL 模型配置参数
opening_statement TEXT 可空 NULL 开场白
suggested_questions TEXT 可空 NULL 建议问题(JSON)
suggested_questions_after_answer TEXT 可空 NULL 回答后建议问题(JSON)
speech_to_text TEXT 可空 NULL 语音转文字配置(JSON)
text_to_speech TEXT 可空 NULL 文字转语音配置(JSON)
more_like_this TEXT 可空 NULL 相似内容配置(JSON)
model TEXT 可空 NULL 模型配置(JSON)
user_input_form TEXT 可空 NULL 用户输入表单(JSON)
dataset_query_variable VARCHAR(255) 可空 NULL 数据集查询变量
pre_prompt TEXT 可空 NULL 前置提示词
agent_mode TEXT 可空 NULL 智能体模式配置(JSON)
sensitive_word_avoidance TEXT 可空 NULL 敏感词规避配置(JSON)
retriever_resource TEXT 可空 NULL 检索资源配置(JSON)
prompt_type VARCHAR(255) 非空 ‘simple’ 提示词类型
chat_prompt_config TEXT 可空 NULL 聊天提示词配置(JSON)
completion_prompt_config TEXT 可空 NULL 补全提示词配置(JSON)
dataset_configs TEXT 可空 NULL 数据集配置(JSON)
external_data_tools TEXT 可空 NULL 外部数据工具(JSON)
file_upload TEXT 可空 NULL 文件上传配置(JSON)
  1. recommended_apps - 推荐应用表
    表基本信息
    表名: recommended_apps
    主键: id (UUID)
    索引: recommended_app_app_id_idx, recommended_app_is_listed_idx
    描述: 管理推荐应用展示
字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 推荐记录ID
app_id UUID 非空 - 应用ID
description JSON 非空 - 多语言描述
copyright VARCHAR(255) 非空 - 版权信息
privacy_policy VARCHAR(255) 非空 - 隐私政策
custom_disclaimer TEXT 可空 ‘’ 自定义免责声明
category VARCHAR(255) 非空 - 应用分类
position INTEGER 非空 0 排序位置
is_listed BOOLEAN 非空 true 是否上架
install_count INTEGER 非空 0 安装次数
language VARCHAR(255) 非空 ‘en-US’ 语言
  1. installed_apps - 已安装应用表(中间表)
    表基本信息
    表名: installed_apps
    主键: id (UUID)
    唯一约束: unique_tenant_app (tenant_id, app_id)
    描述: 租户与应用的多对多关系表
字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 安装记录ID
tenant_id UUID 非空 - 租户ID
app_id UUID 非空 - 应用ID
app_owner_tenant_id UUID 非空 - 应用所有者租户ID
position INTEGER 非空 0 排序位置
is_pinned BOOLEAN 非空 false 是否置顶
last_used_at DATETIME 可空 NULL 最后使用时间
  1. sites - 应用站点配置表
    表基本信息
    表名: sites
    主键: id (UUID)
    索引: site_app_id_idx, site_code_idx
    描述: 应用的公开站点配置
字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 站点ID
app_id UUID 非空 - 应用ID
title VARCHAR(255) 非空 - 站点标题
icon_type VARCHAR(255) 可空 NULL 图标类型
icon VARCHAR(255) 可空 NULL 图标
icon_background VARCHAR(255) 可空 NULL 图标背景
description TEXT 可空 NULL 描述
default_language VARCHAR(255) 非空 - 默认语言
chat_color_theme VARCHAR(255) 可空 NULL 聊天主题色
chat_color_theme_inverted BOOLEAN 非空 false 主题色反转
copyright VARCHAR(255) 可空 NULL 版权信息
privacy_policy VARCHAR(255) 可空 NULL 隐私政策
show_workflow_steps BOOLEAN 非空 true 显示工作流步骤
use_icon_as_answer_icon BOOLEAN 非空 false 使用图标作为回答图标
custom_disclaimer TEXT 可空 ‘’ 自定义免责声明
customize_domain VARCHAR(255) 可空 NULL 自定义域名
customize_token_strategy VARCHAR(255) 非空 - 自定义令牌策略
prompt_public BOOLEAN 非空 false 提示词公开
status VARCHAR(255) 非空 ‘normal’ 状态
code VARCHAR(255) 可空 NULL 站点代码
  1. api_tokens - API令牌表
    表基本信息
    表名: api_tokens
    主键: id (UUID)
    索引: api_token_app_id_type_idx, api_token_token_idx, api_token_tenant_idx
    描述: 管理API访问令牌
字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 令牌ID
app_id UUID 可空 NULL 应用ID
tenant_id UUID 可空 NULL 租户ID
type VARCHAR(16) 非空 - 令牌类型
token VARCHAR(255) 非空 - 令牌字符串
last_used_at DATETIME 可空 NULL 最后使用时间
  1. app_annotation_settings - 应用标注设置表
    表基本信息
    表名: app_annotation_settings
    主键: id (UUID)
    索引: app_annotation_settings_app_idx
    描述: 应用的知识库标注配置
字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 设置ID
app_id UUID 非空 - 应用ID
score_threshold FLOAT 非空 0 相似度阈值
collection_binding_id UUID 非空 - 知识库绑定ID
created_user_id UUID 非空 - 创建用户ID
updated_user_id UUID 非空 - 更新用户ID
  1. app_annotation_hit_histories - 标注命中历史表
    表基本信息
    表名: app_annotation_hit_histories
    主键: id (UUID)
    索引: 多个索引用于查询优化
    描述: 记录标注匹配的历史记录
字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 历史记录ID
app_id UUID 非空 - 应用ID
annotation_id UUID 非空 - 标注ID
source TEXT 非空 - 来源
question TEXT 非空 - 用户问题
account_id UUID 非空 - 账户ID
score FLOAT 非空 0 相似度分数
message_id UUID 非空 - 消息ID
annotation_question TEXT 非空 - 标注问题
annotation_content TEXT 非空 - 标注内容
  1. app_mcp_servers - MCP服务器配置表
    表基本信息
    表名: app_mcp_servers
    主键: id (UUID)
    唯一约束: unique_app_mcp_server_tenant_app_id, unique_app_mcp_server_server_code
    描述: 应用的多通道协议(MCP)服务器配置
字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 服务器ID
tenant_id UUID 非空 - 租户ID
app_id UUID 非空 - 应用ID
name VARCHAR(255) 非空 - 服务器名称
description VARCHAR(255) 非空 - 描述
server_code VARCHAR(255) 非空 - 服务器代码
status VARCHAR(255) 非空 ‘normal’ 状态
parameters TEXT 非空 - 参数配置(JSON)
  1. trace_app_config - 应用追踪配置表
    表基本信息
    表名: trace_app_config
    主键: id (UUID)
    索引: trace_app_config_app_id_idx
    描述: 应用的追踪和监控配置
字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 配置ID
app_id UUID 非空 - 应用ID
tracing_provider VARCHAR(255) 可空 NULL 追踪提供商
tracing_config JSON 可空 NULL 追踪配置
is_active BOOLEAN 非空 true 是否激活

表关联关系总结
一对多关系:
apps → app_model_configs (一个应用一个配置)
apps → sites (一个应用一个站点)
apps → api_tokens (一个应用多个令牌)
apps → app_annotation_settings (一个应用一个标注设置)
apps → app_mcp_servers (一个应用一个MCP服务器)
apps → trace_app_config (一个应用一个追踪配置)
多对多关系:
apps ↔ tenants 通过 installed_apps (租户可以安装多个应用)
一对多关系:
apps → recommended_apps (一个应用一个推荐记录)
apps → app_annotation_hit_histories (一个应用多个命中历史)

conversations 表结构详细分析
表基本信息
表名: conversations
主键: id (UUID)
索引: conversation_app_from_user_idx (app_id, from_source, from_end_user_id)
描述: 对话表,存储用户与AI应用的对话会话信息

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 对话唯一标识符
app_id UUID 非空 - 关联的应用ID
name VARCHAR(255) 非空 - 对话名称
app_model_config_id UUID 可空 NULL 应用模型配置ID
model_provider VARCHAR(255) 可空 NULL AI模型提供商
model_id VARCHAR(255) 可空 NULL 模型ID
override_model_configs TEXT 可空 NULL 覆盖的模型配置(JSON)
mode VARCHAR(255) 非空 - 对话模式
summary TEXT 可空 NULL 对话摘要
_inputs JSON 非空 - 输入参数(JSON格式)
introduction TEXT 可空 NULL 对话介绍
system_instruction TEXT 可空 NULL 系统指令
system_instruction_tokens INTEGER 非空 0 系统指令token数
status VARCHAR(255) 非空 - 对话状态
dialogue_count INTEGER 非空 0 对话轮次计数
invoke_from VARCHAR(255) 可空 NULL 调用来源
from_source VARCHAR(255) 非空 - 用户来源
from_end_user_id UUID 可空 NULL 终端用户ID
from_account_id UUID 可空 NULL 账户用户ID
read_at DATETIME 可空 NULL 阅读时间
read_account_id UUID 可空 NULL 阅读者账户ID
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
is_deleted BOOLEAN 非空 false 是否已删除

与其他表的关联关系

  1. 一对多关系
    conversations → messages: 一个对话包含多个消息
    关联字段: messages.conversation_id = conversations.id
    关系: messages = db.relationship(“Message”, backref=“conversation”, lazy=“select”, passive_deletes=“all”)
    conversations → message_annotations: 一个对话可以有多个消息标注
    关联字段: message_annotations.conversation_id = conversations.id
    关系: message_annotations = db.relationship(“MessageAnnotation”, backref=“conversation”, lazy=“select”, passive_deletes=“all”)
  2. 多对一关系
    apps → conversations: 一个应用可以有多个对话
    关联字段: conversations.app_id = apps.id
    app_model_configs → conversations: 一个模型配置对应多个对话
    关联字段: conversations.app_model_config_id = app_model_configs.id
    accounts → conversations: 一个账户用户可以创建多个对话
    关联字段: conversations.from_account_id = accounts.id
    end_users → conversations: 一个终端用户可以创建多个对话
    关联字段: conversations.from_end_user_id = end_users.id
  3. 间接关联
    conversations → message_feedbacks: 通过messages表关联
    关联字段: message_feedbacks.conversation_id = conversations.id

重要属性方法

  1. 输入处理
    inputs: 处理文件映射,将JSON格式的输入转换为File对象
    inputs.setter: 将File对象转换为JSON格式存储
  2. 模型配置
    model_config: 获取对话的模型配置,支持覆盖配置
  3. 统计信息
    summary_or_query: 获取对话摘要或第一条消息的查询
    message_count: 统计对话中的消息数量
    dialogue_count: 对话轮次计数
  4. 反馈统计
    user_feedback_stats: 用户反馈统计(点赞/点踩)
    admin_feedback_stats: 管理员反馈统计(点赞/点踩)
  5. 状态统计
    status_count: 工作流执行状态统计(成功/失败/部分成功)
  6. 关联查询
    first_message: 获取对话的第一条消息
    app: 获取关联的应用
    from_end_user_session_id: 获取终端用户会话ID
    from_account_name: 获取账户用户名
  7. 调试模式
    in_debug_mode: 判断是否处于调试模式(有覆盖配置)

对话来源类型

from_source 字段可能的值:
“user”: 普通用户
“admin”: 管理员
“api”: API调用
“web”: Web界面

对话状态

status 字段可能的值:
“normal”: 正常状态
“archived”: 已归档
“deleted”: 已删除

对话模式

mode 字段对应应用模式:
“completion”: 文本补全
“chat”: 聊天对话
“advanced-chat”: 高级聊天
“agent-chat”: 智能体聊天
“workflow”: 工作流

messages 表结构详细分析
表基本信息
表名: messages
主键: id (UUID)
索引: 多个索引用于查询优化
描述: 消息表,存储用户与AI的每次交互消息

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 消息唯一标识符
app_id UUID 非空 - 关联的应用ID
conversation_id UUID 非空 - 关联的对话ID
parent_message_id UUID 可空 NULL 父消息ID(用于消息链)
model_provider VARCHAR(255) 可空 NULL AI模型提供商
model_id VARCHAR(255) 可空 NULL 模型ID
override_model_configs TEXT 可空 NULL 覆盖的模型配置(JSON)
_inputs JSON 非空 - 输入参数(JSON格式)
query TEXT 非空 - 用户查询内容
message JSON 非空 - 消息内容(JSON格式)
answer TEXT 非空 - AI回答内容
message_tokens INTEGER 非空 0 消息token数
message_unit_price NUMERIC(10,4) 非空 - 消息单价
message_price_unit NUMERIC(10,7) 非空 0.001 消息价格单位
answer_tokens INTEGER 非空 0 回答token数
answer_unit_price NUMERIC(10,4) 非空 - 回答单价
answer_price_unit NUMERIC(10,7) 非空 0.001 回答价格单位
total_price NUMERIC(10,7) 可空 NULL 总价格
currency VARCHAR(255) 非空 - 货币类型
provider_response_latency FLOAT 非空 0 提供商响应延迟
status VARCHAR(255) 非空 ‘normal’ 消息状态
error TEXT 可空 NULL 错误信息
message_metadata TEXT 可空 NULL 消息元数据(JSON)
invoke_from VARCHAR(255) 可空 NULL 调用来源
from_source VARCHAR(255) 非空 - 用户来源
from_end_user_id UUID 可空 NULL 终端用户ID
from_account_id UUID 可空 NULL 账户用户ID
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
agent_based BOOLEAN 非空 false 是否为智能体模式
workflow_run_id UUID 可空 NULL 工作流运行ID

与其他表的关联关系

  1. 多对一关系
    conversations → messages: 一个对话包含多个消息
    关联字段: messages.conversation_id = conversations.id
    外键约束: db.ForeignKey(“conversations.id”)
    apps → messages: 一个应用可以有多个消息
    关联字段: messages.app_id = apps.id
    accounts → messages: 一个账户用户可以发送多个消息
    关联字段: messages.from_account_id = accounts.id
    end_users → messages: 一个终端用户可以发送多个消息
    关联字段: messages.from_end_user_id = end_users.id
  2. 一对多关系
    messages → message_feedbacks: 一个消息可以有多个反馈
    关联字段: message_feedbacks.message_id = messages.id
    messages → message_annotations: 一个消息可以有多个标注
    关联字段: message_annotations.message_id = messages.id
    messages → message_files: 一个消息可以包含多个文件
    关联字段: message_files.message_id = messages.id
    messages → message_agent_thoughts: 一个消息可以有多个智能体思考过程
    关联字段: message_agent_thoughts.message_id = messages.id
    messages → dataset_retriever_resources: 一个消息可以有多个检索资源
    关联字段: dataset_retriever_resources.message_id = messages.id
  3. 自关联关系
    messages → messages: 消息链关系
    关联字段: messages.parent_message_id = messages.id
  4. 间接关联
    workflows → messages: 通过workflow_run_id关联
    关联字段: messages.workflow_run_id = workflow_runs.id

重要属性方法

  1. 输入处理
    inputs: 处理文件映射,将JSON格式的输入转换为File对象
    inputs.setter: 将File对象转换为JSON格式存储
  2. 文件URL重新签名
    re_sign_file_url_answer: 重新签名文件URL,确保安全性
  3. 反馈查询
    user_feedback: 获取用户反馈
    admin_feedback: 获取管理员反馈
    feedbacks: 获取所有反馈
  4. 标注查询
    annotation: 获取消息标注
    annotation_hit_history: 获取标注命中历史
  5. 模型配置
    app_model_config: 获取应用模型配置
    in_debug_mode: 判断是否处于调试模式
  6. 元数据处理
    message_metadata_dict: 将JSON元数据转换为字典
  7. 智能体功能
    agent_thoughts: 获取智能体思考过程
    retriever_resources: 获取检索资源
  8. 文件管理
    message_files: 获取消息关联的文件列表
  9. 工作流关联
    workflow_run: 获取关联的工作流运行

消息来源类型

from_source 字段可能的值:
“user”: 普通用户
“admin”: 管理员
“api”: API调用
“web”: Web界面

消息状态

status 字段可能的值:
“normal”: 正常状态
“error”: 错误状态
“pending”: 等待状态
“processing”: 处理中

消息类型

根据 agent_based 字段:
true: 智能体模式消息
false: 普通对话消息

message_feedbacks - 消息反馈表

表基本信息

表名: message_feedbacks
主键: id (UUID)
描述: 存储用户对消息的反馈评价

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 反馈记录唯一标识符
app_id UUID 非空 - 关联的应用ID
conversation_id UUID 非空 - 关联的对话ID
message_id UUID 非空 - 关联的消息ID
rating VARCHAR(255) 非空 - 评分等级
content TEXT 可空 NULL 反馈内容
from_source VARCHAR(255) 非空 - 反馈来源
from_end_user_id UUID 可空 NULL 终端用户ID
from_account_id UUID 可空 NULL 账户ID
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
索引

主键索引: message_feedback_pkey
应用索引: message_feedback_app_idx
消息索引: message_feedback_message_idx
对话索引: message_feedback_conversation_idx

message_files - 消息文件表

表基本信息

表名: message_files
主键: id (UUID)
描述: 存储消息中附带的文件信息

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 文件记录唯一标识符
message_id UUID 非空 - 关联的消息ID
type VARCHAR(255) 非空 - 文件类型
transfer_method VARCHAR(255) 非空 - 传输方式
url TEXT 可空 NULL 文件URL
belongs_to VARCHAR(255) 可空 NULL 归属方(user/assistant)
upload_file_id UUID 可空 NULL 上传文件ID
created_by_role VARCHAR(255) 非空 - 创建者角色
created_by UUID 非空 - 创建者ID
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
索引

主键索引: message_file_pkey
消息索引: message_file_message_idx
创建者索引: message_file_created_by_idx

message_annotations - 消息标注表

表基本信息

表名: message_annotations
主键: id (UUID)
描述: 存储消息的标注信息,用于知识库检索

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 标注记录唯一标识符
app_id UUID 非空 - 关联的应用ID
conversation_id UUID 可空 NULL 关联的对话ID
message_id UUID 可空 NULL 关联的消息ID
question TEXT 可空 NULL 问题内容
content TEXT 非空 - 标注内容
hit_count INTEGER 非空 0 命中次数
account_id UUID 非空 - 创建者账户ID
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
索引

主键索引: message_annotation_pkey
应用索引: message_annotation_app_idx
对话索引: message_annotation_conversation_idx
消息索引: message_annotation_message_idx

message_chains - 消息链表

表基本信息

表名: message_chains
主键: id (UUID)
描述: 存储消息的处理链信息

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 消息链唯一标识符
message_id UUID 非空 - 关联的消息ID
type VARCHAR(255) 非空 - 链类型
input TEXT 可空 NULL 输入内容
output TEXT 可空 NULL 输出内容
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
索引

主键索引: message_chain_pkey
消息索引: message_chain_message_id_idx

message_agent_thoughts - 智能体思考表

表基本信息

表名: message_agent_thoughts
主键: id (UUID)
描述: 存储智能体的思考过程和工具使用记录

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 思考记录唯一标识符
message_id UUID 非空 - 关联的消息ID
message_chain_id UUID 可空 NULL 关联的消息链ID
position INTEGER 非空 - 思考位置
thought TEXT 可空 NULL 思考内容
tool TEXT 可空 NULL 使用的工具
tool_labels_str TEXT 非空 ‘{}’ 工具标签(JSON)
tool_meta_str TEXT 非空 ‘{}’ 工具元数据(JSON)
tool_input TEXT 可空 NULL 工具输入
observation TEXT 可空 NULL 观察结果
tool_process_data TEXT 可空 NULL 工具处理数据
message TEXT 可空 NULL 消息内容
message_token INTEGER 可空 NULL 消息令牌数
message_unit_price NUMERIC 可空 NULL 消息单价
message_price_unit NUMERIC(10,7) 非空 0.001 消息价格单位
message_files TEXT 可空 NULL 消息文件
answer TEXT 可空 NULL 回答内容
answer_token INTEGER 可空 NULL 回答令牌数
answer_unit_price NUMERIC 可空 NULL 回答单价
answer_price_unit NUMERIC(10,7) 非空 0.001 回答价格单位
tokens INTEGER 可空 NULL 总令牌数
total_price NUMERIC 可空 NULL 总价格
currency VARCHAR 可空 NULL 货币
latency FLOAT 可空 NULL 延迟时间
created_by_role VARCHAR 非空 - 创建者角色
created_by UUID 非空 - 创建者ID
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
索引

主键索引: message_agent_thought_pkey
消息索引: message_agent_thought_message_id_idx
消息链索引: message_agent_thought_message_chain_id_idx

dataset_retriever_resources - 数据集检索资源表

表基本信息

表名: dataset_retriever_resources
主键: id (UUID)
描述: 存储数据集检索的资源信息

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 资源记录唯一标识符
message_id UUID 非空 - 关联的消息ID
position INTEGER 非空 - 位置序号
dataset_id UUID 非空 - 数据集ID
dataset_name TEXT 非空 - 数据集名称
document_id UUID 可空 NULL 文档ID
document_name TEXT 非空 - 文档名称
data_source_type TEXT 可空 NULL 数据源类型
segment_id UUID 可空 NULL 段落ID
score FLOAT 可空 NULL 相似度分数
content TEXT 非空 - 检索内容
hit_count INTEGER 可空 NULL 命中次数
word_count INTEGER 可空 NULL 字数统计
segment_position INTEGER 可空 NULL 段落位置
index_node_hash TEXT 可空 NULL 索引节点哈希
retriever_from TEXT 非空 - 检索来源
created_by UUID 非空 - 创建者ID
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
索引

主键索引: dataset_retriever_resource_pkey
消息索引: dataset_retriever_resource_message_id_idx

pinned_conversations - 置顶对话表

表基本信息

表名: pinned_conversations
主键: id (UUID)
描述: 存储用户置顶的对话信息

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 置顶记录唯一标识符
app_id UUID 非空 - 关联的应用ID
conversation_id UUID 非空 - 关联的对话ID
created_by_role VARCHAR(255) 非空 ‘end_user’ 创建者角色
created_by UUID 非空 - 创建者ID
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
索引

主键索引: pinned_conversation_pkey
对话索引: pinned_conversation_conversation_idx

saved_messages - 保存消息表

表基本信息

表名: saved_messages
主键: id (UUID)
描述: 存储用户保存的消息信息

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 保存记录唯一标识符
app_id UUID 非空 - 关联的应用ID
message_id UUID 非空 - 关联的消息ID
created_by_role VARCHAR(255) 非空 ‘end_user’ 创建者角色
created_by UUID 非空 - 创建者ID
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
索引

主键索引: saved_message_pkey
消息索引: saved_message_message_idx
表关联关系总结

主要关联关系

消息相关表:
messages ←→ message_feedbacks (一对多)
messages ←→ message_files (一对多)
messages ←→ message_annotations (一对多)
messages ←→ message_chains (一对多)
messages ←→ message_agent_thoughts (一对多)
messages ←→ dataset_retriever_resources (一对多)
对话相关表:
conversations ←→ pinned_conversations (一对多)
conversations ←→ message_annotations (一对多)
应用相关表:
apps ←→ saved_messages (一对多)
apps ←→ pinned_conversations (一对多)

datasets-数据集

表基本信息
表名: datasets
主键: id (UUID)
索引: dataset_tenant_idx (tenant_id字段), retrieval_model_idx (retrieval_model字段)
描述: 数据集主表,存储知识库的基本信息和配置

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 数据集唯一标识符
tenant_id UUID 非空 - 所属租户ID
name VARCHAR(255) 非空 - 数据集名称
description TEXT 可空 NULL 数据集描述
provider VARCHAR(255) 非空 ‘vendor’ 数据提供商类型
permission VARCHAR(255) 非空 ‘only_me’ 权限设置
可选值: only_me, all_team_members, partial_members
data_source_type VARCHAR(255) 可空 NULL 数据源类型
indexing_technique VARCHAR(255) 可空 NULL 索引技术
可选值: high_quality, economy, NULL
index_struct TEXT 可空 NULL 索引结构(JSON格式)
embedding_model VARCHAR(255) 可空 NULL 嵌入模型名称
embedding_model_provider VARCHAR(255) 可空 NULL 嵌入模型提供商
collection_binding_id UUID 可空 NULL 集合绑定ID
retrieval_model JSONB 可空 NULL 检索模型配置
built_in_field_enabled BOOLEAN 非空 false 是否启用内置字段
created_by UUID 非空 - 创建者ID
updated_by UUID 可空 NULL 更新者ID
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间

索引结构

索引名 字段 类型 说明
dataset_pkey id 主键 数据集主键索引
dataset_tenant_idx tenant_id 普通索引 租户索引
retrieval_model_idx retrieval_model GIN索引 检索模型JSON索引
关联关系
一对多关系

数据集 → 文档:
datasets.id ←→ documents.dataset_id
一个数据集包含多个文档
数据集 → 处理规则:
datasets.id ←→ dataset_process_rules.dataset_id
一个数据集有多个处理规则版本
数据集 → 查询记录:
datasets.id ←→ dataset_queries.dataset_id
一个数据集有多个查询记录
数据集 → 权限:
datasets.id ←→ dataset_permissions.dataset_id
一个数据集有多个用户权限

多对多关系

数据集 ↔ 应用:
通过 app_dataset_joins 中间表关联
datasets.id ←→ app_dataset_joins.dataset_id
apps.id ←→ app_dataset_joins.app_id
数据集 ↔ 标签:
通过 tag_bindings 中间表关联
datasets.id ←→ tag_bindings.target_id
tags.id ←→ tag_bindings.tag_id

一对多关系(子表)

数据集 → 文档段落:
datasets.id ←→ document_segments.dataset_id
一个数据集包含多个文档段落
数据集 → 子块:
datasets.id ←→ child_chunks.dataset_id
一个数据集包含多个子块
数据集 → 外部知识绑定:
datasets.id ←→ external_knowledge_bindings.dataset_id
一个数据集有多个外部知识API绑定
特殊属性方法

统计属性

app_count: 关联的应用数量
document_count: 文档总数
available_document_count: 可用文档数量
available_segment_count: 可用段落数量
word_count: 总字数统计

配置属性

index_struct_dict: 索引结构字典
external_retrieval_model: 外部检索模型配置
retrieval_model_dict: 检索模型配置字典
tags: 关联的标签列表

用户属性

created_by_account: 创建者账户信息
latest_process_rule: 最新的处理规则
业务功能
核心功能
知识库管理: 存储和管理知识库的基本信息
权限控制: 通过 permission 字段控制访问权限
模型配置: 配置嵌入模型和检索模型
索引管理: 管理文档的索引结构和处理规则

数据处理流程

文档上传 → documents 表
段落分割 → document_segments 表
子块生成 → child_chunks 表
索引建立 → 向量数据库
检索查询 → dataset_queries 表

统计和分析

文档数量统计
段落数量统计
字数统计
应用关联统计
查询记录追踪
这个表是整个知识库系统的核心,管理着所有与数据集相关的配置、权限、统计和关联关系。

documents文档表

表基本信息
表名: documents
主键: id (UUID)
索引: 多个索引用于查询优化
描述: 文档表,存储知识库中的文档信息和处理状态

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 文档唯一标识符
tenant_id UUID 非空 - 所属租户ID
dataset_id UUID 非空 - 所属数据集ID
position INTEGER 非空 - 文档在数据集中的位置
name VARCHAR(255) 非空 - 文档名称
batch VARCHAR(255) 非空 - 批次标识
data_source_type VARCHAR(255) 非空 - 数据源类型
可选值: upload_file, notion_import, website_crawl
data_source_info TEXT 可空 NULL 数据源详细信息(JSON)
created_from VARCHAR(255) 非空 - 创建来源
dataset_process_rule_id UUID 可空 NULL 数据集处理规则ID
created_api_request_id UUID 可空 NULL 创建API请求ID
created_by UUID 非空 - 创建者ID
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
processing_started_at DATETIME 可空 NULL 开始处理时间
file_id TEXT 可空 NULL 文件ID
word_count INTEGER 可空 NULL 字数统计
parsing_completed_at DATETIME 可空 NULL 解析完成时间
cleaning_completed_at DATETIME 可空 NULL 清理完成时间
splitting_completed_at DATETIME 可空 NULL 分割完成时间
tokens INTEGER 可空 NULL 令牌数
indexing_latency FLOAT 可空 NULL 索引延迟
completed_at DATETIME 可空 NULL 完成时间
is_paused BOOLEAN 可空 false 是否暂停
paused_by UUID 可空 NULL 暂停操作者ID
paused_at DATETIME 可空 NULL 暂停时间
error TEXT 可空 NULL 错误信息
stopped_at DATETIME 可空 NULL 停止时间

| indexing_status | VARCHAR(255) | 非空 | ‘waiting’ | 索引状态,可选值: waiting, parsing, cleaning, splitting, indexing, completed, error |
| enabled | BOOLEAN | 非空 | true | 是否启用 |
| disabled_at | DATETIME | 可空 | NULL | 禁用时间 |
| disabled_by | UUID | 可空 | NULL | 禁用操作者ID |
| archived | BOOLEAN | 非空 | false | 是否归档 |
| archived_reason | VARCHAR(255) | 可空 | NULL | 归档原因 |
| archived_by | UUID | 可空 | NULL | 归档操作者ID |
| archived_at | DATETIME | 可空 | NULL | 归档时间 |
| doc_type | VARCHAR(40) | 可空 | NULL | 文档类型 |
| doc_metadata | JSONB | 可空 | NULL | 文档元数据 |
| doc_form | VARCHAR(255) | 非空 | ‘text_model’ | 文档形式 |
| doc_language | VARCHAR(255) | 可空 | NULL | 文档语言 |

索引结构
索引名 字段 类型 说明
document_pkey id 主键 文档主键索引
document_dataset_id_idx dataset_id 普通索引 数据集索引
document_is_paused_idx is_paused 普通索引 暂停状态索引
document_tenant_idx tenant_id 普通索引 租户索引
document_metadata_idx doc_metadata GIN索引 元数据JSON索引
关联关系
一对多关系

数据集 → 文档:
datasets.id ←→ documents.dataset_id
一个数据集包含多个文档
文档 → 段落:
documents.id ←→ document_segments.document_id
一个文档包含多个段落
文档 → 子块:
documents.id ←→ child_chunks.document_id
一个文档包含多个子块
处理规则 → 文档:
dataset_process_rules.id ←→ documents.dataset_process_rule_id
一个处理规则应用于多个文档
多对多关系
文档 ↔ 元数据:
通过 dataset_metadata_bindings 中间表关联
documents.id ←→ dataset_metadata_bindings.document_id
dataset_metadatas.id ←→ dataset_metadata_bindings.metadata_id

一对多关系(子表)

租户 → 文档:
tenants.id ←→ documents.tenant_id
一个租户包含多个文档
用户 → 文档:
accounts.id ←→ documents.created_by
一个用户创建多个文档
特殊属性方法

统计属性

segment_count: 段落数量
hit_count: 命中次数统计
average_segment_length: 平均段落长度

用户属性

uploader: 上传者姓名
upload_date: 上传日期
last_update_date: 最后更新日期

状态属性

display_status: 显示状态
queuing: 排队中
paused: 已暂停
indexing: 索引中
error: 错误
available: 可用
disabled: 已禁用
archived: 已归档

内容属性

data_source_info_dict: 数据源信息字典
data_source_detail_dict: 数据源详细信息
doc_metadata_details: 文档元数据详情
process_rule_dict: 处理规则字典

业务功能
文档处理流程

上传阶段: 文档上传到系统
解析阶段: 解析文档内容
清理阶段: 清理和预处理
分割阶段: 分割成段落
索引阶段: 建立向量索引
完成阶段: 文档可用于检索

状态管理

等待处理: waiting
处理中: parsing, cleaning, splitting, indexing
已完成: completed
错误状态: error
暂停状态: is_paused = true

检索支持

支持多种数据源类型
元数据索引支持
段落和子块管理
命中次数统计
这个表是整个知识库系统的核心文档管理表,负责管理文档的完整生命周期,从上传到索引完成的全过程。

document_segments - 文档片段表

表基本信息
表名: document_segments
主键: id (UUID)
描述: 存储文档分割后的段落信息

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 段落唯一标识符
tenant_id UUID 非空 - 所属租户ID
dataset_id UUID 非空 - 所属数据集ID
document_id UUID 非空 - 所属文档ID
position INTEGER 非空 - 段落位置
content TEXT 非空 - 段落内容
answer TEXT 可空 NULL 段落答案
word_count INTEGER 非空 - 字数统计
tokens INTEGER 非空 - 令牌数
keywords JSON 可空 NULL 关键词
index_node_id VARCHAR(255) 可空 NULL 索引节点ID
index_node_hash VARCHAR(255) 可空 NULL 索引节点哈希
hit_count INTEGER 非空 0 命中次数
enabled BOOLEAN 非空 true 是否启用
disabled_at DATETIME 可空 NULL 禁用时间
disabled_by UUID 可空 NULL 禁用操作者ID
status VARCHAR(255) 非空 ‘waiting’ 处理状态
created_by UUID 非空 - 创建者ID
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_by UUID 可空 NULL 更新者ID
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
indexing_at DATETIME 可空 NULL 索引时间
completed_at DATETIME 可空 NULL 完成时间
error TEXT 可空 NULL 错误信息
stopped_at DATETIME 可空 NULL 停止时间
child_chunks - 子块表

表基本信息
表名: child_chunks
主键: id (UUID)
描述: 存储段落进一步分割的子块信息

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 子块唯一标识符
tenant_id UUID 非空 - 所属租户ID
dataset_id UUID 非空 - 所属数据集ID
document_id UUID 非空 - 所属文档ID
segment_id UUID 非空 - 所属段落ID
position INTEGER 非空 - 子块位置
content TEXT 非空 - 子块内容
word_count INTEGER 非空 - 字数统计
index_node_id VARCHAR(255) 可空 NULL 索引节点ID
index_node_hash VARCHAR(255) 可空 NULL 索引节点哈希
type VARCHAR(255) 非空 ‘automatic’ 子块类型
created_by UUID 非空 - 创建者ID
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_by UUID 可空 NULL 更新者ID
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
indexing_at DATETIME 可空 NULL 索引时间
completed_at DATETIME 可空 NULL 完成时间
error TEXT 可空 NULL 错误信息
embeddings - 向量嵌入表

表基本信息
表名: embeddings
主键: id (UUID)
描述: 存储文本的向量嵌入表示

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 嵌入记录唯一标识符
model_name VARCHAR(255) 非空 ‘text-embedding-ada-002’ 模型名称
hash VARCHAR(64) 非空 - 内容哈希值
embedding LARGEBINARY 非空 - 向量嵌入数据
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
provider_name VARCHAR(255) 非空 ‘’ 提供商名称
dataset_collection_bindings - 数据集集合绑定表

表基本信息
表名: dataset_collection_bindings
主键: id (UUID)
描述: 绑定数据集与向量数据库集合

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 绑定记录唯一标识符
provider_name VARCHAR(255) 非空 - 提供商名称
model_name VARCHAR(255) 非空 - 模型名称
type VARCHAR(40) 非空 ‘dataset’ 绑定类型
collection_name VARCHAR(64) 非空 - 集合名称
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
dataset_process_rules - 数据集处理规则表

表基本信息
表名: dataset_process_rules
主键: id (UUID)
描述: 存储数据集的处理规则配置

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 规则记录唯一标识符
dataset_id UUID 非空 - 所属数据集ID
mode VARCHAR(255) 非空 ‘automatic’ 处理模式
可选值: automatic, custom, hierarchical
rules TEXT 可空 NULL 处理规则(JSON)
created_by UUID 非空 - 创建者ID
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
dataset_queries - 数据集查询表

表基本信息
表名: dataset_queries
主键: id (UUID)
描述: 记录对数据集的查询历史

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 查询记录唯一标识符
dataset_id UUID 非空 - 所属数据集ID
content TEXT 非空 - 查询内容
source VARCHAR(255) 非空 - 查询来源
source_app_id UUID 可空 NULL 来源应用ID
created_by_role VARCHAR 非空 - 创建者角色
created_by UUID 非空 - 创建者ID
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
dataset_keyword_tables - 数据集关键词表

表基本信息
表名: dataset_keyword_tables
主键: id (UUID)
描述: 存储数据集的关键词索引表

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 关键词表记录唯一标识符
dataset_id UUID 非空,唯一 - 所属数据集ID
keyword_table TEXT 非空 - 关键词表(JSON)
data_source_type VARCHAR(255) 非空 ‘database’ 数据源类型
dataset_permissions - 数据集权限表

表基本信息
表名: dataset_permissions
主键: id (UUID)
描述: 管理用户对数据集的访问权限

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 权限记录唯一标识符
dataset_id UUID 非空 - 数据集ID
account_id UUID 非空 - 用户账户ID
tenant_id UUID 非空 - 租户ID
has_permission BOOLEAN 非空 true 是否有权限
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
dataset_auto_disable_logs - 数据集自动禁用日志表

表基本信息
表名: dataset_auto_disable_logs
主键: id (UUID)
描述: 记录数据集自动禁用的日志

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 日志记录唯一标识符
tenant_id UUID 非空 - 租户ID
dataset_id UUID 非空 - 数据集ID
document_id UUID 非空 - 文档ID
notified BOOLEAN 非空 false 是否已通知
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
dataset_metadatas - 数据集元数据表

表基本信息
表名: dataset_metadatas
主键: id (UUID)
描述: 存储数据集的元数据字段定义

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 元数据记录唯一标识符
tenant_id UUID 非空 - 租户ID
dataset_id UUID 非空 - 数据集ID
type VARCHAR(255) 非空 - 元数据类型
name VARCHAR(255) 非空 - 元数据名称
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
created_by UUID 非空 - 创建者ID
updated_by UUID 可空 NULL 更新者ID
dataset_metadata_bindings - 数据集元数据绑定表

表基本信息
表名: dataset_metadata_bindings
主键: id (UUID)
描述: 绑定文档与元数据字段

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 绑定记录唯一标识符
tenant_id UUID 非空 - 租户ID
dataset_id UUID 非空 - 数据集ID
metadata_id UUID 非空 - 元数据ID
document_id UUID 非空 - 文档ID
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
created_by UUID 非空 - 创建者ID
external_knowledge_apis - 外部知识API表

表基本信息
表名: external_knowledge_apis
主键: id (UUID)
描述: 存储外部知识API的配置信息

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() API记录唯一标识符
name VARCHAR(255) 非空 - API名称
description VARCHAR(255) 非空 - API描述
tenant_id UUID 非空 - 租户ID
settings TEXT 可空 NULL API设置(JSON)
created_by UUID 非空 - 创建者ID
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_by UUID 可空 NULL 更新者ID
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
external_knowledge_bindings - 外部知识绑定表

表基本信息
表名: external_knowledge_bindings
主键: id (UUID)
描述: 绑定数据集与外部知识API

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 绑定记录唯一标识符
tenant_id UUID 非空 - 租户ID
external_knowledge_api_id UUID 非空 - 外部知识API ID
dataset_id UUID 非空 - 数据集ID
external_knowledge_id TEXT 非空 - 外部知识ID
created_by UUID 非空 - 创建者ID
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_by UUID 可空 NULL 更新者ID
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
tidb_auth_bindings - TiDB认证绑定表

表基本信息
表名: tidb_auth_bindings
主键: id (UUID)
描述: 存储TiDB数据库的认证绑定信息

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 绑定记录唯一标识符
tenant_id UUID 可空 NULL 租户ID
cluster_id VARCHAR(255) 非空 - 集群ID
cluster_name VARCHAR(255) 非空 - 集群名称
active BOOLEAN 非空 false 是否激活
status VARCHAR(255) 非空 ‘CREATING’ 状态
account VARCHAR(255) 非空 - 账户名
password VARCHAR(255) 非空 - 密码
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
whitelists - 白名单表

表基本信息
表名: whitelists
主键: id (UUID)
描述: 存储系统白名单信息

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 白名单记录唯一标识符
tenant_id UUID 可空 NULL 租户ID
category VARCHAR(255) 非空 - 白名单类别
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
rate_limit_logs - 限流日志表

表基本信息
表名: rate_limit_logs
主键: id (UUID)
描述: 记录系统限流日志

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 日志记录唯一标识符
tenant_id UUID 非空 - 租户ID
subscription_plan VARCHAR(255) 非空 - 订阅计划
operation VARCHAR(255) 非空 - 操作类型
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
表关联关系总结
主要关联关系

数据集相关:
datasets ←→ dataset_process_rules (一对多)
datasets ←→ dataset_queries (一对多)
datasets ←→ dataset_keyword_tables (一对一)
datasets ←→ dataset_permissions (一对多)
datasets ←→ dataset_metadatas (一对多)
文档相关:
documents ←→ document_segments (一对多)
document_segments ←→ child_chunks (一对多)
元数据相关:
dataset_metadatas ←→ dataset_metadata_bindings (一对多)
documents ←→ dataset_metadata_bindings (一对多)
外部知识相关:
external_knowledge_apis ←→ external_knowledge_bindings (一对多)
datasets ←→ external_knowledge_bindings (一对多)
功能分类
文档处理: document_segments, child_chunks
向量存储: embeddings, dataset_collection_bindings
处理规则: dataset_process_rules
查询记录: dataset_queries
关键词索引: dataset_keyword_tables
权限管理: dataset_permissions
元数据管理: dataset_metadatas, dataset_metadata_bindings
外部集成: external_knowledge_apis, external_knowledge_bindings
系统管理: tidb_auth_bindings, whitelists, rate_limit_logs
这些表共同构成了完整的知识库管理系统,支持文档处理、向量检索、权限控制、外部集成等核心功能。

workflows-工作流表

表基本信息
表名: workflows
主键: id (UUID)
索引: workflow_version_idx (tenant_id, app_id, version)
描述: 工作流表,存储工作流应用和聊天应用工作流模式的配置信息

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 工作流唯一标识符
tenant_id UUID 非空 - 所属租户ID
app_id UUID 非空 - 所属应用ID
type VARCHAR(255) 非空 - 工作流类型,可选值: workflow(工作流应用), chat(聊天应用工作流模式)
version VARCHAR(255) 非空 - 版本号,draft 表示草稿版本(每个应用只有一个)
marked_name VARCHAR(255) 非空 ‘’ 标记名称
marked_comment VARCHAR(255) 非空 ‘’ 标记注释
graph TEXT 可空 NULL 工作流画布配置(JSON),包含节点、边和其他配置的完整画布配置
_features TEXT 可空 NULL 功能特性配置(JSON)
created_by UUID 非空 - 创建者ID
updated_by UUID 可空 NULL 更新者ID
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
_environment_variables TEXT 非空 ‘{}’ 环境变量(JSON)
_conversation_variables TEXT 非空 ‘{}’ 对话变量(JSON)
关联关系
一对多关系

应用 → 工作流:
apps.id ←→ workflows.app_id
一个应用可以有多个工作流版本
工作流 → 工作流运行:
workflows.id ←→ workflow_runs.workflow_id
一个工作流可以有多个运行记录
工作流 → 节点执行:
workflows.id ←→ workflow_node_executions.workflow_id
一个工作流可以有多个节点执行记录
工作流 → 应用日志:
workflows.id ←→ workflow_app_logs.workflow_id
一个工作流可以有多个应用日志记录
工作流 → 草稿变量:
workflows.app_id ←→ workflow_draft_variables.app_id
一个工作流可以有多个草稿变量

一对多关系(子表)

租户 → 工作流:
tenants.id ←→ workflows.tenant_id
一个租户可以有多个工作流
用户 → 工作流:
accounts.id ←→ workflows.created_by
一个用户可以创建多个工作流
特殊属性方法

配置属性

graph_dict: 工作流图配置字典
features_dict: 功能特性配置字典
environment_variables: 环境变量列表
conversation_variables: 对话变量列表

节点管理

get_node_config_by_id(): 根据节点ID获取节点配置
get_node_type_from_node_config(): 从节点配置获取节点类型
get_enclosing_node_type_and_id(): 获取包含节点的类型和ID

表单生成

user_input_form(): 生成用户输入表单

安全属性

unique_hash: 唯一哈希值
tool_published: 工具是否已发布

业务功能
工作流管理

版本控制: 支持草稿版本和发布版本
画布配置: 存储完整的节点和边配置
变量管理: 管理环境变量和对话变量
功能特性: 支持文件上传等功能配置

应用类型支持

工作流应用: type = ‘workflow’
聊天应用工作流模式: type = ‘chat’

执行追踪

支持工作流运行记录
支持节点执行记录
支持应用日志记录
支持草稿变量记录

安全特性

环境变量加密存储
支持密钥变量类型
变量访问控制

工作流类型枚举

class WorkflowType(Enum):
WORKFLOW = “workflow” # 工作流应用
CHAT = “chat” # 聊天应用工作流模式

版本管理

草稿版本: version = ‘draft’ (每个应用只有一个)
发布版本: version = ‘版本号’ (如时间戳)
这个表是整个工作流系统的核心,管理着所有工作流的配置、版本、变量和执行记录。它支持复杂的工作流设计,包括节点配置、变量管理、执行追踪等功能。

workflow_runs - 工作流运行表

表基本信息
表名: workflow_runs
主键: id (UUID)
描述: 记录工作流的执行运行信息

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 运行记录唯一标识符
tenant_id UUID 非空 - 所属租户ID
app_id UUID 非空 - 所属应用ID
workflow_id UUID 非空 - 关联的工作流ID
type VARCHAR(255) 非空 - 工作流类型
triggered_from VARCHAR(255) 非空 - 触发来源,可选值: debugging(画布调试), app-run(应用执行)
version VARCHAR(255) 非空 - 工作流版本
graph TEXT 可空 NULL 工作流画布配置(JSON)
inputs TEXT 可空 NULL 输入参数(JSON)
status VARCHAR(255) 非空 - 执行状态,可选值: running, succeeded, failed, stopped, partial-succeeded
outputs TEXT 可空 ‘{}’ 输出内容(JSON)
error TEXT 可空 NULL 错误原因
elapsed_time FLOAT 非空 0 耗时(秒)
total_tokens BIGINT 非空 0 总令牌数
total_steps INTEGER 可空 0 总步数
created_by_role VARCHAR(255) 非空 - 创建者角色,可选值: account(控制台账户), end_user(终端用户)
created_by UUID 非空 - 运行者ID
created_at DATETIME 非空 CURRENT_TIMESTAMP 运行时间
finished_at DATETIME 可空 NULL 结束时间
exceptions_count INTEGER 可空 0 异常次数
workflow_node_executions - 工作流节点执行表

表基本信息
表名: workflow_node_executions
主键: id (UUID)
描述: 记录工作流中每个节点的执行详情

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 节点执行记录唯一标识符
tenant_id UUID 非空 - 所属租户ID
app_id UUID 非空 - 所属应用ID
workflow_id UUID 非空 - 关联的工作流ID
triggered_from VARCHAR(255) 非空 - 触发来源,可选值: single-step(单步调试), workflow-run(工作流执行)
workflow_run_id UUID 可空 NULL 关联的工作流运行ID
index INTEGER 非空 - 执行序号
predecessor_node_id VARCHAR(255) 可空 NULL 前置节点ID
node_execution_id VARCHAR(255) 可空 NULL 节点执行ID
node_id VARCHAR(255) 非空 - 节点ID
node_type VARCHAR(255) 非空 - 节点类型(如 start)
title VARCHAR(255) 非空 - 节点标题
inputs TEXT 可空 NULL 输入变量(JSON)
process_data TEXT 可空 NULL 节点处理数据(JSON)
outputs TEXT 可空 NULL 输出变量(JSON)
status VARCHAR(255) 非空 - 执行状态,可选值: running, succeeded, failed
error TEXT 可空 NULL 错误原因
elapsed_time FLOAT 非空 0 耗时(秒)
execution_metadata TEXT 可空 NULL 执行元数据(JSON),包含: total_tokens, total_price, currency
created_at DATETIME 非空 CURRENT_TIMESTAMP 运行时间
created_by_role VARCHAR(255) 非空 - 创建者角色
created_by UUID 非空 - 运行者ID
finished_at DATETIME 可空 NULL 结束时间
workflow_app_logs - 工作流应用日志表

表基本信息
表名: workflow_app_logs
主键: id (UUID)
描述: 记录工作流应用的执行日志(排除调试记录)

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 日志记录唯一标识符
tenant_id UUID 非空 - 所属租户ID
app_id UUID 非空 - 所属应用ID
workflow_id UUID 非空 - 关联的工作流ID
workflow_run_id UUID 可空 NULL 关联的工作流运行ID
created_from VARCHAR(255) 非空 - 创建来源,可选值: service-api(OpenAPI), web-app(Web应用), installed-app(已安装应用)
created_by_role VARCHAR(255) 非空 - 创建者角色,可选值: account(控制台账户), end_user(终端用户)
created_by UUID 非空 - 创建者ID
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
workflow_conversation_variables - 工作流对话变量表

表基本信息
表名: workflow_conversation_variables
主键: id (UUID)
描述: 存储工作流对话中的变量数据

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 变量记录唯一标识符
conversation_id UUID 非空,主键 - 对话ID
app_id UUID 非空 - 所属应用ID
data TEXT 非空 - 变量数据(JSON)
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
workflow_draft_variables - 工作流草稿变量表

表基本信息
表名: workflow_draft_variables
主键: id (UUID)
描述: 记录工作流调试过程中生成的变量和输出

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 草稿变量记录唯一标识符
app_id UUID 非空 - 所属应用ID
node_id VARCHAR(255) 非空 - 节点ID,特殊值: conversation(对话变量), sys(系统变量)
name VARCHAR(255) 非空 - 变量名称
description VARCHAR(255) 非空 ‘’ 变量描述
selector VARCHAR(255) 非空 - 变量选择器
value_type ENUM 非空 - 值类型
value TEXT 非空 - 变量值(JSON)
visible BOOLEAN 非空 true 是否在变量检查面板显示
editable BOOLEAN 非空 false 用户是否可修改
node_execution_id UUID 可空 NULL 创建该变量的节点执行ID
last_edited_at DATETIME 可空 NULL 最后编辑时间
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
关联关系
一对多关系

工作流 → 运行记录:
workflows.id ←→ workflow_runs.workflow_id
一个工作流可以有多个运行记录
工作流运行 → 节点执行:
workflow_runs.id ←→ workflow_node_executions.workflow_run_id
一个工作流运行包含多个节点执行
工作流 → 应用日志:
workflows.id ←→ workflow_app_logs.workflow_id
一个工作流可以有多个应用日志
应用 → 草稿变量:
apps.id ←→ workflow_draft_variables.app_id
一个应用可以有多个草稿变量

一对多关系(子表)

租户 → 运行记录:
tenants.id ←→ workflow_runs.tenant_id
一个租户可以有多个运行记录
用户 → 运行记录:
accounts.id ←→ workflow_runs.created_by
一个用户可以触发多个运行记录

providers表结构详细分析

表基本信息
表名: providers
主键: id (UUID)
索引: provider_tenant_id_provider_idx (tenant_id, provider_name)
描述: 存储API提供商及其配置信息

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 提供商记录唯一标识符
tenant_id UUID 非空 - 所属租户ID
provider_name VARCHAR(255) 非空 - 提供商名称,如: openai, anthropic, google, azure 等
provider_type VARCHAR(40) 非空 ‘custom’ 提供商类型,可选值: custom(自定义), system(系统)
encrypted_config TEXT 可空 NULL 加密的配置信息,包含API密钥、端点URL等敏感信息
is_valid BOOLEAN 非空 false 是否有效
last_used DATETIME 可空 NULL 最后使用时间
quota_type VARCHAR(40) 可空 ‘’ 配额类型
可选值: paid(付费), free(免费), trial(试用)
quota_limit BIGINT 可空 NULL 配额限制
quota_used BIGINT 可空 0 已使用配额
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
索引结构
索引名 字段 类型 说明
provider_pkey id 主键 提供商主键索引
provider_tenant_id_provider_idx tenant_id, provider_name 复合索引 租户提供商查询索引
unique_provider_name_type_quota tenant_id, provider_name, provider_type, quota_type 唯一约束 提供商名称类型配额唯一约束
关联关系
一对多关系

租户 → 提供商:
tenants.id ←→ providers.tenant_id
一个租户可以有多个提供商配置
提供商 → 提供商模型:
providers.provider_name ←→ provider_models.provider_name
一个提供商可以有多个模型配置
提供商 → 默认模型:
providers.provider_name ←→ tenant_default_models.provider_name
一个提供商可以有多个默认模型
提供商 → 模型设置:
providers.provider_name ←→ provider_model_settings.provider_name
一个提供商可以有多个模型设置
提供商 → 负载均衡配置:
providers.provider_name ←→ load_balancing_model_configs.provider_name
一个提供商可以有多个负载均衡配置
提供商 → 订单:
providers.provider_name ←→ provider_orders.provider_name
一个提供商可以有多个订单记录

一对多关系(子表)

用户 → 提供商订单:
accounts.id ←→ provider_orders.account_id
一个用户可以创建多个提供商订单
特殊属性方法

安全属性

token_is_set: 检查是否设置了令牌
is_enabled: 检查提供商是否启用
系统提供商: 只需要 is_valid = true
自定义提供商: 需要 is_valid = true 且 token_is_set = true

枚举定义

ProviderType 枚举
class ProviderType(Enum):
CUSTOM = “custom” # 自定义提供商
SYSTEM = “system” # 系统提供商
ProviderQuotaType 枚举
class ProviderQuotaType(Enum):
PAID = “paid” # 托管付费配额
FREE = “free” # 第三方免费配额
TRIAL = “trial” # 托管试用配额

业务功能

提供商管理
配置管理: 存储API密钥、端点等配置信息
类型区分: 支持系统提供商和自定义提供商
状态管理: 管理提供商的有效性和启用状态
使用追踪: 记录最后使用时间

配额管理

配额类型: 支持付费、免费、试用三种配额类型
配额限制: 设置配额上限
使用统计: 跟踪已使用的配额量

安全特性

配置加密: 敏感配置信息加密存储
访问控制: 基于租户的访问控制
状态验证: 提供商启用状态验证
监控功能
使用统计: 记录最后使用时间
配额监控: 监控配额使用情况
状态追踪: 追踪提供商有效性

相关表结构
  1. provider_models - 提供商模型表
    存储每个提供商的具体模型配置
    包含模型名称、类型、配置等信息
  2. tenant_default_models - 租户默认模型表
    存储租户的默认模型设置
    按提供商和模型类型分组
  3. provider_model_settings - 提供商模型设置表
    管理模型的启用状态和负载均衡设置
  4. load_balancing_model_configs - 负载均衡模型配置表
    配置负载均衡的具体参数
  5. provider_orders - 提供商订单表
    记录提供商相关的订单信息
    包含支付状态、金额等信息
    这个表是整个AI提供商管理系统的核心,负责管理各种AI服务提供商的配置、配额、状态等信息,为应用提供AI模型服务支持。
provider_models - 提供商模型表

表基本信息
表名: provider_models
主键: id (UUID)
索引: provider_model_tenant_id_provider_idx (tenant_id, provider_name)
描述: 存储每个提供商下的具体模型配置

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 模型记录唯一标识符
tenant_id UUID 非空 - 所属租户ID
provider_name VARCHAR(255) 非空 - 提供商名称
model_name VARCHAR(255) 非空 - 模型名称
model_type VARCHAR(40) 非空 - 模型类型,如: llm, embedding, rerank, speech_to_text
encrypted_config TEXT 可空 NULL 加密的模型配置
is_valid BOOLEAN 非空 false 模型是否有效
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
provider_orders - 提供商订单表

表基本信息
表名: provider_orders
主键: id (UUID)
索引: provider_order_tenant_provider_idx (tenant_id, provider_name)
描述: 存储提供商服务的购买订单信息

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 订单唯一标识符
tenant_id UUID 非空 - 所属租户ID
provider_name VARCHAR(255) 非空 - 提供商名称
account_id UUID 非空 - 购买者账户ID
payment_product_id VARCHAR(191) 非空 - 支付产品ID
payment_id VARCHAR(191) 可空 NULL 支付ID
transaction_id VARCHAR(191) 可空 NULL 交易ID
quantity INTEGER 非空 1 购买数量
currency VARCHAR(40) 可空 NULL 货币类型
total_amount INTEGER 可空 NULL 总金额(分)
payment_status VARCHAR(40) 非空 ‘wait_pay’ 支付状态,可选值: wait_pay, paid, failed, refunded
paid_at DATETIME 可空 NULL 支付时间
pay_failed_at DATETIME 可空 NULL 支付失败时间
refunded_at DATETIME 可空 NULL 退款时间
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
provider_model_settings - 提供商模型设置表

表基本信息
表名: provider_model_settings
主键: id (UUID)
索引: provider_model_setting_tenant_provider_model_idx (tenant_id, provider_name, model_type)
描述: 存储模型启用状态和负载均衡配置

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 设置记录唯一标识符
tenant_id UUID 非空 - 所属租户ID
provider_name VARCHAR(255) 非空 - 提供商名称
model_name VARCHAR(255) 非空 - 模型名称
model_type VARCHAR(40) 非空 - 模型类型
enabled BOOLEAN 非空 true 模型是否启用
load_balancing_enabled BOOLEAN 非空 false 是否启用负载均衡
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
load_balancing_model_configs - 负载均衡模型配置表

表基本信息
表名: load_balancing_model_configs
主键: id (UUID)
索引: load_balancing_model_config_tenant_provider_model_idx (tenant_id, provider_name, model_type)
描述: 存储负载均衡模型的详细配置

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 配置记录唯一标识符
tenant_id UUID 非空 - 所属租户ID
provider_name VARCHAR(255) 非空 - 提供商名称
model_name VARCHAR(255) 非空 - 模型名称
model_type VARCHAR(40) 非空 - 模型类型
name VARCHAR(255) 非空 - 配置名称
encrypted_config TEXT 可空 NULL 加密的负载均衡配置
enabled BOOLEAN 非空 true 配置是否启用
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
tenant_default_models - 租户默认模型表

表基本信息
表名: tenant_default_models
主键: id (UUID)
索引: tenant_default_model_tenant_id_provider_type_idx (tenant_id, provider_name, model_type)
描述: 存储租户的默认模型配置

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 默认模型记录唯一标识符
tenant_id UUID 非空 - 所属租户ID
provider_name VARCHAR(255) 非空 - 提供商名称
model_name VARCHAR(255) 非空 - 默认模型名称
model_type VARCHAR(40) 非空 - 模型类型
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
tenant_preferred_model_providers - 租户首选模型提供商表

表基本信息
表名: tenant_preferred_model_providers
主键: id (UUID)
索引: tenant_preferred_model_provider_tenant_provider_idx (tenant_id, provider_name)
描述: 存储租户的首选模型提供商配置

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 首选提供商记录唯一标识符
tenant_id UUID 非空 - 所属租户ID
provider_name VARCHAR(255) 非空 - 提供商名称
preferred_provider_type VARCHAR(40) 非空 - 首选提供商类型,如: custom, system
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
表关联关系
一对多关系:

providers → provider_models (一个提供商有多个模型)
providers → provider_orders (一个提供商有多个订单)
providers → provider_model_settings (一个提供商有多个模型设置)
providers → load_balancing_model_configs (一个提供商有多个负载均衡配置)

多对一关系:

provider_models → providers (多个模型属于一个提供商)
provider_orders → providers (多个订单属于一个提供商)
provider_model_settings → providers (多个设置属于一个提供商)
关联字段:
所有表都通过 tenant_id 关联到租户
通过 provider_name 关联到具体的提供商
通过 model_type 区分不同类型的模型(LLM、Embedding等)
这些表共同构成了完整的AI模型提供商管理系统,支持多租户、多提供商、多模型的复杂配置。

tool_builtin_providers - 内置工具提供商表

表基本信息
表名: tool_builtin_providers
主键: id (UUID)
描述: 存储内置工具的提供商配置信息

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 提供商记录唯一标识符
name VARCHAR(256) 非空 ‘API KEY 1’ 提供商名称
tenant_id UUID 可空 NULL 所属租户ID
user_id UUID 非空 - 创建者用户ID
provider VARCHAR(256) 非空 - 提供商类型
encrypted_credentials TEXT 可空 NULL 加密的凭证信息
is_default BOOLEAN 非空 false 是否为默认提供商
credential_type VARCHAR(32) 非空 ‘api-key’ 凭证类型
可选值: api-key, oauth2
expires_at BIGINT 非空 -1 过期时间戳
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
tool_api_providers - API工具提供商表

表基本信息
表名: tool_api_providers
主键: id (UUID)
描述: 存储API工具的提供商配置信息

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 提供商记录唯一标识符
name VARCHAR(255) 非空 ‘API KEY 1’ 提供商名称
icon VARCHAR(255) 非空 - 提供商图标
schema TEXT 非空 - 原始Schema定义
schema_type_str VARCHAR(40) 非空 - Schema类型
user_id UUID 非空 - 创建者用户ID
tenant_id UUID 非空 - 所属租户ID
description TEXT 非空 - 提供商描述
tools_str TEXT 非空 - 工具列表(JSON格式)
credentials_str TEXT 非空 - 凭证信息(JSON格式)
privacy_policy VARCHAR(255) 可空 NULL 隐私政策URL
custom_disclaimer TEXT 可空 ‘’ 自定义免责声明
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
tool_workflow_providers - 工作流工具提供商表

表基本信息
表名: tool_workflow_providers
主键: id (UUID)
描述: 存储工作流工具的提供商配置信息

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 提供商记录唯一标识符
name VARCHAR(255) 非空 - 提供商名称
label VARCHAR(255) 非空 ‘’ 提供商标签
icon VARCHAR(255) 非空 - 提供商图标
app_id UUID 非空 - 关联的应用ID
version VARCHAR(255) 非空 ‘’ 版本号
user_id UUID 非空 - 创建者用户ID
tenant_id UUID 非空 - 所属租户ID
description TEXT 非空 - 提供商描述
parameter_configuration TEXT 非空 ‘[]’ 参数配置(JSON格式)
privacy_policy VARCHAR(255) 可空 ‘’ 隐私政策URL
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
tool_mcp_providers - MCP工具提供商表

表基本信息
表名: tool_mcp_providers
主键: id (UUID)
描述: 存储MCP(Model Context Protocol)工具的提供商配置信息

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 提供商记录唯一标识符
name VARCHAR(40) 非空 - 提供商名称
server_identifier VARCHAR(64) 非空 - 服务器标识符
server_url TEXT 非空 - 加密的服务器URL
server_url_hash VARCHAR(64) 非空 - 服务器URL哈希值
icon VARCHAR(255) 可空 NULL 提供商图标
tenant_id UUID 非空 - 所属租户ID
user_id UUID 非空 - 创建者用户ID
encrypted_credentials TEXT 可空 NULL 加密的凭证信息
authed BOOLEAN 非空 false 是否已认证
tools TEXT 非空 ‘[]’ 工具列表(JSON格式)
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
tool_label_bindings - 工具标签绑定表

表基本信息
表名: tool_label_bindings
主键: id (UUID)
描述: 存储工具与标签的绑定关系

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 绑定记录唯一标识符
tool_id VARCHAR(64) 非空 - 工具ID
tool_type VARCHAR(40) 非空 - 工具类型
label_name VARCHAR(40) 非空 - 标签名称
tool_model_invokes - 工具模型调用表

表基本信息
表名: tool_model_invokes
主键: id (UUID)
描述: 存储工具调用的日志记录

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 调用记录唯一标识符
user_id UUID 非空 - 调用者用户ID
tenant_id UUID 非空 - 所属租户ID
provider VARCHAR(255) 非空 - 提供商名称
tool_type VARCHAR(40) 非空 - 工具类型
tool_name VARCHAR(128) 非空 - 工具名称
model_parameters TEXT 非空 - 模型参数(JSON格式)
prompt_messages TEXT 非空 - 提示消息(JSON格式)
model_response TEXT 非空 - 模型响应(JSON格式)
prompt_tokens INTEGER 非空 0 提示令牌数
answer_tokens INTEGER 非空 0 回答令牌数
answer_unit_price NUMERIC(10,4) 非空 - 回答单价
answer_price_unit NUMERIC(10,7) 非空 0.001 价格单位
provider_response_latency FLOAT 非空 0 提供商响应延迟
total_price NUMERIC(10,7) 可空 NULL 总价格
currency VARCHAR(255) 非空 - 货币类型
created_at DATETIME 非空 CURRENT_TIMESTAMP 创建时间
updated_at DATETIME 非空 CURRENT_TIMESTAMP 更新时间
tool_files - 工具文件表

表基本信息
表名: tool_files
主键: id (UUID)
描述: 存储工作流中生成的文件元数据

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 文件记录唯一标识符
user_id UUID 可空 NULL 创建者用户ID
tenant_id UUID 可空 NULL 所属租户ID
conversation_id UUID 可空 NULL 关联的对话ID
file_key VARCHAR(255) 非空 - 文件键值
mimetype VARCHAR(255) 非空 - MIME类型
original_url VARCHAR(2048) 可空 NULL 原始URL
name VARCHAR(255) 可空 ‘’ 文件名称
size INTEGER 可空 -1 文件大小
tool_oauth_system_clients - 工具OAuth系统客户端表

表基本信息
表名: tool_oauth_system_clients
主键: id (UUID)
描述: 存储系统级别的OAuth客户端配置

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 客户端记录唯一标识符
plugin_id VARCHAR(512) 非空 - 插件ID
provider VARCHAR(255) 非空 - 提供商名称
encrypted_oauth_params TEXT 非空 - 加密的OAuth参数
tool_oauth_tenant_clients - 工具OAuth租户客户端表

表基本信息
表名: tool_oauth_tenant_clients
主键: id (UUID)
描述: 存储租户级别的OAuth客户端配置

字段名 类型 约束 默认值 说明
id UUID 主键 uuid_generate_v4() 客户端记录唯一标识符
tenant_id UUID 非空 - 所属租户ID
plugin_id VARCHAR(512) 非空 - 插件ID
provider VARCHAR(255) 非空 - 提供商名称
enabled BOOLEAN 非空 true 是否启用
encrypted_oauth_params TEXT 非空 - 加密的OAuth参数
表关联关系
一对多关系:

accounts → tool_builtin_providers (一个用户创建多个内置工具提供商)
accounts → tool_api_providers (一个用户创建多个API工具提供商)
accounts → tool_workflow_providers (一个用户创建多个工作流工具提供商)
accounts → tool_mcp_providers (一个用户创建多个MCP工具提供商)
accounts → tool_model_invokes (一个用户有多个工具调用记录)

多对一关系:

tool_workflow_providers → apps (多个工作流工具提供商关联到一个应用)

关联字段:

所有表都通过 tenant_id 关联到租户
通过 user_id 关联到创建者用户
通过 provider 字段区分不同的工具提供商类型
通过 tool_type 字段区分不同的工具类型
这些表共同构成了完整的工具管理系统,支持内置工具、API工具、工作流工具和MCP工具等多种类型的工具提供商配置和管理。

upload_files(上传文件表)
字段名 含义
id 主键,UUID
tenant_id 所属租户ID
storage_type 存储类型(如本地、云存储等)
key 存储key/路径
name 文件名
size 文件大小(字节)
extension 文件扩展名
mime_type 文件MIME类型
created_by_role 创建者角色(如account等)
created_by 创建者ID
created_at 创建时间
used 是否被使用
used_by 被谁使用
used_at 被使用时间
hash 文件hash值
source_url 来源URL
tags(标签表)
字段名 含义
id 主键,UUID
tenant_id 所属租户ID
type 标签类型(如knowledge, app)
name 标签名称
created_by 创建者ID
created_at 创建时间
tag_bindings(标签绑定表/中间表)
字段名 含义
id 主键,UUID
tenant_id 所属租户ID
tag_id 标签ID
target_id 绑定对象ID
created_by 创建者ID
created_at 创建时间
dify_setups(系统设置表)
字段名 含义
version 版本号(主键)
setup_at 安装/初始化时间
api_requests(API请求日志表)
字段名 含义
id 主键,UUID
tenant_id 所属租户ID
api_token_id API Token ID
path 请求路径
request 请求内容
response 响应内容
ip 请求IP
created_at 创建时间
celery_taskmeta(Celery任务表)
字段名 含义
id 主键,自增
task_id 任务ID(唯一)
status 任务状态
result 任务结果(序列化)
date_done 完成时间
traceback 异常堆栈
name 任务名
args 参数(序列化)
kwargs 关键字参数(序列化)
worker 执行worker
retries 重试次数
queue 队列名
celery_tasksetmeta(Celery任务集表)
字段名 含义
id 主键,自增
taskset_id 任务集ID(唯一)
result 任务集结果(序列化)
date_done 完成时间
api_based_extensions(API扩展表)
字段名 含义
id 主键,UUID
tenant_id 所属租户ID
name 扩展名称
api_endpoint API地址
api_key API密钥
created_at 创建时间
api_based_extension_points(API扩展点表)

该表在模型中未直接定义为表,而是以枚举形式存在,常见的扩展点有:
APP_EXTERNAL_DATA_TOOL_QUERY
PING
APP_MODERATION_INPUT
APP_MODERATION_OUTPUT

还有些枚举类当做表了。整理了一天多,还是耐心发表一下,说明:这个仅是半成品,仅做参考使用。

Logo

中国智能体开发者社区,聚焦智能体与大模型开发,提供前沿资讯、实用工具链、开源项目及行业案例。通过技术沙龙、开发者大赛等活动,促进经验交流与协作,助力开发者快速构建创新智能应用。

更多推荐