<output id="qn6qe"></output>

    1. <output id="qn6qe"><tt id="qn6qe"></tt></output>
    2. <strike id="qn6qe"></strike>

      亚洲 日本 欧洲 欧美 视频,日韩中文字幕有码av,一本一道av中文字幕无码,国产线播放免费人成视频播放,人妻少妇偷人无码视频,日夜啪啪一区二区三区,国产尤物精品自在拍视频首页,久热这里只有精品12

      使用Deepseek4j接入阿里云百煉DeepSeek R1

      Spring有Spring AI這個項目,不過這里找到了另一個項目Deepseek4j,也是個Spring starter,提供了一個基礎(chǔ)框架用來承接各種ds大模型,可以對接包括本地部署的Ollama r1,騰訊、硅基流動、阿里、火山引擎這些版本的R1模型或V3模型,比較方便。以下是一個簡單實踐。

      前端ai.html --> 后端SpringBoot + Deepseek4j --> 阿里云大模型服務(wù)平臺百煉上的Deepseek R1滿血版

      實踐過程

      1. 先去阿里云大模型服務(wù)平臺“百煉”上進(jìn)行注冊,獲得API_KEY
      2. 本地搭建SpringBoot + Deepseek4j,通過API_KEY去調(diào)用百煉大模型服務(wù)。

      pom.xml 增加如下依賴,其他依賴略,SpringMVC項目或WebFlux都可以。

      <dependency>
        <groupId>io.github.pig-mesh.ai</groupId>
        <artifactId>deepseek-spring-boot-starter</artifactId>
        <version>1.4.2</version>
      </dependency>
      

      controller

      import io.github.pigmesh.ai.deepseek.core.DeepSeekClient;
      import io.github.pigmesh.ai.deepseek.core.chat.ChatCompletionResponse;
      import lombok.extern.slf4j.Slf4j;
      import org.springframework.beans.factory.annotation.Autowired;
      import org.springframework.http.MediaType;
      import org.springframework.web.bind.annotation.GetMapping;
      import org.springframework.web.bind.annotation.RequestMapping;
      import org.springframework.web.bind.annotation.RestController;
      import reactor.core.publisher.Flux;
      
      @Slf4j
      @RestController
      @RequestMapping("ai")
      public class AiController {
      
          @Autowired
          private DeepSeekClient deepSeekClient;
      
          @GetMapping(value = "/chat", produces = MediaType.TEXT_EVENT_STREAM_VALUE)
          public Flux<ChatCompletionResponse> chat(String prompt) {
              return deepSeekClient.chatFluxCompletion(prompt);
          }
      }
      

      application.properties配置文件

      deepseek.base-url=https://dashscope.aliyuncs.com/compatible-mode/v1
      deepseek.model=deepseek-r1
      deepseek.api-key=百煉上申請的API_KEY
      deepseek.log-requests=true
      deepseek.log-responses=true
      deepseek.connect-timeout=10
      deepseek.read-timeout=30
      deepseek.call-timeout=60
      
      1. 簡單寫個測試問答api頁面ai.html
      <!DOCTYPE html>
      <html lang="zh-CN">
      <head>
          <meta charset="UTF-8">
          <title>AI 問答測試頁面(優(yōu)化版)</title>
          <style>
          body {
            font-family: Arial, sans-serif;
            margin: 20px;
            max-width: 800px;
          }
          textarea {
            width: 100%;
            height: 100px;
            margin: 10px 0;
            padding: 8px;
            box-sizing: border-box;
          }
          .response-area {
            border: 1px solid #ddd;
            border-radius: 4px;
            margin: 10px 0;
            padding: 10px;
            background-color: #f8f9fa;
          }
          #reasoning {
            background-color: #fff;
            max-height: 200px;
            overflow-y: auto;
          }
          #answer {
            white-space: pre-wrap;
            min-height: 100px;
          }
          .toggle-header {
            cursor: pointer;
            color: #666;
            padding: 5px;
            background-color: #f0f0f0;
            border-radius: 3px;
            margin: 5px 0;
          }
          button {
            padding: 10px 20px;
            background-color: #007bff;
            color: white;
            border: none;
            border-radius: 4px;
            cursor: pointer;
          }
          button:hover {
            background-color: #0056b3;
          }
        </style>
      </head>
      <body>
      <h1>AI 問答 API 測試</h1>
      <textarea id="prompt" placeholder="請輸入問題..."></textarea><br>
      <button id="send">發(fā)送</button>
      
      <h2>回答結(jié)果:</h2>
      <div class="response-area" id="answer"></div>
      
      <details>
          <summary class="toggle-header">推理過程(點擊展開)</summary>
          <div class="response-area" id="reasoning"></div>
      </details>
      
      <script>
          let eventSource = null;
      
          document.getElementById('send').addEventListener('click', function() {
            const prompt = document.getElementById('prompt').value;
            if (!prompt) {
              alert("請輸入問題");
              return;
            }
      
            // 關(guān)閉已有連接
            if (eventSource) {
              eventSource.close();
            }
      
            // 清空顯示區(qū)域
            document.getElementById('answer').textContent = "";
            document.getElementById('reasoning').textContent = "";
      
            const url = `/ai/chat?prompt=${encodeURIComponent(prompt)}`;
            eventSource = new EventSource(url);
      
            eventSource.onmessage = (e) => {
              try {
                const data = JSON.parse(e.data);
                const delta = data.choices[0].delta;
      
                // 處理推理內(nèi)容
                if (delta.reasoning_content !== undefined) {
                  const reasoningElement = document.getElementById('reasoning');
                  reasoningElement.textContent += delta.reasoning_content;
                  reasoningElement.scrollTop = reasoningElement.scrollHeight;
                }
      
                // 處理最終回答
                if (delta.content !== undefined) {
                  const answerElement = document.getElementById('answer');
                  answerElement.textContent += delta.content;
                  answerElement.scrollTop = answerElement.scrollHeight;
                }
              } catch (err) {
                console.error('數(shù)據(jù)解析錯誤:', err);
              }
            };
      
            eventSource.onerror = (e) => {
              console.error("SSE連接錯誤:", e);
              if (eventSource) {
                eventSource.close();
                eventSource = null;
              }
            };
          });
        </script>
      </body>
      </html>
      

      效果:
      ai-api

      參考

      前端如何與后端響應(yīng)式類型API交互
      https://blog.csdn.net/waiter456/article/details/141114447
      https://www.ruanyifeng.com/blog/2017/05/server-sent_events.html

      Spring AI整合
      https://javaai.pig4cloud.com/deepseek/bailian
      http://www.rzrgm.cn/guoxiaoyu/p/18700826

      通過阿里云百煉平臺調(diào)用DeepSeek-R1 滿血版 API
      https://www.aliyun.com/solution/tech-solution/deepseek-r1-for-platforms

      Spring AI 從Java視角下學(xué)習(xí)大模型的不錯的切入口
      https://www.zhihu.com/column/c_1853261396491517952

      posted on 2025-09-08 10:17  肥兔子愛豆畜子  閱讀(33)  評論(0)    收藏  舉報

      導(dǎo)航

      主站蜘蛛池模板: 永久无码天堂网小说区| 最新国产麻豆AⅤ精品无码 | 久久国产乱子伦免费精品| 国内在线视频一区二区三区| 色爱av综合网国产精品| 国产无套乱子伦精彩是白视频| 江阴市| 国产精品国产精品国产精品| 二区中文字幕在线观看| 妓院一钑片免看黄大片| 亚洲国产成人精品区综合| 久久国产免费观看精品3| 免费看成人欧美片爱潮app| 大色综合色综合网站| 国产欧美综合在线观看第十页| 久久一本人碰碰人碰| 色诱视频在线观看| 亚洲精品日本一区二区| 国产成人精品午夜福利| 97精品久久天干天天天按摩| 国产迷姦播放在线观看| 国产自国产自愉自愉免费24区 | 天天做日日做天天添天天欢公交车| 鲁丝片一区二区三区免费| 国产做a爱片久久毛片a片| 少妇和邻居做不戴套视频| 松溪县| 亚洲国产色婷婷久久99精品91| 国产精品国语对白露脸在线播放| 宁海县| 国产一区二区三区色噜噜| 亚洲AV无码AV在线影院| 亚洲AV国产福利精品在现观看| 一本色道久久加勒比综合| 亚洲精品国产aⅴ成拍色拍| 中文字幕午夜福利片午夜福利片97| 蜜桃一区二区三区免费看| 免费黄色大全一区二区三区| 青青草原国产精品啪啪视频 | AV极品无码专区亚洲AV| 国产在线精品中文字幕|