|
|
|
@ -3,12 +3,15 @@ package xyz.wbsite.ai;
|
|
|
|
|
import cn.hutool.core.thread.ThreadUtil;
|
|
|
|
|
import cn.hutool.json.JSONUtil;
|
|
|
|
|
import com.fasterxml.jackson.annotation.JsonUnwrapped;
|
|
|
|
|
import dev.langchain4j.data.message.AiMessage;
|
|
|
|
|
import dev.langchain4j.data.message.ChatMessage;
|
|
|
|
|
import dev.langchain4j.data.message.UserMessage;
|
|
|
|
|
import dev.langchain4j.agent.tool.ToolSpecification;
|
|
|
|
|
import dev.langchain4j.data.message.*;
|
|
|
|
|
import dev.langchain4j.model.chat.ChatLanguageModel;
|
|
|
|
|
import dev.langchain4j.model.chat.StreamingChatLanguageModel;
|
|
|
|
|
import dev.langchain4j.model.chat.request.ChatRequest;
|
|
|
|
|
import dev.langchain4j.model.chat.request.ChatRequestParameters;
|
|
|
|
|
import dev.langchain4j.model.chat.request.ChatRequestParametersBuilder;
|
|
|
|
|
import dev.langchain4j.model.chat.request.DefaultChatRequestParameters;
|
|
|
|
|
import dev.langchain4j.model.chat.request.json.JsonObjectSchema;
|
|
|
|
|
import dev.langchain4j.model.chat.response.ChatResponse;
|
|
|
|
|
import dev.langchain4j.model.chat.response.StreamingChatResponseHandler;
|
|
|
|
|
import dev.langchain4j.model.ollama.OllamaChatModel;
|
|
|
|
@ -20,9 +23,9 @@ import dev.langchain4j.model.ollama.OllamaStreamingChatModel;
|
|
|
|
|
public class Main {
|
|
|
|
|
|
|
|
|
|
public static void main(String[] args) {
|
|
|
|
|
|
|
|
|
|
// testSimpleChat(args);
|
|
|
|
|
testStreamChat(args);
|
|
|
|
|
// testStreamChat(args);
|
|
|
|
|
testTool(args);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void testSimpleChat(String[] args) {
|
|
|
|
@ -88,4 +91,27 @@ public class Main {
|
|
|
|
|
ThreadUtil.safeSleep(1000);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
public static void testTool(String[] args) {
|
|
|
|
|
ChatLanguageModel model = OllamaChatModel.builder()
|
|
|
|
|
.baseUrl("http://36.138.207.178:11434")
|
|
|
|
|
.modelName("deepseek-r1:32B")
|
|
|
|
|
.build();
|
|
|
|
|
|
|
|
|
|
ToolSpecification build1 = ToolSpecification.builder().name("weather").parameters(JsonObjectSchema.builder().addStringProperty("城市").build()).build();
|
|
|
|
|
ChatRequestParameters build2 = DefaultChatRequestParameters.builder().toolSpecifications(build1).build();
|
|
|
|
|
|
|
|
|
|
ChatRequest build = ChatRequest.builder()
|
|
|
|
|
.messages(new ChatMessage[]{
|
|
|
|
|
UserMessage.from("请问,泰州市明天的天气怎么样?"),
|
|
|
|
|
SystemMessage.from("请使用天气工具"),
|
|
|
|
|
})
|
|
|
|
|
.parameters(build2)
|
|
|
|
|
.build();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ChatResponse chat = model.chat(build);
|
|
|
|
|
System.out.println(chat.aiMessage().text());
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|