# customeraiagent **Repository Path**: giteeliuyan/customeraiagent ## Basic Information - **Project Name**: customeraiagent - **Description**: java领域的Vanna.AI - **Primary Language**: Java - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2025-03-18 - **Last Updated**: 2025-05-13 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # CustomerAiAgent 自定义AiAgent ![AI-JAVA](https://img.shields.io/badge/AI-JAVA-brightgreen.svg?style=plastic) ![包管理-Maven](https://img.shields.io/badge/包管理-Maven-brightgreen.svg?style=plastic) ![JDK-8](https://img.shields.io/badge/JDK-8-brightgreen.svg?style=plastic) star # 介绍 1、java领域的Vanna.AI 2、可快速进行业务集成、AI对接 3、设计简单,快速上手 4、采用稀疏、稠密向量结合搜索 5、多路召回、重排序策略 # 如何使用 ```java @Test public void 知识库训练() throws IOException { { // Long stringKnowLedgeId = 1L; // String inputData = "123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界123456789123123你好啊世界"; // EmbeddingModelInputData stringInputDataModel = new EmbeddingModelInputData(inputData); // KnowledgeSupperTool.train(stringKnowLedgeId, stringInputDataModel); } { // Long pdfKnowLedgeId = 2L; // String pdfurl = "https://wms-1311623590.cos.ap-guangzhou.myqcloud.com/test/1901555314088554498-7-云缴费收银台接入规范-v2.3.3.pdf"; // EmbeddingModelInputData pdfInputDataModel = new EmbeddingModelInputData("pdf", pdfurl); // KnowledgeSupperTool.train(pdfKnowLedgeId, pdfInputDataModel); } { Long docKnowLedgeId = 3L; String docurl = "https://wms-1311623590.cos.ap-guangzhou.myqcloud.com/test/1901555465104470017-供应链saas总结.doc"; EmbeddingModelInputData docInputDataModel = new EmbeddingModelInputData("doc", docurl); KnowledgeSupperTool.train(docKnowLedgeId, docInputDataModel); } { // Long docxKnowLedgeId = 4L; // String docxurl = "https://wms-1311623590.cos.ap-guangzhou.myqcloud.com/test/1901810948130287618-个人收入证明.docx"; // EmbeddingModelInputData docxInputDataModel = new EmbeddingModelInputData("docx", docxurl); // KnowledgeSupperTool.train(docxKnowLedgeId, docxInputDataModel); } { // Long txtKnowLedgeId = 5L; // String txturl = "https://wms-1311623590.cos.ap-guangzhou.myqcloud.com/test/1901555761536905218-新建文本文档 (2).txt"; // EmbeddingModelInputData txtInputDataModel = new EmbeddingModelInputData("txt", txturl); // KnowledgeSupperTool.train(txtKnowLedgeId, txtInputDataModel); } { // Long remarkKnowLedgeId = 6L; // String inputData = "这是一段不会被分片的知识库内容,即使再长也不分片,因为EmbeddingModelInputData的type=remark"; // EmbeddingModelInputData remarkInputDataModel = new EmbeddingModelInputData("remark", inputData); // KnowledgeSupperTool.train(remarkKnowLedgeId, remarkInputDataModel); } } @Test public void 模拟客户端_AI使用知识库_进行对话() throws IOException { Flux flux = chatBigModel.chatAsync(inputData); } @Test public void 数据库训练() throws IOException { Long knowLedgeId = 3L; { //单表训练 便于测试 MysqlInfo mysqlInfo = new MysqlInfo(); mysqlInfo.setUrl("jdbc:mysql://127.0.0.1:3306/customeraiagent"); mysqlInfo.setUsername(""); mysqlInfo.setPassword(""); mysqlInfo.setTargetSchema("zt"); mysqlInfo.setTargetTable("warehouse_region"); EmbeddingModelMysqlInputData mysqlInputData = new EmbeddingModelMysqlInputData(mysqlInfo); Text2SqlSupperTool.trainMysql(knowLedgeId, mysqlInputData); } { MysqlInfo mysqlInfo = new MysqlInfo(); mysqlInfo.setUrl("jdbc:mysql://127.0.0.1:3306/customeraiagent"); mysqlInfo.setUsername(""); mysqlInfo.setPassword(""); mysqlInfo.setTargetSchema("zt"); mysqlInfo.setTargetTable("location"); EmbeddingModelMysqlInputData mysqlInputData = new EmbeddingModelMysqlInputData(mysqlInfo); Text2SqlSupperTool.trainMysql(knowLedgeId, mysqlInputData); } { // //训练整个库 资源消耗过多 不便于测试 // MysqlInfo mysqlInfo = new MysqlInfo(); // mysqlInfo.setUrl("jdbc:mysql://127.0.0.1:3306/customeraiagent"); // mysqlInfo.setUsername(""); // mysqlInfo.setPassword(""); // mysqlInfo.setTargetSchema(null); // mysqlInfo.setTargetTable(null); // EmbeddingModelMysqlInputData mysqlInputData = new EmbeddingModelMysqlInputData(mysqlInfo); // Text2SqlSupperTool.trainMysql(knowLedgeId, mysqlInputData); } { //数据库备注训练 Text2SqlSupperTool.trainRemark(knowLedgeId, 1L, "包仓是包仓合同包库区或包库位的意思"); Text2SqlSupperTool.trainRemark(knowLedgeId, 2L, "零仓合同有多种类型,每种类型计费方式是不一样的"); } } @Test public void 模拟客户端_AI使用数据库向量知识库_进行对话() throws IOException { Flux flux = text2SqlBigModel.chatAsync(inputData); } ``` # 架构设计 ![](docs/imgs/JGSJHYXYL.jpg) # 待完善 1、更多功能支持中... # 支持作者 ![](docs/imgs/MYZSM.png)