diff --git a/src/main/java/com/ai/config/AssistantInit.java b/src/main/java/com/ai/config/AssistantInit.java index c824adc..7e20d53 100644 --- a/src/main/java/com/ai/config/AssistantInit.java +++ b/src/main/java/com/ai/config/AssistantInit.java @@ -1,5 +1,6 @@ package com.ai.config; +import com.ai.function.MyCalculator; import com.ai.service.Assist; import dev.langchain4j.community.model.dashscope.QwenChatModel; import dev.langchain4j.data.document.Document; @@ -36,6 +37,8 @@ public class AssistantInit { return AiServices.builder(Assist.class) .chatMemoryProvider(memoryId -> MessageWindowChatMemory.withMaxMessages(10)) .chatLanguageModel(qwenModel) - .contentRetriever(EmbeddingStoreContentRetriever.from(embeddingStore)).build(); + .contentRetriever(EmbeddingStoreContentRetriever.from(embeddingStore)) + .tools(new MyCalculator()) + .build(); } } diff --git a/src/main/java/com/ai/controller/LangChainController.java b/src/main/java/com/ai/controller/LangChainController.java index 9e7000e..4553726 100644 --- a/src/main/java/com/ai/controller/LangChainController.java +++ b/src/main/java/com/ai/controller/LangChainController.java @@ -55,10 +55,16 @@ public class LangChainController { } @GetMapping("/zhipu/img") - public String memoryChat( @RequestParam("input") String input) { - System.out.println("start highlevel memory chat..."); + public String generateImg( @RequestParam("input") String input) { + System.out.println("start generate img..."); Response generate = zhipuAiImageModel.generate(input); URI url = generate.content().url(); return "Your remote image is here: " + url; } + + @GetMapping("/high/call") + public String functionCall(@RequestParam("input") String input) { + System.out.println("start highlevel memory chat..."); + return assist.chat(input); + } } diff --git a/src/main/java/com/ai/function/MyCalculator.java b/src/main/java/com/ai/function/MyCalculator.java new file mode 100644 index 0000000..751677f --- /dev/null +++ b/src/main/java/com/ai/function/MyCalculator.java @@ -0,0 +1,11 @@ +package com.ai.function; + +import dev.langchain4j.agent.tool.Tool; + +public class MyCalculator { + + @Tool("路飞算法") + public int luffy(int a, int b){ + return (a + b) / (a - b); + } +} diff --git a/src/main/java/com/ai/http/chat.http b/src/main/java/com/ai/http/chat.http index 87ee8de..a95fa9b 100644 --- a/src/main/java/com/ai/http/chat.http +++ b/src/main/java/com/ai/http/chat.http @@ -13,3 +13,6 @@ GET http://localhost:8080/langchain/high/memory-chat?memoryId=1&input=详细介 ### 测试 LangChainController 的 highlevel chat 接口 GET http://localhost:8080/langchain/zhipu/img?input=请画一张魔兽世界里的兽人高举锤子的图 + +### 测试 LangChainController 的 highlevel chat 接口 +GET http://localhost:8080/langchain/high/call?input=我的两个数分别是9和3,请用路飞算法计算结果