使用 openai-java-sdk 整合 ChatGPT

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

推荐一套基于 SpringBoot 开发的全平台数据 (数据库管理工具) 功能比较完善,建议下载使用: github.com/EdurtIO/datacap 目前已经支持 40+ 多种数据源。国内首个应用 ChatGPT 到数据管理系统中项目。

github 地址:https://github.com/devlive-community/openai-java-sdk

本文我们主要讲述通过 openai-java-sdk 依赖整合访问 OpenAi 提供的功能。

OpenAI Java SDK 主要 为 Java 开发人员提供方便易用的 SDK 来与 OpenAI 的 API 进行交互。

构建 maven 项目,并添加依赖

<dependency>
    <groupId>org.devlive.sdk</groupId>
    <artifactId>openai-java-sdk</artifactId>
    <version>1.2.0</version>
</dependency>

推荐将 1.2.0 替换为 LATEST,这样可以始终使用最新版本。

构建连接客户端

OpenAiClient client = OpenAiClient.builder()
        .apiKey(System.getProperty("openai.token"))
        .build();

默认我们只需要指定 OpenAi 提供的密钥即可。如果我们需要使用第三方提供的 OpenAi 镜像,可以使用以下代码:

OpenAiClient client = OpenAiClient.builder()
        .apiHost(System.getProperty("proxy.host"))
        .apiKey(System.getProperty("proxy.token"))
        .build();

proxy.host 第三方服务提供的主机名

proxy.token 第三方服务提供的密钥

构建 Completions

CompletionEntity configure = CompletionEntity.builder()
        .model(CompletionModel.TEXT_DAVINCI_003.getName())
        .prompt("测试一下")
        .temperature(2D)
        .build();
client.createCompletion(configure)
        .getChoices()
        .forEach(System.out::println);

运行程序后,输入大概如下内容:

ChoiceEntity(content=git diff
git diff 恩·胜恩, index=0, logProb=null, finishReason=length)

如果我们需要替换其他模型只需要替换 .model(CompletionModel.TEXT_DAVINCI_003.getName()) 即可。

构建 Chat Completions

通过该方式可以实现 ChatGPT 的对话模式。

List<CompletionMessageEntity> messages = Lists.newArrayList();
messages.add(CompletionMessageEntity.builder()
        .content("Hello, my name is openai-java-sdk")
        .build());

CompletionChatEntity configure = CompletionChatEntity.builder()
        .messages(messages)
        .build();

client.createChatCompletion(configure)
        .getChoices()
        .forEach(choice -> messages.add(choice.getMessage()));

messages.add(CompletionMessageEntity.builder()
        .content("What is my name?")
        .build());

client.createChatCompletion(configure)
        .getChoices()
        .forEach(choice -> {
            System.out.println(choice.getMessage());
        });

运行程序后,输入大概如下内容:

CompletionMessageEntity(role=assistant, content=Your name is "openai-java-sdk" as mentioned earlier., name=null)

在本地调用中我们通过传递上下文对 Ai 提供一些相关信息,方便使其记录我们要获取的内容。

如果我们需要替换其他模型只需要替换 .model(CompletionModel.TEXT_DAVINCI_003.getName()) 即可。

自动释放资源

以上提供的方式无法自动释放我们构建的客户端等资源,这样就会导致我们过度消耗,如果访问过大会导致 OOM。

try (OpenAiClient client = OpenAiClient.builder()
        .apiKey(System.getProperty("openai.token"))
        .build()) {
    List<CompletionMessageEntity> messages = Lists.newArrayList();
    messages.add(CompletionMessageEntity.builder()
            .content("Hello, my name is openai-java-sdk")
            .build());

    CompletionChatEntity configure = CompletionChatEntity.builder()
            .messages(messages)
            .build();

    client.createChatCompletion(configure)
            .getChoices()
            .forEach(choice -> messages.add(choice.getMessage()));

    messages.add(CompletionMessageEntity.builder()
            .content("What is my name?")
            .build());

    client.createChatCompletion(configure)
            .getChoices()
            .forEach(choice -> {
                System.out.println(choice.getMessage());
            });
}

自定义 OkHttpClient

默认会提供一个 OkHttpClient,里面配置了默认的一些配置,比如超时时间等,如果我们需要自定义这些参数我们需要使用以下代码

try (OpenAiClient client = OpenAiClient.builder()
        .apiKey(System.getProperty("openai.token"))
        .client(okHttpClient)
        .build()) {
    List<CompletionMessageEntity> messages = Lists.newArrayList();
    messages.add(CompletionMessageEntity.builder()
            .content("Hello, my name is openai-java-sdk")
            .build());

    CompletionChatEntity configure = CompletionChatEntity.builder()
            .messages(messages)
            .build();

    client.createChatCompletion(configure)
            .getChoices()
            .forEach(choice -> messages.add(choice.getMessage()));

    messages.add(CompletionMessageEntity.builder()
            .content("What is my name?")
            .build());

    client.createChatCompletion(configure)
            .getChoices()
            .forEach(choice -> {
                System.out.println(choice.getMessage());
            });
}

当然如果我们只是修改一些超时时间相关问题可以参考以下代码:

try (OpenAiClient client = OpenAiClient.builder()
    .apiKey(System.getProperty("openai.token"))
    .timeout(10)
    .unit(TimeUnit.SECONDS)
    .build()) {
List<CompletionMessageEntity> messages = Lists.newArrayList();
messages.add(CompletionMessageEntity.builder()
        .content("Hello, my name is openai-java-sdk")
        .build());

CompletionChatEntity configure = CompletionChatEntity.builder()
        .messages(messages)
        .build();

client.createChatCompletion(configure)
        .getChoices()
        .forEach(choice -> messages.add(choice.getMessage()));

messages.add(CompletionMessageEntity.builder()
        .content("What is my name?")
        .build());

client.createChatCompletion(configure)
        .getChoices()
        .forEach(choice -> {
            System.out.println(choice.getMessage());
        });
}

我们通过指定 .timeout(10) 配置时长,通过 .unit(TimeUnit.SECONDS) 时长单位,示例中我们配置的是 10秒

使用 Azure 提供的 OpenAi

在 Azure 提供的服务中,有些方式做了修改,我们可以参考以下代码:

try(OpenAiClient client=OpenAiClient.builder()
        .apiHost("https://eus-chatgpt.openai.azure.com")
        .apiKey(System.getProperty("azure.token"))
        .provider(ProviderModel.azure)
        .model("text-davinci-002")
        .version("2022-12-01")
        .build())
{
    client.createCompletion(configure).getChoices();
}

以上就是我们使用 openai-java-sdk 的一些基本使用方式,后续我们会提供更多文章来详细讲解更多的其他模式。文章来源地址https://www.toymoban.com/news/detail-544842.html

到了这里,关于使用 openai-java-sdk 整合 ChatGPT的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • OpenChatKit :开源的 ChatGPT ,开箱即用!前OpenAI团队打造,GitHub 7000+星

    MLNLP 社区是国内外知名的机器学习与自然语言处理社区,受众覆盖国内外NLP硕博生、高校老师以及企业研究人员。 社区的愿景 是促进国内外自然语言处理,机器学习学术界、产业界和广大爱好者之间的交流和进步,特别是初学者同学们的进步。 ChatGPT的开源平替来了,源代码

    2023年04月13日
    浏览(47)
  • 如何使用OpenAI API和Python SDK构建自己的聊天机器人

    近日,OpenAI公司的ChatGPT模型走红网络。同时,OpenAI也推出了Chat API和gpt-3.5-turbo模型,让开发者能够更轻松地使用与ChatGPT类似的自然语言处理模型。 通过OpenAI API,我们可以使用gpt-3.5-turbo模型,实现多种任务,包括:撰写电子邮件或其他文本内容,编写Python代码,创建对话代

    2024年02月01日
    浏览(46)
  • 今日AI:Midjourney角色一致性功能上线、Grok即将开源、OpenAI永远提供免费版ChatGPT

    欢迎来到 【今日AI】 栏目!这里是你每天探索人工智能世界的指南,每天我们为你呈现AI领域的热点内容,聚焦开发者,助你洞悉技术趋势、了解创新AI产品应用。 新鲜AI产品点击了解:AIbase - 智能匹配最适合您的AI产品和网站 📢 一分钟速看版 • Midjourney 角色人物一致性功能

    2024年04月13日
    浏览(99)
  • java集成OpenAI的chatGpt功能

    官网地址:https://openai.com/ 注意:提前准备好国外手机号,没有的话用短信平台购买手机号接收短信 地址:https://tiger-sms.com/  我用支付宝充值了30多元(起充要30,加上手续费30多有点坑啊),买了一个印度尼西亚的号,美国的号用不了,提示虚拟手机号不允许注册。      

    2024年02月08日
    浏览(42)
  • chatGPT openAI智能写稿Java代码示例

    chatGPT openAI智能写稿Java代码示例 OpenAI API Java SDK 的开源地址在 GitHub 上,可以通过以下链接访问: https://github.com/shaundashjian/openai-java-sdk 该 SDK 支持 OpenAI 的各种 API,包括 GPT-3、DALL

    2023年04月23日
    浏览(32)
  • 【开源】给ChatGLM写个,Java对接的SDK

    作者:小傅哥 - 百度搜 小傅哥bugstack 博客:bugstack.cn 沉淀、分享、成长,让自己和他人都能有所收获!😄 大家好,我是技术UP主小傅哥。 清华大学计算机系的超大规模训练模型 ChatGLM-130B 使用效果非常牛,所以我也想把这样的Ai能力接入到自己的应用中或者做一些 IntelliJ I

    2024年02月04日
    浏览(47)
  • OpenAi最简洁的Java流式返回接入方式,没有第三方依赖,只需要使用Spring Boot即可!轻松构建你的带有聊天记忆、画图功能的chatgpt!

    OpenAi最简洁的Java流式返回接入方式,没有第三方依赖,只需要使用Spring Boot即可!轻松构建你的带有聊天记忆、画图功能的chatgpt! GitHub - NiuXiangQian/chatgpt-stream: OpenAi最简洁的Java流式返回接入方式,没有第三方依赖,只需要使用Spring Boot即可!轻松构建你的带有聊天记忆、画图

    2024年02月12日
    浏览(60)
  • NineAi3.41版本ChatGPT宝塔安装详细教程(针对整合包+开源包安装教程)

    NineAi系统已支持ChatGPT3.5/4.0提问、AI绘画、Midjourney绘画(全自定义调参)、Midjourney以图生图、Dall-E2绘画、思维导图生成、知识库(可自定义训练)、AI绘画广场、邀请+代理分销模式、用户每日签到功能、会话记录保存、访客体验模式、微信公众号+邮箱+手机号注册登录、等功

    2024年03月25日
    浏览(53)
  • [最新]Java SpringBoot请求调用OpenAI(ChatGPT3/3.5/4)相关接口核心方法(附100个OpenAI/ChatGPT key)

    前言 当下,OpenAI 存在着许多令人惊叹的技术,如 ChatGPT3/3.5/4,它们能够生成高质量的文章、翻译语言、自动生成代码,并且在许多领域都取得了广泛的应用。本文将向您介绍如何使用 Java HttpClient 调用 OpenAI 的 ChatGPT3/3.5/4 接口(如果需要支持Spring,并提供了 100 个 OpenAI/Chat

    2023年04月11日
    浏览(45)
  • [最新]简易版本Java HttpClient POST请求调用OpenAI(ChatGPT3/3.5/4)相关接口核心方法(附100个OpenAI/ChatGPT key)

    前言 当下,OpenAI 存在着许多令人惊叹的技术,如 ChatGPT3/3.5/4,它们能够生成高质量的文章、翻译语言、自动生成代码,并且在许多领域都取得了广泛的应用。本文将向您介绍如何使用 Java HttpClient 调用 OpenAI 的 ChatGPT3/3.5/4 接口(如果需要支持Spring,并提供了 100 个 OpenAI/Chat

    2023年04月27日
    浏览(64)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包