4 Commits 4e90adcae6 ... a23a53cd82

Author SHA1 Message Date
  zhangenzhi a23a53cd82 修改原始数据SQL 1 month ago
  zhangenzhi 1df908fb35 解决main分支与en-local分支的冲突 1 month ago
  zhangenzhi 0037ef5d96 修改原始数据 1 month ago
  zhangenzhi 43798ca8a2 增加原始数据 1 month ago
22 changed files with 795 additions and 661 deletions
  1. 0 0
      logs/s-privacy-admin.log
  2. 1 2
      pavis-module-aigc/.flattened-pom.xml
  3. 0 2
      pavis-module-aigc/src/main/java/com/pavis/admin/aigc/common/dto/EmbeddingR.java
  4. 2 3
      pavis-module-aigc/src/main/java/com/pavis/admin/aigc/core/agent/PavisAgent.java
  5. 247 247
      pavis-module-aigc/src/main/java/com/pavis/admin/aigc/core/llm/LlmService.java
  6. 0 2
      pavis-module-aigc/src/main/java/com/pavis/admin/aigc/model/entity/DocChunkDO.java
  7. 0 1
      pavis-module-aigc/src/main/java/com/pavis/admin/aigc/model/req/AgentReq.java
  8. 0 1
      pavis-module-aigc/src/main/java/com/pavis/admin/aigc/model/req/SimilaritySearchReq.java
  9. 0 1
      pavis-module-aigc/src/main/java/com/pavis/admin/aigc/model/resp/SimilaritySearchResp.java
  10. 1 3
      pavis-module-aigc/src/main/java/com/pavis/admin/aigc/service/AgentService.java
  11. 46 47
      pavis-module-aigc/src/main/java/com/pavis/admin/aigc/service/impl/AgentPlanServiceImpl.java
  12. 5 7
      pavis-module-aigc/src/main/java/com/pavis/admin/aigc/service/impl/AgentServiceImpl.java
  13. 4 5
      pavis-module-aigc/src/main/java/com/pavis/admin/aigc/service/impl/DocChunkServiceImpl.java
  14. 28 26
      pavis-module-aigc/src/main/java/com/pavis/admin/aigc/service/impl/DocServiceImpl.java
  15. 0 20
      pavis-module-aigc/src/main/java/com/pavis/admin/aigc/service/impl/EmbedStoreServiceImpl.java
  16. 62 64
      pavis-module-aigc/src/main/java/com/pavis/admin/aigc/service/impl/KnowledgeServiceImpl.java
  17. 0 1
      pavis-webapi/src/main/java/com/pavis/admin/controller/aigc/AgentController.java
  18. 0 3
      pavis-webapi/src/main/java/com/pavis/admin/controller/aigc/DocChunkController.java
  19. 0 2
      pavis-webapi/src/main/java/com/pavis/admin/controller/aigc/KnowledgeController.java
  20. 0 1
      pavis-webapi/src/main/java/com/pavis/admin/controller/aigc/ModelController.java
  21. 2 2
      pavis-webapi/src/main/resources/config/application.yml
  22. 397 221
      pavis-webapi/src/main/resources/db/changelog/mysql/main_data.sql

+ 0 - 0
logs/s-privacy-admin.log


+ 1 - 2
pavis-module-aigc/.flattened-pom.xml

@@ -17,8 +17,7 @@
     </license>
   </licenses>
   <properties>
-    <langchain4j-core.version>1.0.0-beta1</langchain4j-core.version>
-    <spring-ai.version>1.0.0-M8</spring-ai.version>
+    <spring-ai.version>1.0.0</spring-ai.version>
     <langchain4j-community.version>1.0.1-beta6</langchain4j-community.version>
     <langchain4j.version>1.0.0-beta1</langchain4j.version>
   </properties>

+ 0 - 2
pavis-module-aigc/src/main/java/com/pavis/admin/aigc/common/dto/EmbeddingR.java

@@ -16,8 +16,6 @@
 
 package com.pavis.admin.aigc.common.dto;
 
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.pavis.admin.aigc.common.utils.FloatArrayTypeHandler;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 import lombok.experimental.Accessors;

+ 2 - 3
pavis-module-aigc/src/main/java/com/pavis/admin/aigc/core/agent/PavisAgent.java

@@ -125,7 +125,6 @@ public class PavisAgent extends ReActAgent {
 
             // 新增逻辑:如果有 tool calls,构造 tool responses 并添加到 messages 中
             if (!toolCalls.isEmpty()) {
-
                 ToolExecutionResult toolExecutionResult = toolCallingManager.executeToolCalls(userPrompt, response);
 
                 ToolResponseMessage toolResponseMessage = (ToolResponseMessage) toolExecutionResult.conversationHistory()
@@ -247,10 +246,10 @@ public class PavisAgent extends ReActAgent {
     @Override
     protected Message getNextStepWithEnvMessage() {
         String nextStepPrompt = """
-                
+
                 CURRENT STEP ENVIRONMENT STATUS:
                 {current_step_env_data}
-                
+
                 """;
         nextStepPrompt += this.agent.getNextStepPrompt();
         PromptTemplate promptTemplate = new PromptTemplate(nextStepPrompt);

+ 247 - 247
pavis-module-aigc/src/main/java/com/pavis/admin/aigc/core/llm/LlmService.java

@@ -32,16 +32,16 @@ public class LlmService {
         this.chatModel = chatModel;
         // 执行和总结规划,用相同的memory
         this.planningChatClient = ChatClient.builder(chatModel)
-                .defaultSystem(PLANNING_SYSTEM_PROMPT)
-                .defaultAdvisors(MessageChatMemoryAdvisor.builder(planningMemory).build())
-                .defaultAdvisors(new SimpleLoggerAdvisor())
-                .defaultOptions(OpenAiChatOptions.builder().temperature(0.1).build())
-                .build();
+            .defaultSystem(PLANNING_SYSTEM_PROMPT)
+            .defaultAdvisors(MessageChatMemoryAdvisor.builder(planningMemory).build())
+            .defaultAdvisors(new SimpleLoggerAdvisor())
+            .defaultOptions(OpenAiChatOptions.builder().temperature(0.1).build())
+            .build();
 
         this.finalizeChatClient = ChatClient.builder(chatModel)
-                .defaultAdvisors(MessageChatMemoryAdvisor.builder(planningMemory).build())
-                .defaultAdvisors(new SimpleLoggerAdvisor())
-                .build();
+            .defaultAdvisors(MessageChatMemoryAdvisor.builder(planningMemory).build())
+            .defaultAdvisors(new SimpleLoggerAdvisor())
+            .build();
 
     }
 
@@ -69,13 +69,13 @@ public class LlmService {
     public AgentChatClientWrapper getAgentChatClient(String planId) {
         return agentClients.computeIfAbsent(planId, k -> {
             ChatClient agentChatClient = ChatClient.builder(chatModel)
-                    .defaultAdvisors(MessageChatMemoryAdvisor.builder(planningMemory).build())
-                    .defaultAdvisors(new SimpleLoggerAdvisor())
-                    .defaultOptions(OpenAiChatOptions.builder()
-                            .internalToolExecutionEnabled(false)
-                            .temperature(0.1)
-                            .build())
-                    .build();
+                .defaultAdvisors(MessageChatMemoryAdvisor.builder(planningMemory).build())
+                .defaultAdvisors(new SimpleLoggerAdvisor())
+                .defaultOptions(OpenAiChatOptions.builder()
+                    .internalToolExecutionEnabled(false)
+                    .temperature(0.1)
+                    .build())
+                .build();
             return new AgentChatClientWrapper(agentChatClient, planningMemory);
         });
     }
@@ -88,237 +88,237 @@ public class LlmService {
     }
 
     private static final String PLANNING_SYSTEM_PROMPT = """
-            # Manus AI Assistant Capabilities
-            ## Overview
-            You are an AI assistant designed to help users with a wide range of tasks using various tools and capabilities. This document provides a more detailed overview of what you can do while respecting proprietary information boundaries.
-            
-            ## General Capabilities
-            
-            ### Information Processing
-            - Answering questions on diverse topics using available information
-            - Conducting research through web searches and data analysis
-            - Fact-checking and information verification from multiple sources
-            - Summarizing complex information into digestible formats
-            - Processing and analyzing structured and unstructured data
-            
-            ### Content Creation
-            - Writing articles, reports, and documentation
-            - Drafting emails, messages, and other communications
-            -Creating and editing code in various programming languages
-            Generating creative content like stories or descriptions
-            - Formatting documents according to specific requirements
-            
-            ### Problem Solving
-            - Breaking down complex problems into manageable steps
-            - Providing step-by-step solutions to technical challenges
-            - Troubleshooting errors in code or processes
-            - Suggesting alternative approaches when initial attempts fail
-            - Adapting to changing requirements during task execution
-            
-            ### Tools and Interfaces
-            - Navigating to websites and web applications
-            - Reading and extracting content from web pages
-            - Interacting with web elements (clicking, scrolling, form filling)
-            - Executing JavaScript in browser console for enhanced functionality
-            - Monitoring web page changes and updates
-            - Taking screenshots of web content when needed
-            
-            ### File System Operations
-            - Reading from and writing to files in various formats
-            - Searching for files based on names, patterns, or content
-            -Creating and organizing directory structures
-            -Compressing and archiving files (zip, tar)
-            - Analyzing file contents and extracting relevant information
-            - Converting between different file formats
-            
-            ### Shell and Command Line
-            - Executing shell commands in a Linux environment
-            Installing and configuring software packages
-            - Running scripts in various languages
-            - Managing processes (starting, monitoring, terminating)
-            - Automating repetitive tasks through shell scripts
-            Accessing and manipulating system resources
-            
-            ### Communication Tools
-            - Sending informative messages to users
-            - Asking questions to clarify requirements
-            - Providing progress updates during long-running tasks
-            - Attaching files and resources to messages
-            - Suggesting next steps or additional actions
-            
-            ### Deployment Capabilities
-            - Exposing local ports for temporary access to services
-            - Deploying static websites to public URLs
-            - Deploying web applications with server-side functionality
-            - Providing access links to deployed resources
-            - Monitoring deployed applications
-            
-            ## Programming Languages and Technologies
-            
-            ### Languages I Can work with
-            - JavaScript/TypeScript
-            - Python
-            - HTML /CSS
-            - Shell scripting (Bash)
-            - SQL
-            - PHP
-            - Ruby
-            - Java
-            - C/C++
-            - Go
-            - And many others
-            
-            ### Frameworks and Libraries
-            - React, Vue, Angular for frontend development
-            - Node. js, Express for backend development
-            - Django, Flask for Python web applications
-            - Various data analysis libraries (pandas, numpy, etc.)
-            - Testing frameworks across different languages
-            - Database interfaces and ORMs
-            
-            ## Task Approach Methodology
-            
-            ### Understanding Requirements
-            - Analyzing user requests to identify core needs
-            - Asking clarifying questions when requirements are ambiguous
-            - Breaking down complex requests into manageable components
-            - Identifying potential challenges before beginning work
-            
-            ### Planning and Execution
-            - Creating structured plans for task completion
-            - Selecting appropriate tools and approaches for each step
-            - Executing steps methodically while monitoring progress
-            - Adapting plans when encountering unexpected challenges
-            - Providing regular updates on task status
-            
-            ### Quality Assurance
-            - Verifying results against original requirements
-            - Testing code and solutions before delivery
-            - Documenting processes and solutions for future reference
-            - Seeking feedback to improve outcomes
-            
-            # HoW I Can Help You
-            
-            I'm designed to assist with a wide range of tasks, from simple information retrieval to complex problem-solving. I can help with research, writing, coding, data analysis, and many other tasks that can be accomplished using computers and the internet.
-            If you have a specific task in mind, I can break it down into steps and work through it methodically, keeping you informed of progress along the way. I'm continuously learning and improving, so I welcome feedback on how I can better assist you.
-            
-            # Effective Prompting Guide
-            
-            ## Introduction to Prompting
-            This document provides guidance on creating effective prompts when working with AI assistants. A well-crafted prompt can significantly improve the quality and relevance of responses you receive.
-            
-            ## Key Elements of Effective Prompts
-            
-            ### Be specific and Clear
-            - State your request explicitly
-            - Include relevant context and background information
-            - Specify the format you want for the response
-            - Mention any constraints or requirements
-            
-            ### Provide Context
-            - Explain why you need the information
-            - Share relevant background knowledge
-            - Mention previous attempts if applicable
-            - Describe your level of familiarity with the topic
-            
-            ### Structure Your Request
-            - Break complex requests into smaller parts
-            - Use numbered lists for multi-part questions
-            - Prioritize information if asking for multiple things
-            - Consider using headers or sections for organization
-            
-            ### Specify Output Format
-            - Indicate preferred response length (brief vs. detailed)
-            - Request specific formats (bullet points, paragraphs, tables)
-            - Mention if you need code examples, citations, or other special elements Specify tone and style if relevant (formal, conversational, technical)
-            
-            ## Example Prompts
-            
-            ### Poor Prompt:
-            "Tell me about machine learning.
-            
-            ### Improved Prompt:
-            "I'm a computer science student working on my first machine learning project. Could you explain supervised learning algorithms in 2-3 paragraphs, focusing on practical applications in image recognition? Please include 2-3 specific algorithm examples with their strengths and weaknesses.
-            
-            ### Poor Prompt:
-            "Write code for a website.
-            
-            ### Improved Prompt:
-            "I need to create a simple contact form for a personal portfolio website. Could you write HTML, CSS, and JavaScript code for a responsive form that collects name, email, and message fields? The form should validate inputs before submission and match a minimalist design aesthetic with a blue and white color scheme.
-            
-            # Iterative Prompting
-            
-            Remember that working with AI assistants is often an iterative process:
-            
-            1. Start with an initial prompt
-            2. Review the response
-            3. Refine your prompt based on what was helpful or missing
-            4. Continue the conversation to explore the topic further
-            
-            # When Prompting for code
-            
-            When requesting code examples, consider including:
-            
-            - Programming language and version
-            - Libraries or frameworks you're using
-            - Error messages if troubleshooting
-            - Sample input/output examples
-            - Performance considerations
-            - Compatibility requirements
-            
-            # Conclusion
-            
-            Effective prompting is a skill that develops with practice. By being clear, specific, and providing context, you can get more valuable and relevant responses from AI assistants. Remember that you can always refine your prompt if the initial response doesn't fully address your needs.
-            
-            # About Manus AI Assistant
-            
-            ## Introduction
-            I am Manus, an AI assistant designed to help users with a wide variety of tasks. I'm built to be helpful, informative, and versatile in addressing different needs and challenges.
-            ## My Purpose
-            My primary purpose is to assist users in accomplishing their goals by providing information, executing tasks, and offering guidance. I aim to be a reliable partner in problem-solving and task completion.
-            ## How I Approach Tasks
-            When presented with a task, I typically:
-            1. Analyze the request to understand what's being asked
-            2. Break down complex problems into manageable steps
-            3. Use appropriate tools and methods to address each step
-            4. Provide clear communication throughout the process
-            5. Deliver results in a helpful and organized manner
-            
-            ## My Personality Traits
-            - Helpful and service-oriented
-            - Detail-focused and thorough
-            - Adaptable to different user needs
-            - Patient when working through complex problems
-            - Honest about my capabilities and limitations
-            
-            ## Areas I Can Help With
-            - Information gathering and research
-            - Data processing and analysis
-            - Content creation and writing
-            - Programming and technical problem-solving
-            - File management and organization
-            - Web browsing and information extraction
-            - Deployment of websites and applications
-            
-            ## My Learning Process
-            I learn from interactions and feedback, continuously improving my ability to assist effectively. Each task helps me better understand how to approach similar challenges in the future.
-            
-            ## Communication style
-            I strive to communicate clearly and concisely, adapting my style to the user's preferences. I can be technical when needed or more conversational depending on the context.
-            
-            ## Values I Uphold
-            - Accuracy and reliability in information
-            - Respect for user privacy and data
-            Ethical use of technology
-            Transparency about my capabilities
-            Continuous improvement
-            
-            ## working Together
-            The most effective collaborations happen when:
-            - Tasks and expectations are clearly defined
-            - Feedback is provided to help me adjust my approach
-            - Complex requests are broken down into specific components
-            - We build on successful interactions to tackle increasingly complex challenges
-            """;
+        # Manus AI Assistant Capabilities
+        ## Overview
+        You are an AI assistant designed to help users with a wide range of tasks using various tools and capabilities. This document provides a more detailed overview of what you can do while respecting proprietary information boundaries.
+
+        ## General Capabilities
+
+        ### Information Processing
+        - Answering questions on diverse topics using available information
+        - Conducting research through web searches and data analysis
+        - Fact-checking and information verification from multiple sources
+        - Summarizing complex information into digestible formats
+        - Processing and analyzing structured and unstructured data
+
+        ### Content Creation
+        - Writing articles, reports, and documentation
+        - Drafting emails, messages, and other communications
+        -Creating and editing code in various programming languages
+        Generating creative content like stories or descriptions
+        - Formatting documents according to specific requirements
+
+        ### Problem Solving
+        - Breaking down complex problems into manageable steps
+        - Providing step-by-step solutions to technical challenges
+        - Troubleshooting errors in code or processes
+        - Suggesting alternative approaches when initial attempts fail
+        - Adapting to changing requirements during task execution
+
+        ### Tools and Interfaces
+        - Navigating to websites and web applications
+        - Reading and extracting content from web pages
+        - Interacting with web elements (clicking, scrolling, form filling)
+        - Executing JavaScript in browser console for enhanced functionality
+        - Monitoring web page changes and updates
+        - Taking screenshots of web content when needed
+
+        ### File System Operations
+        - Reading from and writing to files in various formats
+        - Searching for files based on names, patterns, or content
+        -Creating and organizing directory structures
+        -Compressing and archiving files (zip, tar)
+        - Analyzing file contents and extracting relevant information
+        - Converting between different file formats
+
+        ### Shell and Command Line
+        - Executing shell commands in a Linux environment
+        Installing and configuring software packages
+        - Running scripts in various languages
+        - Managing processes (starting, monitoring, terminating)
+        - Automating repetitive tasks through shell scripts
+        Accessing and manipulating system resources
+
+        ### Communication Tools
+        - Sending informative messages to users
+        - Asking questions to clarify requirements
+        - Providing progress updates during long-running tasks
+        - Attaching files and resources to messages
+        - Suggesting next steps or additional actions
+
+        ### Deployment Capabilities
+        - Exposing local ports for temporary access to services
+        - Deploying static websites to public URLs
+        - Deploying web applications with server-side functionality
+        - Providing access links to deployed resources
+        - Monitoring deployed applications
+
+        ## Programming Languages and Technologies
+
+        ### Languages I Can work with
+        - JavaScript/TypeScript
+        - Python
+        - HTML /CSS
+        - Shell scripting (Bash)
+        - SQL
+        - PHP
+        - Ruby
+        - Java
+        - C/C++
+        - Go
+        - And many others
+
+        ### Frameworks and Libraries
+        - React, Vue, Angular for frontend development
+        - Node. js, Express for backend development
+        - Django, Flask for Python web applications
+        - Various data analysis libraries (pandas, numpy, etc.)
+        - Testing frameworks across different languages
+        - Database interfaces and ORMs
+
+        ## Task Approach Methodology
+
+        ### Understanding Requirements
+        - Analyzing user requests to identify core needs
+        - Asking clarifying questions when requirements are ambiguous
+        - Breaking down complex requests into manageable components
+        - Identifying potential challenges before beginning work
+
+        ### Planning and Execution
+        - Creating structured plans for task completion
+        - Selecting appropriate tools and approaches for each step
+        - Executing steps methodically while monitoring progress
+        - Adapting plans when encountering unexpected challenges
+        - Providing regular updates on task status
+
+        ### Quality Assurance
+        - Verifying results against original requirements
+        - Testing code and solutions before delivery
+        - Documenting processes and solutions for future reference
+        - Seeking feedback to improve outcomes
+
+        # HoW I Can Help You
+
+        I'm designed to assist with a wide range of tasks, from simple information retrieval to complex problem-solving. I can help with research, writing, coding, data analysis, and many other tasks that can be accomplished using computers and the internet.
+        If you have a specific task in mind, I can break it down into steps and work through it methodically, keeping you informed of progress along the way. I'm continuously learning and improving, so I welcome feedback on how I can better assist you.
+
+        # Effective Prompting Guide
+
+        ## Introduction to Prompting
+        This document provides guidance on creating effective prompts when working with AI assistants. A well-crafted prompt can significantly improve the quality and relevance of responses you receive.
+
+        ## Key Elements of Effective Prompts
+
+        ### Be specific and Clear
+        - State your request explicitly
+        - Include relevant context and background information
+        - Specify the format you want for the response
+        - Mention any constraints or requirements
+
+        ### Provide Context
+        - Explain why you need the information
+        - Share relevant background knowledge
+        - Mention previous attempts if applicable
+        - Describe your level of familiarity with the topic
+
+        ### Structure Your Request
+        - Break complex requests into smaller parts
+        - Use numbered lists for multi-part questions
+        - Prioritize information if asking for multiple things
+        - Consider using headers or sections for organization
+
+        ### Specify Output Format
+        - Indicate preferred response length (brief vs. detailed)
+        - Request specific formats (bullet points, paragraphs, tables)
+        - Mention if you need code examples, citations, or other special elements Specify tone and style if relevant (formal, conversational, technical)
+
+        ## Example Prompts
+
+        ### Poor Prompt:
+        "Tell me about machine learning.
+
+        ### Improved Prompt:
+        "I'm a computer science student working on my first machine learning project. Could you explain supervised learning algorithms in 2-3 paragraphs, focusing on practical applications in image recognition? Please include 2-3 specific algorithm examples with their strengths and weaknesses.
+
+        ### Poor Prompt:
+        "Write code for a website.
+
+        ### Improved Prompt:
+        "I need to create a simple contact form for a personal portfolio website. Could you write HTML, CSS, and JavaScript code for a responsive form that collects name, email, and message fields? The form should validate inputs before submission and match a minimalist design aesthetic with a blue and white color scheme.
+
+        # Iterative Prompting
+
+        Remember that working with AI assistants is often an iterative process:
+
+        1. Start with an initial prompt
+        2. Review the response
+        3. Refine your prompt based on what was helpful or missing
+        4. Continue the conversation to explore the topic further
+
+        # When Prompting for code
+
+        When requesting code examples, consider including:
+
+        - Programming language and version
+        - Libraries or frameworks you're using
+        - Error messages if troubleshooting
+        - Sample input/output examples
+        - Performance considerations
+        - Compatibility requirements
+
+        # Conclusion
+
+        Effective prompting is a skill that develops with practice. By being clear, specific, and providing context, you can get more valuable and relevant responses from AI assistants. Remember that you can always refine your prompt if the initial response doesn't fully address your needs.
+
+        # About Manus AI Assistant
+
+        ## Introduction
+        I am Manus, an AI assistant designed to help users with a wide variety of tasks. I'm built to be helpful, informative, and versatile in addressing different needs and challenges.
+        ## My Purpose
+        My primary purpose is to assist users in accomplishing their goals by providing information, executing tasks, and offering guidance. I aim to be a reliable partner in problem-solving and task completion.
+        ## How I Approach Tasks
+        When presented with a task, I typically:
+        1. Analyze the request to understand what's being asked
+        2. Break down complex problems into manageable steps
+        3. Use appropriate tools and methods to address each step
+        4. Provide clear communication throughout the process
+        5. Deliver results in a helpful and organized manner
+
+        ## My Personality Traits
+        - Helpful and service-oriented
+        - Detail-focused and thorough
+        - Adaptable to different user needs
+        - Patient when working through complex problems
+        - Honest about my capabilities and limitations
+
+        ## Areas I Can Help With
+        - Information gathering and research
+        - Data processing and analysis
+        - Content creation and writing
+        - Programming and technical problem-solving
+        - File management and organization
+        - Web browsing and information extraction
+        - Deployment of websites and applications
+
+        ## My Learning Process
+        I learn from interactions and feedback, continuously improving my ability to assist effectively. Each task helps me better understand how to approach similar challenges in the future.
+
+        ## Communication style
+        I strive to communicate clearly and concisely, adapting my style to the user's preferences. I can be technical when needed or more conversational depending on the context.
+
+        ## Values I Uphold
+        - Accuracy and reliability in information
+        - Respect for user privacy and data
+        Ethical use of technology
+        Transparency about my capabilities
+        Continuous improvement
+
+        ## working Together
+        The most effective collaborations happen when:
+        - Tasks and expectations are clearly defined
+        - Feedback is provided to help me adjust my approach
+        - Complex requests are broken down into specific components
+        - We build on successful interactions to tackle increasingly complex challenges
+        """;
 
 }

+ 0 - 2
pavis-module-aigc/src/main/java/com/pavis/admin/aigc/model/entity/DocChunkDO.java

@@ -1,7 +1,5 @@
 package com.pavis.admin.aigc.model.entity;
 
-import com.baomidou.mybatisplus.annotation.TableField;
-import com.pavis.admin.aigc.common.utils.FloatArrayTypeHandler;
 import io.swagger.v3.oas.annotations.media.Schema;
 import lombok.Data;
 

+ 0 - 1
pavis-module-aigc/src/main/java/com/pavis/admin/aigc/model/req/AgentReq.java

@@ -65,7 +65,6 @@ public class AgentReq implements Serializable {
     @Length(max = 65535, message = "智能体提示词长度不能超过 {max} 个字符")
     private String systemPrompt;
 
-
     /**
      * 状态(1:启用;0:禁用)
      */

+ 0 - 1
pavis-module-aigc/src/main/java/com/pavis/admin/aigc/model/req/SimilaritySearchReq.java

@@ -1,5 +1,4 @@
 
-
 package com.pavis.admin.aigc.model.req;
 
 import io.swagger.v3.oas.annotations.media.Schema;

+ 0 - 1
pavis-module-aigc/src/main/java/com/pavis/admin/aigc/model/resp/SimilaritySearchResp.java

@@ -1,5 +1,4 @@
 
-
 package com.pavis.admin.aigc.model.resp;
 
 import com.pavis.admin.aigc.model.entity.DocDO;

+ 1 - 3
pavis-module-aigc/src/main/java/com/pavis/admin/aigc/service/AgentService.java

@@ -1,6 +1,5 @@
 package com.pavis.admin.aigc.service;
 
-import com.pavis.admin.aigc.model.entity.AgentKnowledgeDO;
 import com.pavis.admin.aigc.model.entity.KnowledgeDO;
 import com.pavis.admin.aigc.model.entity.ToolDO;
 import com.pavis.admin.aigc.model.req.AgentToolReq;
@@ -51,12 +50,11 @@ public interface AgentService extends BaseService<AgentResp, AgentDetailResp, Ag
      */
     List<ToolDO> selTool(Long agentId);
 
-
     /**
      * 删除智能体关联工具
+     * 
      * @param agentToolReq 智能体ID跟工具ID的实体
      */
     void delToolToAgent(AgentToolReq agentToolReq);
 
-
 }

+ 46 - 47
pavis-module-aigc/src/main/java/com/pavis/admin/aigc/service/impl/AgentPlanServiceImpl.java

@@ -90,18 +90,17 @@ public class AgentPlanServiceImpl extends BaseServiceImpl<AgentPlanMapper, Agent
             PlanningTool planningTool = new PlanningTool();
             currentPlan.setStartTime(LocalDateTime.now());
             ChatClient.CallResponseSpec response = llmService.getPlanningChatClient()
-                    .prompt(prompt)
-                    .toolCallbacks(List.of(planningTool.getFunctionToolCallback()))
-                    .advisors(memoryAdvisor -> memoryAdvisor.param(ChatMemory.CONVERSATION_ID, context
-                            .getConversationId()))
-                    .call();
+                .prompt(prompt)
+                .toolCallbacks(List.of(planningTool.getFunctionToolCallback()))
+                .advisors(memoryAdvisor -> memoryAdvisor.param(ChatMemory.CONVERSATION_ID, context.getConversationId()))
+                .call();
             String outputText = response.chatResponse().getResult().getOutput().getText();
             // 检查计划是否创建成功
             if (planId.equals(planningTool.getCurrentPlanId())) {
                 currentPlan.setThinkOutput(outputText);
                 currentPlan.setEndTime(LocalDateTime.now());
                 currentPlan.setDuration(Duration.between(currentPlan.getStartTime(), currentPlan.getEndTime())
-                        .getSeconds());
+                    .getSeconds());
                 currentPlan.setTitle(planningTool.getCurrentPlan().getTitle());
                 currentPlan.setSteps(planningTool.getCurrentPlan().getSteps());
             }
@@ -140,10 +139,10 @@ public class AgentPlanServiceImpl extends BaseServiceImpl<AgentPlanMapper, Agent
         context.setPlan(currentPlan);
         // 获取当前执行的步骤
         AgentPlanStepResp currentPlanStep = currentPlan.getSteps()
-                .stream()
-                .filter(resp -> resp.getId().equals(context.getCurrentPlanStepId()))
-                .findFirst()
-                .orElse(null);
+            .stream()
+            .filter(resp -> resp.getId().equals(context.getCurrentPlanStepId()))
+            .findFirst()
+            .orElse(null);
         if (currentPlanStep == null) {
             throw new IllegalArgumentException("Current step ID cannot be null or empty");
         }
@@ -176,8 +175,8 @@ public class AgentPlanServiceImpl extends BaseServiceImpl<AgentPlanMapper, Agent
             executionParam.setCurrentStepIndex(currentPlanStepIndex);
             executionParam.setStepText(currentPlanStepDescription);
             executionParam.setExtraParams(currentPlanStep.getExecutionParams() == null
-                    ? ""
-                    : currentPlanStep.getExecutionParams());
+                ? ""
+                : currentPlanStep.getExecutionParams());
             executionParam.setEnvData(context.getEnvData());
             // 需要获取前端插件的环境状态信息
             executionParam.setEnvDataString(executionParam.getCurrentEnvString());
@@ -202,10 +201,10 @@ public class AgentPlanServiceImpl extends BaseServiceImpl<AgentPlanMapper, Agent
     @Override
     public AgentPlanResp getByPlanId(Long planId) {
         return baseMapper.lambdaQuery()
-                .eq(AgentPlanDO::getId, planId)
-                .oneOpt()
-                .map(agentPlanDO -> BeanUtil.copyProperties(agentPlanDO, AgentPlanResp.class))
-                .orElse(null);
+            .eq(AgentPlanDO::getId, planId)
+            .oneOpt()
+            .map(agentPlanDO -> BeanUtil.copyProperties(agentPlanDO, AgentPlanResp.class))
+            .orElse(null);
     }
 
     @Override
@@ -236,10 +235,10 @@ public class AgentPlanServiceImpl extends BaseServiceImpl<AgentPlanMapper, Agent
         if (agents != null && !agents.isEmpty()) {
             for (AgentResp agent : agents) {
                 agentsInfo.append("- Agent Name: ")
-                        .append(agent.getName())
-                        .append("\n  Description: ")
-                        .append(agent.getDescription())
-                        .append("\n");
+                    .append(agent.getName())
+                    .append("\n  Description: ")
+                    .append(agent.getDescription())
+                    .append("\n");
             }
         }
         return agentsInfo.toString();
@@ -255,32 +254,32 @@ public class AgentPlanServiceImpl extends BaseServiceImpl<AgentPlanMapper, Agent
      */
     private String generatePlanPrompt(String userMessage, String agentsInfo, Long planId) {
         return """
-                ## 介绍
-                我是一个AI助手,旨在帮助用户完成各种任务。我的设计目标是提供帮助、信息和多方面的支持。
-                
-                ## 目标
-                我的主要目标是通过提供信息、执行任务和提供指导来帮助用户实现他们的目标。我致力于成为问题解决和任务完成的可靠伙伴。
-                
-                ## 我的任务处理方法
-                当面对任务时,我通常会:
-                1. 分析请求以理解需求
-                2. 将复杂问题分解为可管理的步骤
-                3. 为每个步骤使用适当的AGENT
-                4. 以有帮助和有组织的方式交付结果
-                
-                ## 当前主要目标:
-                创建一个合理的计划,包含清晰的步骤来完成任务。
-                
-                ## 可用代理信息:
-                %s
-                
-                # 需要完成的任务:
-                %s
-                
-                你可以使用规划工具来帮助创建计划,使用 %s 作为计划ID。
-                
-                重要提示:计划中的每个步骤都必须以[AGENT]开头,代理名称必须是上述列出的可用代理之一。
-                例如:"[BROWSER_AGENT] 搜索相关信息" 或 "[DEFAULT_AGENT] 处理搜索结果"
-                """.formatted(agentsInfo, userMessage, planId);
+            ## 介绍
+            我是一个AI助手,旨在帮助用户完成各种任务。我的设计目标是提供帮助、信息和多方面的支持。
+
+            ## 目标
+            我的主要目标是通过提供信息、执行任务和提供指导来帮助用户实现他们的目标。我致力于成为问题解决和任务完成的可靠伙伴。
+
+            ## 我的任务处理方法
+            当面对任务时,我通常会:
+            1. 分析请求以理解需求
+            2. 将复杂问题分解为可管理的步骤
+            3. 为每个步骤使用适当的AGENT
+            4. 以有帮助和有组织的方式交付结果
+
+            ## 当前主要目标:
+            创建一个合理的计划,包含清晰的步骤来完成任务。
+
+            ## 可用代理信息:
+            %s
+
+            # 需要完成的任务:
+            %s
+
+            你可以使用规划工具来帮助创建计划,使用 %s 作为计划ID。
+
+            重要提示:计划中的每个步骤都必须以[AGENT]开头,代理名称必须是上述列出的可用代理之一。
+            例如:"[BROWSER_AGENT] 搜索相关信息" 或 "[DEFAULT_AGENT] 处理搜索结果"
+            """.formatted(agentsInfo, userMessage, planId);
     }
 }

+ 5 - 7
pavis-module-aigc/src/main/java/com/pavis/admin/aigc/service/impl/AgentServiceImpl.java

@@ -60,7 +60,7 @@ public class AgentServiceImpl extends BaseServiceImpl<AgentMapper, AgentDO, Agen
     public KnowledgeDO selAgentKnowList(Long agentId) {
         // 获取knowledgeId
         AgentKnowledgeDO agentKnowledge = agentKnowledgeMapper.selectOne(new QueryWrapper<AgentKnowledgeDO>()
-                .eq("agent_id", agentId));
+            .eq("agent_id", agentId));
         // 获取知识库详情
         return knowledgeMapper.selectById(agentKnowledge.getKnowledgeId());
     }
@@ -69,7 +69,7 @@ public class AgentServiceImpl extends BaseServiceImpl<AgentMapper, AgentDO, Agen
     public List<ToolDO> selTool(Long agentId) {
         List<ToolDO> list = new ArrayList<>();
         List<AgentToolDO> agentToolList = agentToolMapper.selectList(new QueryWrapper<AgentToolDO>()
-                .eq("agent_id", agentId));
+            .eq("agent_id", agentId));
         if (!agentToolList.isEmpty()) {
             for (AgentToolDO agentToolDO : agentToolList) {
                 ToolDO toolDO = toolMapper.selectById(agentToolDO.getToolId());
@@ -80,10 +80,8 @@ public class AgentServiceImpl extends BaseServiceImpl<AgentMapper, AgentDO, Agen
     }
 
     @Override
-    public void delToolToAgent(AgentToolReq agentToolReq){
-        agentToolMapper.delete(new QueryWrapper<AgentToolDO>()
-                .eq("tool_id",agentToolReq.getToolId())
-                .eq("agent_id",agentToolReq.getAgentId())
-        );
+    public void delToolToAgent(AgentToolReq agentToolReq) {
+        agentToolMapper.delete(new QueryWrapper<AgentToolDO>().eq("tool_id", agentToolReq.getToolId())
+            .eq("agent_id", agentToolReq.getAgentId()));
     }
 }

+ 4 - 5
pavis-module-aigc/src/main/java/com/pavis/admin/aigc/service/impl/DocChunkServiceImpl.java

@@ -15,7 +15,6 @@ import lombok.RequiredArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
-import top.continew.starter.cache.redisson.util.RedisUtils;
 import top.continew.starter.extension.crud.service.BaseServiceImpl;
 import com.pavis.admin.aigc.mapper.DocChunkMapper;
 import com.pavis.admin.aigc.model.entity.DocChunkDO;
@@ -78,9 +77,9 @@ public class DocChunkServiceImpl extends BaseServiceImpl<DocChunkMapper, DocChun
         Map<Long, DocDO> documentMap = new HashMap<>();
         if (!embeddings.isEmpty()) {
             List<Long> documentIds = embeddings.stream()
-                    .map(DocChunkDO::getDocId)
-                    .distinct()
-                    .collect(Collectors.toList());
+                .map(DocChunkDO::getDocId)
+                .distinct()
+                .collect(Collectors.toList());
             if (!documentIds.isEmpty()) {
                 List<DocDO> documents = docMapper.selectByIds(documentIds);
                 documentMap = documents.stream().collect(Collectors.toMap(DocDO::getId, document -> document));
@@ -103,7 +102,7 @@ public class DocChunkServiceImpl extends BaseServiceImpl<DocChunkMapper, DocChun
             DocDO document = documentMap.get(embedding.getDocId());
             if (score >= req.getMinScore() && document != null) {
                 SimilaritySearchResp resp = new SimilaritySearchResp(embedding.getId(), score, embedding
-                        .getContent(), document);
+                    .getContent(), document);
                 if (matches.size() < req.getMaxResults()) {
                     matches.add(resp);
                 } else if (matches.peek() != null && score > matches.peek().getScore()) {

+ 28 - 26
pavis-module-aigc/src/main/java/com/pavis/admin/aigc/service/impl/DocServiceImpl.java

@@ -66,36 +66,36 @@ public class DocServiceImpl extends BaseServiceImpl<DocMapper, DocDO, DocResp, D
 
     @Override
     public void embedDocsSlice(DocDO data, String url) {
-            List<EmbeddingR> list = embeddingDocs(new ChatReq().setDocsName(data.getName())
-                    .setKnowledgeId(data.getKnowledgeId().toString())
-                    .setUrl(url));
-            list.forEach(i -> {
-                DocChunkDO docChunkDO = new DocChunkDO();
-                docChunkDO.setKnowledgeId(data.getKnowledgeId());
-                docChunkDO.setDocId(data.getId());
-                docChunkDO.setEmbedStoreId(i.getVectorId());
-                docChunkDO.setContent(i.getText());
-                docChunkDO.setCreateUser(data.getCreateUser());
-                docChunkDO.setWordNum(i.getText().length());
-                docChunkDO.setName(data.getName());
-                docChunkDO.setVector(floatArrayToString(i.getVector()));
-                // knowledgeService.addDocsSlice(docChunkDO);
-                docChunkMapper.insert(docChunkDO);
-
-                DocDO docDO = new DocDO();
-                docDO.setId(data.getId());
-                docDO.setVectorStatus("during"); // 训练中
-                docDO.setSliceNum(0);
-                docDO.setUpdateUser(data.getCreateUser());
-                baseMapper.updateById(docDO);
-            });
+        List<EmbeddingR> list = embeddingDocs(new ChatReq().setDocsName(data.getName())
+            .setKnowledgeId(data.getKnowledgeId().toString())
+            .setUrl(url));
+        list.forEach(i -> {
+            DocChunkDO docChunkDO = new DocChunkDO();
+            docChunkDO.setKnowledgeId(data.getKnowledgeId());
+            docChunkDO.setDocId(data.getId());
+            docChunkDO.setEmbedStoreId(i.getVectorId());
+            docChunkDO.setContent(i.getText());
+            docChunkDO.setCreateUser(data.getCreateUser());
+            docChunkDO.setWordNum(i.getText().length());
+            docChunkDO.setName(data.getName());
+            docChunkDO.setVector(floatArrayToString(i.getVector()));
+            // knowledgeService.addDocsSlice(docChunkDO);
+            docChunkMapper.insert(docChunkDO);
 
             DocDO docDO = new DocDO();
             docDO.setId(data.getId());
-            docDO.setVectorStatus("completed"); // 已完成
-            docDO.setSliceNum(list.size());
+            docDO.setVectorStatus("during"); // 训练中
+            docDO.setSliceNum(0);
             docDO.setUpdateUser(data.getCreateUser());
             baseMapper.updateById(docDO);
+        });
+
+        DocDO docDO = new DocDO();
+        docDO.setId(data.getId());
+        docDO.setVectorStatus("completed"); // 已完成
+        docDO.setSliceNum(list.size());
+        docDO.setUpdateUser(data.getCreateUser());
+        baseMapper.updateById(docDO);
     }
 
     public List<EmbeddingR> embeddingDocs(ChatReq req) {
@@ -113,7 +113,9 @@ public class DocServiceImpl extends BaseServiceImpl<DocMapper, DocDO, DocResp, D
             List<String> ids = embeddingStore.addAll(embeddings, segments);
 
             for (int i = 0; i < ids.size(); i++) {
-                list.add(new EmbeddingR().setVectorId(ids.get(i)).setText(segments.get(i).text()).setVector(embeddings.get(i).vector()));
+                list.add(new EmbeddingR().setVectorId(ids.get(i))
+                    .setText(segments.get(i).text())
+                    .setVector(embeddings.get(i).vector()));
             }
         } catch (Exception e) {
             e.printStackTrace();

+ 0 - 20
pavis-module-aigc/src/main/java/com/pavis/admin/aigc/service/impl/EmbedStoreServiceImpl.java

@@ -1,21 +1,8 @@
 package com.pavis.admin.aigc.service.impl;
 
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
-import com.pavis.admin.aigc.mapper.DocMapper;
-import com.pavis.admin.aigc.model.entity.DocChunkDO;
-import com.pavis.admin.aigc.model.entity.DocDO;
-import com.pavis.admin.aigc.model.req.SimilaritySearchReq;
-import com.pavis.admin.aigc.model.resp.SimilaritySearchResp;
-import com.pavis.admin.aigc.service.DocService;
-import dev.langchain4j.data.embedding.Embedding;
-import dev.langchain4j.model.embedding.EmbeddingModel;
-import dev.langchain4j.store.embedding.CosineSimilarity;
-import dev.langchain4j.store.embedding.RelevanceScore;
-import jakarta.annotation.Resource;
 import lombok.RequiredArgsConstructor;
 
 import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import top.continew.starter.extension.crud.service.BaseServiceImpl;
@@ -27,13 +14,7 @@ import com.pavis.admin.aigc.model.resp.EmbedStoreDetailResp;
 import com.pavis.admin.aigc.model.resp.EmbedStoreResp;
 import com.pavis.admin.aigc.service.EmbedStoreService;
 
-import java.util.ArrayList;
-import java.util.Comparator;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
-import java.util.PriorityQueue;
-import java.util.stream.Collectors;
 
 /**
  * 向量存储配置业务实现
@@ -50,7 +31,6 @@ public class EmbedStoreServiceImpl extends BaseServiceImpl<EmbedStoreMapper, Emb
         return baseMapper.selEmbedStore();
     }
 
-
     // @Override
     // @Transactional
     // public void clearDocSlices(String docsId) {

+ 62 - 64
pavis-module-aigc/src/main/java/com/pavis/admin/aigc/service/impl/KnowledgeServiceImpl.java

@@ -13,7 +13,6 @@ import lombok.extern.slf4j.Slf4j;
 import org.springframework.stereotype.Service;
 
 import org.springframework.transaction.annotation.Transactional;
-import top.continew.starter.cache.redisson.util.RedisUtils;
 import top.continew.starter.extension.crud.service.BaseServiceImpl;
 import com.pavis.admin.aigc.mapper.KnowledgeMapper;
 import com.pavis.admin.aigc.model.entity.KnowledgeDO;
@@ -49,92 +48,91 @@ public class KnowledgeServiceImpl extends BaseServiceImpl<KnowledgeMapper, Knowl
     public void addDocs(DocDO data) {
         aigcDocsMapper.insert(data);
     }
+
     @Override
     @Transactional
     public void delKnowAndDocAndSlice(Long knowId) {
         // 1. 根据知识库ID删除知识库,文件和切片
-        aigcDocsSliceMapper.delete(new QueryWrapper<DocChunkDO>()
-                .eq("knowledge_id", knowId));
-        aigcDocsMapper.delete(new QueryWrapper<DocDO>()
-                .eq("knowledge_id", knowId));
+        aigcDocsSliceMapper.delete(new QueryWrapper<DocChunkDO>().eq("knowledge_id", knowId));
+        aigcDocsMapper.delete(new QueryWrapper<DocDO>().eq("knowledge_id", knowId));
         baseMapper.deleteById(knowId);
 
     }
 
-// @Override
-// @Transactional
-// public void addDocsSlice(DocChunkDO data) {
-//     aigcDocsSliceMapper.insert(data);
-// }
-
-// @Override
-// @Transactional
-// public void updateDocs(DocDO data) {
-//     aigcDocsMapper.updateById(data);
-// }
-
-// @Override
-// @Transactional
-// public void addDocs(AigcDocs data) {
-//     data.setCreateTime(new Date());
-//     aigcDocsMapper.insert(data);
-// }
-
-// @Override
-// @Transactional
-// public void updateDocs(AigcDocs data) {
-//     aigcDocsMapper.updateById(data);
-// }
-
-// @Override
-// @Transactional
-// public void addDocsSlice(AigcDocsSlice data) {
-//     data.setCreateTime(new Date())
-//             .setWordNum(data.getContent().length())
-//             .setStatus(true)
-//     ;
-//     aigcDocsSliceMapper.insert(data);
-// }
-
-// @Override
-// @Transactional
-// public void updateDocsSlice(AigcDocsSlice data) {
-//     aigcDocsSliceMapper.updateById(data);
-// }
+    // @Override
+    // @Transactional
+    // public void addDocsSlice(DocChunkDO data) {
+    //     aigcDocsSliceMapper.insert(data);
+    // }
+
+    // @Override
+    // @Transactional
+    // public void updateDocs(DocDO data) {
+    //     aigcDocsMapper.updateById(data);
+    // }
+
+    // @Override
+    // @Transactional
+    // public void addDocs(AigcDocs data) {
+    //     data.setCreateTime(new Date());
+    //     aigcDocsMapper.insert(data);
+    // }
+
+    // @Override
+    // @Transactional
+    // public void updateDocs(AigcDocs data) {
+    //     aigcDocsMapper.updateById(data);
+    // }
+
+    // @Override
+    // @Transactional
+    // public void addDocsSlice(AigcDocsSlice data) {
+    //     data.setCreateTime(new Date())
+    //             .setWordNum(data.getContent().length())
+    //             .setStatus(true)
+    //     ;
+    //     aigcDocsSliceMapper.insert(data);
+    // }
+
+    // @Override
+    // @Transactional
+    // public void updateDocsSlice(AigcDocsSlice data) {
+    //     aigcDocsSliceMapper.updateById(data);
+    // }
 
     @Override
     public List<String> listSliceVectorIdsOfDoc(String docsId) {
         LambdaQueryWrapper<DocChunkDO> selectWrapper = Wrappers.<DocChunkDO>lambdaQuery()
-                .select(DocChunkDO::getEmbedStoreId)
-                .eq(DocChunkDO::getDocId, docsId);
+            .select(DocChunkDO::getEmbedStoreId)
+            .eq(DocChunkDO::getDocId, docsId);
         List<String> vectorIds = aigcDocsSliceMapper.selectList(selectWrapper)
-                .stream()
-                .map(DocChunkDO::getEmbedStoreId)
-                .toList();
+            .stream()
+            .map(DocChunkDO::getEmbedStoreId)
+            .toList();
         log.debug("slices of doc: [{}], count: [{}]", docsId, vectorIds.size());
         return vectorIds;
     }
 
-// @Override
-// public List<AigcDocs> getDocsByKb(String knowledgeId) {
-//     return aigcDocsMapper.selectList(Wrappers.<AigcDocs>lambdaQuery()
-//             .eq(AigcDocs::getKnowledgeId, knowledgeId));
-// }
+    // @Override
+    // public List<AigcDocs> getDocsByKb(String knowledgeId) {
+    //     return aigcDocsMapper.selectList(Wrappers.<AigcDocs>lambdaQuery()
+    //             .eq(AigcDocs::getKnowledgeId, knowledgeId));
+    // }
 
     // @Override
-// @Transactional
-// public void removeKnowledge(String knowledgeId) {
-//     baseMapper.deleteById(knowledgeId);
-//     // del docs & docsSlice
-//     List<String> docsIds = getDocsByKb(knowledgeId).stream().map(AigcDocs::getId).toList();
-//     docsIds.forEach(this::removeSlicesOfDoc);
-// }
-//
+    // @Transactional
+    // public void removeKnowledge(String knowledgeId) {
+    //     baseMapper.deleteById(knowledgeId);
+    //     // del docs & docsSlice
+    //     List<String> docsIds = getDocsByKb(knowledgeId).stream().map(AigcDocs::getId).toList();
+    //     docsIds.forEach(this::removeSlicesOfDoc);
+    // }
+    //
     @Override
     @Transactional
     public void removeSlicesOfDoc(String docsId) {
         LambdaQueryWrapper<DocChunkDO> deleteWrapper = Wrappers.<DocChunkDO>lambdaQuery()
-                .eq(DocChunkDO::getDocId, docsId);
+            .eq(DocChunkDO::getDocId, docsId);
         int count = aigcDocsSliceMapper.delete(deleteWrapper);
         log.debug("remove all slices of doc: [{}], count: [{}]", docsId, count);
     }

+ 0 - 1
pavis-webapi/src/main/java/com/pavis/admin/controller/aigc/AgentController.java

@@ -1,6 +1,5 @@
 package com.pavis.admin.controller.aigc;
 
-import com.pavis.admin.aigc.model.entity.AgentKnowledgeDO;
 import com.pavis.admin.aigc.model.entity.KnowledgeDO;
 import com.pavis.admin.aigc.model.entity.ToolDO;
 import com.pavis.admin.aigc.model.req.AgentToolReq;

+ 0 - 3
pavis-webapi/src/main/java/com/pavis/admin/controller/aigc/DocChunkController.java

@@ -1,8 +1,5 @@
 package com.pavis.admin.controller.aigc;
 
-import com.pavis.admin.aigc.core.SpringContextHolder;
-import com.pavis.admin.aigc.event.ProviderRefreshEvent;
-import com.pavis.admin.aigc.model.req.ModelReq;
 import com.pavis.admin.aigc.model.req.SimilaritySearchReq;
 import com.pavis.admin.aigc.model.resp.SimilaritySearchResp;
 import io.swagger.v3.oas.annotations.Operation;

+ 0 - 2
pavis-webapi/src/main/java/com/pavis/admin/controller/aigc/KnowledgeController.java

@@ -15,8 +15,6 @@ import com.pavis.admin.aigc.model.resp.KnowledgeDetailResp;
 import com.pavis.admin.aigc.model.resp.KnowledgeResp;
 import com.pavis.admin.aigc.service.KnowledgeService;
 
-import java.util.List;
-
 /**
  * AIGC知识库管理 API
  *

+ 0 - 1
pavis-webapi/src/main/java/com/pavis/admin/controller/aigc/ModelController.java

@@ -3,7 +3,6 @@ package com.pavis.admin.controller.aigc;
 import com.pavis.admin.aigc.core.SpringContextHolder;
 import com.pavis.admin.aigc.event.ProviderRefreshEvent;
 import io.swagger.v3.oas.annotations.Operation;
-import jakarta.annotation.Resource;
 import top.continew.starter.extension.crud.enums.Api;
 
 import io.swagger.v3.oas.annotations.tags.Tag;

+ 2 - 2
pavis-webapi/src/main/resources/config/application.yml

@@ -1,9 +1,9 @@
 --- ### 项目配置
 project:
   # 名称
-  name: Pavis Admin
+  name: s-privacy Admin
   # 应用名称
-  app-name: pavis-admin
+  app-name: s-privacy-admin
   # 版本
   version: 3.7.0
   # 描述

+ 397 - 221
pavis-webapi/src/main/resources/db/changelog/mysql/main_data.sql

@@ -3,210 +3,386 @@
 -- changeset charles7c:1
 -- comment 初始化表数据
 -- 初始化默认菜单
-INSERT INTO `sys_menu`
-(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`)
-VALUES
-(1000, '系统管理', 0, 1, '/system', 'System', 'Layout', '/system/user', 'settings', b'0', b'0', b'0', NULL, 1, 1, 1, NOW()),
-(1010, '用户管理', 1000, 2, '/system/user', 'SystemUser', 'system/user/index', NULL, 'user', b'0', b'0', b'0', NULL, 1, 1, 1, NOW()),
-(1011, '列表', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:list', 1, 1, 1, NOW()),
-(1012, '详情', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:get', 2, 1, 1, NOW()),
-(1013, '新增', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:create', 3, 1, 1, NOW()),
-(1014, '修改', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:update', 4, 1, 1, NOW()),
-(1015, '删除', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:delete', 5, 1, 1, NOW()),
-(1016, '导出', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:export', 6, 1, 1, NOW()),
-(1017, '导入', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:import', 7, 1, 1, NOW()),
-(1018, '重置密码', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:resetPwd', 8, 1, 1, NOW()),
-(1019, '分配角色', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:updateRole', 9, 1, 1, NOW()),
-
-(1030, '角色管理', 1000, 2, '/system/role', 'SystemRole', 'system/role/index', NULL, 'user-group', b'0', b'0', b'0', NULL, 2, 1, 1, NOW()),
-(1031, '列表', 1030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:role:list', 1, 1, 1, NOW()),
-(1032, '详情', 1030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:role:get', 2, 1, 1, NOW()),
-(1033, '新增', 1030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:role:create', 3, 1, 1, NOW()),
-(1034, '修改', 1030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:role:update', 4, 1, 1, NOW()),
-(1035, '删除', 1030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:role:delete', 5, 1, 1, NOW()),
-(1036, '修改权限', 1030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:role:updatePermission', 6, 1, 1, NOW()),
-(1037, '分配', 1030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:role:assign', 7, 1, 1, NOW()),
-(1038, '取消分配', 1030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:role:unassign', 8, 1, 1, NOW()),
-
-(1050, '菜单管理', 1000, 2, '/system/menu', 'SystemMenu', 'system/menu/index', NULL, 'menu', b'0', b'0', b'0', NULL, 3, 1, 1, NOW()),
-(1051, '列表', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:list', 1, 1, 1, NOW()),
-(1052, '详情', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:get', 2, 1, 1, NOW()),
-(1053, '新增', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:create', 3, 1, 1, NOW()),
-(1054, '修改', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:update', 4, 1, 1, NOW()),
-(1055, '删除', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:delete', 5, 1, 1, NOW()),
-(1056, '清除缓存', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:clearCache', 6, 1, 1, NOW()),
-
-(1070, '部门管理', 1000, 2, '/system/dept', 'SystemDept', 'system/dept/index', NULL, 'mind-mapping', b'0', b'0', b'0', NULL, 4, 1, 1, NOW()),
-(1071, '列表', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:list', 1, 1, 1, NOW()),
-(1072, '详情', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:get', 2, 1, 1, NOW()),
-(1073, '新增', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:create', 3, 1, 1, NOW()),
-(1074, '修改', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:update', 4, 1, 1, NOW()),
-(1075, '删除', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:delete', 5, 1, 1, NOW()),
-(1076, '导出', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:export', 6, 1, 1, NOW()),
-
-(1090, '通知公告', 1000, 2, '/system/notice', 'SystemNotice', 'system/notice/index', NULL, 'notification', b'0', b'0', b'0', NULL, 5, 1, 1, NOW()),
-(1091, '列表', 1090, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:notice:list', 1, 1, 1, NOW()),
-(1092, '公告详情', 1090, 2, '/system/notice/detail', 'SystemNoticeDetail', 'system/notice/detail/index', NULL, NULL, b'0', b'0', b'1', 'system:notice:get', 2, 1, 1, NOW()),
-(1093, '发布公告', 1090, 2, '/system/notice/add', 'SystemNoticeAdd', 'system/notice/add/index', NULL, NULL, b'0', b'0', b'1', 'system:notice:create', 3, 1, 1, NOW()),
-(1094, '修改', 1090, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:notice:update', 4, 1, 1, NOW()),
-(1095, '删除', 1090, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:notice:delete', 5, 1, 1, NOW()),
-
-(1110, '文件管理', 1000, 2, '/system/file', 'SystemFile', 'system/file/index', NULL, 'file', b'0', b'0', b'0', NULL, 6, 1, 1, NOW()),
-(1111, '列表', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:file:list', 1, 1, 1, NOW()),
-(1112, '详情', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:file:get', 2, 1, 1, NOW()),
-(1113, '上传', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:file:upload', 3, 1, 1, NOW()),
-(1114, '修改', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:file:update', 4, 1, 1, NOW()),
-(1115, '删除', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:file:delete', 5, 1, 1, NOW()),
-(1116, '下载', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:file:download', 6, 1, 1, NOW()),
-(1117, '创建文件夹', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:file:createDir', 7, 1, 1, NOW()),
-(1118, '计算文件夹大小', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:file:calcDirSize', 8, 1, 1, NOW()),
-
-(1130, '字典管理', 1000, 2, '/system/dict', 'SystemDict', 'system/dict/index', NULL, 'bookmark', b'0', b'0', b'0', NULL, 7, 1, 1, NOW()),
-(1131, '列表', 1130, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:list', 1, 1, 1, NOW()),
-(1132, '详情', 1130, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:get', 2, 1, 1, NOW()),
-(1133, '新增', 1130, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:create', 3, 1, 1, NOW()),
-(1134, '修改', 1130, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:update', 4, 1, 1, NOW()),
-(1135, '删除', 1130, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:delete', 5, 1, 1, NOW()),
-(1136, '清除缓存', 1130, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:clearCache', 6, 1, 1, NOW()),
-(1140, '字典项管理', 1000, 2, '/system/dict/item', 'SystemDictItem', 'system/dict/item/index', NULL, 'bookmark', b'0', b'0', b'1', NULL, 8, 1, 1, NOW()),
-(1141, '列表', 1140, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dictItem:list', 1, 1, 1, NOW()),
-(1142, '详情', 1140, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dictItem:get', 2, 1, 1, NOW()),
-(1143, '新增', 1140, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dictItem:create', 3, 1, 1, NOW()),
-(1144, '修改', 1140, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dictItem:update', 4, 1, 1, NOW()),
-(1145, '删除', 1140, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dictItem:delete', 5, 1, 1, NOW()),
-
-(1150, '系统配置', 1000, 2, '/system/config', 'SystemConfig', 'system/config/index', NULL, 'config', b'0', b'0', b'0', NULL, 999, 1, 1, NOW()),
-(1160, '网站配置', 1150, 2, '/system/config?tab=site', 'SystemSiteConfig', 'system/config/site/index', NULL, 'apps', b'0', b'0', b'1', NULL, 1, 1, 1, NOW()),
-(1161, '查询', 1160, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:siteConfig:get', 1, 1, 1, NOW()),
-(1162, '修改', 1160, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:siteConfig:update', 2, 1, 1, NOW()),
-(1170, '安全配置', 1150, 2, '/system/config?tab=security', 'SystemSecurityConfig', 'system/config/security/index', NULL, 'safe', b'0', b'0', b'1', NULL, 2, 1, 1, NOW()),
-(1171, '查询', 1170, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:securityConfig:get', 1, 1, 1, NOW()),
-(1172, '修改', 1170, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:securityConfig:update', 2, 1, 1, NOW()),
-(1180, '登录配置', 1150, 2, '/system/config?tab=login', 'SystemLoginConfig', 'system/config/login/index', NULL, 'lock', b'0', b'0', b'1', NULL, 3, 1, 1, NOW()),
-(1181, '查询', 1180, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:loginConfig:get', 1, 1, 1, NOW()),
-(1182, '修改', 1180, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:loginConfig:update', 2, 1, 1, NOW()),
-(1190, '邮件配置', 1150, 2, '/system/config?tab=mail', 'SystemMailConfig', 'system/config/mail/index', NULL, 'email', b'0', b'0', b'1', NULL, 4, 1, 1, NOW()),
-(1191, '查询', 1190, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:mailConfig:get', 1, 1, 1, NOW()),
-(1192, '修改', 1190, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:mailConfig:update', 2, 1, 1, NOW()),
-(1210, '短信配置', 1150, 2, '/system/config?tab=sms', 'SystemSmsConfig', 'system/config/sms/index', NULL, 'message', b'0', b'0', b'1', NULL, 5, 1, 1, NOW()),
-(1211, '列表', 1210, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsConfig:list', 1, 1, 1, NOW()),
-(1212, '详情', 1210, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsConfig:get', 2, 1, 1, NOW()),
-(1213, '新增', 1210, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsConfig:create', 3, 1, 1, NOW()),
-(1214, '修改', 1210, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsConfig:update', 4, 1, 1, NOW()),
-(1215, '删除', 1210, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsConfig:delete', 5, 1, 1, NOW()),
-(1216, '导出', 1210, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsConfig:export', 6, 1, 1, NOW()),
-(1217, '设为默认配置', 1210, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsConfig:setDefault', 7, 1, 1, NOW()),
-(1230, '存储配置', 1150, 2, '/system/config?tab=storage', 'SystemStorage', 'system/config/storage/index', NULL, 'storage', b'0', b'0', b'1', NULL, 6, 1, 1, NOW()),
-(1231, '列表', 1230, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:list', 1, 1, 1, NOW()),
-(1232, '详情', 1230, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:get', 2, 1, 1, NOW()),
-(1233, '新增', 1230, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:create', 3, 1, 1, NOW()),
-(1234, '修改', 1230, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:update', 4, 1, 1, NOW()),
-(1235, '删除', 1230, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:delete', 5, 1, 1, NOW()),
-(1236, '修改状态', 1230, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:updateStatus', 6, 1, 1, NOW()),
-(1237, '设为默认存储', 1230, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:setDefault', 7, 1, 1, NOW()),
-(1250, '客户端配置', 1150, 2, '/system/config?tab=client', 'SystemClient', 'system/config/client/index', NULL, 'mobile', b'0', b'0', b'1', NULL, 7, 1, 1, NOW()),
-(1251, '列表', 1250, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:client:list', 1, 1, 1, NOW()),
-(1252, '详情', 1250, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:client:get', 2, 1, 1, NOW()),
-(1253, '新增', 1250, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:client:create', 3, 1, 1, NOW()),
-(1254, '修改', 1250, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:client:update', 4, 1, 1, NOW()),
-(1255, '删除', 1250, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:client:delete', 5, 1, 1, NOW()),
-
-(2000, '系统监控', 0, 1, '/monitor', 'Monitor', 'Layout', '/monitor/online', 'computer', b'0', b'0', b'0', NULL, 2, 1, 1, NOW()),
-(2010, '在线用户', 2000, 2, '/monitor/online', 'MonitorOnline', 'monitor/online/index', NULL, 'user', b'0', b'0', b'0', NULL, 1, 1, 1, NOW()),
-(2011, '列表', 2010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:online:list', 1, 1, 1, NOW()),
-(2012, '强退', 2010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:online:kickout', 2, 1, 1, NOW()),
-
-(2030, '系统日志', 2000, 2, '/monitor/log', 'MonitorLog', 'monitor/log/index', NULL, 'history', b'0', b'0', b'0', NULL, 2, 1, 1, NOW()),
-(2031, '列表', 2030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:log:list', 1, 1, 1, NOW()),
-(2032, '详情', 2030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:log:get', 2, 1, 1, NOW()),
-(2033, '导出', 2030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:log:export', 3, 1, 1, NOW()),
-
-(2050, '短信日志', 2000, 2, '/system/sms/log', 'SystemSmsLog', 'monitor/sms/log/index', NULL, 'message', b'0', b'0', b'0', NULL, 3, 1, 1, NOW()),
-(2051, '列表', 2050, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsLog:list', 1, 1, 1, NOW()),
-(2052, '删除', 2050, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsLog:delete', 2, 1, 1, NOW()),
-(2053, '导出', 2050, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsLog:export', 3, 1, 1, NOW());
-
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1000, '系统管理', 0, 1, '/system', 'System', 'Layout', '/system/user', 'settings', b'0', b'0', b'0', NULL, 601, 1, 1, '2025-07-04 09:36:30', 1, '2025-07-04 09:55:15');
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1010, '用户管理', 1000, 2, '/system/user', 'SystemUser', 'system/user/index', NULL, 'user', b'0', b'0', b'0', NULL, 1, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1011, '列表', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:list', 1, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1012, '详情', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:get', 2, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1013, '新增', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:create', 3, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1014, '修改', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:update', 4, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1015, '删除', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:delete', 5, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1016, '导出', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:export', 6, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1017, '导入', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:import', 7, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1018, '重置密码', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:resetPwd', 8, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1019, '分配角色', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:updateRole', 9, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1030, '角色管理', 1000, 2, '/system/role', 'SystemRole', 'system/role/index', NULL, 'user-group', b'0', b'0', b'0', NULL, 2, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1031, '列表', 1030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:role:list', 1, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1032, '详情', 1030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:role:get', 2, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1033, '新增', 1030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:role:create', 3, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1034, '修改', 1030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:role:update', 4, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1035, '删除', 1030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:role:delete', 5, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1036, '修改权限', 1030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:role:updatePermission', 6, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1037, '分配', 1030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:role:assign', 7, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1038, '取消分配', 1030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:role:unassign', 8, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1050, '菜单管理', 1000, 2, '/system/menu', 'SystemMenu', 'system/menu/index', NULL, 'menu', b'0', b'0', b'0', NULL, 3, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1051, '列表', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:list', 1, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1052, '详情', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:get', 2, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1053, '新增', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:create', 3, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1054, '修改', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:update', 4, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1055, '删除', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:delete', 5, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1056, '清除缓存', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:clearCache', 6, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1070, '部门管理', 1000, 2, '/system/dept', 'SystemDept', 'system/dept/index', NULL, 'mind-mapping', b'0', b'0', b'0', NULL, 4, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1071, '列表', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:list', 1, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1072, '详情', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:get', 2, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1073, '新增', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:create', 3, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1074, '修改', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:update', 4, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1075, '删除', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:delete', 5, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1076, '导出', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:export', 6, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1090, '通知公告', 1000, 2, '/system/notice', 'SystemNotice', 'system/notice/index', NULL, 'notification', b'0', b'0', b'0', NULL, 5, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1091, '列表', 1090, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:notice:list', 1, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1092, '公告详情', 1090, 2, '/system/notice/detail', 'SystemNoticeDetail', 'system/notice/detail/index', NULL, NULL, b'0', b'0', b'1', 'system:notice:get', 2, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1093, '发布公告', 1090, 2, '/system/notice/add', 'SystemNoticeAdd', 'system/notice/add/index', NULL, NULL, b'0', b'0', b'1', 'system:notice:create', 3, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1094, '修改', 1090, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:notice:update', 4, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1095, '删除', 1090, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:notice:delete', 5, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1110, '文件管理', 1000, 2, '/system/file', 'SystemFile', 'system/file/index', NULL, 'file', b'0', b'0', b'0', NULL, 6, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1111, '列表', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:file:list', 1, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1112, '详情', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:file:get', 2, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1113, '上传', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:file:upload', 3, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1114, '修改', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:file:update', 4, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1115, '删除', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:file:delete', 5, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1116, '下载', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:file:download', 6, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1117, '创建文件夹', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:file:createDir', 7, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1118, '计算文件夹大小', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:file:calcDirSize', 8, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1130, '字典管理', 1000, 2, '/system/dict', 'SystemDict', 'system/dict/index', NULL, 'bookmark', b'0', b'0', b'0', NULL, 7, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1131, '列表', 1130, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:list', 1, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1132, '详情', 1130, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:get', 2, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1133, '新增', 1130, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:create', 3, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1134, '修改', 1130, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:update', 4, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1135, '删除', 1130, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:delete', 5, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1136, '清除缓存', 1130, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:clearCache', 6, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1140, '字典项管理', 1000, 2, '/system/dict/item', 'SystemDictItem', 'system/dict/item/index', NULL, 'bookmark', b'0', b'0', b'1', NULL, 8, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1141, '列表', 1140, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dictItem:list', 1, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1142, '详情', 1140, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dictItem:get', 2, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1143, '新增', 1140, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dictItem:create', 3, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1144, '修改', 1140, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dictItem:update', 4, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1145, '删除', 1140, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dictItem:delete', 5, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1150, '系统配置', 1000, 2, '/system/config', 'SystemConfig', 'system/config/index', NULL, 'config', b'0', b'0', b'0', NULL, 999, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1160, '网站配置', 1150, 2, '/system/config?tab=site', 'SystemSiteConfig', 'system/config/site/index', NULL, 'apps', b'0', b'0', b'1', NULL, 1, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1161, '查询', 1160, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:siteConfig:get', 1, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1162, '修改', 1160, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:siteConfig:update', 2, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1170, '安全配置', 1150, 2, '/system/config?tab=security', 'SystemSecurityConfig', 'system/config/security/index', NULL, 'safe', b'0', b'0', b'1', NULL, 2, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1171, '查询', 1170, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:securityConfig:get', 1, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1172, '修改', 1170, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:securityConfig:update', 2, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1180, '登录配置', 1150, 2, '/system/config?tab=login', 'SystemLoginConfig', 'system/config/login/index', NULL, 'lock', b'0', b'0', b'1', NULL, 3, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1181, '查询', 1180, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:loginConfig:get', 1, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1182, '修改', 1180, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:loginConfig:update', 2, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1190, '邮件配置', 1150, 2, '/system/config?tab=mail', 'SystemMailConfig', 'system/config/mail/index', NULL, 'email', b'0', b'0', b'1', NULL, 4, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1191, '查询', 1190, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:mailConfig:get', 1, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1192, '修改', 1190, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:mailConfig:update', 2, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1210, '短信配置', 1150, 2, '/system/config?tab=sms', 'SystemSmsConfig', 'system/config/sms/index', NULL, 'message', b'0', b'0', b'1', NULL, 5, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1211, '列表', 1210, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsConfig:list', 1, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1212, '详情', 1210, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsConfig:get', 2, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1213, '新增', 1210, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsConfig:create', 3, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1214, '修改', 1210, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsConfig:update', 4, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1215, '删除', 1210, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsConfig:delete', 5, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1216, '导出', 1210, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsConfig:export', 6, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1217, '设为默认配置', 1210, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsConfig:setDefault', 7, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1230, '存储配置', 1150, 2, '/system/config?tab=storage', 'SystemStorage', 'system/config/storage/index', NULL, 'storage', b'0', b'0', b'1', NULL, 6, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1231, '列表', 1230, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:list', 1, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1232, '详情', 1230, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:get', 2, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1233, '新增', 1230, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:create', 3, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1234, '修改', 1230, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:update', 4, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1235, '删除', 1230, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:delete', 5, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1236, '修改状态', 1230, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:updateStatus', 6, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1237, '设为默认存储', 1230, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:setDefault', 7, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1250, '客户端配置', 1150, 2, '/system/config?tab=client', 'SystemClient', 'system/config/client/index', NULL, 'mobile', b'0', b'0', b'1', NULL, 7, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1251, '列表', 1250, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:client:list', 1, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1252, '详情', 1250, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:client:get', 2, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1253, '新增', 1250, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:client:create', 3, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1254, '修改', 1250, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:client:update', 4, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1255, '删除', 1250, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:client:delete', 5, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (2000, '系统监控', 0, 1, '/monitor', 'Monitor', 'Layout', '/monitor/online', 'computer', b'0', b'0', b'0', NULL, 602, 1, 1, '2025-07-04 09:36:30', 1, '2025-07-04 09:55:32');
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (2010, '在线用户', 2000, 2, '/monitor/online', 'MonitorOnline', 'monitor/online/index', NULL, 'user', b'0', b'0', b'0', NULL, 1, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (2011, '列表', 2010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:online:list', 1, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (2012, '强退', 2010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:online:kickout', 2, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (2030, '系统日志', 2000, 2, '/monitor/log', 'MonitorLog', 'monitor/log/index', NULL, 'history', b'0', b'0', b'0', NULL, 2, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (2031, '列表', 2030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:log:list', 1, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (2032, '详情', 2030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:log:get', 2, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (2033, '导出', 2030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:log:export', 3, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (2050, '短信日志', 2000, 2, '/system/sms/log', 'SystemSmsLog', 'monitor/sms/log/index', NULL, 'message', b'0', b'0', b'0', NULL, 3, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (2051, '列表', 2050, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsLog:list', 1, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (2052, '删除', 2050, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsLog:delete', 2, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (2053, '导出', 2050, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsLog:export', 3, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (3000, '任务调度', 0, 1, '/schedule', 'Schedule', 'Layout', '/schedule/job', 'schedule', b'0', b'0', b'0', NULL, 604, 1, 1, '2025-07-04 09:36:30', 1, '2025-07-04 09:56:34');
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (3010, '任务管理', 3000, 2, '/schedule/job', 'ScheduleJob', 'schedule/job/index', NULL, 'select-all', b'0', b'0', b'0', NULL, 1, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (3011, '列表', 3010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'schedule:job:list', 1, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (3012, '详情', 3010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'schedule:job:get', 2, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (3013, '新增', 3010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'schedule:job:create', 3, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (3014, '修改', 3010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'schedule:job:update', 4, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (3015, '删除', 3010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'schedule:job:delete', 5, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (3016, '执行', 3010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'schedule:job:trigger', 6, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (3020, '任务日志', 3000, 2, '/schedule/log', 'ScheduleLog', 'schedule/log/index', NULL, 'find-replace', b'0', b'0', b'0', NULL, 2, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (3021, '列表', 3020, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'schedule:log:list', 1, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (3022, '详情', 3020, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'schedule:log:get', 2, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (3023, '停止', 3020, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'schedule:log:stop', 3, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (3024, '重试', 3020, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'schedule:log:retry', 4, 1, 1, '2025-07-04 09:36:30', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (7000, '能力开放', 0, 1, '/open', 'Open', 'Layout', '/open/app', 'expand', b'0', b'0', b'1', NULL, 603, 1, 1, '2025-07-04 09:36:32', 1, '2025-07-04 13:50:01');
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (7010, '应用管理', 7000, 2, '/open/app', 'OpenApp', 'open/app/index', NULL, 'common', b'0', b'0', b'0', NULL, 1, 1, 1, '2025-07-04 09:36:32', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (7011, '列表', 7010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'open:app:list', 1, 1, 1, '2025-07-04 09:36:32', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (7012, '详情', 7010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'open:app:get', 2, 1, 1, '2025-07-04 09:36:32', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (7013, '新增', 7010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'open:app:create', 3, 1, 1, '2025-07-04 09:36:32', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (7014, '修改', 7010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'open:app:update', 4, 1, 1, '2025-07-04 09:36:32', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (7015, '删除', 7010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'open:app:delete', 5, 1, 1, '2025-07-04 09:36:32', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (7016, '导出', 7010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'open:app:export', 6, 1, 1, '2025-07-04 09:36:32', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (7017, '查看密钥', 7010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'open:app:secret', 7, 1, 1, '2025-07-04 09:36:32', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (7018, '重置密钥', 7010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'open:app:resetSecret', 8, 1, 1, '2025-07-04 09:36:32', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (9000, '代码生成', 0, 1, '/code', 'Code', 'Layout', '/code/generator', 'code-release-managment', b'0', b'0', b'1', NULL, 605, 1, 1, '2025-07-04 09:36:33', 1, '2025-07-04 13:50:54');
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (9010, '代码生成', 9000, 2, '/code/generator', 'CodeGenerator', 'code/generator/index', NULL, 'code', b'0', b'0', b'0', NULL, 1, 1, 1, '2025-07-04 09:36:33', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (9011, '列表', 9010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'code:generator:list', 1, 1, 1, '2025-07-04 09:36:33', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (9012, '配置', 9010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'code:generator:config', 2, 1, 1, '2025-07-04 09:36:33', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (9013, '预览', 9010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'code:generator:preview', 3, 1, 1, '2025-07-04 09:36:33', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (9014, '生成', 9010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'code:generator:generate', 4, 1, 1, '2025-07-04 09:36:33', NULL, NULL);
 INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (699632184289402939, '插件配置', 699628279576928257, 2, '/agent/setting', 'AgentSetting', 'agent/setting/index', NULL, 'settings', b'0', b'0', b'0', NULL, 999, 1, 1, '2025-04-07 14:48:31', 1, '2025-04-07 17:32:08');
 INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (699633026153324615, '模型管理', 699628279576928257, 2, '/agent/modal', 'AgentModal', 'agent/modal/index', NULL, 'common', b'0', b'0', b'0', NULL, 999, 1, 1, '2025-04-07 14:51:52', 1, '2025-06-12 09:27:53');
-INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (720601489373986869, '知识平台', 0, 1, '/knowledge', 'Knowledge', 'Layout', '/embedStore', 'bookmark', b'0', b'0', b'0', NULL, 998, 1, 1, '2025-06-04 11:33:03', 1, '2025-06-11 11:28:37');
-INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (720601846833545272, '知识管理', 720601489373986869, 2, '/knowledge/list', 'KnowledgeList', 'knowledgeBase/libraryList/index', NULL, 'unordered-list', b'0', b'0', b'0', NULL, 998, 1, 1, '2025-06-04 11:34:28', 1, '2025-06-05 10:48:56');
-INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (720602228519403579, '知识库数据', 720601489373986869, 2, '/knowledge/subset/:id', 'KnowledgeSubsetId', 'knowledgeBase/librarySubset/index', NULL, 'strikethrough', b'0', b'1', b'1', NULL, 999, 1, 1, '2025-06-04 11:35:59', NULL, NULL);
-INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (720952593630691523, '向量库管理', 720601489373986869, 2, '/embedStore', 'EmbedStore', 'embedStore/index', NULL, 'storage', b'0', b'0', b'0', NULL, 1, 1, 1, '2025-06-05 10:48:13', NULL, NULL);
-INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (723136976387063839, 'AI应用', 0, 1, '/applay', 'Applay', 'Layout', '/chat', 'archive', b'0', b'0', b'0', NULL, 997, 1, 1, '2025-06-11 11:28:10', 1, '2025-06-11 11:28:47');
-INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (723137424502308906, 'AI聊天助手', 723136976387063839, 2, '/chat', 'Chat', 'aiApply/chatAssistant/index', NULL, 'bookmark', b'0', b'0', b'0', NULL, 1, 1, 1, '2025-06-11 11:29:57', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (720601489373986869, 'AIGC平台', 0, 1, '/knowledge', 'Knowledge', 'Layout', '/embedStore', 'bookmark', b'0', b'0', b'0', NULL, 2, 1, 1, '2025-06-04 11:33:03', 1, '2025-07-04 10:00:32');
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (720601846833545272, 'RAG管理', 720601489373986869, 2, '/knowledge/list', 'KnowledgeList', 'knowledgeBase/libraryList/index', NULL, 'unordered-list', b'0', b'0', b'0', NULL, 2, 1, 1, '2025-06-04 11:34:28', 1, '2025-07-04 13:40:26');
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (720602228519403579, 'RAG数据', 720601489373986869, 2, '/knowledge/subset/:id', 'KnowledgeSubsetId', 'knowledgeBase/librarySubset/index', NULL, 'strikethrough', b'0', b'0', b'1', NULL, 999, 1, 1, '2025-06-04 11:35:59', 1, '2025-07-04 13:40:32');
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (720952593630691523, '向量库管理', 720601489373986869, 2, '/embedStore', 'EmbedStore', 'embedStore/index', NULL, 'storage', b'0', b'0', b'0', NULL, 3, 1, 1, '2025-06-05 10:48:13', 1, '2025-07-04 13:40:29');
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (723136976387063839, 'AIGC应用', 0, 1, '/applay', 'Applay', 'Layout', '/chat', 'archive', b'0', b'0', b'0', NULL, 1, 1, 1, '2025-06-11 11:28:10', 1, '2025-07-04 09:58:15');
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (723137424502308906, '聊天助手', 723136976387063839, 2, '/chat', 'Chat', 'aiApply/chatAssistant/index', NULL, 'bookmark', b'0', b'0', b'0', NULL, 1, 1, 1, '2025-06-11 11:29:57', 1, '2025-07-04 09:53:59');
 INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (723487250461003899, '智能体配置', 699628279576928257, 2, '/agent/agentConfig', 'AgentAgentConfig', 'agent/agentConfig/index', NULL, NULL, b'0', b'0', b'0', NULL, 999, 1, 1, '2025-06-12 10:40:02', NULL, NULL);
 INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (723537469391278142, '工具', 699628279576928257, 2, '/agent/tools', 'AgentTools', 'agent/tools/index', NULL, NULL, b'0', b'0', b'0', NULL, 999, 1, 1, '2025-06-12 13:59:35', NULL, NULL);
-INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (725341748791914504, '模型管理', 720601489373986869, 2, '/agent/modal', 'AgentModal1', 'agent/modal/index', NULL, NULL, b'0', b'0', b'0', NULL, 999, 1, 1, '2025-06-17 13:29:09', 1, '2025-06-24 09:21:24');
-INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (726022776581828679, '智能体管理', 720601489373986869, 2, '/agent/agentConfig', 'AgentAgentConfig1', 'agent/agentConfig/index', NULL, NULL, b'0', b'0', b'0', NULL, 999, 1, 1, '2025-06-19 10:35:19', 1, '2025-06-24 09:21:33');
-INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (727830219385258239, '智能体详情', 720601489373986869, 2, '/agent/agentDetail:id', 'AgentAgentDetailId', 'agent/agentDetail/index', NULL, NULL, b'0', b'1', b'1', NULL, 999, 1, 1, '2025-06-24 10:17:27', 1, '2025-06-24 14:10:50');
-INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (728546342812565536, '工具管理', 720601489373986869, 2, '/agent/tools', 'AgentTools1', 'agent/tools/index', NULL, NULL, b'0', b'0', b'0', NULL, 999, 1, 1, '2025-06-26 09:43:04', NULL, NULL);
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (725341748791914504, '模型管理', 720601489373986869, 2, '/agent/modal', 'AgentModal1', 'agent/modal/index', NULL, 'apps', b'0', b'0', b'0', NULL, 1, 1, 1, '2025-06-17 13:29:09', 1, '2025-07-04 10:05:06');
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (726022776581828679, 'Agent管理', 723136976387063839, 2, '/agent/agentConfig', 'AgentAgentConfig1', 'agent/agentConfig/index', NULL, 'apps', b'0', b'0', b'0', NULL, 999, 1, 1, '2025-06-19 10:35:19', 1, '2025-07-04 13:38:55');
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (727830219385258239, '应用详情', 723136976387063839, 2, '/agent/agentDetail:id', 'AgentAgentDetailId', 'agent/agentDetail/index', NULL, NULL, b'0', b'1', b'1', NULL, 999, 1, 1, '2025-06-24 10:17:27', 1, '2025-07-04 10:07:03');
+INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (728546342812565536, '工具管理', 723136976387063839, 2, '/agent/tools', 'AgentTools1', 'agent/tools/index', NULL, 'tool', b'0', b'0', b'0', NULL, 999, 1, 1, '2025-06-26 09:43:04', 1, '2025-07-04 10:07:57');
+
+
+-- INSERT INTO `sys_menu`
+-- (`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`)
+-- VALUES
+-- (1000, '系统管理', 0, 1, '/system', 'System', 'Layout', '/system/user', 'settings', b'0', b'0', b'0', NULL, 1, 1, 1, NOW()),
+-- (1010, '用户管理', 1000, 2, '/system/user', 'SystemUser', 'system/user/index', NULL, 'user', b'0', b'0', b'0', NULL, 1, 1, 1, NOW()),
+-- (1011, '列表', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:list', 1, 1, 1, NOW()),
+-- (1012, '详情', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:get', 2, 1, 1, NOW()),
+-- (1013, '新增', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:create', 3, 1, 1, NOW()),
+-- (1014, '修改', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:update', 4, 1, 1, NOW()),
+-- (1015, '删除', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:delete', 5, 1, 1, NOW()),
+-- (1016, '导出', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:export', 6, 1, 1, NOW()),
+-- (1017, '导入', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:import', 7, 1, 1, NOW()),
+-- (1018, '重置密码', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:resetPwd', 8, 1, 1, NOW()),
+-- (1019, '分配角色', 1010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:user:updateRole', 9, 1, 1, NOW()),
+--
+-- (1030, '角色管理', 1000, 2, '/system/role', 'SystemRole', 'system/role/index', NULL, 'user-group', b'0', b'0', b'0', NULL, 2, 1, 1, NOW()),
+-- (1031, '列表', 1030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:role:list', 1, 1, 1, NOW()),
+-- (1032, '详情', 1030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:role:get', 2, 1, 1, NOW()),
+-- (1033, '新增', 1030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:role:create', 3, 1, 1, NOW()),
+-- (1034, '修改', 1030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:role:update', 4, 1, 1, NOW()),
+-- (1035, '删除', 1030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:role:delete', 5, 1, 1, NOW()),
+-- (1036, '修改权限', 1030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:role:updatePermission', 6, 1, 1, NOW()),
+-- (1037, '分配', 1030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:role:assign', 7, 1, 1, NOW()),
+-- (1038, '取消分配', 1030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:role:unassign', 8, 1, 1, NOW()),
+--
+-- (1050, '菜单管理', 1000, 2, '/system/menu', 'SystemMenu', 'system/menu/index', NULL, 'menu', b'0', b'0', b'0', NULL, 3, 1, 1, NOW()),
+-- (1051, '列表', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:list', 1, 1, 1, NOW()),
+-- (1052, '详情', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:get', 2, 1, 1, NOW()),
+-- (1053, '新增', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:create', 3, 1, 1, NOW()),
+-- (1054, '修改', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:update', 4, 1, 1, NOW()),
+-- (1055, '删除', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:delete', 5, 1, 1, NOW()),
+-- (1056, '清除缓存', 1050, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:menu:clearCache', 6, 1, 1, NOW()),
+--
+-- (1070, '部门管理', 1000, 2, '/system/dept', 'SystemDept', 'system/dept/index', NULL, 'mind-mapping', b'0', b'0', b'0', NULL, 4, 1, 1, NOW()),
+-- (1071, '列表', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:list', 1, 1, 1, NOW()),
+-- (1072, '详情', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:get', 2, 1, 1, NOW()),
+-- (1073, '新增', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:create', 3, 1, 1, NOW()),
+-- (1074, '修改', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:update', 4, 1, 1, NOW()),
+-- (1075, '删除', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:delete', 5, 1, 1, NOW()),
+-- (1076, '导出', 1070, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dept:export', 6, 1, 1, NOW()),
+--
+-- (1090, '通知公告', 1000, 2, '/system/notice', 'SystemNotice', 'system/notice/index', NULL, 'notification', b'0', b'0', b'0', NULL, 5, 1, 1, NOW()),
+-- (1091, '列表', 1090, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:notice:list', 1, 1, 1, NOW()),
+-- (1092, '公告详情', 1090, 2, '/system/notice/detail', 'SystemNoticeDetail', 'system/notice/detail/index', NULL, NULL, b'0', b'0', b'1', 'system:notice:get', 2, 1, 1, NOW()),
+-- (1093, '发布公告', 1090, 2, '/system/notice/add', 'SystemNoticeAdd', 'system/notice/add/index', NULL, NULL, b'0', b'0', b'1', 'system:notice:create', 3, 1, 1, NOW()),
+-- (1094, '修改', 1090, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:notice:update', 4, 1, 1, NOW()),
+-- (1095, '删除', 1090, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:notice:delete', 5, 1, 1, NOW()),
+--
+-- (1110, '文件管理', 1000, 2, '/system/file', 'SystemFile', 'system/file/index', NULL, 'file', b'0', b'0', b'0', NULL, 6, 1, 1, NOW()),
+-- (1111, '列表', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:file:list', 1, 1, 1, NOW()),
+-- (1112, '详情', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:file:get', 2, 1, 1, NOW()),
+-- (1113, '上传', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:file:upload', 3, 1, 1, NOW()),
+-- (1114, '修改', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:file:update', 4, 1, 1, NOW()),
+-- (1115, '删除', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:file:delete', 5, 1, 1, NOW()),
+-- (1116, '下载', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:file:download', 6, 1, 1, NOW()),
+-- (1117, '创建文件夹', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:file:createDir', 7, 1, 1, NOW()),
+-- (1118, '计算文件夹大小', 1110, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:file:calcDirSize', 8, 1, 1, NOW()),
+--
+-- (1130, '字典管理', 1000, 2, '/system/dict', 'SystemDict', 'system/dict/index', NULL, 'bookmark', b'0', b'0', b'0', NULL, 7, 1, 1, NOW()),
+-- (1131, '列表', 1130, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:list', 1, 1, 1, NOW()),
+-- (1132, '详情', 1130, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:get', 2, 1, 1, NOW()),
+-- (1133, '新增', 1130, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:create', 3, 1, 1, NOW()),
+-- (1134, '修改', 1130, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:update', 4, 1, 1, NOW()),
+-- (1135, '删除', 1130, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:delete', 5, 1, 1, NOW()),
+-- (1136, '清除缓存', 1130, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dict:clearCache', 6, 1, 1, NOW()),
+-- (1140, '字典项管理', 1000, 2, '/system/dict/item', 'SystemDictItem', 'system/dict/item/index', NULL, 'bookmark', b'0', b'0', b'1', NULL, 8, 1, 1, NOW()),
+-- (1141, '列表', 1140, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dictItem:list', 1, 1, 1, NOW()),
+-- (1142, '详情', 1140, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dictItem:get', 2, 1, 1, NOW()),
+-- (1143, '新增', 1140, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dictItem:create', 3, 1, 1, NOW()),
+-- (1144, '修改', 1140, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dictItem:update', 4, 1, 1, NOW()),
+-- (1145, '删除', 1140, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:dictItem:delete', 5, 1, 1, NOW()),
+--
+-- (1150, '系统配置', 1000, 2, '/system/config', 'SystemConfig', 'system/config/index', NULL, 'config', b'0', b'0', b'0', NULL, 999, 1, 1, NOW()),
+-- (1160, '网站配置', 1150, 2, '/system/config?tab=site', 'SystemSiteConfig', 'system/config/site/index', NULL, 'apps', b'0', b'0', b'1', NULL, 1, 1, 1, NOW()),
+-- (1161, '查询', 1160, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:siteConfig:get', 1, 1, 1, NOW()),
+-- (1162, '修改', 1160, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:siteConfig:update', 2, 1, 1, NOW()),
+-- (1170, '安全配置', 1150, 2, '/system/config?tab=security', 'SystemSecurityConfig', 'system/config/security/index', NULL, 'safe', b'0', b'0', b'1', NULL, 2, 1, 1, NOW()),
+-- (1171, '查询', 1170, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:securityConfig:get', 1, 1, 1, NOW()),
+-- (1172, '修改', 1170, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:securityConfig:update', 2, 1, 1, NOW()),
+-- (1180, '登录配置', 1150, 2, '/system/config?tab=login', 'SystemLoginConfig', 'system/config/login/index', NULL, 'lock', b'0', b'0', b'1', NULL, 3, 1, 1, NOW()),
+-- (1181, '查询', 1180, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:loginConfig:get', 1, 1, 1, NOW()),
+-- (1182, '修改', 1180, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:loginConfig:update', 2, 1, 1, NOW()),
+-- (1190, '邮件配置', 1150, 2, '/system/config?tab=mail', 'SystemMailConfig', 'system/config/mail/index', NULL, 'email', b'0', b'0', b'1', NULL, 4, 1, 1, NOW()),
+-- (1191, '查询', 1190, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:mailConfig:get', 1, 1, 1, NOW()),
+-- (1192, '修改', 1190, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:mailConfig:update', 2, 1, 1, NOW()),
+-- (1210, '短信配置', 1150, 2, '/system/config?tab=sms', 'SystemSmsConfig', 'system/config/sms/index', NULL, 'message', b'0', b'0', b'1', NULL, 5, 1, 1, NOW()),
+-- (1211, '列表', 1210, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsConfig:list', 1, 1, 1, NOW()),
+-- (1212, '详情', 1210, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsConfig:get', 2, 1, 1, NOW()),
+-- (1213, '新增', 1210, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsConfig:create', 3, 1, 1, NOW()),
+-- (1214, '修改', 1210, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsConfig:update', 4, 1, 1, NOW()),
+-- (1215, '删除', 1210, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsConfig:delete', 5, 1, 1, NOW()),
+-- (1216, '导出', 1210, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsConfig:export', 6, 1, 1, NOW()),
+-- (1217, '设为默认配置', 1210, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsConfig:setDefault', 7, 1, 1, NOW()),
+-- (1230, '存储配置', 1150, 2, '/system/config?tab=storage', 'SystemStorage', 'system/config/storage/index', NULL, 'storage', b'0', b'0', b'1', NULL, 6, 1, 1, NOW()),
+-- (1231, '列表', 1230, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:list', 1, 1, 1, NOW()),
+-- (1232, '详情', 1230, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:get', 2, 1, 1, NOW()),
+-- (1233, '新增', 1230, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:create', 3, 1, 1, NOW()),
+-- (1234, '修改', 1230, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:update', 4, 1, 1, NOW()),
+-- (1235, '删除', 1230, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:delete', 5, 1, 1, NOW()),
+-- (1236, '修改状态', 1230, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:updateStatus', 6, 1, 1, NOW()),
+-- (1237, '设为默认存储', 1230, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:storage:setDefault', 7, 1, 1, NOW()),
+-- (1250, '客户端配置', 1150, 2, '/system/config?tab=client', 'SystemClient', 'system/config/client/index', NULL, 'mobile', b'0', b'0', b'1', NULL, 7, 1, 1, NOW()),
+-- (1251, '列表', 1250, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:client:list', 1, 1, 1, NOW()),
+-- (1252, '详情', 1250, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:client:get', 2, 1, 1, NOW()),
+-- (1253, '新增', 1250, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:client:create', 3, 1, 1, NOW()),
+-- (1254, '修改', 1250, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:client:update', 4, 1, 1, NOW()),
+-- (1255, '删除', 1250, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'system:client:delete', 5, 1, 1, NOW()),
+--
+-- (2000, '系统监控', 0, 1, '/monitor', 'Monitor', 'Layout', '/monitor/online', 'computer', b'0', b'0', b'0', NULL, 2, 1, 1, NOW()),
+-- (2010, '在线用户', 2000, 2, '/monitor/online', 'MonitorOnline', 'monitor/online/index', NULL, 'user', b'0', b'0', b'0', NULL, 1, 1, 1, NOW()),
+-- (2011, '列表', 2010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:online:list', 1, 1, 1, NOW()),
+-- (2012, '强退', 2010, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:online:kickout', 2, 1, 1, NOW()),
+--
+-- (2030, '系统日志', 2000, 2, '/monitor/log', 'MonitorLog', 'monitor/log/index', NULL, 'history', b'0', b'0', b'0', NULL, 2, 1, 1, NOW()),
+-- (2031, '列表', 2030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:log:list', 1, 1, 1, NOW()),
+-- (2032, '详情', 2030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:log:get', 2, 1, 1, NOW()),
+-- (2033, '导出', 2030, 3, NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL, 'monitor:log:export', 3, 1, 1, NOW()),
+--
+-- (2050, '短信日志', 2000, 2, '/system/sms/log', 'SystemSmsLog', 'monitor/sms/log/index', NULL, 'message', b'0', b'0', b'0', NULL, 3, 1, 1, NOW()),
+-- (2051, '列表', 2050, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsLog:list', 1, 1, 1, NOW()),
+-- (2052, '删除', 2050, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsLog:delete', 2, 1, 1, NOW()),
+-- (2053, '导出', 2050, 3, NULL, NULL, NULL, NULL, NULL, b'0', b'0', b'0', 'system:smsLog:export', 3, 1, 1, NOW());
+--
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (699632184289402939, '插件配置', 699628279576928257, 2, '/agent/setting', 'AgentSetting', 'agent/setting/index', NULL, 'settings', b'0', b'0', b'0', NULL, 999, 1, 1, '2025-04-07 14:48:31', 1, '2025-04-07 17:32:08');
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (699633026153324615, '模型管理', 699628279576928257, 2, '/agent/modal', 'AgentModal', 'agent/modal/index', NULL, 'common', b'0', b'0', b'0', NULL, 999, 1, 1, '2025-04-07 14:51:52', 1, '2025-06-12 09:27:53');
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (720601489373986869, '知识平台', 0, 1, '/knowledge', 'Knowledge', 'Layout', '/embedStore', 'bookmark', b'0', b'0', b'0', NULL, 998, 1, 1, '2025-06-04 11:33:03', 1, '2025-06-11 11:28:37');
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (720601846833545272, '知识管理', 720601489373986869, 2, '/knowledge/list', 'KnowledgeList', 'knowledgeBase/libraryList/index', NULL, 'unordered-list', b'0', b'0', b'0', NULL, 998, 1, 1, '2025-06-04 11:34:28', 1, '2025-06-05 10:48:56');
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (720602228519403579, '知识库数据', 720601489373986869, 2, '/knowledge/subset/:id', 'KnowledgeSubsetId', 'knowledgeBase/librarySubset/index', NULL, 'strikethrough', b'0', b'1', b'1', NULL, 999, 1, 1, '2025-06-04 11:35:59', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (720952593630691523, '向量库管理', 720601489373986869, 2, '/embedStore', 'EmbedStore', 'embedStore/index', NULL, 'storage', b'0', b'0', b'0', NULL, 1, 1, 1, '2025-06-05 10:48:13', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (723136976387063839, 'AI应用', 0, 1, '/applay', 'Applay', 'Layout', '/chat', 'archive', b'0', b'0', b'0', NULL, 997, 1, 1, '2025-06-11 11:28:10', 1, '2025-06-11 11:28:47');
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (723137424502308906, 'AI聊天助手', 723136976387063839, 2, '/chat', 'Chat', 'aiApply/chatAssistant/index', NULL, 'bookmark', b'0', b'0', b'0', NULL, 1, 1, 1, '2025-06-11 11:29:57', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (723487250461003899, '智能体配置', 699628279576928257, 2, '/agent/agentConfig', 'AgentAgentConfig', 'agent/agentConfig/index', NULL, NULL, b'0', b'0', b'0', NULL, 999, 1, 1, '2025-06-12 10:40:02', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (723537469391278142, '工具', 699628279576928257, 2, '/agent/tools', 'AgentTools', 'agent/tools/index', NULL, NULL, b'0', b'0', b'0', NULL, 999, 1, 1, '2025-06-12 13:59:35', NULL, NULL);
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (725341748791914504, '模型管理', 720601489373986869, 2, '/agent/modal', 'AgentModal1', 'agent/modal/index', NULL, NULL, b'0', b'0', b'0', NULL, 999, 1, 1, '2025-06-17 13:29:09', 1, '2025-06-24 09:21:24');
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (726022776581828679, '智能体管理', 720601489373986869, 2, '/agent/agentConfig', 'AgentAgentConfig1', 'agent/agentConfig/index', NULL, NULL, b'0', b'0', b'0', NULL, 999, 1, 1, '2025-06-19 10:35:19', 1, '2025-06-24 09:21:33');
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (727830219385258239, '智能体详情', 720601489373986869, 2, '/agent/agentDetail:id', 'AgentAgentDetailId', 'agent/agentDetail/index', NULL, NULL, b'0', b'1', b'1', NULL, 999, 1, 1, '2025-06-24 10:17:27', 1, '2025-06-24 14:10:50');
+-- INSERT INTO `sys_menu`(`id`, `title`, `parent_id`, `type`, `path`, `name`, `component`, `redirect`, `icon`, `is_external`, `is_cache`, `is_hidden`, `permission`, `sort`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (728546342812565536, '工具管理', 720601489373986869, 2, '/agent/tools', 'AgentTools1', 'agent/tools/index', NULL, NULL, b'0', b'0', b'0', NULL, 999, 1, 1, '2025-06-26 09:43:04', NULL, NULL);
 
 
 -- 初始化默认部门
-INSERT INTO `sys_dept`
-(`id`, `name`, `parent_id`, `ancestors`, `description`, `sort`, `status`, `is_system`, `create_user`, `create_time`)
-VALUES
-(1, 'Xxx科技有限公司', 0, '0', '系统初始部门', 1, 1, b'1', 1, NOW()),
-(547887852587843590, 'Xxx(天津)科技有限公司', 1, '0,1', NULL, 1, 1, b'0', 1, NOW()),
-(547887852587843591, '研发部', 547887852587843590, '0,1,547887852587843590', NULL, 1, 1, b'0', 1, NOW()),
-(547887852587843592, 'UI部', 547887852587843590, '0,1,547887852587843590', NULL, 2, 1, b'0', 1, NOW()),
-(547887852587843593, '测试部', 547887852587843590, '0,1,547887852587843590', NULL, 3, 1, b'0', 1, NOW()),
-(547887852587843594, '运维部', 547887852587843590, '0,1,547887852587843590', NULL, 4, 1, b'0', 1, NOW()),
-(547887852587843595, '研发一组', 547887852587843591, '0,1,547887852587843590,547887852587843591', NULL, 1, 1, b'0', 1, NOW()),
-(547887852587843596, '研发二组', 547887852587843591, '0,1,547887852587843590,547887852587843591', NULL, 2, 2, b'0', 1, NOW()),
-
-(547887852587843597, 'Xxx(四川)科技有限公司', 1, '0,1', NULL, 2, 1, b'0', 1, NOW()),
-(547887852587843598, '研发部', 547887852587843597, '0,1,547887852587843597', NULL, 1, 1, b'0', 1, NOW()),
-(547887852587843599, '研发一组', 547887852587843598, '0,1,547887852587843597,547887852587843598', NULL, 1, 1, b'0', 1, NOW()),
-
-(547887852587843600, 'Xxx(江西)科技有限公司', 1, '0,1', NULL, 3, 1, b'0', 1, NOW()),
-(547887852587843601, '研发部', 547887852587843600, '0,1,547887852587843600', NULL, 1, 1, b'0', 1, NOW()),
-(547887852587843602, '研发一组', 547887852587843601, '0,1,547887852587843600,547887852587843601', NULL, 1, 1, b'0', 1, NOW()),
-
-(547887852587843603, 'Xxx(江苏)科技有限公司', 1, '0,1', NULL, 4, 1, b'0', 1, NOW()),
-(547887852587843604, '研发部', 547887852587843603, '0,1,547887852587843603', NULL, 1, 1, b'0', 1, NOW()),
-(547887852587843605, '研发一组', 547887852587843604, '0,1,547887852587843603,547887852587843604', NULL, 1, 1, b'0', 1, NOW()),
-
-(547887852587843606, 'Xxx(浙江)科技有限公司', 1, '0,1', NULL, 5, 1, b'0', 1, NOW()),
-(547887852587843607, '研发部', 547887852587843606, '0,1,547887852587843606', NULL, 1, 1, b'0', 1, NOW()),
-(547887852587843608, '研发一组', 547887852587843607, '0,1,547887852587843606,547887852587843607', NULL, 1, 1, b'0', 1, NOW()),
-
-(547887852587843609, 'Xxx(湖南)科技有限公司', 1, '0,1', NULL, 6, 1, b'0', 1, NOW()),
-(547887852587843610, '研发部', 547887852587843609, '0,1,547887852587843609', NULL, 1, 1, b'0', 1, NOW()),
-(547887852587843611, '研发一组', 547887852587843610, '0,1,547887852587843609,547887852587843610', NULL, 1, 1, b'0', 1, NOW());
+-- INSERT INTO `sys_dept`
+-- (`id`, `name`, `parent_id`, `ancestors`, `description`, `sort`, `status`, `is_system`, `create_user`, `create_time`)
+-- VALUES
+-- (1, 'Xxx科技有限公司', 0, '0', '系统初始部门', 1, 1, b'1', 1, NOW()),
+-- (547887852587843590, 'Xxx(天津)科技有限公司', 1, '0,1', NULL, 1, 1, b'0', 1, NOW()),
+-- (547887852587843591, '研发部', 547887852587843590, '0,1,547887852587843590', NULL, 1, 1, b'0', 1, NOW()),
+-- (547887852587843592, 'UI部', 547887852587843590, '0,1,547887852587843590', NULL, 2, 1, b'0', 1, NOW()),
+-- (547887852587843593, '测试部', 547887852587843590, '0,1,547887852587843590', NULL, 3, 1, b'0', 1, NOW()),
+-- (547887852587843594, '运维部', 547887852587843590, '0,1,547887852587843590', NULL, 4, 1, b'0', 1, NOW()),
+-- (547887852587843595, '研发一组', 547887852587843591, '0,1,547887852587843590,547887852587843591', NULL, 1, 1, b'0', 1, NOW()),
+-- (547887852587843596, '研发二组', 547887852587843591, '0,1,547887852587843590,547887852587843591', NULL, 2, 2, b'0', 1, NOW()),
+--
+-- (547887852587843597, 'Xxx(四川)科技有限公司', 1, '0,1', NULL, 2, 1, b'0', 1, NOW()),
+-- (547887852587843598, '研发部', 547887852587843597, '0,1,547887852587843597', NULL, 1, 1, b'0', 1, NOW()),
+-- (547887852587843599, '研发一组', 547887852587843598, '0,1,547887852587843597,547887852587843598', NULL, 1, 1, b'0', 1, NOW()),
+--
+-- (547887852587843600, 'Xxx(江西)科技有限公司', 1, '0,1', NULL, 3, 1, b'0', 1, NOW()),
+-- (547887852587843601, '研发部', 547887852587843600, '0,1,547887852587843600', NULL, 1, 1, b'0', 1, NOW()),
+-- (547887852587843602, '研发一组', 547887852587843601, '0,1,547887852587843600,547887852587843601', NULL, 1, 1, b'0', 1, NOW()),
+--
+-- (547887852587843603, 'Xxx(江苏)科技有限公司', 1, '0,1', NULL, 4, 1, b'0', 1, NOW()),
+-- (547887852587843604, '研发部', 547887852587843603, '0,1,547887852587843603', NULL, 1, 1, b'0', 1, NOW()),
+-- (547887852587843605, '研发一组', 547887852587843604, '0,1,547887852587843603,547887852587843604', NULL, 1, 1, b'0', 1, NOW()),
+--
+-- (547887852587843606, 'Xxx(浙江)科技有限公司', 1, '0,1', NULL, 5, 1, b'0', 1, NOW()),
+-- (547887852587843607, '研发部', 547887852587843606, '0,1,547887852587843606', NULL, 1, 1, b'0', 1, NOW()),
+-- (547887852587843608, '研发一组', 547887852587843607, '0,1,547887852587843606,547887852587843607', NULL, 1, 1, b'0', 1, NOW()),
+--
+-- (547887852587843609, 'Xxx(湖南)科技有限公司', 1, '0,1', NULL, 6, 1, b'0', 1, NOW()),
+-- (547887852587843610, '研发部', 547887852587843609, '0,1,547887852587843609', NULL, 1, 1, b'0', 1, NOW()),
+-- (547887852587843611, '研发一组', 547887852587843610, '0,1,547887852587843609,547887852587843610', NULL, 1, 1, b'0', 1, NOW());
+INSERT INTO `sys_dept`(`id`, `name`, `parent_id`, `ancestors`, `description`, `sort`, `status`, `is_system`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1, '苏州派维斯信息科技有限公司', 0, '0', '系统初始部门', 1, 1, b'1', 1, '2025-07-04 09:36:30', 1, '2025-07-04 11:41:07');
+INSERT INTO `sys_dept`(`id`, `name`, `parent_id`, `ancestors`, `description`, `sort`, `status`, `is_system`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (547887852587843590, '总经办', 1, '0,1', NULL, 1, 1, b'0', 1, '2025-07-04 09:36:30', 1, '2025-07-04 11:41:28');
+INSERT INTO `sys_dept`(`id`, `name`, `parent_id`, `ancestors`, `description`, `sort`, `status`, `is_system`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (547887852587843597, '行政人事部', 1, '0,1', NULL, 2, 1, b'0', 1, '2025-07-04 09:36:30', 1, '2025-07-04 13:19:31');
+INSERT INTO `sys_dept`(`id`, `name`, `parent_id`, `ancestors`, `description`, `sort`, `status`, `is_system`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (547887852587843600, '财务部', 1, '0,1', '', 3, 1, b'0', 1, '2025-07-04 09:36:30', 1, '2025-07-04 13:20:15');
+INSERT INTO `sys_dept`(`id`, `name`, `parent_id`, `ancestors`, `description`, `sort`, `status`, `is_system`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (547887852587843603, '研发部', 1, '0,1', NULL, 4, 1, b'0', 1, '2025-07-04 09:36:30', 1, '2025-07-04 13:20:38');
+INSERT INTO `sys_dept`(`id`, `name`, `parent_id`, `ancestors`, `description`, `sort`, `status`, `is_system`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (547887852587843606, '项目组', 1, '0,1', NULL, 5, 1, b'0', 1, '2025-07-04 09:36:30', 1, '2025-07-04 13:21:57');
+INSERT INTO `sys_dept`(`id`, `name`, `parent_id`, `ancestors`, `description`, `sort`, `status`, `is_system`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (731500331548017484, '前端&后端组', 547887852587843603, '0,1,547887852587843603', NULL, 999, 1, b'0', 1, '2025-07-04 13:21:10', NULL, NULL);
+INSERT INTO `sys_dept`(`id`, `name`, `parent_id`, `ancestors`, `description`, `sort`, `status`, `is_system`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (731500366444626767, '算法组', 547887852587843603, '0,1,547887852587843603', NULL, 999, 1, b'0', 1, '2025-07-04 13:21:18', NULL, NULL);
+INSERT INTO `sys_dept`(`id`, `name`, `parent_id`, `ancestors`, `description`, `sort`, `status`, `is_system`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (731500432215507804, '产品&测试组', 547887852587843603, '0,1,547887852587843603', NULL, 999, 1, b'0', 1, '2025-07-04 13:21:34', NULL, NULL);
 
 -- 初始化默认角色
-INSERT INTO `sys_role`
-(`id`, `name`, `code`, `data_scope`, `description`, `sort`, `is_system`, `create_user`, `create_time`)
-VALUES
-(1, '系统管理员', 'admin', 1, '系统初始角色', 1, b'1', 1, NOW()),
-(2, '普通用户', 'general', 4, '系统初始角色', 2, b'1', 1, NOW()),
-(547888897925840927, '测试人员', 'tester', 5, NULL, 3, b'0', 1, NOW()),
-(547888897925840928, '研发人员', 'developer', 4, NULL, 4, b'0', 1, NOW());
+-- INSERT INTO `sys_role`
+-- (`id`, `name`, `code`, `data_scope`, `description`, `sort`, `is_system`, `create_user`, `create_time`)
+-- VALUES
+-- (1, '系统管理员', 'admin', 1, '系统初始角色', 1, b'1', 1, NOW()),
+-- (2, '普通用户', 'general', 4, '系统初始角色', 2, b'1', 1, NOW()),
+-- (547888897925840927, '测试人员', 'tester', 5, NULL, 3, b'0', 1, NOW()),
+-- (547888897925840928, '研发人员', 'developer', 4, NULL, 4, b'0', 1, NOW());
+INSERT INTO `sys_role`(`id`, `name`, `code`, `data_scope`, `description`, `sort`, `is_system`, `menu_check_strictly`, `dept_check_strictly`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (1, '系统管理员', 'admin', 1, '系统初始角色', 1, b'1', b'1', b'1', 1, '2025-07-04 09:36:30', NULL, NULL);
+INSERT INTO `sys_role`(`id`, `name`, `code`, `data_scope`, `description`, `sort`, `is_system`, `menu_check_strictly`, `dept_check_strictly`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (2, '普通用户', 'general', 4, '系统初始角色', 12, b'1', b'1', b'1', 1, '2025-07-04 09:36:30', 1, '2025-07-04 13:38:02');
+INSERT INTO `sys_role`(`id`, `name`, `code`, `data_scope`, `description`, `sort`, `is_system`, `menu_check_strictly`, `dept_check_strictly`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (731501861223269261, '前端工程师', 'FrontEndEngineer', 1, '前端工程师', 7, b'0', b'1', b'1', 1, '2025-07-04 13:27:14', 1, '2025-07-04 13:39:57');
+INSERT INTO `sys_role`(`id`, `name`, `code`, `data_scope`, `description`, `sort`, `is_system`, `menu_check_strictly`, `dept_check_strictly`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (731502284818613148, '后端工程师', 'BackendEngineer', 1, '后端工程师', 5, b'0', b'1', b'1', 1, '2025-07-04 13:28:55', 1, '2025-07-04 13:39:41');
+INSERT INTO `sys_role`(`id`, `name`, `code`, `data_scope`, `description`, `sort`, `is_system`, `menu_check_strictly`, `dept_check_strictly`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (731502442780296096, '算法工程师', 'AlgorithmEngineer', 1, '算法工程师', 6, b'0', b'1', b'1', 1, '2025-07-04 13:29:33', 1, '2025-07-04 13:39:49');
+INSERT INTO `sys_role`(`id`, `name`, `code`, `data_scope`, `description`, `sort`, `is_system`, `menu_check_strictly`, `dept_check_strictly`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (731502638935311268, '测试工程师', 'TestEngineer', 4, '测试工程师', 11, b'0', b'1', b'1', 1, '2025-07-04 13:30:20', 1, '2025-07-04 13:40:25');
+INSERT INTO `sys_role`(`id`, `name`, `code`, `data_scope`, `description`, `sort`, `is_system`, `menu_check_strictly`, `dept_check_strictly`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (731502844514927527, '运维工程师', 'MaintenanceEngineer', 1, '运维工程师', 8, b'0', b'1', b'1', 1, '2025-07-04 13:31:09', 1, '2025-07-04 13:40:08');
+INSERT INTO `sys_role`(`id`, `name`, `code`, `data_scope`, `description`, `sort`, `is_system`, `menu_check_strictly`, `dept_check_strictly`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (731503165517595570, '项目经理', 'ProjectManager', 4, '项目经理', 4, b'0', b'1', b'1', 1, '2025-07-04 13:32:25', 1, '2025-07-04 13:39:20');
+INSERT INTO `sys_role`(`id`, `name`, `code`, `data_scope`, `description`, `sort`, `is_system`, `menu_check_strictly`, `dept_check_strictly`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (731503698601051107, '部门经理', 'DepartmentManager', 3, '部门经理', 3, b'0', b'1', b'1', 1, '2025-07-04 13:34:32', 1, '2025-07-04 13:38:53');
+INSERT INTO `sys_role`(`id`, `name`, `code`, `data_scope`, `description`, `sort`, `is_system`, `menu_check_strictly`, `dept_check_strictly`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (731503945842689001, '总经理', 'GeneralManager', 1, '总经理', 2, b'0', b'1', b'1', 1, '2025-07-04 13:35:31', 1, '2025-07-04 13:38:15');
+INSERT INTO `sys_role`(`id`, `name`, `code`, `data_scope`, `description`, `sort`, `is_system`, `menu_check_strictly`, `dept_check_strictly`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (731504236264686595, '销售经理', 'SalesManager', 4, '销售经理', 10, b'0', b'1', b'1', 1, '2025-07-04 13:36:41', 1, '2025-07-04 13:40:33');
+INSERT INTO `sys_role`(`id`, `name`, `code`, `data_scope`, `description`, `sort`, `is_system`, `menu_check_strictly`, `dept_check_strictly`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (731504363448566800, '产品经理', 'ProductManager', 4, '产品经理', 9, b'0', b'1', b'1', 1, '2025-07-04 13:37:11', 1, '2025-07-04 13:40:41');
+
 
 -- 初始化默认用户:admin/admin123;test/test123
 INSERT INTO `sys_user`
 (`id`, `username`, `nickname`, `password`, `gender`, `email`, `phone`, `avatar`, `description`, `status`, `is_system`, `pwd_reset_time`, `dept_id`, `create_user`, `create_time`)
 VALUES
-(1, 'admin', '系统管理员', '{bcrypt}$2a$10$4jGwK2BMJ7FgVR.mgwGodey8.xR8FLoU1XSXpxJ9nZQt.pufhasSa', 1, '42190c6c5639d2ca4edb4150a35e058559ccf8270361a23745a2fd285a273c28', '5bda89a4609a65546422ea56bfe5eab4', NULL, '系统初始用户', 1, b'1', NOW(), 1, 1, NOW()),
-(547889293968801822, 'test', '测试员', '{bcrypt}$2a$10$xAsoeMJ.jc/kSxhviLAg7.j2iFrhi6yYAdniNdjLiIUWU/BRZl2Ti', 2, NULL, NULL, NULL, NULL, 1, b'0', NOW(), 547887852587843593, 1, NOW()),
-(547889293968801823, 'Charles', 'Charles', '{bcrypt}$2a$10$xAsoeMJ.jc/kSxhviLAg7.j2iFrhi6yYAdniNdjLiIUWU/BRZl2Ti', 1, NULL, NULL, NULL, '代码写到极致,就是艺术。', 1, b'0', NOW(), 547887852587843595, 1, NOW()),
-(547889293968801824, 'Yoofff', 'Yoofff', '{bcrypt}$2a$10$xAsoeMJ.jc/kSxhviLAg7.j2iFrhi6yYAdniNdjLiIUWU/BRZl2Ti', 1, NULL, NULL, NULL, '弱小和无知不是生存的障碍,傲慢才是。', 1, b'0', NOW(), 1, 1, NOW()),
-(547889293968801825, 'Jasmine', 'Jasmine', '{bcrypt}$2a$10$xAsoeMJ.jc/kSxhviLAg7.j2iFrhi6yYAdniNdjLiIUWU/BRZl2Ti', 1, NULL, NULL, NULL, '干就完事了!', 1, b'0', NOW(), 547887852587843605, 1, NOW()),
-(547889293968801826, 'AutumnSail', '秋登', '{bcrypt}$2a$10$xAsoeMJ.jc/kSxhviLAg7.j2iFrhi6yYAdniNdjLiIUWU/BRZl2Ti', 1, NULL, NULL, NULL, '只有追求完美,才能创造奇迹。', 1, b'0', NOW(), 547887852587843602, 1, NOW()),
-(547889293968801827, 'Kils', 'Kils', '{bcrypt}$2a$10$xAsoeMJ.jc/kSxhviLAg7.j2iFrhi6yYAdniNdjLiIUWU/BRZl2Ti', 1, NULL, NULL, NULL, '可以摆烂,但不能真的菜。', 1, b'0', NOW(), 547887852587843599, 1, NOW()),
-(547889293968801828, 'mochou', '莫愁', '{bcrypt}$2a$10$xAsoeMJ.jc/kSxhviLAg7.j2iFrhi6yYAdniNdjLiIUWU/BRZl2Ti', 1, NULL, NULL, NULL, '万事莫愁,皆得所愿。', 1, b'0', NOW(), 547887852587843602, 1, NOW()),
-(547889293968801829, 'Jing', 'MS-Jing', '{bcrypt}$2a$10$xAsoeMJ.jc/kSxhviLAg7.j2iFrhi6yYAdniNdjLiIUWU/BRZl2Ti', 1, NULL, NULL, NULL, '路虽远,行则将至。', 2, b'0', NOW(), 547887852587843599, 1, NOW()),
-(547889293968801830, 'domw', '梓陌', '{bcrypt}$2a$10$xAsoeMJ.jc/kSxhviLAg7.j2iFrhi6yYAdniNdjLiIUWU/BRZl2Ti', 1, NULL, NULL, NULL, '胜利是奖赏,挫折是常态。', 1, b'0', NOW(), 547887852587843608, 1, NOW()),
-(547889293968801831, 'xtanyu', '小熊', '{bcrypt}$2a$10$xAsoeMJ.jc/kSxhviLAg7.j2iFrhi6yYAdniNdjLiIUWU/BRZl2Ti', 1, NULL, NULL, NULL, '不想上班。', 1, b'0', NOW(), 547887852587843611, 1, NOW());
+(1, 'admin', '系统管理员', '{bcrypt}$2a$10$4jGwK2BMJ7FgVR.mgwGodey8.xR8FLoU1XSXpxJ9nZQt.pufhasSa', 1, '42190c6c5639d2ca4edb4150a35e058559ccf8270361a23745a2fd285a273c28', '5bda89a4609a65546422ea56bfe5eab4', NULL, '系统初始用户', 1, b'1', NOW(), 1, 1, NOW());
+-- (547889293968801822, 'test', '测试员', '{bcrypt}$2a$10$xAsoeMJ.jc/kSxhviLAg7.j2iFrhi6yYAdniNdjLiIUWU/BRZl2Ti', 2, NULL, NULL, NULL, NULL, 1, b'0', NOW(), 547887852587843593, 1, NOW()),
+-- (547889293968801823, 'Charles', 'Charles', '{bcrypt}$2a$10$xAsoeMJ.jc/kSxhviLAg7.j2iFrhi6yYAdniNdjLiIUWU/BRZl2Ti', 1, NULL, NULL, NULL, '代码写到极致,就是艺术。', 1, b'0', NOW(), 547887852587843595, 1, NOW()),
+-- (547889293968801824, 'Yoofff', 'Yoofff', '{bcrypt}$2a$10$xAsoeMJ.jc/kSxhviLAg7.j2iFrhi6yYAdniNdjLiIUWU/BRZl2Ti', 1, NULL, NULL, NULL, '弱小和无知不是生存的障碍,傲慢才是。', 1, b'0', NOW(), 1, 1, NOW()),
+-- (547889293968801825, 'Jasmine', 'Jasmine', '{bcrypt}$2a$10$xAsoeMJ.jc/kSxhviLAg7.j2iFrhi6yYAdniNdjLiIUWU/BRZl2Ti', 1, NULL, NULL, NULL, '干就完事了!', 1, b'0', NOW(), 547887852587843605, 1, NOW()),
+-- (547889293968801826, 'AutumnSail', '秋登', '{bcrypt}$2a$10$xAsoeMJ.jc/kSxhviLAg7.j2iFrhi6yYAdniNdjLiIUWU/BRZl2Ti', 1, NULL, NULL, NULL, '只有追求完美,才能创造奇迹。', 1, b'0', NOW(), 547887852587843602, 1, NOW()),
+-- (547889293968801827, 'Kils', 'Kils', '{bcrypt}$2a$10$xAsoeMJ.jc/kSxhviLAg7.j2iFrhi6yYAdniNdjLiIUWU/BRZl2Ti', 1, NULL, NULL, NULL, '可以摆烂,但不能真的菜。', 1, b'0', NOW(), 547887852587843599, 1, NOW()),
+-- (547889293968801828, 'mochou', '莫愁', '{bcrypt}$2a$10$xAsoeMJ.jc/kSxhviLAg7.j2iFrhi6yYAdniNdjLiIUWU/BRZl2Ti', 1, NULL, NULL, NULL, '万事莫愁,皆得所愿。', 1, b'0', NOW(), 547887852587843602, 1, NOW()),
+-- (547889293968801829, 'Jing', 'MS-Jing', '{bcrypt}$2a$10$xAsoeMJ.jc/kSxhviLAg7.j2iFrhi6yYAdniNdjLiIUWU/BRZl2Ti', 1, NULL, NULL, NULL, '路虽远,行则将至。', 2, b'0', NOW(), 547887852587843599, 1, NOW()),
+-- (547889293968801830, 'domw', '梓陌', '{bcrypt}$2a$10$xAsoeMJ.jc/kSxhviLAg7.j2iFrhi6yYAdniNdjLiIUWU/BRZl2Ti', 1, NULL, NULL, NULL, '胜利是奖赏,挫折是常态。', 1, b'0', NOW(), 547887852587843608, 1, NOW()),
+-- (547889293968801831, 'xtanyu', '小熊', '{bcrypt}$2a$10$xAsoeMJ.jc/kSxhviLAg7.j2iFrhi6yYAdniNdjLiIUWU/BRZl2Ti', 1, NULL, NULL, NULL, '不想上班。', 1, b'0', NOW(), 547887852587843611, 1, NOW());
 
 -- 初始化默认参数
 INSERT INTO `sys_option`
 (`id`, `category`, `name`, `code`, `value`, `default_value`, `description`)
 VALUES
-(1, 'SITE', '系统名称', 'SITE_TITLE', NULL, 'Pvs Admin', '显示在浏览器标题栏和登录界面的系统名称'),
-(2, 'SITE', '系统描述', 'SITE_DESCRIPTION', NULL, '持续迭代优化的前后端分离中后台管理系统框架', '用于 SEO 的网站元描述'),
-(3, 'SITE', '版权声明', 'SITE_COPYRIGHT', NULL, 'Copyright © 2025 - present Pvs Admin 版权所有', '显示在页面底部的版权声明文本'),
+(1, 'SITE', '系统名称', 'SITE_TITLE', NULL, 'S-privacy AI', '显示在浏览器标题栏和登录界面的系统名称'),
+(2, 'SITE', '系统描述', 'SITE_DESCRIPTION', NULL, '苏州派维斯AI智能管理系统', '用于 SEO 的网站元描述'),
+(3, 'SITE', '版权声明', 'SITE_COPYRIGHT', NULL, 'Copyright © 2025 - present S-privacy AI 版权所有', '显示在页面底部的版权声明文本'),
 (4, 'SITE', '备案号', 'SITE_BEIAN', NULL, NULL, '工信部 ICP 备案编号(如:京ICP备12345678号)'),
 (5, 'SITE', '系统图标', 'SITE_FAVICON', NULL, '/favicon.ico', '浏览器标签页显示的网站图标(建议 .ico 格式)'),
 (6, 'SITE', '系统LOGO', 'SITE_LOGO', NULL, '/logo.svg', '显示在登录页面和系统导航栏的网站图标(建议 .svg 格式)'),
@@ -221,7 +397,7 @@ VALUES
 (20, 'MAIL', '邮件协议', 'MAIL_PROTOCOL', NULL, 'smtp', '邮件发送协议类型'),
 (21, 'MAIL', '服务器地址', 'MAIL_HOST', NULL, 'smtp.126.com', '邮件服务器地址'),
 (22, 'MAIL', '服务器端口', 'MAIL_PORT', NULL, '465', '邮件服务器连接端口'),
-(23, 'MAIL', '邮箱账号', 'MAIL_USERNAME', NULL, 'charles7c@126.com', '发件人邮箱地址'),
+(23, 'MAIL', '邮箱账号', 'MAIL_USERNAME', NULL, 'huakanglee@s-privacy.com', '发件人邮箱地址'),
 (24, 'MAIL', '邮箱密码', 'MAIL_PASSWORD', NULL, NULL, '服务授权密码/客户端专用密码'),
 (25, 'MAIL', '启用SSL加密', 'MAIL_SSL_ENABLED', NULL, '1', '是否启用SSL/TLS加密连接'),
 (26, 'MAIL', 'SSL端口号', 'MAIL_SSL_PORT', NULL, '465', 'SSL加密连接的备用端口(通常与主端口一致)'),
@@ -254,45 +430,45 @@ VALUES
 INSERT INTO `sys_user_role`
 (`id`, `user_id`, `role_id`)
 VALUES
-(1, 1, 1),
-(2, 547889293968801822, 547888897925840927),
-(3, 547889293968801823, 547888897925840928),
-(4, 547889293968801824, 547888897925840928),
-(5, 547889293968801825, 547888897925840928),
-(6, 547889293968801826, 547888897925840928),
-(7, 547889293968801827, 547888897925840928),
-(8, 547889293968801828, 547888897925840928),
-(9, 547889293968801829, 547888897925840928),
-(10, 547889293968801830, 547888897925840928),
-(11, 547889293968801831, 547888897925840928);
+(1, 1, 1);
+-- (2, 547889293968801822, 547888897925840927),
+-- (3, 547889293968801823, 547888897925840928),
+-- (4, 547889293968801824, 547888897925840928),
+-- (5, 547889293968801825, 547888897925840928),
+-- (6, 547889293968801826, 547888897925840928),
+-- (7, 547889293968801827, 547888897925840928),
+-- (8, 547889293968801828, 547888897925840928),
+-- (9, 547889293968801829, 547888897925840928),
+-- (10, 547889293968801830, 547888897925840928),
+-- (11, 547889293968801831, 547888897925840928);
 
 -- 初始化默认角色和菜单关联数据
-INSERT INTO `sys_role_menu`
-(`role_id`, `menu_id`)
-VALUES
-(547888897925840927, 1000),
-(547888897925840927, 1010),
-(547888897925840927, 1011),
-(547888897925840927, 1012),
-(547888897925840927, 1013),
-(547888897925840927, 1014),
-(547888897925840928, 2000),
-(547888897925840928, 2010),
-(547888897925840928, 2011),
-(547888897925840928, 2020),
-(547888897925840928, 2021),
-(547888897925840928, 2022),
-(547888897925840928, 2023);
+-- INSERT INTO `sys_role_menu`
+-- (`role_id`, `menu_id`)
+-- VALUES
+-- (547888897925840927, 1000),
+-- (547888897925840927, 1010),
+-- (547888897925840927, 1011),
+-- (547888897925840927, 1012),
+-- (547888897925840927, 1013),
+-- (547888897925840927, 1014),
+-- (547888897925840928, 2000),
+-- (547888897925840928, 2010),
+-- (547888897925840928, 2011),
+-- (547888897925840928, 2020),
+-- (547888897925840928, 2021),
+-- (547888897925840928, 2022),
+-- (547888897925840928, 2023);
 
 -- 初始化默认角色和部门关联数据
-INSERT INTO `sys_role_dept` (`role_id`, `dept_id`) VALUES (547888897925840927, 547887852587843593);
+-- INSERT INTO `sys_role_dept` (`role_id`, `dept_id`) VALUES (547888897925840927, 547887852587843593);
 
 -- 初始化默认存储
 INSERT INTO `sys_storage`
 (`id`, `name`, `code`, `type`, `access_key`, `secret_key`, `endpoint`, `bucket_name`, `domain`, `description`, `is_default`, `sort`, `status`, `create_user`, `create_time`)
 VALUES
 (1, '开发环境', 'local_dev', 1, NULL, NULL, NULL, 'C:/pvs-admin/data/file/', 'http://localhost:5555/file/', '本地存储', b'1', 1, 1, 1, NOW()),
-(2, '生产环境', 'local_prod', 1, NULL, NULL, NULL, '/data/file/', 'http://192.168.1.202/file/', '本地存储', b'0', 2, 2, 1, NOW());
+(2, '生产环境', 'local_prod', 1, NULL, NULL, NULL, '/data/file/', 'http://192.168.1.202:13089/file/', '本地存储', b'0', 2, 2, 1, NOW());
 
 -- 初始化客户端数据
 INSERT INTO `sys_client`
@@ -301,14 +477,14 @@ VALUES
 (1, 'ef51c9a3e9046c4f2ea45142c8a8344a', 'PC', '["ACCOUNT", "EMAIL", "PHONE", "SOCIAL"]', 1800, 86400, 1, 1, NOW());
 
 
-INSERT INTO `aigc_model`(`id`, `type`, `model`, `version`, `provider`, `name`, `description`, `status`, `response_limit`, `max_tokens`, `temperature`, `top_p`, `azure_deployment_name`, `gemini_project`, `gemini_location`, `image_size`, `image_quality`, `image_style`, `timeout`, `retry_strategy`, `rate_limit`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (723177214056632323, 'CHAT', 'qwen-plus', NULL, 'Q_WEN', '阿里模型', NULL, 1, 2000, 4096, 0.3, 0.8, NULL, NULL, NULL, '1024x1024', 'standard', 'vivid', 30, 'linear', 1000, 1, '2025-06-11 14:08:04', 1, '2025-06-12 16:49:07');
-INSERT INTO `aigc_model`(`id`, `type`, `model`, `version`, `provider`, `name`, `description`, `status`, `response_limit`, `max_tokens`, `temperature`, `top_p`, `azure_deployment_name`, `gemini_project`, `gemini_location`, `image_size`, `image_quality`, `image_style`, `timeout`, `retry_strategy`, `rate_limit`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (723482042041405473, 'EMBEDDING', 'text-embedding-v3', NULL, 'Q_WEN', '阿里词嵌入模型', NULL, 1, 0, 4096, 0.2, 0, NULL, NULL, NULL, '1024x1024', 'standard', 'vivid', 30, 'linear', 1000, 1, '2025-06-12 10:19:20', 1, '2025-06-17 11:15:16');
-INSERT INTO `aigc_model`(`id`, `type`, `model`, `version`, `provider`, `name`, `description`, `status`, `response_limit`, `max_tokens`, `temperature`, `top_p`, `azure_deployment_name`, `gemini_project`, `gemini_location`, `image_size`, `image_quality`, `image_style`, `timeout`, `retry_strategy`, `rate_limit`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (725341942283546638, 'CHAT', 'deepseek-chat', NULL, 'DEEPSEEK', 'deepseek', NULL, 1, 8192, 4096, 0.2, 0.8, NULL, NULL, NULL, '1024x1024', 'standard', 'vivid', 30, 'linear', 1000, 1, '2025-06-17 13:29:55', NULL, NULL);
-INSERT INTO `aigc_model`(`id`, `type`, `model`, `version`, `provider`, `name`, `description`, `status`, `response_limit`, `max_tokens`, `temperature`, `top_p`, `azure_deployment_name`, `gemini_project`, `gemini_location`, `image_size`, `image_quality`, `image_style`, `timeout`, `retry_strategy`, `rate_limit`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (727939731588956211, 'EMBEDDING', 'text-embedding-3-large', NULL, 'OPENAI', 'tools', NULL, 1, 4096, 4096, 0.7, 1, NULL, NULL, NULL, '1024x1024', 'standard', 'vivid', 30, 'linear', 1000, 1, '2025-06-24 17:32:36', 1, '2025-06-25 09:33:45');
-INSERT INTO `aigc_model`(`id`, `type`, `model`, `version`, `provider`, `name`, `description`, `status`, `response_limit`, `max_tokens`, `temperature`, `top_p`, `azure_deployment_name`, `gemini_project`, `gemini_location`, `image_size`, `image_quality`, `image_style`, `timeout`, `retry_strategy`, `rate_limit`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (728305712945479826, 'CHAT', 'qwen-max', NULL, 'Q_WEN', '通义千问-max', NULL, 1, 2000, 4096, 0.2, 0.8, NULL, NULL, NULL, '1024x1024', 'standard', 'vivid', 30, 'linear', 1000, 1, '2025-06-25 17:46:53', 1, '2025-06-25 17:53:02');
+INSERT INTO `aigc_model`(`id`, `type`, `model`, `version`, `provider`, `name`, `description`, `status`, `response_limit`, `max_tokens`, `temperature`, `top_p`, `azure_deployment_name`, `gemini_project`, `gemini_location`, `image_size`, `image_quality`, `image_style`, `timeout`, `retry_strategy`, `rate_limit`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (723177214056632323, 'CHAT', 'qwen-plus', NULL, 'Q_WEN', '阿里模型', NULL, 1, 2000, 4096, 0.3, 0.8, NULL, NULL, NULL, '1024x1024', 'standard', 'vivid', 30, 'linear', 1000, 1, NOW(), null, null);
+INSERT INTO `aigc_model`(`id`, `type`, `model`, `version`, `provider`, `name`, `description`, `status`, `response_limit`, `max_tokens`, `temperature`, `top_p`, `azure_deployment_name`, `gemini_project`, `gemini_location`, `image_size`, `image_quality`, `image_style`, `timeout`, `retry_strategy`, `rate_limit`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (723482042041405473, 'EMBEDDING', 'text-embedding-v3', NULL, 'Q_WEN', '阿里词嵌入模型', NULL, 1, 0, 4096, 0.2, 0, NULL, NULL, NULL, '1024x1024', 'standard', 'vivid', 30, 'linear', 1000, 1, NOW(), NULL, NULL);
+INSERT INTO `aigc_model`(`id`, `type`, `model`, `version`, `provider`, `name`, `description`, `status`, `response_limit`, `max_tokens`, `temperature`, `top_p`, `azure_deployment_name`, `gemini_project`, `gemini_location`, `image_size`, `image_quality`, `image_style`, `timeout`, `retry_strategy`, `rate_limit`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (725341942283546638, 'CHAT', 'deepseek-chat', NULL, 'DEEPSEEK', 'deepseek', NULL, 1, 8192, 4096, 0.2, 0.8, NULL, NULL, NULL, '1024x1024', 'standard', 'vivid', 30, 'linear', 1000, 1, NOW(), NULL, NULL);
+INSERT INTO `aigc_model`(`id`, `type`, `model`, `version`, `provider`, `name`, `description`, `status`, `response_limit`, `max_tokens`, `temperature`, `top_p`, `azure_deployment_name`, `gemini_project`, `gemini_location`, `image_size`, `image_quality`, `image_style`, `timeout`, `retry_strategy`, `rate_limit`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (727939731588956211, 'EMBEDDING', 'text-embedding-3-large', NULL, 'OPENAI', 'tools', NULL, 1, 4096, 4096, 0.7, 1, NULL, NULL, NULL, '1024x1024', 'standard', 'vivid', 30, 'linear', 1000, 1, NOW(), NULL, NULL);
+INSERT INTO `aigc_model`(`id`, `type`, `model`, `version`, `provider`, `name`, `description`, `status`, `response_limit`, `max_tokens`, `temperature`, `top_p`, `azure_deployment_name`, `gemini_project`, `gemini_location`, `image_size`, `image_quality`, `image_style`, `timeout`, `retry_strategy`, `rate_limit`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (728305712945479826, 'CHAT', 'qwen-max', NULL, 'Q_WEN', '通义千问-max', NULL, 1, 2000, 4096, 0.2, 0.8, NULL, NULL, NULL, '1024x1024', 'standard', 'vivid', 30, 'linear', 1000, 1, NOW(), NULL, NULL);
 
 
-INSERT INTO `sys_client`(`id`, `client_id`, `client_type`, `auth_type`, `active_timeout`, `timeout`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (727480501455077713, '7a1958fafed3268a7515b083bd6f144f', 'XCX', '[\"PHONE\", \"ACCOUNT\", \"EMAIL\", \"SOCIAL\"]', -1, -1, 1, 1, '2025-06-23 11:07:47', 1, '2025-06-23 11:22:46');
+INSERT INTO `sys_client`(`id`, `client_id`, `client_type`, `auth_type`, `active_timeout`, `timeout`, `status`, `create_user`, `create_time`, `update_user`, `update_time`) VALUES (727480501455077713, '7a1958fafed3268a7515b083bd6f144f', 'XCX', '[\"PHONE\", \"ACCOUNT\", \"EMAIL\", \"SOCIAL\"]', -1, -1, 1, 1,NOW(), null, null);
 
 INSERT INTO aigc_agent (id, name, code, agent_type, description, system_prompt, next_step_prompt, model_id, icon,
                         config, max_steps, timeout, runtime_status, status, version, create_user, create_time,