From 4fbeca899b3b860160fa99c221213cf5aa447e08 Mon Sep 17 00:00:00 2001 From: liangjinglin Date: Sat, 29 Mar 2025 23:46:43 +0800 Subject: [PATCH] =?UTF-8?q?20250329=20function=20call(=E8=BF=98=E9=9C=80?= =?UTF-8?q?=E8=A6=81=E8=B0=83=E6=95=B4=EF=BC=8C=E7=9B=AE=E5=89=8Dqwen?= =?UTF-8?q?=E8=B2=8C=E4=BC=BC=E4=B8=8D=E6=94=AF=E6=8C=81=EF=BC=8C=E8=A6=81?= =?UTF-8?q?=E8=AF=95=E8=AF=95ollama=E7=9A=84=E6=96=B9=E5=BC=8F)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/java/com/ai/config/AssistantInit.java | 5 ++++- .../java/com/ai/controller/LangChainController.java | 10 ++++++++-- src/main/java/com/ai/function/MyCalculator.java | 11 +++++++++++ src/main/java/com/ai/http/chat.http | 3 +++ 4 files changed, 26 insertions(+), 3 deletions(-) create mode 100644 src/main/java/com/ai/function/MyCalculator.java 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,请用路飞算法计算结果