From b8b0b633bbe96658ba72ff78744591e5e1bdafd4 Mon Sep 17 00:00:00 2001 From: leutu <leutu@qq.com> Date: 星期四, 27 六月 2024 17:52:44 +0800 Subject: [PATCH] 接口调整处理 --- src/main/java/com/yb/controller/AiController.java | 154 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 152 insertions(+), 2 deletions(-) diff --git a/src/main/java/com/yb/controller/AiController.java b/src/main/java/com/yb/controller/AiController.java index c24500f..7e3df4a 100644 --- a/src/main/java/com/yb/controller/AiController.java +++ b/src/main/java/com/yb/controller/AiController.java @@ -1,27 +1,177 @@ package com.yb.controller; +import com.alibaba.fastjson.JSON; +import com.yb.util.OkHttpUtil; +import io.swagger.v3.oas.annotations.Operation; +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") + @Operation(summary = "澶фā鍨嬪璇�") public String chat(@RequestParam(value = "message",defaultValue = "Hi") String message){ - return chatModel.call("璇风敤涓枃鍥炵瓟濡備笅闂,濡傛灉鏈夊湴鍚嶅嚭鐜帮紝鍥炲埌鍐呭鍖呮嫭缁忕含搴﹀苟浣跨敤json杩斿洖,"+message); + return chatModel.call(message); } + @GetMapping("/intent") + @Operation(summary = "鎰忓浘璇锋眰") 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); + intentSwitch(hashMap,message); + 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") + @Operation(summary = "鎰忓浘涓庡ぇ妯″瀷璇锋眰") + public String mix(@RequestParam(value = "message",defaultValue = "Hi") String message){ + String json = okHttpUtil.getMessage(intent+"="+message); + System.out.println(message); +// JSONObject jsonObject = JSONObject.parseObject(json); + Map<String,String> hashMap = new HashMap<>() ; + String place = null ; + if( json != null) { + + iteraJson(json, hashMap); + intentSwitch(hashMap,message); + place = hashMap.get("place"); + } + if( place != null ){ + String llm = chatModel.call(place); + hashMap.put("content",llm); + + json = JSON.toJSON(hashMap).toString() ; + }else{ + json = hashMap.put("content", chatModel.call(message)); + } + hashMap.put("code","200"); + System.out.println(JSON.toJSON(hashMap).toString()); + System.out.println("===================================="); + return JSON.toJSON(hashMap).toString() ; + + + } + + @GetMapping("/fastgpt") + @Operation(summary = "鐭ヨ瘑搴撴煡璇�") + public String fastgpt(@RequestParam(value = "message",defaultValue = "涓夌淮瀹炴櫙") String message){ + + //okHttpUtil.requesFast(message); + String json = okHttpUtil.requesFast(message); + + return json ; + } + + @GetMapping("/fastgpt_list") + @Operation(summary = "鐭ヨ瘑搴撳垪琛�") + public String fastgpt_list(){ + + + String json = okHttpUtil.requesFast_kl(); + + return json ; + } + /* + def anomalyCheck(time,place): 銆愭槧灏勫埌鎰忓浘1銆� + """寮傚父鎯呭喌鏌ヨ銆傛煡璇㈠湪鏌愪釜鏃堕棿鏌愪釜鍦扮偣鐨勫紓甯告儏鍐碉紝涓庡線鏃ユ湁浣曚笉鍚屻�傛煡鐪嬫煇涓湴鐐圭殑鍗槦鍥剧墖銆�""" + + scanWeapon(); + ======================================= + def weaponParameters(weapons): 銆愭槧灏勫埌鎰忓浘2銆� + """姝﹀櫒璇︾粏鍙傛暟鏌ヨ銆傛煡璇㈡鍣ㄧ殑璇︾粏淇℃伅銆傛煡璇㈡鍣ㄧ殑鍏蜂綋鍙傛暟銆�""" + raise ToolException(f"娌℃湁鍚嶇О涓簕weapons}鐨勬鍣ㄣ��") + + weaponParameters(); + ========================================= + + def searchTarget(place, entity): 銆愭槧灏勫埌鎰忓浘3,4,5,6 +銆�1. 杈撳叆鍙傛暟涓猴細鏀挎不鐩爣锛岀ぞ浼氱洰鏍囷紝鍐涗簨鐩爣锛屾皯瀹咃紝鍖婚櫌瀵瑰簲鎰忓浘3.4 +searchTarget(); +2.杈撳叆鍙傛暟涓猴細鍙墦鍑荤洰鏍�/涓嶅彲鎵撳嚮鐩爣瀵瑰簲鎰忓浘5 +searchStrikeableTarget(); +3.杈撳叆鍙傛暟涓猴細缇庡浗绌哄啗鎸囨尌涓績锛屽搴旀剰鍥�6銆� + """鏌ヨ鏌愬湴鐨勬斂娌荤洰鏍�/绀句細鐩爣/缁忔祹鐩爣/鍐涗簨鐩爣/姘戝畢/鍖婚櫌/鍙墦鍑荤洰鏍�/涓嶅彲鎵撳嚮鐩爣绛夊缓绛戝疄浣撶殑鎯呭喌""" + USAFCommandCenterQuery(); + +def attackanddefenceCenter(weapons: str, place: str): #銆愭槧灏勫埌鎰忓浘7.8銆� + 杩欓噷璁╀綘鍒ゆ柇鏄潃浼ゆ�ф鍣ㄨ繕鏄槻寰℃�ф鍣紝鏉�浼ゆ�ф鍣ㄧ殑灏卞瀵瑰簲鎰忓浘7鏉�浼ゅ崐寰勶紝 + 闃插尽鎬ф鍣ㄥ氨瀵瑰簲鎰忓浘8闃插尽鍗婂緞銆傘�� + """璇ュ伐鍏风殑杈撳叆蹇呴』涓烘鍣ㄥ悕绉板拰鍦扮偣銆傛鍣ㄦā鎷熶豢鐪燂紝缁欏嚭鏌愮鍦烘櫙銆傛鍣ㄥ垎鏋愶紝鍦板浘浠跨湡鎸囦护銆傛垨鑰呮煡璇㈡鍣ㄧ殑鏉�浼ゅ崐寰�/闃茬┖鍗婂緞/鏉�浼よ寖鍥�/闃茬┖鑼冨洿銆�""" +attackUSAFCommandCenter(); +defenceRangeTyphoonSystem(); + + */ + private void intentSwitch(Map<String,String>hash,String message){ + if( hash.get("name") == null ) return ; + if( hash.get("name").equals("anomalyCheck")) hash.put("name","scanWeapon"); + if( hash.get("name").equals("weaponParameters")) hash.put("name","weaponParameters"); + if( hash.get("name").equals("searchTarget")) { + String entity = hash.get("entity"); + if( entity.indexOf("鏀挎不")>=0 || entity.indexOf("绀句細")>=0||entity.indexOf("鍐涗簨")>=0 || + entity.indexOf("姘戝畢")>=0 || entity.indexOf("鍖婚櫌")>=0 || entity.indexOf("鍏跺畠")>=0) + hash.put("name","searchTarget"); + if( entity.indexOf("鎵撳嚮")>=0 ) + hash.put("name","searchStrikeableTarget"); + if( entity.indexOf("缇庡浗")>=0 || entity.indexOf("绌哄啗")>=0||entity.indexOf("鎸囨尌")>=0 + ||entity.indexOf("涓績")>=0) + hash.put("name","USAFCommandCenterQuery"); + + } + if( hash.get("name").equals("attackanddefenceCenter")) { + if( message.indexOf("鎵撳嚮")>=0 || message.indexOf("鏉�浼�")>=0 || message.indexOf("鎽ф瘉")>=0 || + message.indexOf("鐮村潖")>=0) + hash.put("name","attackUSAFCommandCenter"); + else + hash.put("name","defenceRangeTyphoonSystem"); + } } } -- Gitblit v1.9.3