java集成OpenAI的chatGpt功能

这篇具有很好参考价值的文章主要介绍了java集成OpenAI的chatGpt功能。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一、开通OpenAI账号

1.注册OpenAI账号

官网地址:https://openai.com/

注意:提前准备好国外手机号,没有的话用短信平台购买手机号接收短信

2.购买国外手机号

地址:https://tiger-sms.com/

java集成OpenAI的chatGpt功能

 我用支付宝充值了30多元(起充要30,加上手续费30多有点坑啊),买了一个印度尼西亚的号,美国的号用不了,提示虚拟手机号不允许注册。

 文章来源地址https://www.toymoban.com/news/detail-473457.html

3.用买到的手机号注册并获取短信验证码

java集成OpenAI的chatGpt功能

 

4.登录OpenAI选择第一个开始聊天

java集成OpenAI的chatGpt功能

 

java集成OpenAI的chatGpt功能

 

二、java集成OpenAI的api

1.设置token

登录OpenAI选择第三个进入

java集成OpenAI的chatGpt功能

进入个人平台页面,右上角点击后选择View API keys

java集成OpenAI的chatGpt功能

新增一个key,注意复制好key的内容(这就是token)

java集成OpenAI的chatGpt功能

 

 2. 项目中引入OpenAI的第三方工具包

由于官方只提供NodeJs和Python版本的工具包,java版的只能用第三方的开源包,可靠性安全性没法保证,将就着用。

java集成OpenAI的chatGpt功能

 点击openai-java进入这个开源网站

java集成OpenAI的chatGpt功能

 代码写的挺不错的,可惜用的是gradle构建的,由于gradle本人几乎不会用,就没下载源码了。好在提供了maven依赖。

java集成OpenAI的chatGpt功能

 在maven仓库中可以查询到最新的jar包,引入项目即可

<!-- https://mvnrepository.com/artifact/com.theokanning.openai-gpt3-java/service -->
<dependency>
    <groupId>com.theokanning.openai-gpt3-java</groupId>
    <artifactId>service</artifactId>
    <version>0.12.0</version>
</dependency>

3.拷贝例子代码进行测试

java集成OpenAI的chatGpt功能

由于缺少类等原因跑不起来,引入相关包

      <!-- json数据解析工具包 -->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.15.2</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.15.2</version>
        </dependency>

在国内无法直接调用OpenAI的接口,需要使用VPN代理访问。完整的代码测试代码如下:

package org.example.chatgpt;

import cn.hutool.core.util.StrUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.theokanning.openai.OpenAiApi;
import com.theokanning.openai.completion.CompletionChoice;
import com.theokanning.openai.completion.CompletionRequest;
import com.theokanning.openai.completion.chat.*;
import com.theokanning.openai.image.CreateImageRequest;
import com.theokanning.openai.service.OpenAiService;
import okhttp3.OkHttpClient;
import retrofit2.Retrofit;

import java.net.InetSocketAddress;
import java.net.Proxy;
import java.time.Duration;
import java.time.temporal.ChronoUnit;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.function.Consumer;

import static com.theokanning.openai.service.OpenAiService.*;

/**
 * 时间: 2023/6/5 17:07
 */
public class Main {

    public static void main(String[] args) {
        String token = "sk-XXXXXXXXXXXX";
        String proxyHost = "127.0.0.1";
        int proxyPort = 7890;

        //构建HTTP代理
        Proxy proxy = null;
        if (StrUtil.isNotBlank(proxyHost)) {
            proxy = new Proxy(Proxy.Type.HTTP, new InetSocketAddress(proxyHost, proxyPort));
        }
        //构建HTTP客户端
        OkHttpClient client = defaultClient(token, Duration.of(60, ChronoUnit.SECONDS))
                .newBuilder()
                .proxy(proxy)
                .build();
        ObjectMapper mapper = defaultObjectMapper();
        Retrofit retrofit = defaultRetrofit(client, mapper);
        OpenAiApi api = retrofit.create(OpenAiApi.class);
        OpenAiService service = new OpenAiService(api, client.dispatcher().executorService());

        //文本补全
        System.out.println("\nCreating completion...");
        CompletionRequest completionRequest = CompletionRequest.builder()
                .model("ada")
                .prompt("你叫什么?")
                .echo(true)
                .user("testing")
                .n(3)
                .build();
        service.createCompletion(completionRequest).getChoices().forEach(new Consumer<CompletionChoice>() {
            @Override
            public void accept(CompletionChoice completionChoice) {
                System.out.println(completionChoice.getText());
            }
        });

        //图片生成
        System.out.println("\nCreating Image...");
        CreateImageRequest request = CreateImageRequest.builder()
                .prompt("小猫钓鱼漫画")
                .build();

        System.out.println("\nImage is located at:");
        System.out.println(service.createImage(request).getData().get(0).getUrl());

        //对话
        System.out.println("Creating chat completion...");
        final List<ChatMessage> messages = new ArrayList<>();
        final ChatMessage systemMessage = new ChatMessage(ChatMessageRole.SYSTEM.value(), "你叫什么?");
        messages.add(systemMessage);
        ChatCompletionRequest chatCompletionRequest = ChatCompletionRequest
                .builder()
                .model("gpt-3.5-turbo")
                .messages(messages)
                .n(1)
                .maxTokens(500)
                .logitBias(new HashMap<>())
                .build();
        //完整对话
        service.createChatCompletion(chatCompletionRequest)
                .getChoices().forEach(new Consumer<ChatCompletionChoice>() {
                    @Override
                    public void accept(ChatCompletionChoice chatCompletionChoice) {
                        System.out.println(chatCompletionChoice.getMessage());
                    }
                });

        //流式对话(逐Token返回)
//        service.streamChatCompletion(chatCompletionRequest)
//                .doOnError(Throwable::printStackTrace)
//                .blockingForEach(System.out::println);

        //立即释放连接
        service.shutdownExecutor();
    }
}

上述代码测试了:文本补全、绘图、聊天三个功能。

 

注意事项:

1.由于网络的原因,很多国外网站无法访问,需要先开通VPN,访问国外网站

2.国外手机号购买无法注册,多换几个号码试试

3.代码中需要设置HTTP代理,代理的地址就是VPN的本地地址

 

到了这里,关于java集成OpenAI的chatGpt功能的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • OpenAI注册以及Java代码调用

    目录 一、OpenAI注册 1、注册微软账号 2、虚拟电话接收验证码 3、登录OpenAI 二、Java代码实现调用 Microsoft account         OpenAI可以使用google账号登录,也可以使用微软账号登录,这里建议使用微软账号登录,因为一些原因,微软账号国内即可注册,用国内的邮箱和电话号码

    2023年04月17日
    浏览(37)
  • SpringBoot调取OpenAi接口实现ChatGpt功能

    很高兴和大家分享我实现的一个小项目,利用 Spring Boot 实现了一个 ChatGpt 对话系统。在本文中,我将详细介绍这个项目的实现步骤,以及代码实现。 ChatGpt 是一种基于 GPT 技术的对话系统,能够生成连贯、流畅、语法正确的自然语言响应。GPT (Generative Pretrained Transformer) 是一种

    2024年02月02日
    浏览(40)
  • 手把手教你实现:Android注册登录功能,通过本地服务器保存用户账号密码到数据库

    代码我放到文章最后面了 首先你需要电脑一台:如果没有电脑将会很难办呢 -----沃兹基硕德 下载并安装以下开发工具 Android Studio 官网最新版 用来开发 安卓App IntelliJ IDEA 官网最新版 用来开发 后端 ,处理安卓APP的请求 Navicat for MySql 官网最新版 数据库可视化工具,用来查看数

    2024年01月16日
    浏览(49)
  • 超实用!AI神器Midjourney开通账号详细步骤

    Midjourney官网地址:Midjourney 注意: 正常登陆的前提是可以科学上网,关于科学上网不是本文讨论的范围。 推荐用Chrome浏览器打开,Chrome浏览器下载地址 https://blog.csdn.net/cxy2008cxy/article/details/129937616 在首页选择\\\"Join the Beta\\\"按钮 跳转到\\\"Discord\\\"服务器,点击\\\"继续使用 Discord\\\"按钮。

    2024年02月09日
    浏览(40)
  • 我用Java写AI系列【一】百度AI账号的注册

    作者主页 :Designer 小郑 作者简介 :Java全栈软件工程师一枚,来自浙江宁波,负责开发管理公司OA项目,专注软件前后端开发(Vue、SpringBoot和微信小程序)、系统定制、远程技术指导。CSDN学院、蓝桥云课认证讲师,全栈领域优质创作者。热爱技术、专注业务、开放合作、乐

    2024年02月04日
    浏览(30)
  • SpringBoot集成百度人脸识别实现登陆注册功能Demo(二)

    前言 上一篇SpringBoot集成百度人脸demo中我使用的是调用本机摄像头完成人脸注册,本次demo根据业务需求的不同我采用文件上传的方式实现人脸注册。 效果演示 首页 注册 后端响应数据: 登录 后端响应数据: 项目结构 后端代码实现 1、BaiduAiUtils工具类封装

    2024年02月14日
    浏览(40)
  • 注册Chatgpt手机号无法验证出现“Your account was flagged for potential abuse”提示账号被标记滥用的最新解决办法

    在我们平时使用电脑的时候,有时候会有一种需求,需要将目录中文件的访问时间、修改时间修改为近几天。使用python语言恰好可以非常简单的实现我们的需求,将需要修改的目录复制进来即可修改,为了实现仿真性,我们可以将时间戳规定在一定的范围,不会轻易被发现。

    2024年02月01日
    浏览(49)
  • 无聊写个 chatgpt 玩玩!这不得试一试 openai 的聊天和绘画功能

    chatgpt 最近很火。使用 chatgpt 问一些问题还是很有用的。比如面试题,面试题的答案。简直不要太爽。 不过闲来无事,也使用 openai 提供的api ,写了几个小页面,可以进行聊天,和绘画。 项目放在 github 上了:https://github.com/wtdsn/chat-draw-by-openai 先看看页面吧! ok ,话不多说,

    2024年02月03日
    浏览(35)
  • openAI 通过php方式 发送请求,流数据形式传输,php 实现chatGPT功能

    此处使用的框架是 symfony ,可自行根据自己框架开发,大同小异,框架无所谓,主要是功能! 先上代码 :

    2024年01月19日
    浏览(51)
  • OpenAI推出GPT-4:功能强过ChatGPT 能玩梗图还能做网页

    雷递网 雷建平 3月15日 在人们还在熟悉ChatGPT之际,人工智能企业OpenAI又推出了更强大的GPT-4,也被称为“王炸”产品。OpenAI CEO Sam Altman 称,GPT-4 是“我们迄今为止最强大、对齐最好的模型”。 OpenAI总裁Greg Brockman说:“我们发布了 GPT-4——一个大型多模式模型(图像和文本

    2023年04月23日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包