From 55e607b91e8058a7fe713fa07cd4c829b5593aa5 Mon Sep 17 00:00:00 2001 From: leutu <leutu@qq.com> Date: 星期二, 27 八月 2024 09:30:57 +0800 Subject: [PATCH] 更新 --- src/main/java/com/yb/message/WebSocketStompConfig.java | 56 +++++ src/main/java/com/yb/controller/AiController.java | 97 ++++++++- pom.xml | 5 src/main/java/com/yb/entity/ResponseEntity.java | 2 src/main/java/com/yb/controller/XzController.java | 90 +++++++++ src/main/java/com/yb/util/OkHttpUtil.java | 10 /dev/null | 57 ----- src/main/java/com/yb/message/WebSocketServer.java | 96 +++++++++ src/main/java/com/yb/message/WebsocketConfiguration.java | 18 + src/main/java/com/yb/entity/ReqEntity.java | 43 ++++ src/main/java/com/yb/config/R.java | 64 ++++++ src/main/resources/application.yml | 6 src/main/java/com/yb/controller/WebSocketController.java | 37 +++ 13 files changed, 506 insertions(+), 75 deletions(-) diff --git a/pom.xml b/pom.xml index 684fde7..c29c589 100644 --- a/pom.xml +++ b/pom.xml @@ -20,6 +20,11 @@ </properties> <dependencies> <dependency> + <groupId>org.springframework.boot</groupId> + <artifactId>spring-boot-starter-websocket</artifactId> + <version>2.7.5</version> + </dependency> + <dependency> <groupId>com.squareup.okhttp3</groupId> <artifactId>okhttp</artifactId> <version>3.14.9</version> diff --git a/src/main/java/com/yb/config/R.java b/src/main/java/com/yb/config/R.java new file mode 100644 index 0000000..2a3d71c --- /dev/null +++ b/src/main/java/com/yb/config/R.java @@ -0,0 +1,64 @@ +package com.yb.config; + + +import org.apache.http.HttpStatus; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +/** + * 杩斿洖鏁版嵁 + * + * @author Mark sunlightcs@gmail.com + */ +public class R extends HashMap<String, Object> { + private static final long serialVersionUID = 1L; + + public R() { + put("code", 200); + put("msg", "success"); + } + + public static R error() { + return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, "鏈煡寮傚父锛岃鑱旂郴绠$悊鍛�"); + } + + public static R error(String msg) { + return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, msg); + } + + public static R error(int code, String msg) { + R r = new R(); + r.put("code", code); + r.put("msg", msg); + return r; + } + + public static R ok(String msg) { + R r = new R(); + r.put("msg", msg); + return r; + } + + public static R ok(Map<String, Object> map) { + R r = new R(); + r.putAll(map); + return r; + } + + public static R ok() { + return new R(); + } + + public R put(String key, Object value) { + super.put(key, value); + return this; + } + + public static R ok(List list) { + R r = new R(); + r.put("list", list); + return r; + } +} diff --git a/src/main/java/com/yb/controller/AiController.java b/src/main/java/com/yb/controller/AiController.java index 7e3df4a..a8cf2cf 100644 --- a/src/main/java/com/yb/controller/AiController.java +++ b/src/main/java/com/yb/controller/AiController.java @@ -8,19 +8,14 @@ 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 org.springframework.web.bind.annotation.*; import java.util.HashMap; import java.util.Iterator; import java.util.Map; -import java.util.Set; @Tag(name="terra openai") @@ -36,7 +31,8 @@ @Value("${spring.intent}") String intent ; - + @Autowired + WebSocketController webSocketController; @GetMapping("/chat") @Operation(summary = "澶фā鍨嬪璇�") @@ -44,16 +40,74 @@ return chatModel.call(message); } + @GetMapping("/ai") + @Operation(summary = "澶фā鍨嬪璇�") + public String ai(@RequestParam(value = "message",defaultValue = "Hi") String message){ + System.out.println("rec message:"+message); + HashMap<String,String> hash = new HashMap<>(); + hash.put("func","flyTo()"); + hash.put("content","x:120.9671,y:13.5748"); + message = JSON.toJSONString(hash); + return webSocketController.sendAllMessage(message); + } + @GetMapping("/ai/{place}/{funcName}/showPlaceMap") + @Operation(summary = "澶фā鍨嬪璇�") + public String intentShowMap(@PathVariable("place")String place,@PathVariable("funcName")String funcName){ + System.out.println("rec message:"+place); + HashMap<String,Object> hash = new HashMap<>(); + hash.put("func","flyTo()"); + HashMap<String,String> xy = new HashMap<>(); + xy.put("x","120.9671"); + xy.put("y","13.5748"); + hash.put("content",xy); + webSocketController.sendAllMessage(JSON.toJSONString(hash)); + HashMap<String,Object> result = new HashMap<>(); + result.put("code","200"); + result.put("message","鎴愬姛"); + result.put("data",""); + return JSON.toJSONString(result); + } @GetMapping("/intent") @Operation(summary = "鎰忓浘璇锋眰") public String intent(@RequestParam(value = "message",defaultValue = "Hi") String message){ - String json = okHttpUtil.getMessage(intent+"="+message); + if( message.toLowerCase().indexOf("x") == 0){ + return getString(message.substring(1)); + } + String r = intent+"=\""+message+"\""; + System.out.println(r); + String json = okHttpUtil.getMessage(r); + System.out.println(json); + Map<String,String> hashMap = new HashMap<>() ; + if( json == null){ + hashMap.put("status","500"); + //String llm = chatModel.call(message); + //hashMap.put("content","璇嗗埆寮傚父,"+llm); + if( hashMap.get("name") == null ){ + String json2 = okHttpUtil.requesFast(message); + + return json2 ; + } + return JSON.toJSON(hashMap).toString() ; + + } iteraJson(json,hashMap); + if( hashMap.get("name") == null ){ + String json2 = okHttpUtil.requesFast(message); + + return json2 ; + } intentSwitch(hashMap,message); return JSON.toJSON(hashMap).toString() ; } + + private String getString(String message) { + String json = okHttpUtil.requesFast(message.substring(1)); + + return json; + } + public boolean iteraJson(String str, Map res){ if(str.toString().indexOf(":") == -1){ return true; @@ -103,7 +157,7 @@ @GetMapping("/fastgpt") @Operation(summary = "鐭ヨ瘑搴撴煡璇�") - public String fastgpt(@RequestParam(value = "message",defaultValue = "涓夌淮瀹炴櫙") String message){ + public String fastgpt(@RequestParam(value = "message",defaultValue = "055") String message){ //okHttpUtil.requesFast(message); String json = okHttpUtil.requesFast(message); @@ -152,8 +206,29 @@ */ 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("anomalyCheck")) hash.put("name","scanWeapon"); +// if( hash.get("name").equals("weaponParameters")) hash.put("name","weaponParameters"); + String ws = " 鍫や赴姝﹀櫒绯荤粺 鍫や赴绯荤粺" + + "鍦e畨涓滃凹濂ョ骇" + + " C130 C130椋炴満 C130杩愯緭鏈� C130鐐墖" + + "浣曞榛庡埞绾х郴缁�" + + " 楸奸拱姝﹀櫒绯荤粺 楸奸拱绯荤粺" + + "涓归箍绾ф鍣ㄧ郴缁� 涓归箍绾х郴缁�" + + "鍏堥攱绾ф鍣ㄧ郴缁� 鍏堥攱绾х郴缁�" + + "鏀ゴ骞叉鍣ㄧ郴缁� 鏀ゴ骞茬洿鍗囨満 鏀ゴ骞茬郴缁� 鏀ゴ骞茶繍杈撴満" + + "榛戦拱姝﹀櫒绯荤粺 榛戦拱鐩村崌鏈� 榛戦拱绯荤粺 榛戦拱姝﹁鐩村崌鏈�"; + if( hash.get("name").toLowerCase().equals("weaponsystemparametersinput") + || hash.get("name").toLowerCase().equals("weaponsystemparameters")){ + if(ws.indexOf(hash.get("weapons")) > -1 )hash.put("name","weaponSystemParameters"); + else { + hash.put("name", "weaponSystemParameters"); + hash.put("weapons", ""); + String llm = chatModel.call(message); + System.out.println("llm:" + llm); + hash.put("content", llm); + } + } + if( hash.get("name").equals("searchTarget")) { String entity = hash.get("entity"); if( entity.indexOf("鏀挎不")>=0 || entity.indexOf("绀句細")>=0||entity.indexOf("鍐涗簨")>=0 || diff --git a/src/main/java/com/yb/controller/WebSocketController.java b/src/main/java/com/yb/controller/WebSocketController.java new file mode 100644 index 0000000..7ac0c94 --- /dev/null +++ b/src/main/java/com/yb/controller/WebSocketController.java @@ -0,0 +1,37 @@ +package com.yb.controller; + +import java.io.*; + +import com.yb.message.WebSocketServer; +import org.springframework.web.bind.annotation.*; + +@RestController +@RequestMapping({ "/api/ws" }) +public class WebSocketController +{ + @RequestMapping(value = { "/sendAll" }, method = { RequestMethod.GET }) + public String sendAllMessage(@RequestParam(required = true) final String message) { + try { + WebSocketServer.BroadCastInfo(message); + } + catch (IOException e) { + e.printStackTrace(); + } + return "ok"; + } + + @RequestMapping(value = { "/sendOne" }, method = { RequestMethod.GET }) + public String sendOneMessage(@RequestParam(required = true) final String message, @RequestParam(required = true) final String id) { + try { + WebSocketServer.SendMessage(message, id); + } + catch (IOException e) { + e.printStackTrace(); + } + return "ok"; + } +} + + + + diff --git a/src/main/java/com/yb/controller/XzController.java b/src/main/java/com/yb/controller/XzController.java new file mode 100644 index 0000000..017e48c --- /dev/null +++ b/src/main/java/com/yb/controller/XzController.java @@ -0,0 +1,90 @@ +package com.yb.controller; + +import com.alibaba.fastjson.JSON; +import com.yb.config.R; +import com.yb.entity.ReqEntity; +import io.swagger.v3.oas.annotations.Operation; +import io.swagger.v3.oas.annotations.tags.Tag; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.*; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; + +@Tag(name="鏂版櫤鎺ュ彛") +@RestController +@RequestMapping("/api/v1") +public class XzController { + @Autowired + WebSocketController webSocketController; + + @GetMapping("/poiMap/{place}") + @Operation(summary = "鏄剧ず鍦扮偣") + public R poiMap(@PathVariable("place")String place){ + System.out.println("rec message:"+place); + HashMap<String,Object> hash = new HashMap<>(); + hash.put("func","poiMap"); + ReqEntity reqEntity = new ReqEntity(); + reqEntity.setPlace(place); + reqEntity.setX("120.9671"); + reqEntity.setY("13.5748"); + hash.put("poi",reqEntity); + + String message = JSON.toJSONString(hash); + webSocketController.sendAllMessage(message); + + return R.ok(hash); + } + + @PostMapping("/aroundPoi") + @Operation(summary = "鍛ㄨ竟鏌ヨ") + public R aroundPoi(@RequestBody ReqEntity reqEntity){ + System.out.println("rec message:"+reqEntity); + HashMap<String,Object> hash = new HashMap<>(); + hash.put("func","aroundPoi"); + List<ReqEntity> list = new ArrayList<>(); + reqEntity.setX("120.9671"); + reqEntity.setY("13.5748"); + list.add(reqEntity); + list.add(reqEntity); + hash.put("poi",list); + + String message = JSON.toJSONString(hash); + webSocketController.sendAllMessage(message); + + return R.ok(hash); + } + + @GetMapping("/queryPath/{start_point}/{end_point}") + @Operation(summary = "璺嚎鏌ヨ") + public R queryPath(@PathVariable("start_point")String start_point,@PathVariable("end_point")String end_point){ + System.out.println("rec start_point: "+start_point+" end_point: "+end_point); + HashMap<String,Object> hash = new HashMap<>(); + hash.put("func","searchPath"); + List<ReqEntity> list = new ArrayList<>(); + + hash.put("path",list); + + String message = JSON.toJSONString(hash); + webSocketController.sendAllMessage(message); + + return R.ok(hash); + } + + @GetMapping("/queryMeta") + @Operation(summary = "鍏冧俊鎭煡璇�") + public R queryMeta(){ + System.out.println("queryMeta "); + HashMap<String,Object> hash = new HashMap<>(); + hash.put("func","queryMeta"); + List<ReqEntity> list = new ArrayList<>(); + + hash.put("meta",list); + + String message = JSON.toJSONString(hash); + webSocketController.sendAllMessage(message); + + return R.ok(hash); + } +} diff --git a/src/main/java/com/yb/entity/ReqEntity.java b/src/main/java/com/yb/entity/ReqEntity.java new file mode 100644 index 0000000..956efdf --- /dev/null +++ b/src/main/java/com/yb/entity/ReqEntity.java @@ -0,0 +1,43 @@ +package com.yb.entity; + +import lombok.Data; + +@Data +public class ReqEntity { + + /** + 鍦板悕 + */ + private String place ; + /** + 鏌ヨ绫诲瀷锛屽锛� 寤虹瓚锛屼氦閫氳鏂姐�傘�� + */ + private String type ; + /** + * 鏌ヨ鍗婂緞锛岄粯璁�5km + */ + private String redius = "5000" ; + + /** + *鏌ヨ灞炴�ч暱搴︼紝濡傦細鏌愪釜骞垮満鐨勯暱搴� + */ + private String length; + /** + * 鏌ヨ灞炴�ч暱搴︼紝濡傦細鏌愪釜骞垮満瀹藉害 + */ + private String width ; + /** + * 鏌ヨ灞炴�ч暱搴︼紝濡傦細鏌愪釜寤虹瓚鐨勯珮搴� + */ + private String high ; + + /** + * 鍏朵粬灞炴��,鑻ユ槸澶氫釜鍏朵粬灞炴�э紝浣跨敤json璁剧疆 + */ + private String attris ; + + private String x ; + private String y ; + + private String content ; +} diff --git a/src/main/java/com/yb/entity/ResponseEntity.java b/src/main/java/com/yb/entity/ResponseEntity.java index 39bb774..dc7a686 100644 --- a/src/main/java/com/yb/entity/ResponseEntity.java +++ b/src/main/java/com/yb/entity/ResponseEntity.java @@ -4,6 +4,6 @@ @Data public class ResponseEntity { - private String[] eveent; + private String[] event; private String[] data ; } diff --git a/src/main/java/com/yb/message/WebSocketServer.java b/src/main/java/com/yb/message/WebSocketServer.java new file mode 100644 index 0000000..50d4227 --- /dev/null +++ b/src/main/java/com/yb/message/WebSocketServer.java @@ -0,0 +1,96 @@ +package com.yb.message; + +import jakarta.annotation.PostConstruct; +import jakarta.websocket.*; +import jakarta.websocket.server.ServerEndpoint; +import org.springframework.stereotype.*; +import java.util.concurrent.atomic.*; +import java.util.concurrent.*; + +import java.io.*; +import java.util.*; +import org.slf4j.*; + +@ServerEndpoint("/ws/asset") +@Component +public class WebSocketServer +{ + private static Logger log; + private static final AtomicInteger OnlineCount; + private static CopyOnWriteArraySet<Session> SessionSet; + + @PostConstruct + public void init() { + // System.out.println("websocket 鍔犺浇"); + } + + @OnOpen + public void onOpen(final Session session) { + WebSocketServer.SessionSet.add(session); + final int cnt = WebSocketServer.OnlineCount.incrementAndGet(); + WebSocketServer.log.info("鏈夎繛鎺ュ姞鍏ワ紝褰撳墠杩炴帴鏁颁负锛歿}", (Object)cnt); + SendMessage(session, "杩炴帴鎴愬姛"); + } + + @OnClose + public void onClose(final Session session) { + WebSocketServer.SessionSet.remove(session); + final int cnt = WebSocketServer.OnlineCount.decrementAndGet(); + WebSocketServer.log.info("鏈夎繛鎺ュ叧闂紝褰撳墠杩炴帴鏁颁负锛歿}", (Object)cnt); + } + + @OnMessage + public void onMessage(final String message, final Session session) { + WebSocketServer.log.info("鏉ヨ嚜瀹㈡埛绔殑娑堟伅锛歿}", (Object)message); + SendMessage(session, "鏀跺埌娑堟伅锛屾秷鎭唴瀹癸細" + message); + } + + @OnError + public void onError(final Session session, final Throwable error) { + WebSocketServer.log.error("鍙戠敓閿欒锛歿}锛孲ession ID锛� {}", (Object)error.getMessage(), (Object)session.getId()); + error.printStackTrace(); + } + + public static void SendMessage(final Session session, final String message) { + try { + session.getBasicRemote().sendText(String.format("%s", message)); + } + catch (IOException e) { + WebSocketServer.log.error("鍙戦�佹秷鎭嚭閿欙細{}", (Object)e.getMessage()); + e.printStackTrace(); + } + } + + public static void BroadCastInfo(final String message) throws IOException { + + for (final Session session : WebSocketServer.SessionSet) { + if (session.isOpen()) { + SendMessage(session, message); + } + } + } + + public static void SendMessage(final String message, final String sessionId) throws IOException { + Session session = null; + + for (final Session s : WebSocketServer.SessionSet) { + if (s.getId().equals(sessionId)) { + session = s; + break; + } + } + if (session != null) { + SendMessage(session, message); + } + else { + WebSocketServer.log.warn("娌℃湁鎵惧埌浣犳寚瀹欼D鐨勪細璇濓細{}", (Object)sessionId); + } + } + + static { + WebSocketServer.log = LoggerFactory.getLogger((Class)WebSocketServer.class); + OnlineCount = new AtomicInteger(0); + WebSocketServer.SessionSet = new CopyOnWriteArraySet<Session>(); + } +} + diff --git a/src/main/java/com/yb/message/WebSocketStompConfig.java b/src/main/java/com/yb/message/WebSocketStompConfig.java new file mode 100644 index 0000000..212c2e2 --- /dev/null +++ b/src/main/java/com/yb/message/WebSocketStompConfig.java @@ -0,0 +1,56 @@ +package com.yb.message; + +import org.springframework.context.annotation.*; +import org.springframework.messaging.converter.MessageConverter; +import org.springframework.messaging.handler.invocation.HandlerMethodArgumentResolver; +import org.springframework.messaging.handler.invocation.HandlerMethodReturnValueHandler; +import org.springframework.web.socket.config.annotation.*; +import org.springframework.messaging.simp.config.*; + +import java.util.List; + +@Configuration +@EnableWebSocketMessageBroker +public class WebSocketStompConfig implements WebSocketMessageBrokerConfigurer +{ + @Override + public void registerStompEndpoints(final StompEndpointRegistry registry) { + registry.addEndpoint(new String[] { "/mywebsockets" }).setAllowedOrigins(new String[] { "*" }).withSockJS(); + } + + @Override + public void configureWebSocketTransport(WebSocketTransportRegistration webSocketTransportRegistration) { + + } + + @Override + public void configureClientInboundChannel(ChannelRegistration channelRegistration) { + + } + + @Override + public void configureClientOutboundChannel(ChannelRegistration channelRegistration) { + + } + + @Override + public void addArgumentResolvers(List<HandlerMethodArgumentResolver> list) { + + } + + @Override + public void addReturnValueHandlers(List<HandlerMethodReturnValueHandler> list) { + + } + + @Override + public boolean configureMessageConverters(List<MessageConverter> list) { + return false; + } + + @Override + public void configureMessageBroker(final MessageBrokerRegistry config) { + config.enableSimpleBroker(new String[] { "/topic/", "/queue/" }); + config.setApplicationDestinationPrefixes(new String[] { "/ts" }); + } +} diff --git a/src/main/java/com/yb/message/WebsocketConfiguration.java b/src/main/java/com/yb/message/WebsocketConfiguration.java new file mode 100644 index 0000000..a54f29b --- /dev/null +++ b/src/main/java/com/yb/message/WebsocketConfiguration.java @@ -0,0 +1,18 @@ +package com.yb.message; + +import org.springframework.stereotype.*; +import org.springframework.web.socket.server.standard.*; +import org.springframework.context.annotation.*; + +@Component +public class WebsocketConfiguration +{ + @Bean + public ServerEndpointExporter serverEndpointExporter() { + return new ServerEndpointExporter(); + } +} + + + + diff --git a/src/main/java/com/yb/util/OkHttpUtil.java b/src/main/java/com/yb/util/OkHttpUtil.java index cd9199c..9cf62e2 100644 --- a/src/main/java/com/yb/util/OkHttpUtil.java +++ b/src/main/java/com/yb/util/OkHttpUtil.java @@ -1,8 +1,6 @@ package com.yb.util; import com.alibaba.fastjson.JSON; -import com.google.gson.Gson; -import com.yb.entity.ResponseEntity; import okhttp3.*; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.Async; @@ -13,6 +11,7 @@ import java.util.ArrayList; import java.util.HashMap; import java.util.List; +import java.util.concurrent.TimeUnit; @Component @RestController @@ -29,8 +28,13 @@ // get璇锋眰 public String getMessage(String url) { try { - OkHttpClient client = new OkHttpClient(); + OkHttpClient client = new OkHttpClient.Builder() + .connectTimeout(5, TimeUnit.SECONDS) + .readTimeout(5, TimeUnit.SECONDS) + .writeTimeout(5, TimeUnit.SECONDS) + .build(); Request request = new Request.Builder() + .url(url) .build(); diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index e6699da..0bbe926 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -7,14 +7,14 @@ name: ollama-ai ai: ollama: - base-url: http://192.168.11.104:11434 + base-url: http://127.0.0.1:11434 chat: # model: yi:9b-chat-v1.5-q4_0 model: qwen2:1.5b - intent: http://106.120.22.26:5367/intention?message + intent: http://106.120.22.26:5368/intention?message fastgpt: appid: 6673bfa1d14da0cede023f28 - apikey: fastgpt-4HbHYUnw3ICJWwIAObTfq2BWV94KQzsssFSrM3MMZjjCZrYjulv5zqp5RVL + apikey: fastgpt-eNuz6Rsc5EMrYMiODBQbBXCbGwQYp9nSpYPE06vBBt3nitnFLdHSoQ0BAmNHDyB url: http://192.168.11.28/api/v1/chat/completions kc: http://192.168.11.28/api/core/dataset/create kl: http://192.168.11.28/api/core/dataset/list diff --git a/src/test/java/com/yb/SimpleTest.java b/src/test/java/com/yb/SimpleTest.java deleted file mode 100644 index 1f72e13..0000000 --- a/src/test/java/com/yb/SimpleTest.java +++ /dev/null @@ -1,57 +0,0 @@ -package com.yb; -/* - *@title SimpleTest - *@description - *@author yb - *@version 1.0 - *@create 2024/5/28 20:44 - */ - -import jakarta.annotation.Resource; -import org.junit.jupiter.api.Test; -import org.springframework.ai.chat.model.ChatResponse; -import org.springframework.ai.chat.prompt.Prompt; -import org.springframework.ai.ollama.OllamaChatModel; -import org.springframework.ai.ollama.api.OllamaOptions; -import org.springframework.boot.test.context.SpringBootTest; -import reactor.core.publisher.Flux; - -@SpringBootTest -public class SimpleTest { - - @Resource - private OllamaChatModel chatModel; - -// @Test -// public void test(){ -// //浣跨敤涓嬭浇鐨� gemma:7b 閰嶇疆妯″瀷灞炴�э紝妯″瀷灞炴�ч厤缃彲浠ュ弬鑰� OllamaChatModel 鏋勯�犲嚱鏁� -// OllamaOptions options = OllamaOptions.create().withModel("llama3:8b"); -// Prompt prompt = new Prompt("浣犲ソ", options); -// //璋冪敤鑱婂ぉ妯″瀷锛岃幏鍙栬繑鍥炲�煎璞� -// ChatResponse res = chatModel.call(prompt); -// //鑾峰彇 AI 鍥炵瓟瀛楃涓� -// System.out.println(res.getResult().getOutput().getContent()); -// } -// -// /** -// * 娴佸紡杩斿洖鏁版嵁 -// */ -// @Test -// public void test2(){ -// //浣跨敤涓嬭浇鐨� gemma:7b 閰嶇疆妯″瀷灞炴�э紝妯″瀷灞炴�ч厤缃彲浠ュ弬鑰� OllamaChatModel 鏋勯�犲嚱鏁� -// OllamaOptions options = OllamaOptions.create().withModel("llama3:8b"); -// Prompt prompt = new Prompt("浣犲ソ", options); -// Flux<ChatResponse> flux = chatModel.stream(prompt); -// flux.toStream().forEach(res -> { -// System.out.println(res.getResult().getOutput().getContent()); -// }); -// } - - @Test - public void test3(){ - String res = chatModel.call("java 鎺掑簭绠楁硶"); - //鑾峰彇妯″瀷杩斿洖缁撴灉 - System.out.println(res); - } - -} -- Gitblit v1.9.3