测试通了。

This commit is contained in:
chenxudong 2025-05-26 09:55:02 +08:00
parent 59e887a045
commit 7efa94871b
3 changed files with 22 additions and 5 deletions

View File

@ -1,9 +1,12 @@
package com.electromagnetic.industry.software.manage.config;
import org.springframework.ai.chat.client.advisor.MessageChatMemoryAdvisor;
import org.springframework.ai.embedding.EmbeddingModel;
import org.springframework.context.annotation.Bean;
import org.springframework.stereotype.Component;
import java.util.Map;
@Component
public class AiAdvisor {
@ -11,5 +14,4 @@ public class AiAdvisor {
// public MessageChatMemoryAdvisor messageChatMemoryAdvisor() {
// return new MessageChatMemoryAdvisor(new InMemoryChatMemory());
// }
}

View File

@ -32,6 +32,7 @@ import org.springframework.ai.ollama.OllamaChatModel;
import org.springframework.ai.ollama.api.OllamaOptions;
import org.springframework.ai.reader.TextReader;
import org.springframework.ai.transformer.splitter.TokenTextSplitter;
import org.springframework.ai.vectorstore.SearchRequest;
import org.springframework.ai.vectorstore.VectorStore;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -74,6 +75,16 @@ public class ChatService {
// return ElectromagneticResultUtil.success(true);
// }
// @Transactional(rollbackFor = Exception.class)
// public ElectromagneticResult<?> addFromUpload(MultipartFile file) throws Exception {
// String s = FileUtil.readString("D:\\datas\\aidocs\\HB8451民用飞机燃油系统电搭接要求.txt", Charset.defaultCharset());
// Document document = new Document(s);
// List<Document> newDocuments = new TokenTextSplitter().apply(List.of(document));
// vectorStore.write(newDocuments);
// return ElectromagneticResultUtil.success(true);
// }
@Transactional(rollbackFor = Exception.class)
public ElectromagneticResult<?> addFromUpload(MultipartFile file) throws Exception {
@ -208,7 +219,11 @@ public class ChatService {
UserThreadLocal.set(userLoginInfo);
aiQuestionRecordMapper.insert(record);
UserThreadLocal.remove();
List<Document> documents = vectorStore.similaritySearch(queryDTO.getMsg());
List<Document> documents = vectorStore.similaritySearch(SearchRequest.builder()
// .topK(20)
// .similarityThreshold(0.7)
.query(queryDTO.getMsg())
.build());
Set<String> files = new LinkedHashSet<>();
assert documents != null;

View File

@ -12,13 +12,13 @@ spring.datasource.password=123456
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
#ai
spring.ai.ollama.base-url=http://localhost:11434
spring.ai.ollama.chat.options.model=deepseek-r1:14b
spring.ai.ollama.chat.options.model=qwen3:8b
spring.ai.ollama.chat.options.num-g-p-u=1
spring.ai.ollama.embedding.options.internal-tool-execution-enabled=true
spring.ai.ollama.embedding.options.model=nomic-embed-text
spring.ai.ollama.embedding.options.model=bge-m3:567m
spring.ai.vectorstore.mariadb.initialize-schema=true
spring.ai.vectorstore.mariadb.distance-type=COSINE
spring.ai.vectorstore.mariadb.dimensions=768
spring.ai.vectorstore.mariadb.dimensions=1024
spring.ai.vectorstore.mariadb.table-name=ai_rag
spring.thymeleaf.suffix=.html
spring.thymeleaf.prefix=classpath:/templates/