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

Java調(diào)用DeepSeek實(shí)現(xiàn)多輪對(duì)話功能

 更新時(shí)間:2025年03月09日 10:42:58   作者:渡劫的咸魚(yú)  
對(duì)于廣大Java開(kāi)發(fā)者而言,DeepSeek這一先進(jìn)的人工智能技術(shù),猶如一把鑰匙,為我們打開(kāi)了提升開(kāi)發(fā)效率與創(chuàng)新能力的新大門(mén),本文給大家介紹了Java調(diào)用DeepSeek實(shí)現(xiàn)多輪對(duì)話功能,需要的朋友可以參考下

背景

近期deepSeek比較火,很多小伙伴嘗試用各種語(yǔ)言調(diào)用deepSeek,最近剛好也有些興趣,寫(xiě)了一版關(guān)于適用java調(diào)用deepSeek的代碼供小白使用。

效果

1.創(chuàng)建API keys

登陸deepSeek開(kāi)放平臺(tái)DeepSeek開(kāi)放平臺(tái)創(chuàng)建api key

2.參考官網(wǎng)調(diào)用文檔

地址對(duì)話補(bǔ)全 | DeepSeek API Docs

3.多輪對(duì)話

代碼

最后附上代碼,感興趣的小伙伴可以拿去玩玩

package com.ssc.gdh.phbc.data.serve.strategy.layer;
 
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson2.JSON;
import okhttp3.*;
import org.apache.commons.lang3.StringUtils;
 
import java.io.IOException;
import java.util.Scanner;
import java.util.concurrent.TimeUnit;
 
public class DeepSeek {
 
    public static void main(String[] args) throws IOException {
        Scanner scanner = new Scanner(System.in);
        JSONArray chat = null;
        while (true){
            System.out.print("與deepSeek對(duì)話,請(qǐng)輸入內(nèi)容(輸入 'exit' 退出):");
            String msg = scanner.nextLine(); // 讀取一行輸入
            OkHttpClient client = new OkHttpClient().newBuilder()
                    .connectTimeout(10, TimeUnit.SECONDS) // 連接超時(shí)時(shí)間
                    .readTimeout(300, TimeUnit.SECONDS)    // 讀取超時(shí)時(shí)間
                    .writeTimeout(300, TimeUnit.SECONDS)   // 寫(xiě)入超時(shí)時(shí)間
                    .build();
            // 檢查是否退出
            if ("exit".equalsIgnoreCase(msg)) {
                System.out.println("程序已退出。");
                break; // 退出循環(huán)
            }
            chat = sendMessage(client, msg, chat);
        }
    }
 
    private static JSONArray sendMessage(OkHttpClient client,String question,JSONArray chat) {
        MediaType mediaType = MediaType.parse("application/json");
        JSONObject param = new JSONObject();
        param.put("model","deepseek-chat");
        param.put("frequency_penalty",0);
        param.put("presence_penalty",0);
        JSONArray messages = chat;
 
        if (messages == null){
            messages = new JSONArray();
            JSONObject o1 = new JSONObject();
            o1.put("role","user");
            o1.put("content",question);
            messages.add(o1);
        }else {
            JSONObject o1 = new JSONObject();
            o1.put("role","user");
            o1.put("content",question);
            messages.add(o1);
        }
        param.put("messages",messages);
 
 
//        RequestBody body = RequestBody.create(mediaType, String.format("{\n  \"messages\": [\n    {\n      \"content\": \"%s\"," +
//                "\n      \"role\": \"user\"\n    },\n    {\n      \"content\": \"%s\",\n      \"role\": \"user\"\n    }\n  ],\n  \"model\": \"deepseek-chat\",\n  \"frequency_penalty\": 0,\n  \"max_tokens\": 2048," +
//                "\n  \"presence_penalty\": 0,\n  \"response_format\": {\n    \"type\": \"text\"\n  },\n  \"stop\": null,\n  \"stream\": false," +
//                "\n  \"stream_options\": null,\n  \"temperature\": 1,\n  \"top_p\": 1,\n  \"tools\": null,\n  \"tool_choice\": \"none\",\n  \"logprobs\": false,\n  \"top_logprobs\": null\n}",question,question1));
 
        RequestBody body = RequestBody.create(mediaType, JSON.toJSONString(param));
        Request request = new Request.Builder()
                .url("https://api.deepseek.com/chat/completions")
                .method("POST", body)
                .addHeader("Content-Type", "application/json")
                .addHeader("Accept", "application/json")
                .addHeader("Authorization", "Bearer 你的api_keys")//你申請(qǐng)的api_keys
                .build();
        try (Response response = client.newCall(request).execute()) {
            if (response.isSuccessful()) {
                ResponseBody responseBody = response.body();
                if (responseBody != null) {
                    // 將響應(yīng)體轉(zhuǎn)換為字符串
                    String responseString = responseBody.string();
                    JSONObject jsonObject = JSONObject.parseObject(responseString);
                    JSONArray choices = JSONArray.parseArray(jsonObject.getString("choices"));
                    String content = JSONObject.parseObject(JSONObject.parseObject(choices.get(0).toString()).get("message").toString()).get("content").toString();
                    if (StringUtils.isNotBlank(content)){
                        JSONObject o1 = new JSONObject();
                        o1.put("role","assistant");
                        o1.put("content",content);
                        messages.add(o1);
                    }
                    System.out.println(content);
                    return messages;
                }
            } else {
                System.out.println("Request failed with code: " + response.code());
            }
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}
 

到此這篇關(guān)于Java調(diào)用DeepSeek實(shí)現(xiàn)多輪對(duì)話功能的文章就介紹到這了,更多相關(guān)Java DeepSeek多輪對(duì)話內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java中的異或問(wèn)題代碼解析

    java中的異或問(wèn)題代碼解析

    這篇文章主要介紹了java中的異或問(wèn)題代碼解析,具有一定借鑒價(jià)值,需要的朋友可以參考下。
    2017-12-12
  • IDEA lombok注解(@Date、@Setter、@Getter)不起作用的解決

    IDEA lombok注解(@Date、@Setter、@Getter)不起作用的解決

    作者在使用Lombok時(shí)遇到問(wèn)題,發(fā)現(xiàn)IntelliJ IDEA需要安裝Lombok插件才能支持Lombok注解,作者通過(guò)安裝Lombok插件并重啟IDEA解決了問(wèn)題,并分享了這一經(jīng)驗(yàn),希望能幫助其他遇到相同問(wèn)題的開(kāi)發(fā)者
    2026-01-01
  • idea亂碼修改bin目錄下的idea.exe.vmoptions無(wú)效問(wèn)題

    idea亂碼修改bin目錄下的idea.exe.vmoptions無(wú)效問(wèn)題

    這篇文章主要介紹了idea亂碼修改bin目錄下的idea.exe.vmoptions無(wú)效問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • Java?JDBC高封裝Util類(lèi)的項(xiàng)目實(shí)踐

    Java?JDBC高封裝Util類(lèi)的項(xiàng)目實(shí)踐

    這篇文章主要介紹了Java?JDBC高封裝Util類(lèi)的項(xiàng)目實(shí)踐,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-08-08
  • windows下java環(huán)境變量的設(shè)置方法

    windows下java環(huán)境變量的設(shè)置方法

    在“系統(tǒng)變量”中,設(shè)置3項(xiàng)屬性,JAVA_HOME,PATH,CLASSPATH(大小寫(xiě)無(wú)所謂),若已存在則點(diǎn)擊“編輯”,不存在則點(diǎn)擊“新建”
    2013-09-09
  • Java中的3種輸入方式實(shí)現(xiàn)解析

    Java中的3種輸入方式實(shí)現(xiàn)解析

    這篇文章主要介紹了Java中的3種輸入方式實(shí)現(xiàn)解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 學(xué)習(xí)Java之IO流中有哪些復(fù)雜的API

    學(xué)習(xí)Java之IO流中有哪些復(fù)雜的API

    這篇文章我們要先對(duì)IO流的API有個(gè)基本的認(rèn)知,因?yàn)镮O流的類(lèi)和方法太多了,我們不得不專門(mén)學(xué)習(xí)一下,所以本文就給大家詳細(xì)的講講Java?IO流中復(fù)雜的API,需要的朋友可以參考下
    2023-09-09
  • 解決dubbo注冊(cè)到zookeeper速度慢的問(wèn)題

    解決dubbo注冊(cè)到zookeeper速度慢的問(wèn)題

    這篇文章主要介紹了解決dubbo注冊(cè)到zookeeper速度慢的問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-04-04
  • Java 如何獲取url地址文件流

    Java 如何獲取url地址文件流

    這篇文章主要介紹了Java 如何獲取url地址文件流,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • SpringBoot實(shí)現(xiàn)HTTPS加密通信的詳細(xì)指南

    SpringBoot實(shí)現(xiàn)HTTPS加密通信的詳細(xì)指南

    這篇文章主要為大家詳細(xì)介紹了Spring?Boot中HTTPS的實(shí)現(xiàn)方案與實(shí)戰(zhàn)避坑指南,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下
    2025-06-06

最新評(píng)論

静宁县| 舟曲县| 德钦县| 新乡县| 芒康县| 屯昌县| 涿州市| 丹凤县| 年辖:市辖区| 陕西省| 申扎县| 贞丰县| 尼勒克县| 崇仁县| 武安市| 荔波县| 洛隆县| 尼勒克县| 青浦区| 亳州市| 太白县| 永顺县| 鲁山县| 库伦旗| 双柏县| 蓬溪县| 会东县| 城步| 蓝山县| 墨竹工卡县| 固阳县| 榆林市| 武宣县| 襄城县| 南康市| 顺平县| 高平市| 沾益县| 黔东| 丰台区| 芷江|