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