chatGPT - java 实例

1.导包

        <!-- openai gpt3 -->
        <dependency>
            <groupId>com.theokanning.openai-gpt3-java</groupId>
            <artifactId>api</artifactId>
            <version>0.11.0</version>
        </dependency>
        <dependency>
            <groupId>com.theokanning.openai-gpt3-java</groupId>
            <artifactId>client</artifactId>
            <version>0.11.0</version>
        </dependency>
        <dependency>
            <groupId>com.theokanning.openai-gpt3-java</groupId>
            <artifactId>service</artifactId>
            <version>0.11.0</version>
        </dependency>

2.java程序

import com.alibaba.fastjson.JSONObject;
import com.theokanning.openai.completion.CompletionRequest;

import java.io.*;
import java.net.HttpURLConnection;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.URL;
import java.nio.charset.StandardCharsets;


public class OpenAiApi {
    public static String OpenAiAnswerer(CompletionRequest request, String openAiApiKey) {

        // 代理IP
        String proxyHost = "127.0.0.1";
        // 代理端口
        int proxyPort = 7890;
        // 请求地址
        String url = "https://api.openai.com/v1/completions";
        // json为请求体
        String json = JSONObject.toJSONString(request);
        String result = "";
        Proxy proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, proxyPort));
        try {
            HttpURLConnection connection = (HttpURLConnection) new URL(url).openConnection(proxy);
            connection.setRequestProperty("Authorization", "Bearer " + openAiApiKey);
            connection.setRequestProperty("Content-Type", "application/json");
            connection.setRequestMethod("POST");
            connection.setDoOutput(true);
            byte[] requestBodyBytes = json.getBytes(StandardCharsets.UTF_8);
            try (OutputStream outputStream = connection.getOutputStream()) {
                outputStream.write(requestBodyBytes, 0, requestBodyBytes.length);
            }
            try (InputStream inputStream = connection.getInputStream()) {
                BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
                StringBuilder response = new StringBuilder();
                String line;
                while ((line = reader.readLine()) != null) {
                    response.append(line);
                }
                result = response.toString();
            }
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
        return result;
    }

}

3.测试运行

    public static void main(String[] args){
        showModels();
    }

    /**
     * 显示模型
     * 根据不同的功能和语言选择合适的模型,可以在官网的模型概述中查看
     * https://platform.openai.com/docs/models/overview
     */
    public static void showModels(){
        CompletionRequest completionRequest = CompletionRequest.builder()
                .model("text-davinci-003")
                .prompt("今天天气怎么样?")
                .temperature(0.5)
                .build();
        String result = OpenAiApi.OpenAiAnswerer(completionRequest, "使用自己的apiKey替代");
        System.out.println(result);
    }

4.运行结果
{
“id”: “cmpl-7Ew6fGetJbXrKnYXlpTI4HfDaVMTK”,
“object”: “text_completion”,
“created”: 1683794309,
“model”: “text-davinci-003”,
“choices”: [
{
“text”: “\n\n今天的天气情况不”,
“index”: 0,
“logprobs”: null,
“finish_reason”: “length”
}
],
“usage”: {
“prompt_tokens”: 15,
“completion_tokens”: 14,
“total_tokens”: 29
}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值