Parcourir la source

core-ai 流式输出和思考模式

deason il y a 1 mois
Parent
commit
6dc56388da

+ 14 - 12
ai-api-demo/src/test/java/com/qmth/boot/ai/api/demo/test/AiApiDemoTest.java

@@ -120,16 +120,16 @@ public class AiApiDemoTest {
 
     private void autoGenerateQuestionWithStream() throws Exception {
         Map<String, Object> param = this.buildQuestionParam();
-        ChatEndpoint endpoint = llmApiClient.chatEndpoint(baseUrl, secret, LlmAppType.AUTO_GENERATE_QUESTION, param);
+        ChatEndpoint endpoint = llmApiClient.chatEndpoint(baseUrl, secret, LlmAppType.AUTO_GENERATE_QUESTION, param, true, true);
         System.out.println(new JsonMapper().writeValueAsString(endpoint));
 
-        //qwen-plus-latest qwen-long qwen3-235b-a22b
-        RequestBody requestBody = RequestBody.create(MediaType.get("application/json"), endpoint.getRequestBody());
         Request.Builder requestBuilder = new Request.Builder();
+        // requestBuilder.url("https://dashscope.aliyuncs.com/compatible-mode/v1/chat/completions");
         requestBuilder.url(endpoint.getUrl());
         for (Map.Entry<String, String> entry : endpoint.getHeaders().entrySet()) {
             requestBuilder.addHeader(entry.getKey(), entry.getValue());
         }
+        RequestBody requestBody = RequestBody.create(MediaType.get("application/json"), endpoint.getRequestBody());
         Request request = requestBuilder.post(requestBody).build();
 
         OkHttpClient httpClient = new OkHttpClient.Builder()
@@ -137,33 +137,35 @@ public class AiApiDemoTest {
                 .connectTimeout(60, TimeUnit.SECONDS)
                 .build();
         httpClient.newCall(request).enqueue(new Callback() {
-            @Override
-            public void onFailure(Call call, IOException e) {
-                e.printStackTrace();
-            }
-
             @Override
             public void onResponse(Call call, Response response) throws IOException {
                 if (!response.isSuccessful()) {
-                    System.out.println("error:" + response);
+                    System.err.println("接口响应错误!" + response);
                     return;
                 }
 
                 try (ResponseBody body = response.body()) {
                     BufferedSource source = body.source();
-                    StringBuilder currentMessage = new StringBuilder();
+
                     while (!source.exhausted()) {
                         String line = source.readUtf8Line();
                         if (line == null || line.isEmpty()) {
                             continue;
                         }
+                        // 流式输出Chunk内容
                         System.out.println(line);
                     }
-                    System.out.println(currentMessage);
+
+                    System.out.println("解析内容完成!");
                 } catch (Exception e) {
-                    e.printStackTrace();
+                    System.err.println("解析内容错误!" + e.getMessage());
                 }
             }
+
+            @Override
+            public void onFailure(Call call, IOException e) {
+                System.err.println("接口调用失败!" + e.getMessage());
+            }
         });
 
         TimeUnit.SECONDS.sleep(30);