国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

調(diào)用chat-gpt

這篇具有很好參考價值的文章主要介紹了調(diào)用chat-gpt。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

調(diào)用chat-gpt

依賴

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-mail</artifactId>
        </dependency>

        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

        <dependency>
            <groupId>cn.hutool</groupId>
            <artifactId>hutool-all</artifactId>
            <version>5.7.10</version>
        </dependency>

相關(guān)的類


import lombok.Data;

import java.util.ArrayList;
import java.util.List;

 
@Data
public class ChatRequest {

    private String model;
    private List<Message> messages;
    private int n = 3;
    private double temperature = 0.2;

    public ChatRequest(String model, String prompt) {
        this.model = model;

        this.messages = new ArrayList<>();
//        this.messages.add(new Message("system", "You are a IELTS Teachers."));
        this.messages.add(new Message("system", "You are an IELTS teacher, and your answers are all in JSON string format."));
        this.messages.add(new Message("user", prompt));
    }

    public ChatRequest(String model, List<String> prompts) {
        this.model = model;

        this.messages = new ArrayList<>();
        for (String prompt : prompts) {
            this.messages.add(new Message("user", prompt));
        }
    }

}


import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;
 
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ChatResponse {

    private List<Choice> choices;

    public static class Choice {

        private int index;
        private Message message;

        public int getIndex() {
            return index;
        }

        public void setIndex(int index) {
            this.index = index;
        }

        public Message getMessage() {
            return message;
        }

        public void setMessage(Message message) {
            this.message = message;
        }
    }

}


import cn.hutool.core.util.ArrayUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONUtil;
import com.fasterxml.jackson.core.type.TypeReference;
import com.fasterxml.jackson.databind.JsonNode;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.fasterxml.jackson.databind.SerializationFeature;
import com.fasterxml.jackson.datatype.jsr310.JavaTimeModule;
import lombok.SneakyThrows;
import lombok.experimental.UtilityClass;
import lombok.extern.slf4j.Slf4j;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

/**
 * JSON 工具類
 * 
 */
@UtilityClass
@Slf4j
public class JsonUtils {

    private static ObjectMapper objectMapper = new ObjectMapper();

    static {
        objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false);
        objectMapper.registerModules(new JavaTimeModule()); // 解決 LocalDateTime 的序列化
    }

    /**
     * 初始化 objectMapper 屬性
     * <p>
     * 通過這樣的方式,使用 Spring 創(chuàng)建的 ObjectMapper Bean
     *
     * @param objectMapper ObjectMapper 對象
     */
    public static void init(ObjectMapper objectMapper) {
        JsonUtils.objectMapper = objectMapper;
    }

    @SneakyThrows
    public static String toJsonString(Object object) {
        return objectMapper.writeValueAsString(object);
    }

    @SneakyThrows
    public static byte[] toJsonByte(Object object) {
        return objectMapper.writeValueAsBytes(object);
    }

    @SneakyThrows
    public static String toJsonPrettyString(Object object) {
        return objectMapper.writerWithDefaultPrettyPrinter().writeValueAsString(object);
    }

    public static <T> T parseObject(String text, Class<T> clazz) {
        if (StrUtil.isEmpty(text)) {
            return null;
        }
        try {
            return objectMapper.readValue(text, clazz);
        } catch (IOException e) {
            log.error("json parse err,json:{}", text, e);
            throw new RuntimeException(e);
        }
    }

    /**
     * 將字符串解析成指定類型的對象
     * 使用 {@link #parseObject(String, Class)} 時,在@JsonTypeInfo(use = JsonTypeInfo.Id.CLASS) 的場景下,
     * 如果 text 沒有 class 屬性,則會報錯。此時,使用這個方法,可以解決。
     *
     * @param text 字符串
     * @param clazz 類型
     * @return 對象
     */
    public static <T> T parseObject2(String text, Class<T> clazz) {
        if (StrUtil.isEmpty(text)) {
            return null;
        }
        return JSONUtil.toBean(text, clazz);
    }

    public static <T> T parseObject(byte[] bytes, Class<T> clazz) {
        if (ArrayUtil.isEmpty(bytes)) {
            return null;
        }
        try {
            return objectMapper.readValue(bytes, clazz);
        } catch (IOException e) {
            log.error("json parse err,json:{}", bytes, e);
            throw new RuntimeException(e);
        }
    }

    public static <T> T parseObject(String text, TypeReference<T> typeReference) {
        try {
            return objectMapper.readValue(text, typeReference);
        } catch (IOException e) {
            log.error("json parse err,json:{}", text, e);
            throw new RuntimeException(e);
        }
    }

    public static <T> List<T> parseArray(String text, Class<T> clazz) {
        if (StrUtil.isEmpty(text)) {
            return new ArrayList<>();
        }
        try {
            return objectMapper.readValue(text, objectMapper.getTypeFactory().constructCollectionType(List.class, clazz));
        } catch (IOException e) {
            log.error("json parse err,json:{}", text, e);
            throw new RuntimeException(e);
        }
    }

    public static JsonNode parseTree(String text) {
        try {
            return objectMapper.readTree(text);
        } catch (IOException e) {
            log.error("json parse err,json:{}", text, e);
            throw new RuntimeException(e);
        }
    }

    public static JsonNode parseTree(byte[] text) {
        try {
            return objectMapper.readTree(text);
        } catch (IOException e) {
            log.error("json parse err,json:{}", text, e);
            throw new RuntimeException(e);
        }
    }


}


import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

 
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Message {

    private String role;

    private String content;

}


import cn.hutool.http.HttpRequest;
import cn.hutool.json.JSONUtil;


public class Dome {
    public static void main(String[] args) {
        String model = "gpt-3.5-turbo";
        String prompt = "你好,說一下女媧補天的故事";
        String openAiApiKey = "sk-rdM1NWB0UjLXv8JcQ9vfT3BlbkFJWE9dVvZV8a37u1TeP11";
        ChatRequest request = new ChatRequest(model, prompt);
        String url = "https://api.openai-proxy.com/v1/chat/completions";
        String json = JsonUtils.toJsonString(request);
        String result = HttpRequest.post(url)
                .header("Authorization", "Bearer " + openAiApiKey)
                .header("Content-Type", "application/json")
                .body(json)
                .execute()
                .body();
        System.out.println(result);
        if ( result==null) {
            System.out.println("錯誤");
        }
        ChatResponse response = JSONUtil.toBean(result, ChatResponse.class);
        System.out.println(response);
    }
}

openAiApiKey 后面+b文章來源地址http://www.zghlxwxcb.cn/news/detail-689252.html

到了這里,關(guān)于調(diào)用chat-gpt的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • 太神奇了,1984 年的電腦也能跑 Chat-GPT

    太神奇了,1984 年的電腦也能跑 Chat-GPT

    目前這個 DOS 系統(tǒng)的 ChatGPT 客戶端已成功在 1984 年的 IBM 5155 便攜式 PC 上運行,這臺機(jī)子配備 4.77Mhz 主頻的 Intel 8088 CPU 和 MS-DOS 6.22 系統(tǒng),帶 640KB 內(nèi)存、以及 CGA ISA 圖形。 ? Yeo 老哥是個不折不扣的 “ 復(fù)古守舊派 ” ,早在 2019 年他就為 Windows 3.1 開發(fā)了一個 Slack 客戶端,這次

    2023年04月26日
    瀏覽(17)
  • Chat-GPT 聚合平臺 Poe:集成多個 AI 聊天機(jī)器人

    Chat-GPT 聚合平臺 Poe:集成多個 AI 聊天機(jī)器人

    Poe 是知名問答社區(qū) Quora 推出的 AI 平臺——開放探索平臺 (Platform for Open Exploration, Poe)。Poe 集成了多個基于大型語言模型的聊天機(jī)器人,包括 ChatGPT,以及 Sage、Claude、Dragonfly 等。每個機(jī)器人都有獨特的個性,用戶可根據(jù)其特性和用途來切換使用。 Claude:更擅長創(chuàng)意寫作任務(wù)

    2024年02月11日
    瀏覽(24)
  • 使用post請求建立長連接實現(xiàn)sse,接收后端主動發(fā)來的消息,實現(xiàn)chat-gpt的彈字效果,EventSource的應(yīng)用

    使用post請求建立長連接實現(xiàn)sse,接收后端主動發(fā)來的消息,實現(xiàn)chat-gpt的彈字效果,EventSource的應(yīng)用

    每日雞湯:每個你想要學(xué)習(xí)的瞬間都是未來的你向自己求救 最近在做一個chat相關(guān)的功能,然后由于接口返回特別特別慢,所以需要搞一個慢慢等待的效果,就是接口一個單詞一個單詞的返回,然后前端收到一個展示一個,提升用戶體驗。 說實話我是第一次做這類需求,他們

    2024年02月09日
    瀏覽(27)
  • Chat GPT是什么?初學(xué)怎么使用Chat GPT?

    Chat GPT是什么?初學(xué)怎么使用Chat GPT?

    他連我輸入錯字程都反應(yīng)過來~~~~~ ? ? ?

    2024年02月11日
    瀏覽(32)
  • Chat GPT實用案例——VUE+Chat GPT實現(xiàn)聊天功能教程

    首先,我們需要確定所需功能和技術(shù)棧: 前端框架:Vue.js 聊天機(jī)器人:Chat GPT API CSS框架:Bootstrap or 自主設(shè)計 在開始編寫代碼之前,請確認(rèn) Chat GPT API 服務(wù)已經(jīng)配置好, 并且您已獲得了API密鑰或者token。 接下來是 Vue.js項目初始化: 然后打開package.json文件,在scripts中添加一些

    2024年02月04日
    瀏覽(25)
  • Chat GPT是什么,初學(xué)者怎么使用Chat GPT,需要注意些什么

    目錄 Chat GPT是什么 初學(xué)者怎么使用Chat GPT 使用Chat GPT需要注意什么 一些簡單的prompt示例

    2024年02月17日
    瀏覽(25)
  • 谷歌用Bard打響了Chat GPT的第一槍,百度版Chat GPT 何時出爐?

    百度 | Bard | Chat GPT 谷歌 | RLHF|?ERNIE Bot? 隨著深度學(xué)習(xí)、高性能計算、數(shù)據(jù)分析、數(shù)據(jù)挖掘、LLM、PPO、NLP等技術(shù)的快速發(fā)展,Chat GPT得到快速發(fā)展。Chat GPT是OpenAI開發(fā)的大型預(yù)訓(xùn)練語言模型,GPT-3模型的一個變體,經(jīng)過訓(xùn)練可以在對話中生成類似人類的文本響應(yīng)。 為了占據(jù)Cha

    2024年02月16日
    瀏覽(20)
  • 好用免費的Chat GPT

    好用免費的Chat GPT

    即用 點進(jìn)登錄后 普通用戶可以提問100次 ? 靈感 點擊鏈接后會提示你如何下載使用。 ?這個有win版和mac版,點擊登陸后,每日都會有30次GPT3/3.5的提問。 ?? AIchatOS 點進(jìn)去后可以無限使用,無需登錄。 ? 持續(xù)更新中。。。。

    2024年02月09日
    瀏覽(18)
  • 在生信中利用Chat GPT/GPT4

    在生信中利用Chat GPT/GPT4

    論文鏈接Ten Quick Tips for Harnessing the Power of ChatGPT/GPT-4 in Computational Biology | Papers With Code 之前在paper with code上比較火的一篇文章,最近要給生科的學(xué)長學(xué)姐們個分享所以把這個翻了翻,原文自認(rèn)為廢話比較多,于是選了點有用部分的放這給大家學(xué)習(xí)。 雖然我們主要關(guān)注的是當(dāng)前

    2024年02月11日
    瀏覽(18)
  • Chat GPT5如果問世會對世界產(chǎn)生什么影響?以及未來chat gpt 5會取代什么類型的工作。

    Chat GPT5如果問世會對世界產(chǎn)生什么影響?以及未來chat gpt 5會取代什么類型的工作。

    Chat GPT-5是一種基于人工智能技術(shù)的自然語言處理系統(tǒng),可以自動回復(fù)和生成各種文本隨著其技術(shù)的不斷發(fā)展和改進(jìn),Chat GPT-5對未來世界將會產(chǎn)生以下幾方面的影響: 1. 提升人類語言交流的效率和質(zhì)量 Chat GPT-5可以高效地處理自然語言,并且能夠針對用戶的語言習(xí)慣和口音進(jìn)

    2023年04月24日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包