From 25bb09bc4e19103bdd55a8159c70a9642803b7b8 Mon Sep 17 00:00:00 2001 From: leutu <leutu@qq.com> Date: 星期五, 07 六月 2024 18:44:18 +0800 Subject: [PATCH] 访问意图服务 --- .idea/vcs.xml | 1 src/main/java/com/yb/controller/AiController.java | 58 ++++++++++++++++++++++++++++ pom.xml | 17 ++++++++ src/main/resources/application.yml | 1 4 files changed, 76 insertions(+), 1 deletions(-) diff --git a/.idea/vcs.xml b/.idea/vcs.xml index 6c0b863..288b36b 100644 --- a/.idea/vcs.xml +++ b/.idea/vcs.xml @@ -2,5 +2,6 @@ <project version="4"> <component name="VcsDirectoryMappings"> <mapping directory="$PROJECT_DIR$/.." vcs="Git" /> + <mapping directory="$PROJECT_DIR$" vcs="Git" /> </component> </project> \ No newline at end of file diff --git a/pom.xml b/pom.xml index 281a765..db3575d 100644 --- a/pom.xml +++ b/pom.xml @@ -20,6 +20,23 @@ </properties> <dependencies> <dependency> + <groupId>com.squareup.okhttp3</groupId> + <artifactId>okhttp</artifactId> + <version>3.14.9</version> + </dependency> + <dependency> + <groupId>com.alibaba</groupId> + <artifactId>fastjson</artifactId> + <version>1.2.70</version> + </dependency> + <!-- https://mvnrepository.com/artifact/net.sf.json-lib/json-lib --> + <dependency> + <groupId>net.sf.json-lib</groupId> + <artifactId>json-lib</artifactId> + <version>2.4</version> + <classifier>jdk15</classifier> <!-- 闇�瑕佹寚瀹欽DK鐗堟湰鍝︼細2.4鏈�13,15涓や釜JDK鐗堟湰 --> + </dependency> + <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> diff --git a/src/main/java/com/yb/controller/AiController.java b/src/main/java/com/yb/controller/AiController.java index c24500f..ae5c676 100644 --- a/src/main/java/com/yb/controller/AiController.java +++ b/src/main/java/com/yb/controller/AiController.java @@ -1,12 +1,24 @@ package com.yb.controller; +import com.alibaba.fastjson.JSON; +import com.yb.util.OkHttpUtil; import jakarta.annotation.Resource; + +import net.sf.json.JSONObject; import org.springframework.ai.ollama.OllamaChatModel; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; + +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; +import java.util.Set; + @RestController @RequestMapping("/api/v1") @@ -14,6 +26,11 @@ @Resource private OllamaChatModel chatModel; + @Autowired + private OkHttpUtil okHttpUtil ; + + @Value("${spring.intent}") + String intent ; @GetMapping("/chat") public String chat(@RequestParam(value = "message",defaultValue = "Hi") String message){ @@ -22,6 +39,45 @@ @GetMapping("/intent") public String intent(@RequestParam(value = "message",defaultValue = "Hi") String message){ - return chatModel.call("璇风敤涓枃鍥炵瓟濡備笅闂,濡傛灉鏈夊湴鍚嶅嚭鐜帮紝鍥炲埌鍐呭鍖呮嫭缁忕含搴﹀苟浣跨敤json杩斿洖,"+message); + String json = okHttpUtil.getMessage(intent+"="+message); + + return json ; + } + public boolean iteraJson(String str, Map res){ + if(str.toString().indexOf(":") == -1){ + return true; + } + JSONObject fromObject = JSONObject.fromObject(str); + Iterator keys = fromObject.keys(); + while(keys.hasNext()){ + String key = keys.next().toString(); + Object value = fromObject.get(key); + if(iteraJson(value.toString(),res)){ + res.put(key, value); + } + } + return false; + + } + + @GetMapping("/mix") + public String mix(@RequestParam(value = "message",defaultValue = "Hi") String message){ + String json = okHttpUtil.getMessage(intent+"="+message); +// JSONObject jsonObject = JSONObject.parseObject(json); + Map<String,String> hashMap = new HashMap<>() ; + iteraJson(json,hashMap); + + String place = hashMap.get("place"); + if( place != null ){ + String llm = chatModel.call("璇风敤涓枃鍥炵瓟濡備笅闂,濡傛灉鏈夊湴鍚嶅嚭鐜帮紝鍥炲埌鍐呭鍖呮嫭缁忕含搴﹀苟浣跨敤json杩斿洖,"+place); + hashMap.put("content",llm); + + json = JSON.toJSON(hashMap).toString() ; + }else{ + json = hashMap.put("content", chatModel.call("璇风敤涓枃鍥炵瓟濡備笅闂,濡傛灉鏈夊湴鍚嶅嚭鐜帮紝鍥炲埌鍐呭鍖呮嫭缁忕含搴﹀苟浣跨敤json杩斿洖,"+message)); + } + return json ; + + } } diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 4cb1490..1deea57 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -11,3 +11,4 @@ chat: # model: yi:9b-chat-v1.5-q4_0 model: llama3:8b + intent: http://106.120.22.26:5367/intention?message -- Gitblit v1.9.3