Quellcode durchsuchen

调整分支功能

wanggaokun vor 1 Monat
Ursprung
Commit
c9d75aabfc
43 geänderte Dateien mit 0 neuen und 1729 gelöschten Zeilen
  1. 0 17
      eco-ai/ai-knowledge-api/pom.xml
  2. 0 46
      eco-ai/ai-knowledge-biz/pom.xml
  3. 0 45
      eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/config/MilvusConfig.java
  4. 0 71
      eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/constant/MilvusConstant.java
  5. 0 55
      eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/controller/KnowledgeController.java
  6. 0 88
      eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/domain/knowledge/Knowledge.java
  7. 0 19
      eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/mapper/KnowledgeMapper.java
  8. 0 20
      eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/service/EmbeddingService.java
  9. 0 17
      eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/service/IEmbeddingService.java
  10. 0 26
      eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/service/IKnowledgeService.java
  11. 0 33
      eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/service/IMilvusService.java
  12. 0 24
      eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/service/KnowledgeService.java
  13. 0 163
      eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/service/MilvusService.java
  14. 0 90
      eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/vectorstore/MilvusVectorStores.java
  15. 0 17
      eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/vectorstore/VectorStores.java
  16. 0 1
      eco-ai/ai-knowledge-biz/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  17. 0 17
      eco-ai/ai-ollama-api/pom.xml
  18. 0 17
      eco-ai/ai-ollama-api/src/main/java/org/eco/vip/ai/ollama/api/api/IAiOllamaApi.java
  19. 0 45
      eco-ai/ai-ollama-biz/pom.xml
  20. 0 30
      eco-ai/ai-ollama-biz/src/main/java/org/eco/vip/ai/ollama/api/AiOllamaApi.java
  21. 0 62
      eco-ai/ai-ollama-biz/src/main/java/org/eco/vip/ai/ollama/controller/OllamaController.java
  22. 0 99
      eco-ai/ai-ollama-biz/src/main/java/org/eco/vip/ai/ollama/service/IOllamaService.java
  23. 0 63
      eco-ai/ai-ollama-biz/src/main/java/org/eco/vip/ai/ollama/service/OllamaService.java
  24. 0 23
      eco-ai/ai-text-sql-api/pom.xml
  25. 0 21
      eco-ai/ai-text-sql-api/src/main/java/org/eco/vip/text2sql/api/IText2sqlApi.java
  26. 0 23
      eco-ai/ai-text-sql-api/src/main/java/org/eco/vip/text2sql/domain/ContentVo.java
  27. 0 42
      eco-ai/ai-text-sql-biz/pom.xml
  28. 0 37
      eco-ai/ai-text-sql-biz/src/main/java/org/eco/vip/ai/text2sql/api/Text2sqlApi.java
  29. 0 37
      eco-ai/ai-text-sql-biz/src/main/java/org/eco/vip/ai/text2sql/config/TableMapPropertiesConfig.java
  30. 0 55
      eco-ai/ai-text-sql-biz/src/main/java/org/eco/vip/ai/text2sql/controller/ChatSqlController.java
  31. 0 21
      eco-ai/ai-text-sql-biz/src/main/java/org/eco/vip/ai/text2sql/domain/CommentVo.java
  32. 0 39
      eco-ai/ai-text-sql-biz/src/main/java/org/eco/vip/ai/text2sql/mapper/Text2SqlMapper.java
  33. 0 28
      eco-ai/ai-text-sql-biz/src/main/java/org/eco/vip/ai/text2sql/properties/TableMapProperties.java
  34. 0 68
      eco-ai/ai-text-sql-biz/src/main/java/org/eco/vip/ai/text2sql/service/IText2SqlService.java
  35. 0 45
      eco-ai/ai-text-sql-biz/src/main/java/org/eco/vip/ai/text2sql/service/TableNameService.java
  36. 0 122
      eco-ai/ai-text-sql-biz/src/main/java/org/eco/vip/ai/text2sql/service/Text2SqlService.java
  37. 0 31
      eco-ai/ai-text-sql-biz/src/main/java/org/eco/vip/ai/text2sql/utils/SqlValidator.java
  38. 0 1
      eco-ai/ai-text-sql-biz/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports
  39. 0 15
      eco-ai/ai-text-sql-biz/src/main/resources/mapper/Text2SqlMapper.xml
  40. 0 25
      eco-ai/pom.xml
  41. 0 15
      eco-bom/pom.xml
  42. 0 15
      eco-start/pom.xml
  43. 0 1
      pom.xml

+ 0 - 17
eco-ai/ai-knowledge-api/pom.xml

@@ -1,17 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.eco.vip</groupId>
-        <artifactId>eco-ai</artifactId>
-        <version>${revision}</version>
-    </parent>
-
-    <artifactId>ai-knowledge-api</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>jar</packaging>
-    <description>
-        调用知识库 API,暴露给其它模块调用
-    </description>
-
-</project>

+ 0 - 46
eco-ai/ai-knowledge-biz/pom.xml

@@ -1,46 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.eco.vip</groupId>
-        <artifactId>eco-ai</artifactId>
-        <version>${revision}</version>
-    </parent>
-
-    <artifactId>ai-knowledge-biz</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>jar</packaging>
-
-    <description>
-        知识库实现
-    </description>
-    <dependencies>
-        <dependency>
-            <groupId>org.eco.vip</groupId>
-            <artifactId>ai-knowledge-api</artifactId>
-            <version>${revision}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.eco.vip</groupId>
-            <artifactId>com-web</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.eco.vip</groupId>
-            <artifactId>com-orm</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.ai</groupId>
-            <artifactId>spring-ai-milvus-store</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.eco.vip</groupId>
-            <artifactId>ai-ollama-biz</artifactId>
-        </dependency>
-
-    </dependencies>
-
-</project>

+ 0 - 45
eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/config/MilvusConfig.java

@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.knowledge.config;
-
-
-import io.milvus.client.MilvusServiceClient;
-import io.milvus.param.ConnectParam;
-import io.milvus.v2.client.ConnectConfig;
-import io.milvus.v2.client.MilvusClientV2;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.boot.autoconfigure.AutoConfiguration;
-import org.springframework.context.annotation.Bean;
-
-/**
- * @description MilvusConfig
- *
- * @author GaoKunW
- * @date 2025/3/18 15:10
- */
-@AutoConfiguration
-public class MilvusConfig {
-    @Value("${milvus.host}")
-    private String host;
-
-    @Value("${milvus.port}")
-    private Integer port;
-
-    @Bean
-    public MilvusClientV2 milvusClientV2() {
-        String uri = "http://" + this.host + ":" + this.port.toString();
-        return new MilvusClientV2(ConnectConfig.builder().uri(uri).build());
-    }
-
-    @Bean
-    public MilvusServiceClient milvusServiceClient() {
-        ConnectParam connectParam = ConnectParam.newBuilder()
-                .withHost(host)
-                .withPort(port)
-                .build();
-        return new MilvusServiceClient(connectParam);
-    }
-}

+ 0 - 71
eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/constant/MilvusConstant.java

@@ -1,71 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.knowledge.constant;
-
-
-/**
- * @description MilvusConstant
- *
- * @author GaoKunW
- * @date 2025/3/17 01:02
- */
-public class MilvusConstant {
-    /**
-     * 向量数据库名称
-     */
-    public static final String DB_NAME = "default";
-
-    /**
-     * 集合名称
-     */
-    public static final String COLLECTION_NAME = "rag_collection";
-
-    /**
-     * 分片数量
-     */
-    public static final int SHARDS_NUM = 1;
-
-    /**
-     * 分区数量
-     */
-    public static final int PARTITION_NUM = 1;
-
-    /**
-     * 特征向量维度
-     */
-    public static final Integer FEATURE_DIM = 768;
-
-    /**
-     * 字段
-     */
-    public static class Field {
-
-        /**
-         * id
-         */
-        public static final String ID = "id";
-
-        /**
-         * 文本特征向量
-         */
-        public static final String FEATURE = "feature";
-
-        /**
-         * 文本
-         */
-        public static final String TEXT = "text";
-
-        /**
-         * 文件名
-         */
-        public static final String FILE_NAME = "file_name";
-
-        /**
-         * 元数据
-         */
-        public static final String METADATA = "metadata";
-    }
-}

+ 0 - 55
eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/controller/KnowledgeController.java

@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.knowledge.controller;
-
-
-import cn.hutool.core.lang.Assert;
-import com.alibaba.fastjson.JSON;
-import io.milvus.v2.service.vector.response.InsertResp;
-import jakarta.annotation.Resource;
-import org.eco.vip.ai.knowledge.domain.knowledge.Knowledge;
-import org.eco.vip.ai.knowledge.service.IKnowledgeService;
-import org.eco.vip.ai.knowledge.service.IMilvusService;
-import org.springframework.ai.ollama.OllamaEmbeddingModel;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.HashMap;
-
-/**
- * @description KnowledgeController
- *
- * @author GaoKunW
- * @date 2025/3/16 22:41
- */
-@RestController
-@RequestMapping("/ai/knowledge")
-public class KnowledgeController {
-
-    @Resource
-    private IKnowledgeService knowledgeService;
-
-    @Resource
-    private OllamaEmbeddingModel ollamaEmbeddingModel;
-
-    @Resource
-    private IMilvusService milvusService;
-
-    @GetMapping("/addCustomRagData")
-    public InsertResp addCustomRagData(@RequestParam String text) {
-        Assert.notNull(text, "text不能为空");
-        float[] embed = ollamaEmbeddingModel.embed(text);
-        // 插入数据
-        InsertResp insert = milvusService.insert(embed, text, JSON.toJSONString(new HashMap<>().put("custom", text)), "custom");
-        return insert;
-    }
-
-    @PostMapping("/save")
-    public Void save(@RequestBody Knowledge bo) {
-
-        return null;
-    }
-
-}

+ 0 - 88
eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/domain/knowledge/Knowledge.java

@@ -1,88 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.knowledge.domain.knowledge;
-
-
-import com.mybatisflex.annotation.Id;
-import com.mybatisflex.annotation.Table;
-import lombok.Data;
-import lombok.EqualsAndHashCode;
-import org.eco.vip.orm.domain.BaseEntity;
-
-/**
- * @description Knowledge
- *
- * @author GaoKunW
- * @date 2025/3/16 23:58
- */
-@Data
-@EqualsAndHashCode(callSuper = true)
-@Table(value = "ai_knowledge_t")
-public class Knowledge extends BaseEntity {
-
-    @Id
-    private Long id;
-
-    /**
-     * 知识库ID
-     */
-    private String kId;
-
-    /**
-     * 用户ID
-     */
-    private Long uId;
-
-    /**
-     * 知识库名称
-     */
-    private String kName;
-
-    /**
-     * 是否公开知识库(0 否 1是)
-     */
-    private String share;
-
-    /**
-     * 描述
-     */
-    private String description;
-
-    /**
-     * 知识分隔符
-     */
-    private String knowledgeSeparator;
-
-    /**
-     * 提问分隔符
-     */
-    private String questionSeparator;
-
-    /**
-     * 重叠字符数
-     */
-    private Integer overlapChar;
-
-    /**
-     * 知识库中检索的条数
-     */
-    private Integer retrieveLimit;
-
-    /**
-     * 文本块大小
-     */
-    private Integer textBlockSize;
-
-    /**
-     * 向量库
-     */
-    private String vector;
-
-    /**
-     * 向量模型
-     */
-    private String vectorModel;
-}

+ 0 - 19
eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/mapper/KnowledgeMapper.java

@@ -1,19 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.knowledge.mapper;
-
-
-import com.mybatisflex.core.BaseMapper;
-import org.eco.vip.ai.knowledge.domain.knowledge.Knowledge;
-
-/**
- * @description KnowledgeMapper
- *
- * @author GaoKunW
- * @date 2025/3/17 00:13
- */
-public interface KnowledgeMapper extends BaseMapper<Knowledge> {
-}

+ 0 - 20
eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/service/EmbeddingService.java

@@ -1,20 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.knowledge.service;
-
-
-/**
- * @description EmbeddingService
- *
- * @author GaoKunW
- * @date 2025/3/17 00:16
- */
-public class EmbeddingService implements IEmbeddingService {
-    @Override
-    public void createSchema(String kid) {
-
-    }
-}

+ 0 - 17
eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/service/IEmbeddingService.java

@@ -1,17 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.knowledge.service;
-
-
-/**
- * @description IEmbeddingService
- *
- * @author GaoKunW
- * @date 2025/3/17 00:15
- */
-public interface IEmbeddingService {
-    void createSchema(String kid);
-}

+ 0 - 26
eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/service/IKnowledgeService.java

@@ -1,26 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.knowledge.service;
-
-
-import org.eco.vip.ai.knowledge.domain.knowledge.Knowledge;
-
-/**
- * @description IKnowledgeService
- *
- * @author GaoKunW
- * @date 2025/3/16 23:57
- */
-public interface IKnowledgeService {
-
-    /**
-     *功能描述
-     *
-     * @param knowledge knowledge
-     *
-     */
-    void saveOne(Knowledge knowledge);
-}

+ 0 - 33
eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/service/IMilvusService.java

@@ -1,33 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.knowledge.service;
-
-
-import io.milvus.v2.service.vector.response.InsertResp;
-
-/**
- * @description IMilvusService
- *
- * @author GaoKunW
- * @date 2025/3/18 15:21
- */
-public interface IMilvusService {
-
-    /**
-     * 检查集合是否存在,不存在则创建集合
-     */
-    void hasCollection();
-
-    /**
-     * 插入数据
-     *
-     * @param vectorParam 向量参数
-     * @param text        文本
-     * @param metadata    元数据
-     * @param fileName    文件名
-     */
-    InsertResp insert(float[] vectorParam, String text, String metadata, String fileName);
-}

+ 0 - 24
eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/service/KnowledgeService.java

@@ -1,24 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.knowledge.service;
-
-
-import org.eco.vip.ai.knowledge.domain.knowledge.Knowledge;
-import org.springframework.stereotype.Service;
-
-/**
- * @description KnowledgeService
- *
- * @author GaoKunW
- * @date 2025/3/17 00:05
- */
-@Service
-public class KnowledgeService implements IKnowledgeService {
-    @Override
-    public void saveOne(Knowledge knowledge) {
-
-    }
-}

+ 0 - 163
eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/service/MilvusService.java

@@ -1,163 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.knowledge.service;
-
-
-import cn.hutool.core.collection.CollUtil;
-import com.alibaba.fastjson.JSONObject;
-import com.nimbusds.jose.shaded.gson.Gson;
-import io.milvus.v2.client.MilvusClientV2;
-import io.milvus.v2.common.DataType;
-import io.milvus.v2.common.IndexParam;
-import io.milvus.v2.service.collection.request.AddFieldReq;
-import io.milvus.v2.service.collection.request.CreateCollectionReq;
-import io.milvus.v2.service.collection.request.HasCollectionReq;
-import io.milvus.v2.service.index.request.CreateIndexReq;
-import io.milvus.v2.service.vector.request.InsertReq;
-import io.milvus.v2.service.vector.response.InsertResp;
-import jakarta.annotation.Resource;
-import lombok.RequiredArgsConstructor;
-import org.eco.vip.ai.knowledge.constant.MilvusConstant;
-import org.springframework.ai.ollama.OllamaEmbeddingModel;
-import org.springframework.stereotype.Service;
-
-import java.util.Arrays;
-import java.util.Collections;
-import java.util.List;
-import java.util.stream.Collectors;
-import java.util.stream.IntStream;
-
-/**
- * @author GaoKunW
- * @description MilvusService
- * @date 2025/3/18 15:23
- */
-@Service
-@RequiredArgsConstructor
-public class MilvusService implements IMilvusService {
-
-    @Resource
-    private MilvusClientV2 milvusClientV2;
-
-    @Resource
-    private OllamaEmbeddingModel ollamaEmbeddingModel;
-
-    //    private final
-    @Override
-    public void hasCollection() {
-        Boolean b = milvusClientV2.hasCollection(HasCollectionReq.builder().collectionName(MilvusConstant.COLLECTION_NAME).build());
-        if (!b) {
-            this.createCollection();
-        }
-    }
-
-    @Override
-    public InsertResp insert(float[] vectorParam, String text, String metadata, String fileName) {
-        // 校验集合是否存在
-        this.hasCollection();
-        JSONObject jsonObject = new JSONObject();
-        // 数组转换成JsonElement
-        // 使用 Stream API 转换
-        List<Float> floatList = IntStream.range(0, vectorParam.length)
-                .mapToObj(i -> vectorParam[i])
-                .toList();
-        jsonObject.put(MilvusConstant.Field.FEATURE, floatList);
-        jsonObject.put(MilvusConstant.Field.TEXT, text);
-        jsonObject.put(MilvusConstant.Field.METADATA, metadata);
-        jsonObject.put(MilvusConstant.Field.FILE_NAME, fileName);
-        InsertReq insertReq = InsertReq.builder()
-                // 集合名称
-                .collectionName(MilvusConstant.COLLECTION_NAME)
-                .data(Collections.singletonList(jsonObject))
-                .build();
-
-        return milvusClientV2.insert(insertReq);
-    }
-
-    /**
-     * 创建集合
-     */
-    public void createCollection() {
-        // 创建字段
-        CreateCollectionReq.CollectionSchema schema = milvusClientV2.createSchema();
-        // 创建主键字段
-        schema.addField(AddFieldReq.builder()
-                // 字段名
-                .fieldName(MilvusConstant.Field.ID)
-                // 字段描述
-                .description("主键ID")
-                // 字段类型
-                .dataType(DataType.Int64)
-                // 是否为主键
-                .isPrimaryKey(true)
-                // 设置主键自增
-                .autoID(true)
-                .build());
-        schema.addField(AddFieldReq.builder()
-                // 字段名
-                .fieldName(MilvusConstant.Field.FILE_NAME)
-                // 字段描述
-                .description("文件名")
-                // 字段类型
-                .dataType(DataType.VarChar)
-                .build());
-        // 创建特征向量字段
-        schema.addField(AddFieldReq.builder()
-                // 字段名
-                .fieldName(MilvusConstant.Field.FEATURE)
-                // 字段描述
-                .description("特征向量")
-                // 字段类型
-                .dataType(DataType.FloatVector)
-                // 设置向量维度
-                .dimension(MilvusConstant.FEATURE_DIM)
-                .build());
-        schema.addField(AddFieldReq.builder()
-                // 字段名
-                .fieldName(MilvusConstant.Field.TEXT)
-                // 字段描述
-                .description("文本")
-                // 字段类型
-                .dataType(DataType.VarChar)
-                .build());
-        schema.addField(AddFieldReq.builder()
-                // 字段名
-                .fieldName(MilvusConstant.Field.METADATA)
-                // 字段描述
-                .description("元数据")
-                // 字段类型
-                .dataType(DataType.VarChar)
-                .build());
-        // 创建集合
-        CreateCollectionReq collectionReq = CreateCollectionReq.builder()
-                // 集合名称
-                .collectionName(MilvusConstant.COLLECTION_NAME)
-                // 集合描述
-                .description("自定义知识库")
-                // 集合字段
-                .collectionSchema(schema)
-                // 分片数量
-                .numShards(MilvusConstant.SHARDS_NUM)
-                .build();
-        milvusClientV2.createCollection(collectionReq);
-
-        // 创建索引
-        IndexParam indexParam = IndexParam.builder()
-                // 索引字段名
-                .fieldName(MilvusConstant.Field.FEATURE)
-                // 索引类型
-                .indexType(IndexParam.IndexType.IVF_FLAT)
-                // 索引距离度量
-                .metricType(IndexParam.MetricType.COSINE)
-                .build();
-        CreateIndexReq createIndexReq = CreateIndexReq.builder()
-                .collectionName(MilvusConstant.COLLECTION_NAME)
-                .indexParams(Collections.singletonList(indexParam))
-                .build();
-
-        milvusClientV2.createIndex(createIndexReq);
-    }
-}

+ 0 - 90
eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/vectorstore/MilvusVectorStores.java

@@ -1,90 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.knowledge.vectorstore;
-
-import io.milvus.v2.client.MilvusClientV2;
-import io.milvus.v2.common.DataType;
-import io.milvus.v2.common.IndexParam;
-import io.milvus.v2.service.collection.request.AddFieldReq;
-import io.milvus.v2.service.collection.request.CreateCollectionReq;
-import io.milvus.v2.service.index.request.CreateIndexReq;
-
-import java.util.Collections;
-
-/**
- * @author GaoKunW
- * @description MilvusVectorStore
- * @date 2025/3/17 00:21
- */
-public class MilvusVectorStores implements VectorStores {
-
-    private volatile Integer dimension;
-    private volatile String collectionName;
-    private MilvusClientV2 milvusServiceClient;
-
-    @Override
-    public void newSchema(String kid) {
-
-    }
-
-    private void createSchema(String kid) {
-        CreateCollectionReq.CollectionSchema schema = milvusServiceClient.createSchema();
-
-        schema.addField(AddFieldReq.builder()
-                .fieldName("row_id")
-                .description("主键ID")
-                .dataType(DataType.VarChar)
-                .isPrimaryKey(true)
-                .autoID(false)
-                .build());
-        schema.addField(AddFieldReq.builder()
-                .fieldName("content")
-                .description("内容")
-                .dataType(DataType.VarChar)
-                .maxLength(1000)
-                .build());
-        schema.addField(AddFieldReq.builder()
-                .fieldName("kid")
-                .dataType(DataType.VarChar)
-                .isPrimaryKey(true)
-                .maxLength(20)
-                .build());
-        schema.addField(AddFieldReq.builder()
-                .fieldName("docId")
-                .dataType(DataType.VarChar)
-                .maxLength(20)
-                .build());
-        schema.addField(AddFieldReq.builder()
-                .fieldName("fid")
-                .dataType(DataType.VarChar)
-                .maxLength(20)
-                .build());
-        schema.addField(AddFieldReq.builder()
-                .fieldName("fv")
-                .dataType(DataType.FloatVector)
-                .dimension(dimension)
-                .build());
-
-        CreateCollectionReq collectionReq = CreateCollectionReq.builder()
-                .collectionName(collectionName + kid)
-                .description("本地知识库")
-                .collectionSchema(schema)
-                .build();
-        milvusServiceClient.createCollection(collectionReq);
-        IndexParam indexParam = IndexParam.builder()
-                .fieldName("title_vector")
-                .indexType(IndexParam.IndexType.IVF_FLAT)
-                .metricType(IndexParam.MetricType.COSINE)
-                .build();
-        CreateIndexReq createIndexReq = CreateIndexReq.builder()
-                .collectionName("")
-                .indexParams(Collections.singletonList(indexParam))
-                .build();
-        // 创建向量的索引
-        milvusServiceClient.createIndex(createIndexReq);
-
-    }
-}

+ 0 - 17
eco-ai/ai-knowledge-biz/src/main/java/org/eco/vip/ai/knowledge/vectorstore/VectorStores.java

@@ -1,17 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.knowledge.vectorstore;
-
-
-/**
- * @description VectorStore
- *
- * @author GaoKunW
- * @date 2025/3/17 00:21
- */
-public interface VectorStores {
-    void newSchema(String kid);
-}

+ 0 - 1
eco-ai/ai-knowledge-biz/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -1 +0,0 @@
-org.eco.vip.ai.knowledge.config.MilvusConfig

+ 0 - 17
eco-ai/ai-ollama-api/pom.xml

@@ -1,17 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.eco.vip</groupId>
-        <artifactId>eco-ai</artifactId>
-        <version>${revision}</version>
-    </parent>
-
-    <artifactId>ai-ollama-api</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>jar</packaging>
-
-    <description>
-        调用ollama API,暴露给其它模块调用
-    </description>
-</project>

+ 0 - 17
eco-ai/ai-ollama-api/src/main/java/org/eco/vip/ai/ollama/api/api/IAiOllamaApi.java

@@ -1,17 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.ollama.api.api;
-
-
-/**
- * @description IOllamaApi
- *
- * @author GaoKunW
- * @date 2025/3/12 23:10
- */
-public interface IAiOllamaApi {
-    String chat(String prompt);
-}

+ 0 - 45
eco-ai/ai-ollama-biz/pom.xml

@@ -1,45 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.eco.vip</groupId>
-        <artifactId>eco-ai</artifactId>
-        <version>${revision}</version>
-    </parent>
-
-    <artifactId>ai-ollama-biz</artifactId>
-    <packaging>jar</packaging>
-    <name>${project.artifactId}</name>
-    <description>
-        ollama本地大模型服务
-    </description>
-    <dependencies>
-        <dependency>
-            <groupId>org.eco.vip</groupId>
-            <artifactId>ai-ollama-api</artifactId>
-            <version>${revision}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.eco.vip</groupId>
-            <artifactId>com-web</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>org.eco.vip</groupId>
-            <artifactId>ai-text-sql-api</artifactId>
-            <version>${revision}</version>
-        </dependency>
-
-        <dependency>
-            <groupId>org.springframework.ai</groupId>
-            <artifactId>spring-ai-ollama-spring-boot-starter</artifactId>
-            <exclusions>
-                <exclusion>
-                    <groupId>org.slf4j</groupId>
-                    <artifactId>slf4j-simple</artifactId>
-                </exclusion>
-            </exclusions>
-        </dependency>
-    </dependencies>
-
-</project>

+ 0 - 30
eco-ai/ai-ollama-biz/src/main/java/org/eco/vip/ai/ollama/api/AiOllamaApi.java

@@ -1,30 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.ollama.api;
-
-
-import jakarta.annotation.Resource;
-import org.eco.vip.ai.ollama.api.api.IAiOllamaApi;
-import org.eco.vip.ai.ollama.service.IOllamaService;
-import org.springframework.stereotype.Service;
-
-/**
- * @description IOllamaApi
- *
- * @author GaoKunW
- * @date 2025/3/12 23:11
- */
-@Service
-public class AiOllamaApi implements IAiOllamaApi {
-
-    @Resource
-    private IOllamaService ollamaService;
-
-    @Override
-    public String chat(String prompt) {
-        return ollamaService.chat(prompt);
-    }
-}

+ 0 - 62
eco-ai/ai-ollama-biz/src/main/java/org/eco/vip/ai/ollama/controller/OllamaController.java

@@ -1,62 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.ollama.controller;
-
-
-import jakarta.annotation.Resource;
-import org.eco.vip.ai.ollama.service.IOllamaService;
-import org.springframework.ai.ollama.OllamaChatModel;
-import org.springframework.http.MediaType;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RequestMapping;
-import org.springframework.web.bind.annotation.RestController;
-import reactor.core.publisher.Flux;
-
-/**
- * @description OllamaController
- *
- * @author GaoKunW
- * @date 2025/3/12 17:53
- */
-@RestController
-@RequestMapping("/ai/ollama")
-public class OllamaController {
-
-    @Resource
-    private IOllamaService ollamaService;
-
-    @GetMapping(value = "/chat")
-    public Object chat(String prompt) {
-        return ollamaService.chat(prompt);
-    }
-
-    @GetMapping(value = "/chat/stream", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
-    public Flux<String> chatStream(String prompt) {
-        return ollamaService.chatStream(prompt);
-    }
-
-    @GetMapping(value = "/chat/sql", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
-    public Object chatSql(String prompt) {
-        return ollamaService.chatSql(prompt);
-    }
-
-//    @GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
-//    public Flux<ChatCompletionResponse> chat(String prompt) {
-//        return ollamaService.chat(prompt);
-//    }
-
-//    @GetMapping(value = "/syncChat")
-//    public String syncChat(String prompt) {
-//        return ollamaService.syncChat(prompt);
-//    }
-//
-//    @GetMapping(value = "/syncChatArr")
-//    public JSONArray syncChatArr(String prompt) {
-//        return ollamaService.syncChatArr(prompt);
-//    }
-
-
-}

+ 0 - 99
eco-ai/ai-ollama-biz/src/main/java/org/eco/vip/ai/ollama/service/IOllamaService.java

@@ -1,99 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.ollama.service;
-
-
-import cn.hutool.json.JSONArray;
-import reactor.core.publisher.Flux;
-
-/**
- * @description IOllamaService
- *
- * @author GaoKunW
- * @date 2025/3/12 23:02
- */
-public interface IOllamaService {
-
-    /**
-     * @description: 流式返回
-     *
-     * @param: prompt 问题
-     * @return String 内同
-     **/
-    Flux<String> chatStream(String prompt);
-
-    /**
-     * @description: 流式返回
-     *
-     * @param: prompt 问题
-     * @return String 内同
-     **/
-    String chat(String prompt);
-
-    /**
-     * @description: 流式返回
-     *
-     * @param: prompt 问题
-     * @return String 内同
-     **/
-    JSONArray chatSql(String prompt);
-
-//    /**
-//     * @description: 同步返回
-//     *
-//     * @param: prompt 问题
-//     * @return String 内同
-//     **/
-//    String syncChatContent(String prompt);
-//
-//    /**
-//     * @description: 同步返回
-//     *
-//     * @param: prompt 问题
-//     * @return String 内同
-//     **/
-//    String syncChat(String prompt);
-//    /**
-//     * @description: 同步返回
-//     *
-//     * @param: prompt 问题
-//     * @return String 内同
-//     **/
-//    JSONArray syncChatArr(String prompt);
-//
-//    /**
-//     * @description: 流式输出多轮对话
-//     *
-//     * @param: prompt 问题
-//     * @param: cacheCode 缓存
-//     * @return Flux<ChatCompletionResponse> 流结构结果
-//     **/
-//    Flux<ChatCompletionResponse> multipleRoundChatAdvanced(String prompt, String cacheCode);
-//
-//    /**
-//     * @description: 流式输出基础单轮对话
-//     *
-//     * @param: prompt  问题
-//     * @return Flux<ChatCompletionResponse>
-//     **/
-//    Flux<ChatCompletionResponse> chatBase(String prompt);
-//
-//    /**
-//     * @description: 流式输出基础单轮对话
-//     *
-//     * @param: prompt  问题
-//     * @return Flux<ChatCompletionResponse>
-//     **/
-//    Flux<ChatCompletionResponse> chat(String prompt);
-//
-//    /**
-//     * @description: 流式输出高级单轮对话
-//     *
-//     * @param: prompt  问题
-//     * @return Flux<ChatCompletionResponse>
-//     **/
-//    Flux<ChatCompletionResponse> chatAdvanced(String prompt);
-}

+ 0 - 63
eco-ai/ai-ollama-biz/src/main/java/org/eco/vip/ai/ollama/service/OllamaService.java

@@ -1,63 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.ollama.service;
-
-
-import cn.hutool.json.JSONArray;
-import cn.hutool.json.JSONObject;
-import jakarta.annotation.Resource;
-import lombok.extern.slf4j.Slf4j;
-import org.eco.vip.text2sql.api.IText2sqlApi;
-import org.eco.vip.text2sql.domain.ContentVo;
-import org.springframework.ai.autoconfigure.ollama.OllamaChatProperties;
-import org.springframework.ai.chat.prompt.Prompt;
-import org.springframework.ai.ollama.OllamaChatModel;
-import org.springframework.ai.ollama.api.OllamaModel;
-import org.springframework.ai.ollama.api.OllamaOptions;
-import org.springframework.stereotype.Service;
-import reactor.core.publisher.Flux;
-
-import java.util.Arrays;
-
-
-/**
- * @description OllamaService
- *
- * @author GaoKunW
- * @date 2025/3/12 23:02
- */
-@Slf4j
-@Service
-public class OllamaService implements IOllamaService {
-
-    @Resource
-    private IText2sqlApi text2sqlApi;
-
-    @Resource
-    private OllamaChatModel ollamaChatModel;
-
-    @Override
-    public Flux<String> chatStream(String prompt) {
-//        ollamaChatModel.setObservationConvention(ChatObservationConvention.LLAMA2);
-        return ollamaChatModel.stream(prompt);
-    }
-
-    @Override
-    public String chat(String prompt) {
-        return ollamaChatModel.call(prompt);
-    }
-
-    @Override
-    public JSONArray chatSql(String prompt) {
-        ContentVo contentVo = text2sqlApi.getQuestion(prompt);
-        if (contentVo != null) {
-            String content = this.chat(contentVo.getContent());
-            contentVo.setContent(content);
-            return text2sqlApi.getAnswer(contentVo);
-        }
-        return null;
-    }
-}

+ 0 - 23
eco-ai/ai-text-sql-api/pom.xml

@@ -1,23 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.eco.vip</groupId>
-        <artifactId>eco-ai</artifactId>
-        <version>${revision}</version>
-    </parent>
-
-    <artifactId>ai-text-sql-api</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>jar</packaging>
-    <description>
-        text2sql API,暴露给其它模块调用
-    </description>
-    <dependencies>
-        <dependency>
-            <groupId>org.eco.vip</groupId>
-            <artifactId>com-core</artifactId>
-        </dependency>
-    </dependencies>
-
-</project>

+ 0 - 21
eco-ai/ai-text-sql-api/src/main/java/org/eco/vip/text2sql/api/IText2sqlApi.java

@@ -1,21 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.text2sql.api;
-
-
-import cn.hutool.json.JSONArray;
-import org.eco.vip.text2sql.domain.ContentVo;
-
-/**
- * @description Text2sqlApi
- *
- * @author GaoKunW
- * @date 2025/3/13 15:04
- */
-public interface IText2sqlApi {
-    ContentVo getQuestion(String question);
-    JSONArray getAnswer(ContentVo question);
-}

+ 0 - 23
eco-ai/ai-text-sql-api/src/main/java/org/eco/vip/text2sql/domain/ContentVo.java

@@ -1,23 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.text2sql.domain;
-
-
-import lombok.Builder;
-import lombok.Data;
-
-/**
- * @description QuestionVo
- *
- * @author GaoKunW
- * @date 2025/3/13 14:52
- */
-@Builder
-@Data
-public class ContentVo {
-    private String content;
-    private String tableName;
-}

+ 0 - 42
eco-ai/ai-text-sql-biz/pom.xml

@@ -1,42 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.eco.vip</groupId>
-        <artifactId>eco-ai</artifactId>
-        <version>${revision}</version>
-    </parent>
-
-    <artifactId>ai-text-sql-biz</artifactId>
-    <name>${project.artifactId}</name>
-    <packaging>jar</packaging>
-    <description>
-        text2sql功能实现,包含自然语言转sql,执行sql
-    </description>
-
-    <dependencies>
-        <dependency>
-            <groupId>org.eco.vip</groupId>
-            <artifactId>ai-text-sql-api</artifactId>
-            <version>${revision}</version>
-        </dependency>
-<!--        <dependency>-->
-<!--            <groupId>org.eco.vip</groupId>-->
-<!--            <artifactId>ai-ollama-api</artifactId>-->
-<!--            <version>${revision}</version>-->
-<!--        </dependency>-->
-        <dependency>
-            <groupId>org.eco.vip</groupId>
-            <artifactId>com-web</artifactId>
-        </dependency>
-
-        <dependency>
-            <groupId>com.github.jsqlparser</groupId>
-            <artifactId>jsqlparser</artifactId>
-        </dependency>
-        <dependency>
-            <groupId>org.eco.vip</groupId>
-            <artifactId>com-orm</artifactId>
-        </dependency>
-    </dependencies>
-</project>

+ 0 - 37
eco-ai/ai-text-sql-biz/src/main/java/org/eco/vip/ai/text2sql/api/Text2sqlApi.java

@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.text2sql.api;
-
-
-import cn.hutool.json.JSONArray;
-import jakarta.annotation.Resource;
-import org.eco.vip.ai.text2sql.service.IText2SqlService;
-import org.eco.vip.text2sql.api.IText2sqlApi;
-import org.eco.vip.text2sql.domain.ContentVo;
-import org.springframework.stereotype.Service;
-
-/**
- * @description Text2sqlApi
- *
- * @author GaoKunW
- * @date 2025/3/13 15:05
- */
-@Service
-public class Text2sqlApi implements IText2sqlApi {
-
-    @Resource
-    private IText2SqlService text2SqlService;
-
-    @Override
-    public ContentVo getQuestion(String question) {
-        return text2SqlService.getQuestion(question);
-    }
-
-    @Override
-    public JSONArray getAnswer(ContentVo question) {
-        return text2SqlService.getAnswer(question);
-    }
-}

+ 0 - 37
eco-ai/ai-text-sql-biz/src/main/java/org/eco/vip/ai/text2sql/config/TableMapPropertiesConfig.java

@@ -1,37 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.text2sql.config;
-
-
-import jakarta.annotation.PostConstruct;
-import lombok.Data;
-import lombok.extern.slf4j.Slf4j;
-import org.eco.vip.ai.text2sql.properties.TableMapProperties;
-import org.springframework.boot.autoconfigure.AutoConfiguration;
-import org.springframework.boot.context.properties.ConfigurationProperties;
-
-import java.util.Collections;
-import java.util.List;
-
-/**
- * @description TableMapPropertiesConfig
- *
- * @author GaoKunW
- * @date 2025/3/16 02:04
- */
-@Data
-@AutoConfiguration
-@ConfigurationProperties(prefix = "table")
-@Slf4j
-public class TableMapPropertiesConfig {
-
-    private List<TableMapProperties> mappings = Collections.emptyList();
-
-    @PostConstruct
-    public void init() {
-        log.info("\n*************表映射加载数据:{}", mappings);
-    }
-}

+ 0 - 55
eco-ai/ai-text-sql-biz/src/main/java/org/eco/vip/ai/text2sql/controller/ChatSqlController.java

@@ -1,55 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.text2sql.controller;
-
-import cn.hutool.json.JSONArray;
-import jakarta.annotation.Resource;
-import org.eco.vip.ai.text2sql.service.IText2SqlService;
-import org.springframework.web.bind.annotation.*;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @description ChatSqlController
- *
- * @author GaoKunW
- * @date 2025/3/12 10:09
- */
-@RestController
-@RequestMapping("/ai/sql")
-public class ChatSqlController {
-
-    @Resource
-    private IText2SqlService text2SqlService;
-
-    /**
-     * @description: text2sql
-     * @param map 问题
-     * @return List<Map<String,Object>>
-     **/
-    @PostMapping("/chat")
-    public JSONArray chatSql(@RequestBody Map<String, String> map) {
-        return null;
-    }
-
-    @GetMapping("/test")
-    public List<Map<String, Object>> test() {
-        return text2SqlService.executeSql("show create table sys_dept");
-    }
-
-    @PostMapping("/getTableName")
-    public String test1(@RequestBody Map<String, String> map) {
-        String question = map.get("question");
-        return text2SqlService.tableNameByNl(question);
-    }
-
-    @PostMapping("/show/create/table")
-    public List<Map<String, Object>> test2(@RequestBody Map<String, String> map) {
-        String question = map.get("question");
-        return text2SqlService.executeSql("show create table "+question);
-    }
-}

+ 0 - 21
eco-ai/ai-text-sql-biz/src/main/java/org/eco/vip/ai/text2sql/domain/CommentVo.java

@@ -1,21 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.text2sql.domain;
-
-
-import lombok.Data;
-
-/**
- * @description CommentVo
- *
- * @author GaoKunW
- * @date 2025/3/12 16:56
- */
-@Data
-public class CommentVo {
-    String name;
-    String comment;
-}

+ 0 - 39
eco-ai/ai-text-sql-biz/src/main/java/org/eco/vip/ai/text2sql/mapper/Text2SqlMapper.java

@@ -1,39 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.text2sql.mapper;
-
-
-import org.apache.ibatis.annotations.Mapper;
-import org.apache.ibatis.annotations.Param;
-import org.apache.ibatis.annotations.Select;
-import org.eco.vip.ai.text2sql.domain.CommentVo;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @description Text2SqlMapper
- *
- * @author GaoKunW
- * @date 2025/3/12 10:56
- */
-@Mapper
-public interface Text2SqlMapper {
-
-    List<Map<String, Object>> executeSql(@Param("sqlText") String sqlText);
-
-    @Select("show create table ${tableName} ")
-    Map<String, String> selectTableDdlByMysql(@Param("tableName") String tableName);
-
-    @Select("select convert(varchar(5000), dbms_metadata.get_ddl('TABLE','${tableName}','${schema}')) as \"create table\" from dual")
-    Map<String, String> selectTableDdlDm(@Param("schema") String schema, @Param("tableName") String tableName);
-
-    @Select("select column_name as name, column_comment as comment  from information_schema.COLUMNS where table_schema = #{schema} and table_name = #{tableName}")
-    List<CommentVo> selectCommentsByMysql(@Param("schema") String schema, @Param("tableName") String tableName);
-
-    @Select("select column_name as name, comments as \"comment\"  from USER_COL_COMMENTS where OWNER = #{schema} and TABLE_NAME = #{tableName}")
-    List<CommentVo> selectCommentsByDm(@Param("schema") String schema, @Param("tableName") String tableName);
-}

+ 0 - 28
eco-ai/ai-text-sql-biz/src/main/java/org/eco/vip/ai/text2sql/properties/TableMapProperties.java

@@ -1,28 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.text2sql.properties;
-
-
-import lombok.Data;
-
-/**
- * @description TableMapProperties
- *
- * @author GaoKunW
- * @date 2025/3/16 01:35
- */
-@Data
-public class TableMapProperties {
-    /**
-     * 关键字
-     */
-    private String pattern;
-    /**
-     * 表名
-     */
-    private String tableName;
-
-}

+ 0 - 68
eco-ai/ai-text-sql-biz/src/main/java/org/eco/vip/ai/text2sql/service/IText2SqlService.java

@@ -1,68 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.text2sql.service;
-
-
-import cn.hutool.json.JSONArray;
-import org.eco.vip.ai.text2sql.domain.CommentVo;
-import org.eco.vip.text2sql.domain.ContentVo;
-
-import java.util.List;
-import java.util.Map;
-
-/**
- * @author GaoKunW
- * @description IText2SqlService
- * @date 2025/3/12 10:29
- */
-public interface IText2SqlService {
-
-    /**
-     * @description: 直接执行sql语句
-     * @param sqlText sql
-     *
-     * @return List<Map<Object,Object>>
-     **/
-    List<Map<String, Object>> executeSql(String sqlText);
-
-    /**
-     * @description: 通过自然语言生成SQL语句
-     * @param question 问题
-     *
-     * @return List<Map<Object,Object>>
-     **/
-    String tableNameByNl(String question);
-
-    /**
-     * @description: 通过表查询字段注释
-     * @param schema schema
-     * @param tableName 表明
-     * @return List<Map<Object,Object>>
-     **/
-    List<CommentVo> commentByTableName(String schema, String tableName);
-
-    /**
-     * @description: 获取带字段注释的表数据
-     * @param mapList 数据
-     * @param tableNames 表头信息
-     * @return List<Map<Object,Object>>
-     **/
-    JSONArray getCommentData(List<Map<String, Object>> mapList, List<CommentVo> tableNames);
-
-    /**
-     * @description: 获取答案
-     * @param question 问题
-     * @return List<Map<Object,Object>>
-     **/
-    JSONArray getAnswer(ContentVo question);
-
-    /**
-     * @description: 获取答案
-     * @param question 问题
-     * @return 组装好的问题
-     **/
-    ContentVo getQuestion(String question);
-}

+ 0 - 45
eco-ai/ai-text-sql-biz/src/main/java/org/eco/vip/ai/text2sql/service/TableNameService.java

@@ -1,45 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.text2sql.service;
-
-
-import org.eco.vip.ai.text2sql.config.TableMapPropertiesConfig;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.stereotype.Service;
-
-import java.util.LinkedHashMap;
-import java.util.Map;
-import java.util.regex.Pattern;
-
-/**
- * @description TableNameService
- *
- * @author GaoKunW
- * @date 2025/3/16 02:07
- */
-@Service
-public class TableNameService {
-    private final LinkedHashMap<Pattern, String> patternMappings = new LinkedHashMap<>();
-
-    @Autowired
-    public TableNameService(TableMapPropertiesConfig config) {
-        config.getMappings().forEach(mapping -> {
-            Pattern pattern = Pattern.compile(mapping.getPattern());
-            patternMappings.put(pattern, mapping.getTableName());
-        });
-    }
-
-    public String extractTableName(String query) {
-        String cleaned = query.replaceAll("[^\\w\\u4e00-\\u9fff]", "");
-        for (Map.Entry<Pattern, String> entry : patternMappings.entrySet()) {
-            if (entry.getKey().matcher(cleaned).find()) {
-                return entry.getValue();
-            }
-        }
-        return null;
-    }
-
-}

+ 0 - 122
eco-ai/ai-text-sql-biz/src/main/java/org/eco/vip/ai/text2sql/service/Text2SqlService.java

@@ -1,122 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.text2sql.service;
-
-
-import cn.hutool.core.collection.CollUtil;
-import cn.hutool.core.util.ObjUtil;
-import cn.hutool.core.util.StrUtil;
-import cn.hutool.json.JSONArray;
-import jakarta.annotation.Resource;
-import lombok.extern.slf4j.Slf4j;
-import org.eco.vip.ai.text2sql.domain.CommentVo;
-import org.eco.vip.ai.text2sql.mapper.Text2SqlMapper;
-import org.eco.vip.ai.text2sql.utils.SqlValidator;
-import org.eco.vip.orm.utils.DBaseHelper;
-import org.eco.vip.text2sql.domain.ContentVo;
-import org.springframework.stereotype.Service;
-
-import java.util.Collections;
-import java.util.LinkedHashMap;
-import java.util.List;
-import java.util.Map;
-
-/**
- * @author GaoKunW
- * @description Text2SqlService
- * @date 2025/3/12 10:54
- */
-@Slf4j
-@Service
-public class Text2SqlService implements IText2SqlService {
-    @Resource
-    private Text2SqlMapper text2SqlMapper;
-
-    @Resource
-    private TableNameService tableNameService;
-
-    @Override
-    public List<Map<String, Object>> executeSql(String sql) {
-        return text2SqlMapper.executeSql(sql);
-    }
-
-    @Override
-    public String tableNameByNl(String question) {
-        return tableNameService.extractTableName(question);
-    }
-
-    @Override
-    public List<CommentVo> commentByTableName(String schema, String tableName) {
-        if (DBaseHelper.isMySql()) {
-            return text2SqlMapper.selectCommentsByMysql(schema, tableName);
-        } else if (DBaseHelper.isDmSql()) {
-            return text2SqlMapper.selectCommentsByDm(schema, tableName);
-        }
-        return Collections.emptyList();
-    }
-
-    @Override
-    public JSONArray getCommentData(List<Map<String, Object>> mapList, List<CommentVo> tableNames) {
-        JSONArray jsonArray = new JSONArray();
-        Map<String, Object> commentMap = new LinkedHashMap<>();
-        for (Map<String, Object> map : mapList) {
-            for (String key : map.keySet()) {
-                if (StrUtil.contains("tenantId,delFlag,status,createBy,updateBy,createTime,updateTime", key)) {
-                    continue;
-                }
-                CommentVo commentVo = CollUtil.findOne(tableNames, tableName -> StrUtil.equals(StrUtil.toCamelCase(tableName.getName()), key));
-                if (ObjUtil.isNotEmpty(commentVo)) {
-                    commentMap.put(commentVo.getComment(), map.get(key));
-                } else {
-                    commentMap.put(key, map.get(key));
-                }
-            }
-            jsonArray.add(commentMap);
-        }
-        return jsonArray;
-    }
-
-    @Override
-    public JSONArray getAnswer(ContentVo question) {
-        log.info("\n模型返回的SQL:\n{}", question.getContent());
-        String sql = cleanRawSql(question.getContent());
-        if (!SqlValidator.isSelectQuery(sql)) {
-            return new JSONArray().put("只支持查询");
-        }
-        List<Map<String, Object>> mapList = text2SqlMapper.executeSql(sql);
-        List<CommentVo> tableNames = this.commentByTableName(DBaseHelper.getSchema(), question.getTableName());
-        return this.getCommentData(mapList, tableNames);
-    }
-
-    @Override
-    public ContentVo getQuestion(String question) {
-        String tableName = this.tableNameByNl(question);
-        Map<String, String> map = Collections.emptyMap();
-        if (DBaseHelper.isMySql()) {
-            map = text2SqlMapper.selectTableDdlByMysql(tableName);
-        } else if (DBaseHelper.isDmSql()) {
-            map = text2SqlMapper.selectTableDdlDm(DBaseHelper.getSchema(), tableName);
-        }
-        String ddl = map.get("create table");
-        return ContentVo.builder().content(ddl + "\n" + question + ",根据需求生成" + DBaseHelper.getDbType() + "的查询SQL.\n" +
-                        "1.不要需求外的条件.\n" +
-                        "2.只输出sql语句不需要任何格式样式,就是一串sql.\n" +
-                        "3.不需要带Schema:" + DBaseHelper.getSchema()).
-                tableName(tableName).build();
-
-    }
-
-    private String cleanRawSql(String rawSql) {
-        // 1. 去除代码块标记(如 ```sql)和语言标识
-        String cleaned = rawSql.replaceAll("(?i).*```sql\\s*", "")
-                .replaceAll("\\s*```.*", "")
-                .trim();
-
-        // 2. 去除末尾分号(MySQL允许不带分号执行)
-        cleaned = cleaned.replaceAll(";\\s*$", "");
-        return cleaned;
-    }
-}

+ 0 - 31
eco-ai/ai-text-sql-biz/src/main/java/org/eco/vip/ai/text2sql/utils/SqlValidator.java

@@ -1,31 +0,0 @@
-/*
- * Copyright (c) 2025 GaoKunW
- *
- */
-
-package org.eco.vip.ai.text2sql.utils;
-
-
-import lombok.extern.slf4j.Slf4j;
-import net.sf.jsqlparser.JSQLParserException;
-import net.sf.jsqlparser.parser.CCJSqlParserUtil;
-import net.sf.jsqlparser.statement.Statement;
-import net.sf.jsqlparser.statement.select.Select;
-
-/**
- * @author GaoKunW
- * @description SqlValidatorAdvanced
- * @date 2025/3/13 10:34
- */
-@Slf4j
-public class SqlValidator {
-    public static boolean isSelectQuery(String sql) {
-        try {
-            Statement statement = CCJSqlParserUtil.parse(sql);
-            return statement instanceof Select;
-        } catch (JSQLParserException e) {
-            log.error("SQL解析异常:{}", e.getMessage());
-        }
-        return false;
-    }
-}

+ 0 - 1
eco-ai/ai-text-sql-biz/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports

@@ -1 +0,0 @@
-org.eco.vip.ai.text2sql.config.TableMapPropertiesConfig

+ 0 - 15
eco-ai/ai-text-sql-biz/src/main/resources/mapper/Text2SqlMapper.xml

@@ -1,15 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-  ~ Copyright (c) 2025 GaoKunW
-  ~
-  -->
-
-<!DOCTYPE mapper
-        PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
-        "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
-<mapper namespace="org.eco.vip.ai.text2sql.mapper.Text2SqlMapper">
-    <select id="executeSql" parameterType="String" resultType="map">
-        ${sqlText}
-    </select>
-
-</mapper>

+ 0 - 25
eco-ai/pom.xml

@@ -1,25 +0,0 @@
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
-    <modelVersion>4.0.0</modelVersion>
-    <parent>
-        <groupId>org.eco.vip</groupId>
-        <artifactId>eco-boot</artifactId>
-        <version>${revision}</version>
-    </parent>
-
-    <artifactId>eco-ai</artifactId>
-    <name>${project.artifactId}</name>
-    <modules>
-        <module>ai-text-sql-api</module>
-        <module>ai-text-sql-biz</module>
-        <module>ai-ollama-api</module>
-        <module>ai-ollama-biz</module>
-        <module>ai-knowledge-api</module>
-        <module>ai-knowledge-biz</module>
-    </modules>
-    <packaging>pom</packaging>
-    <description>
-        Ai 模块包含:
-        chat、text2Sql、RAG等等
-    </description>
-</project>

+ 0 - 15
eco-bom/pom.xml

@@ -27,7 +27,6 @@
         <easy-trans.version>3.0.6</easy-trans.version>
         <jackson.version>2.18.3</jackson.version>
         <easy-trans.version>3.0.6</easy-trans.version>
-        <jsqlparser.version>5.1</jsqlparser.version>
         <DmJdbcDriver18.version>8.1.3.140</DmJdbcDriver18.version>
         <spring-ai.version>1.0.0-M6</spring-ai.version>
     </properties>
@@ -73,13 +72,6 @@
                 <artifactId>com-orm</artifactId>
                 <version>${revision}</version>
             </dependency>
-
-            <!-- com-core -->
-            <dependency>
-                <groupId>org.eco.vip</groupId>
-                <artifactId>eco-ai</artifactId>
-                <version>${revision}</version>
-            </dependency>
             <!-- com-core -->
             <dependency>
                 <groupId>org.eco.vip</groupId>
@@ -136,13 +128,6 @@
                 <version>${easy-trans.version}</version>
             </dependency>
 
-            <!-- https://mvnrepository.com/artifact/com.github.jsqlparser/jsqlparser -->
-            <dependency>
-                <groupId>com.github.jsqlparser</groupId>
-                <artifactId>jsqlparser</artifactId>
-                <version>${jsqlparser.version}</version>
-            </dependency>
-
             <!-- https://mvnrepository.com/artifact/com.dameng/DmJdbcDriver18 -->
             <dependency>
                 <groupId>com.dameng</groupId>

+ 0 - 15
eco-start/pom.xml

@@ -12,26 +12,11 @@
     <description>eco-start web 服务入口</description>
     <packaging>jar</packaging>
     <dependencies>
-        <dependency>
-            <groupId>org.eco.vip</groupId>
-            <artifactId>ai-text-sql-biz</artifactId>
-            <version>${revision}</version>
-        </dependency>
-        <dependency>
-            <groupId>org.eco.vip</groupId>
-            <artifactId>ai-ollama-biz</artifactId>
-            <version>${revision}</version>
-        </dependency>
         <dependency>
             <groupId>org.eco.vip</groupId>
             <artifactId>auth-biz</artifactId>
             <version>${revision}</version>
         </dependency>
-        <dependency>
-            <groupId>org.eco.vip</groupId>
-            <artifactId>ai-knowledge-biz</artifactId>
-            <version>${revision}</version>
-        </dependency>
     </dependencies>
 
     <build>

+ 0 - 1
pom.xml

@@ -16,7 +16,6 @@
         <module>eco-common</module>
         <module>eco-bom</module>
         <module>eco-nexus-core</module>
-        <module>eco-ai</module>
     </modules>
     <!-- 版本 -->
     <properties>