9 天以前 4d9450919dccd9b20d4fc21f9288148c9257da61
feat(ai): 添加审批待办助手功能

- 集成 langchain4j 配置,支持多种 AI 模型包括 DashScope、OpenAI 和 Ollama
- 配置 MongoDB 存储聊天记忆,替换原有的 Redis 配置
- 添加审批待办助手的 Prompt 提示词文件
- 创建 ApproveTodoAgent 接口和相关配置类
- 实现 ApproveTodoIntentExecutor 意图执行器,支持审批相关操作识别
- 开发 ApproveTodoTools 工具类,提供审批待办的增删改查和统计功能
- 实现完整的审批流程管理,包括审核、驳回、修改、删除等操作
- 添加审批数据统计分析功能,支持状态分布和趋势图表
- 集成 ECharts 图表配置,便于前端展示统计结果
已修改3个文件
22 ■■■■ 文件已修改
src/main/java/com/ruoyi/ai/config/XiaozhiAgentConfig.java 17 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application-dev.yml 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/ruoyi/ai/config/XiaozhiAgentConfig.java
@@ -1,15 +1,24 @@
package com.ruoyi.ai.config;
import com.ruoyi.ai.store.MongoChatMemoryStore;
import dev.langchain4j.data.document.Document;
import dev.langchain4j.data.document.loader.FileSystemDocumentLoader;
import dev.langchain4j.data.segment.TextSegment;
import dev.langchain4j.memory.chat.ChatMemoryProvider;
import dev.langchain4j.memory.chat.MessageWindowChatMemory;
import dev.langchain4j.model.embedding.EmbeddingModel;
import dev.langchain4j.rag.content.retriever.ContentRetriever;
import dev.langchain4j.rag.content.retriever.EmbeddingStoreContentRetriever;
import dev.langchain4j.store.embedding.EmbeddingStore;
import dev.langchain4j.store.embedding.EmbeddingStoreIngestor;
import dev.langchain4j.store.embedding.inmemory.InMemoryEmbeddingStore;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import java.util.Collections;
import java.util.List;
/**
 * @author :yys
@@ -26,8 +35,8 @@
    @Autowired
    private EmbeddingModel embeddingModel;
//    @Value("${knowledge.one}")
//    private String one;
    @Value("${knowledge.one}")
    private String one;
//
//    @Value("${knowledge.two}")
//    private String two;
@@ -48,12 +57,12 @@
//    ContentRetriever contentRetrieverXiaozhi() {
//        //使用FileSystemDocumentLoader读取指定目录下的知识库文档
//        //并使用默认的文档解析器对文档进行解析
////        Document document1 = FileSystemDocumentLoader.loadDocument(one);
//        Document document1 = FileSystemDocumentLoader.loadDocument(one);
////        Document document2 = FileSystemDocumentLoader.loadDocument(two);
////        Document document3 = FileSystemDocumentLoader.loadDocument(three);
////        List<Document> documents = Arrays.asList(document1, document2, document3);
//
////        List<Document> documents = Collections.singletonList(document1);
//        List<Document> documents = Collections.singletonList(document1);
////         2. 将数据库数据转为LangChain4j的Document对象
////        List<Document> documents = new ArrayList<>();
//
src/main/resources/application-dev.yml
@@ -257,3 +257,5 @@
file:
  temp-dir: D:/ruoyi/temp/uploads   # 临时目录
  upload-dir: D:/ruoyi/prod/uploads # 正式目录
knowledge:
  one: D:\新疆大罗素企业产品体系说明文档.md
src/main/resources/application.yml
@@ -38,5 +38,4 @@
      model-name: "deepseek-r1:1.5b"
      log-requests: true
      log-responses: true
knowledge:
  one: D:\新疆大罗素企业产品体系说明文档.md