对话流实现 文件上传

This commit is contained in:
2025-11-06 16:43:28 +08:00
parent d9d62e22de
commit 0bb4853d54
35 changed files with 1748 additions and 575 deletions

View File

@@ -6,12 +6,7 @@ CREATE TABLE `tb_ai_agent_config` (
`name` VARCHAR(100) NOT NULL COMMENT '智能体名称',
`avatar` VARCHAR(255) DEFAULT NULL COMMENT '智能体头像',
`description` VARCHAR(500) DEFAULT NULL COMMENT '智能体描述',
`system_prompt` TEXT COMMENT '系统提示词',
`model_name` VARCHAR(100) DEFAULT NULL COMMENT '模型名称',
`model_provider` VARCHAR(50) DEFAULT NULL COMMENT '模型提供商',
`temperature` DECIMAL(3,2) DEFAULT 0.70 COMMENT '温度值',
`max_tokens` INT(11) DEFAULT 2000 COMMENT '最大tokens',
`top_p` DECIMAL(3,2) DEFAULT 1.00 COMMENT 'Top P值',
`connect_internet` INT(4) DEFAULT 0 COMMENT '是否连接互联网0否 1是',
`dify_app_id` VARCHAR(100) DEFAULT NULL COMMENT 'Dify应用ID',
`dify_api_key` VARCHAR(255) DEFAULT NULL COMMENT 'Dify应用API密钥',
`status` INT(4) DEFAULT 1 COMMENT '状态0禁用 1启用',
@@ -125,10 +120,12 @@ CREATE TABLE `tb_ai_message` (
-- 上传文件表
DROP TABLE IF EXISTS `tb_ai_upload_file`;
CREATE TABLE `tb_ai_upload_file` (
`id` VARCHAR(50) NOT NULL COMMENT '文件ID',
`id` VARCHAR(50) NOT NULL COMMENT 'ID',
`user_id` VARCHAR(50) NOT NULL COMMENT '用户ID',
`knowledge_id` VARCHAR(50) DEFAULT NULL COMMENT '所属知识库ID',
`conversation_id` VARCHAR(50) DEFAULT NULL COMMENT '关联会话ID对话中上传',
`message_id` VARCHAR(50) DEFAULT NULL COMMENT '关联消息ID绑定到具体的用户消息',
`sys_file_id` VARCHAR(32) DEFAULT NULL COMMENT '系统文件ID关联tb_sys_file实现永久存储',
`file_name` VARCHAR(255) NOT NULL COMMENT '文件名',
`file_path` VARCHAR(500) NOT NULL COMMENT '文件路径',
`file_size` BIGINT(20) DEFAULT 0 COMMENT '文件大小(字节)',
@@ -137,6 +134,7 @@ CREATE TABLE `tb_ai_upload_file` (
`extracted_text` LONGTEXT COMMENT '提取的文本内容',
`dify_document_id` VARCHAR(100) DEFAULT NULL COMMENT 'Dify文档ID',
`dify_batch_id` VARCHAR(100) DEFAULT NULL COMMENT 'Dify批次ID',
`dify_upload_file_id` VARCHAR(100) DEFAULT NULL COMMENT 'Dify上传文件ID对话中上传的文件',
`chunk_count` INT(11) DEFAULT 0 COMMENT '分段数量',
`status` INT(4) DEFAULT 0 COMMENT '状态0上传中 1处理中 2已完成 3失败',
`error_message` VARCHAR(500) DEFAULT NULL COMMENT '错误信息',
@@ -148,11 +146,14 @@ CREATE TABLE `tb_ai_upload_file` (
KEY `idx_user` (`user_id`),
KEY `idx_knowledge` (`knowledge_id`),
KEY `idx_conversation` (`conversation_id`),
KEY `idx_message` (`message_id`),
KEY `idx_sys_file` (`sys_file_id`),
KEY `idx_dify_document` (`dify_document_id`),
KEY `idx_dify_upload_file` (`dify_upload_file_id`),
KEY `idx_status` (`status`),
KEY `idx_create_time` (`create_time`),
KEY `idx_deleted` (`deleted`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='上传文件表';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='上传文件表(关联系统文件表)';
-- AI使用统计表
DROP TABLE IF EXISTS `tb_ai_usage_statistics`;
@@ -214,11 +215,10 @@ CREATE TABLE `tb_ai_usage_statistics` (
-- 插入默认智能体配置
INSERT INTO `tb_ai_agent_config`
(`id`, `name`, `avatar`, `description`, `system_prompt`, `model_name`, `model_provider`, `status`, `creator`, `create_time`)
(`id`, `name`, `avatar`, `description`, `connect_internet`, `status`, `creator`, `create_time`)
VALUES
('agent_default_001', '校园助手', '/img/agent/default.png', '我是您的智能校园助手,可以帮助您解答校园相关问题',
'你是一个友好、专业的校园助手。你需要基于校园知识库回答用户问题,语气亲切自然。如果知识库中没有相关信息,请诚实告知用户。',
'gpt-3.5-turbo', 'openai', 1, '1', NOW());
('agent_default_001', '校园助手', NULL, '我是您的智能校园助手,可以帮助您解答校园相关问题',
0, 1, '1', NOW());
-- 插入示例知识库(需要配合权限表使用)
INSERT INTO `tb_ai_knowledge`