From 28fc8b028099f0fd4719b0a35d4fb98a728d73cd Mon Sep 17 00:00:00 2001 From: leutu <leutu@qq.com> Date: 星期三, 19 六月 2024 14:20:57 +0800 Subject: [PATCH] 新增对fastgpt api请求知识库接口 --- src/main/java/com/yb/controller/AiController.java | 85 ++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 84 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..dbd9b3b 100644 --- a/src/main/java/com/yb/controller/AiController.java +++ b/src/main/java/com/yb/controller/AiController.java @@ -1,18 +1,40 @@ package com.yb.controller; +import com.alibaba.fastjson.JSON; +import com.yb.util.OkHttpUtil; +import io.swagger.v3.oas.annotations.tags.Tag; import jakarta.annotation.Resource; + +import net.sf.json.JSONObject; +import okhttp3.Response; 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; + + +@Tag(name="terra openai") @RestController @RequestMapping("/api/v1") public class AiController { @Resource private OllamaChatModel chatModel; + + @Autowired + private OkHttpUtil okHttpUtil ; + + @Value("${spring.intent}") + String intent ; + @GetMapping("/chat") @@ -22,6 +44,67 @@ @GetMapping("/intent") public String intent(@RequestParam(value = "message",defaultValue = "Hi") String message){ - return chatModel.call("璇风敤涓枃鍥炵瓟濡備笅闂,濡傛灉鏈夊湴鍚嶅嚭鐜帮紝鍥炲埌鍐呭鍖呮嫭缁忕含搴﹀苟浣跨敤json杩斿洖,"+message); + String json = okHttpUtil.getMessage(intent+"="+message); + Map<String,String> hashMap = new HashMap<>() ; + iteraJson(json,hashMap); + return JSON.toJSON(hashMap).toString() ; + } + 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.postFastgpt(message); + System.out.println(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)); + } + System.out.println(JSON.toJSON(hashMap).toString()); + System.out.println("===================================="); + return JSON.toJSON(hashMap).toString() ; + + + } + + @GetMapping("/fastgpt") + public String fastgpt(@RequestParam(value = "message",defaultValue = "Hi") String message){ + + okHttpUtil.requesFast(message); + String json = okHttpUtil.requesFast(message); + + return json ; + } + + @GetMapping("/fastgpt_list") + public String fastgpt_list(String parentId){ + + + String json = okHttpUtil.requesFast_kl(parentId); + + return json ; } } -- Gitblit v1.9.3