上传备份

master
王兵 6 months ago
parent b9bce351fd
commit 12a62b01b1

@ -1,11 +1,9 @@
package xyz.wbsite.ai; package xyz.wbsite.ai;
import cn.hutool.core.collection.CollUtil; import cn.hutool.core.collection.CollUtil;
import dev.langchain4j.agent.tool.*;
import dev.langchain4j.data.document.Document; import dev.langchain4j.data.document.Document;
import dev.langchain4j.data.message.AiMessage; import dev.langchain4j.data.message.*;
import dev.langchain4j.data.message.ChatMessage;
import dev.langchain4j.data.message.SystemMessage;
import dev.langchain4j.data.message.UserMessage;
import dev.langchain4j.data.segment.TextSegment; import dev.langchain4j.data.segment.TextSegment;
import dev.langchain4j.memory.chat.MessageWindowChatMemory; import dev.langchain4j.memory.chat.MessageWindowChatMemory;
import dev.langchain4j.model.StreamingResponseHandler; import dev.langchain4j.model.StreamingResponseHandler;
@ -17,10 +15,15 @@ import dev.langchain4j.model.output.Response;
import dev.langchain4j.rag.content.retriever.EmbeddingStoreContentRetriever; import dev.langchain4j.rag.content.retriever.EmbeddingStoreContentRetriever;
import dev.langchain4j.service.AiServices; import dev.langchain4j.service.AiServices;
import dev.langchain4j.service.TokenStream; import dev.langchain4j.service.TokenStream;
import dev.langchain4j.service.tool.DefaultToolExecutor;
import dev.langchain4j.service.tool.ToolExecutor;
import dev.langchain4j.store.embedding.EmbeddingStoreIngestor; import dev.langchain4j.store.embedding.EmbeddingStoreIngestor;
import dev.langchain4j.store.embedding.inmemory.InMemoryEmbeddingStore; import dev.langchain4j.store.embedding.inmemory.InMemoryEmbeddingStore;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.UUID;
import java.util.function.Consumer;
/** /**
* *
@ -30,8 +33,8 @@ public class Test {
public static void main(String[] args) { public static void main(String[] args) {
// testSimpleChat(args); // testSimpleChat(args);
// testStreamChat(args); // testStreamChat(args);
testRagChat(args); // testRagChat(args);
// testTool(args); testTool(args);
} }
public static void testSimpleChat(String[] args) { public static void testSimpleChat(String[] args) {
@ -138,62 +141,57 @@ public class Test {
} }
public static void testTool(String[] args) { public static void testTool(String[] args) {
// ChatLanguageModel model = OllamaChatModel.builder() OpenAiChatModel model = OpenAiChatModel.builder()
// .baseUrl("http://36.138.207.178:11434") .baseUrl("http://36.138.207.178:11434/v1")
// .modelName("qwen2.5:7b") .apiKey("1")
// .logRequests(true) .modelName("qwen2.5:7b")
// .logResponses(true) .build();
// .build();
// List<ChatMessage> chatMessages = new ArrayList<>();
// List<ChatMessage> chatMessages = new ArrayList<>(); chatMessages.add(UserMessage.from("请问,泰州市的天气怎么样?"));
// chatMessages.add(UserMessage.from("请问,泰州市的天气怎么样?"));
// Object weatherTools = new Object() {
// Object weatherTools = new Object() { @Tool("返回某一城市的天气情况")
// @Tool("返回某一城市的天气情况") public String getWeather(@P("应返回天气预报的城市") String city) {
// public String getWeather(@P("应返回天气预报的城市") String city) { System.out.println(city);
// System.out.println(city); return "天气阴转多云1~6℃";
// return "天气阴转多云1~6℃"; }
// } };
// };
// List<ToolSpecification> toolSpecifications = ToolSpecifications.toolSpecificationsFrom(weatherTools);
// List<ToolSpecification> toolSpecifications = ToolSpecifications.toolSpecificationsFrom(weatherTools);
// ChatRequest chatRequest = ChatRequest.builder()
// ChatRequest chatRequest = ChatRequest.builder() .messages(chatMessages)
// .messages(chatMessages) .toolSpecifications(toolSpecifications)
// .parameters(ChatRequestParameters.builder() .build();
// .toolSpecifications(toolSpecifications)
// .build())
// .build(); ChatResponse chatResponse = model.chat(chatRequest);
// AiMessage aiMessage = chatResponse.aiMessage();
// chatMessages.add(aiMessage);
// ChatResponse chatResponse = model.chat(chatRequest); if (aiMessage.hasToolExecutionRequests()) {
// AiMessage aiMessage = chatResponse.aiMessage(); System.out.println("LLM决定调用工具");
// chatMessages.add(aiMessage); System.out.println(chatResponse.aiMessage());
// if (aiMessage.hasToolExecutionRequests()) { List<ToolExecutionRequest> toolExecutionRequests = chatResponse.aiMessage().toolExecutionRequests();
// System.out.println("LLM决定调用工具"); toolExecutionRequests.forEach(new Consumer<ToolExecutionRequest>() {
// System.out.println(chatResponse.aiMessage()); @Override
// List<ToolExecutionRequest> toolExecutionRequests = chatResponse.aiMessage().toolExecutionRequests(); public void accept(ToolExecutionRequest toolExecutionRequest) {
// toolExecutionRequests.forEach(new Consumer<ToolExecutionRequest>() { ToolExecutor toolExecutor = new DefaultToolExecutor(weatherTools, toolExecutionRequest);
// @Override System.out.println("Now let's execute the tool " + toolExecutionRequest.name());
// public void accept(ToolExecutionRequest toolExecutionRequest) { String result = toolExecutor.execute(toolExecutionRequest, UUID.randomUUID().toString());
// ToolExecutor toolExecutor = new DefaultToolExecutor(weatherTools, toolExecutionRequest); ToolExecutionResultMessage toolExecutionResultMessages = ToolExecutionResultMessage.from(toolExecutionRequest, result);
// System.out.println("Now let's execute the tool " + toolExecutionRequest.name()); chatMessages.add(toolExecutionResultMessages);
// String result = toolExecutor.execute(toolExecutionRequest, UUID.randomUUID().toString()); }
// ToolExecutionResultMessage toolExecutionResultMessages = ToolExecutionResultMessage.from(toolExecutionRequest, result); });
// chatMessages.add(toolExecutionResultMessages); }
// }
// }); // STEP 4: Model generates final response
// } ChatRequest chatRequest2 = ChatRequest.builder()
// .messages(chatMessages)
// // STEP 4: Model generates final response .toolSpecifications(toolSpecifications)
// ChatRequest chatRequest2 = ChatRequest.builder() .build();
// .messages(chatMessages) ChatResponse finalChatResponse = model.chat(chatRequest2);
// .parameters(ChatRequestParameters.builder() System.out.println(finalChatResponse.aiMessage().text());
// .toolSpecifications(toolSpecifications)
// .build())
// .build();
// ChatResponse finalChatResponse = model.chat(chatRequest2);
// System.out.println(finalChatResponse.aiMessage().text());
} }
// 创建一个助手接口 // 创建一个助手接口

Loading…
Cancel
Save

Powered by TurnKey Linux.