最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Java調(diào)用Deepseek-R1.1.5b大模型的超詳細(xì)教程(附代碼)

 更新時(shí)間:2025年03月05日 08:40:18   作者:小星袁  
這篇文章主要為大家介紹了Java調(diào)用Deepseek-R1.1.5b大模型的超詳細(xì)教程并附上了代碼,文中的教程講解詳細(xì),有需要的小伙伴可以參考一下

一、部署本地 DeepSeek 模型(核心步驟)

步驟可參考:deepseek本地部署及java、python調(diào)用步驟詳解

二、Java本地測(cè)試代碼

public class OllamaDemo {
 
    private static final String API_URL = "http://localhost:11435/api/generate";
 
    public static final String askDeepSeek(String prompt) {
        JSONObject param = new JSONObject();
        param.set("model", "deepseek-r1:1.5b")
                .set("prompt", prompt)
                .set("stream", false)
                .set("temperature", 0.7);
        return HttpRequest.post(API_URL)
                .body(param.toString())
                .timeout(30000)
                .execute()
                .body();
    }
 
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("請(qǐng)輸入你的問題(輸入退出停止運(yùn)行):");
        String question = scanner.nextLine();
        System.out.println(askDeepSeek(question));
    }
}

三、Java實(shí)現(xiàn)跨域代碼

3.1 Controller類

public JsonResult getQuestion(String question) {
        return JsonResult.ok(questionService.getAnswer(question));
    }

3.2 Service接口

String getAnswer(String question);

3.3 Service類

private static final String API_URL = "http://localhost:11435/api/generate";
 
public String getAnswer(String question) {
        JSONObject param = new JSONObject();
        param.set("model", "deepseek-r1:1.5b")
                .set("prompt", prompt)
                .set("stream", false)
                .set("temperature", 0.7);
        String responseBody = HttpRequest.post(API_URL)
                .body(param.toString())
                .timeout(30000)
                .execute()
                .body();
        JSONObject responseJson = new JSONObject(responseBody);
        return responseJson.getStr("response");
    }

3.4 html代碼

<!DOCTYPE html>
<html lang="zh-CN">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>DeepSeek 智能對(duì)話</title>
  <style>
    :root {
      --user-bg: #4F46E5;
      --bot-bg: #F3F4F6;
      --text-primary: #1F2937;
      --border-color: #E5E7EB;
    }
 
    body {
      margin: 0;
      min-height: 100vh;
      font-family: 'Segoe UI', system-ui, -apple-system;
      background: #F9FAFB;
      display: flex;
      flex-direction: column;
    }
 
    .chat-container {
      flex: 1;
      max-width: 800px;
      margin: 0 auto;
      width: 100%;
      padding: 1rem;
      overflow-y: auto;
    }
 
    .message {
      display: flex;
      gap: 1rem;
      margin-bottom: 1.5rem;
      animation: fadeIn 0.3s ease;
    }
 
    .user-message {
      flex-direction: row-reverse;
    }
 
    .avatar {
      width: 32px;
      height: 32px;
      border-radius: 6px;
      background: var(--user-bg);
      display: flex;
      align-items: center;
      justify-content: center;
      color: white;
      font-weight: 500;
    }
 
    .bot .avatar {
      background: #6B7280;
    }
 
    .content {
      max-width: 85%;
      padding: 1rem;
      border-radius: 0.75rem;
      background: white;
      box-shadow: 0 2px 4px rgba(0,0,0,0.05);
    }
 
    .user .content {
      background: var(--user-bg);
      color: white;
    }
 
    .typing-indicator {
      display: inline-flex;
      gap: 0.25rem;
      padding: 0.5rem;
    }
 
    .typing-dot {
      width: 6px;
      height: 6px;
      background: #9CA3AF;
      border-radius: 50%;
      animation: bounce 1.4s infinite;
    }
 
    @keyframes bounce {
      0%, 100% { transform: translateY(0); }
      50% { transform: translateY(-4px); }
    }
 
    .input-area {
      border-top: 1px solid var(--border-color);
      padding: 1.5rem;
      background: white;
    }
 
    .input-wrapper {
      max-width: 800px;
      margin: 0 auto;
      display: flex;
      gap: 1rem;
      align-items: center;
    }
 
    #question {
      flex: 1;
      padding: 0.75rem 1rem;
      border: 1px solid var(--border-color);
      border-radius: 0.75rem;
      resize: none;
      min-height: 44px;
      max-height: 200px;
    }
  </style>
</head>
<body>
<div class="chat-container" id="chatContainer">
  <!-- 示例對(duì)話 -->
  <div class="message bot">
    <div class="avatar">AI</div>
    <div class="content">您好!我是DeepSeek智能助手,有什么可以幫您?</div>
  </div>
</div>
 
<div class="input-area">
  <div class="input-wrapper">
        <textarea
                id="question"
                placeholder="輸入消息..."
                rows="1"
                onkeydown="handleKeyDown(event)"
        ></textarea>
    <button onclick="sendMessage()" class="send-btn">
      發(fā)送
    </button>
  </div>
</div>
 
<script>
  function sendMessage() {
    const input = document.getElementById('question');
    const message = input.value.trim();
    if (!message) return;
 
    // 添加用戶消息
    addMessage(message, 'user');
    input.value = '';
 
    // 顯示加載狀態(tài)
    const loader = addLoader();
 
    fetch(`http://localhost:8081/ai/get?question=${encodeURIComponent(message)}`)
            .then(response => response.json())
            .then(data => {
              removeLoader(loader);
              if(data.code === 2001) {
                typewriterEffect(data.data);
              } else {
                addMessage(`錯(cuò)誤:${data.msg}`, 'bot');
              }
            })
            .catch(() => {
              removeLoader(loader);
              addMessage("服務(wù)暫時(shí)不可用,請(qǐng)稍后再試", 'bot');
            });
  }
 
  function addMessage(text, type) {
    const container = document.getElementById('chatContainer');
    const messageDiv = document.createElement('div');
    messageDiv.className = `message ${type}`;
    messageDiv.innerHTML = `
            <div class="avatar">${type === 'user' ? '你' : 'AI'}</div>
            <div class="content">${text}</div>
        `;
    container.appendChild(messageDiv);
    container.scrollTop = container.scrollHeight;
  }
 
  function addLoader() {
    const container = document.getElementById('chatContainer');
    const loaderDiv = document.createElement('div');
    loaderDiv.className = 'message bot';
    loaderDiv.innerHTML = `
            <div class="avatar">AI</div>
            <div class="content">
                <div class="typing-indicator">
                    <div class="typing-dot"></div>
                    <div class="typing-dot"></div>
                    <div class="typing-dot"></div>
                </div>
            </div>
        `;
    container.appendChild(loaderDiv);
    container.scrollTop = container.scrollHeight;
    return loaderDiv;
  }
 
  function removeLoader(element) {
    element.remove();
  }
 
  function typewriterEffect(text) {
    const container = document.getElementById('chatContainer');
    const messageDiv = document.createElement('div');
    messageDiv.className = 'message bot';
    messageDiv.innerHTML = `
            <div class="avatar">AI</div>
            <div class="content"></div>
        `;
    container.appendChild(messageDiv);
 
    const contentDiv = messageDiv.querySelector('.content');
    let index = 0;
 
    function type() {
      if (index < text.length) {
        contentDiv.innerHTML += text.charAt(index);
        index++;
        setTimeout(type, 20);
        container.scrollTop = container.scrollHeight;
      }
    }
    type();
  }
 
  function handleKeyDown(event) {
    if (event.key === 'Enter' && !event.shiftKey) {
      event.preventDefault();
      sendMessage();
    }
  }
</script>
</body>
</html>

3.5 結(jié)果展示

到此這篇關(guān)于Java調(diào)用Deepseek-R1.1.5b大模型的超詳細(xì)教程的文章就介紹到這了,更多相關(guān)Java調(diào)用Deepseek-R1.1.5b模型內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Spring啟動(dòng)過程源碼分析及簡(jiǎn)介

    Spring啟動(dòng)過程源碼分析及簡(jiǎn)介

    本文是通過AnnotationConfigApplicationContext讀取配置類來一步一步去了解Spring的啟動(dòng)過程。本文重點(diǎn)給大家介紹Spring啟動(dòng)過程源碼分析及基本概念,感興趣的朋友一起看看吧
    2021-10-10
  • Spring IOC控制反轉(zhuǎn)的實(shí)現(xiàn)解析

    Spring IOC控制反轉(zhuǎn)的實(shí)現(xiàn)解析

    這篇文章主要介紹了Spring IOC控制反轉(zhuǎn)的實(shí)現(xiàn),IOC是Spring的核心思想之一,它通過將對(duì)象的創(chuàng)建、依賴注入和生命周期管理交給容器來實(shí)現(xiàn)解耦,使開發(fā)者能夠更專注于業(yè)務(wù)邏輯的實(shí)現(xiàn),需要的朋友可以參考下
    2025-02-02
  • Spring事務(wù)失效場(chǎng)景的詳細(xì)整理

    Spring事務(wù)失效場(chǎng)景的詳細(xì)整理

    Spring 事務(wù)的傳播特性說的是,當(dāng)多個(gè)事務(wù)同時(shí)存在的時(shí)候,Spring 如何處理這些事務(wù)的特性,下面這篇文章主要給大家介紹了關(guān)于Spring事務(wù)失效場(chǎng)景的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • SpringBoot事件發(fā)布和監(jiān)聽詳解

    SpringBoot事件發(fā)布和監(jiān)聽詳解

    今天去官網(wǎng)查看spring boot資料時(shí),在特性中看見了系統(tǒng)的事件及監(jiān)聽章節(jié),所以下面這篇文章主要給大家介紹了關(guān)于SpringBoot事件發(fā)布和監(jiān)聽的相關(guān)資料,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2021-11-11
  • Java發(fā)送帶html標(biāo)簽內(nèi)容的郵件實(shí)例代碼

    Java發(fā)送帶html標(biāo)簽內(nèi)容的郵件實(shí)例代碼

    下面小編就為大家?guī)硪黄狫ava發(fā)送帶html標(biāo)簽內(nèi)容的郵件實(shí)例代碼。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2016-11-11
  • Java 線程池ExecutorService詳解及實(shí)例代碼

    Java 線程池ExecutorService詳解及實(shí)例代碼

    這篇文章主要介紹了Java 線程池ExecutorService詳解及實(shí)例代碼的相關(guān)資料,線程池減少在創(chuàng)建和銷毀線程上所花的時(shí)間以及系統(tǒng)資源的開銷.如果不使用線程池,有可能造成系統(tǒng)創(chuàng)建大量線程而導(dǎo)致消耗系統(tǒng)內(nèi)存以及”過度切換“
    2016-11-11
  • SpringBoot的@EnableAsync和@Async注解分析

    SpringBoot的@EnableAsync和@Async注解分析

    這篇文章主要介紹了SpringBoot的@EnableAsync和@Async注解分析,Spring Boot是一個(gè)快速開發(fā)框架,可以幫助開發(fā)人員快速構(gòu)建基于Spring的應(yīng)用程序,需要的朋友可以參考下
    2023-07-07
  • 2020macOS Big Sur配置Java開發(fā)環(huán)境之jdk安裝過程

    2020macOS Big Sur配置Java開發(fā)環(huán)境之jdk安裝過程

    這篇文章主要介紹了2020macOS Big Sur配置Java開發(fā)環(huán)境之jdk安裝,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-02-02
  • Java實(shí)現(xiàn)任務(wù)管理器性能網(wǎng)絡(luò)監(jiān)控?cái)?shù)據(jù)的方法詳解

    Java實(shí)現(xiàn)任務(wù)管理器性能網(wǎng)絡(luò)監(jiān)控?cái)?shù)據(jù)的方法詳解

    在現(xiàn)代操作系統(tǒng)中,任務(wù)管理器是一個(gè)非常重要的工具,用于監(jiān)控和管理計(jì)算機(jī)的運(yùn)行狀態(tài),包括CPU使用率、內(nèi)存占用等,對(duì)于開發(fā)者和系統(tǒng)管理員來說,了解這些性能數(shù)據(jù)有助于優(yōu)化應(yīng)用程序和系統(tǒng)性能,本文將介紹如何使用Java編寫一個(gè)簡(jiǎn)單的程序來監(jiān)控網(wǎng)絡(luò)性能數(shù)據(jù)
    2025-01-01
  • Java中的接口回調(diào)實(shí)例

    Java中的接口回調(diào)實(shí)例

    今天小編就為大家分享一篇關(guān)于Java中的接口回調(diào)實(shí)例,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧
    2019-01-01

最新評(píng)論

常山县| 乐东| 溧阳市| 肥乡县| 屏东县| 西乌珠穆沁旗| 望江县| 德阳市| 深泽县| 滨州市| 新龙县| 板桥市| 桂东县| 特克斯县| 年辖:市辖区| 河西区| 边坝县| 石棉县| 剑河县| 衡东县| 图木舒克市| 灌南县| 大兴区| 赤水市| 武夷山市| 利津县| 洞头县| 综艺| 理塘县| 抚顺县| 曲靖市| 偏关县| 金堂县| 塘沽区| 桦川县| 修武县| 屏边| 济宁市| 阿尔山市| 泌阳县| 叶城县|