测试通了。
This commit is contained in:
parent
59e887a045
commit
7efa94871b
|
|
@ -1,9 +1,12 @@
|
||||||
package com.electromagnetic.industry.software.manage.config;
|
package com.electromagnetic.industry.software.manage.config;
|
||||||
|
|
||||||
import org.springframework.ai.chat.client.advisor.MessageChatMemoryAdvisor;
|
import org.springframework.ai.chat.client.advisor.MessageChatMemoryAdvisor;
|
||||||
|
import org.springframework.ai.embedding.EmbeddingModel;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
@Component
|
@Component
|
||||||
public class AiAdvisor {
|
public class AiAdvisor {
|
||||||
|
|
||||||
|
|
@ -11,5 +14,4 @@ public class AiAdvisor {
|
||||||
// public MessageChatMemoryAdvisor messageChatMemoryAdvisor() {
|
// public MessageChatMemoryAdvisor messageChatMemoryAdvisor() {
|
||||||
// return new MessageChatMemoryAdvisor(new InMemoryChatMemory());
|
// return new MessageChatMemoryAdvisor(new InMemoryChatMemory());
|
||||||
// }
|
// }
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -32,6 +32,7 @@ import org.springframework.ai.ollama.OllamaChatModel;
|
||||||
import org.springframework.ai.ollama.api.OllamaOptions;
|
import org.springframework.ai.ollama.api.OllamaOptions;
|
||||||
import org.springframework.ai.reader.TextReader;
|
import org.springframework.ai.reader.TextReader;
|
||||||
import org.springframework.ai.transformer.splitter.TokenTextSplitter;
|
import org.springframework.ai.transformer.splitter.TokenTextSplitter;
|
||||||
|
import org.springframework.ai.vectorstore.SearchRequest;
|
||||||
import org.springframework.ai.vectorstore.VectorStore;
|
import org.springframework.ai.vectorstore.VectorStore;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
@ -74,6 +75,16 @@ public class ChatService {
|
||||||
// return ElectromagneticResultUtil.success(true);
|
// 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)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public ElectromagneticResult<?> addFromUpload(MultipartFile file) throws Exception {
|
public ElectromagneticResult<?> addFromUpload(MultipartFile file) throws Exception {
|
||||||
|
|
||||||
|
|
@ -208,7 +219,11 @@ public class ChatService {
|
||||||
UserThreadLocal.set(userLoginInfo);
|
UserThreadLocal.set(userLoginInfo);
|
||||||
aiQuestionRecordMapper.insert(record);
|
aiQuestionRecordMapper.insert(record);
|
||||||
UserThreadLocal.remove();
|
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<>();
|
Set<String> files = new LinkedHashSet<>();
|
||||||
assert documents != null;
|
assert documents != null;
|
||||||
|
|
|
||||||
|
|
@ -12,13 +12,13 @@ spring.datasource.password=123456
|
||||||
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
|
spring.datasource.type=com.alibaba.druid.pool.DruidDataSource
|
||||||
#ai
|
#ai
|
||||||
spring.ai.ollama.base-url=http://localhost:11434
|
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.chat.options.num-g-p-u=1
|
||||||
spring.ai.ollama.embedding.options.internal-tool-execution-enabled=true
|
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.initialize-schema=true
|
||||||
spring.ai.vectorstore.mariadb.distance-type=COSINE
|
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.ai.vectorstore.mariadb.table-name=ai_rag
|
||||||
spring.thymeleaf.suffix=.html
|
spring.thymeleaf.suffix=.html
|
||||||
spring.thymeleaf.prefix=classpath:/templates/
|
spring.thymeleaf.prefix=classpath:/templates/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue