From 25bb09bc4e19103bdd55a8159c70a9642803b7b8 Mon Sep 17 00:00:00 2001
From: leutu <leutu@qq.com>
Date: 星期五, 07 六月 2024 18:44:18 +0800
Subject: [PATCH] 访问意图服务

---
 src/main/java/com/yb/controller/AiController.java |   58 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 57 insertions(+), 1 deletions(-)

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 ;
+
+
     }
 }

--
Gitblit v1.9.3