Java使用ChatGPT的API详解

 更新时间:2023年04月28日 11:06:49   作者:认真的学习笔记  
OpenAI API 几乎可以应用于任何涉及理解或生成自然语言或代码的任务。本文将带你们介绍Java如何使用ChatGPT的API,感兴趣的同学可以跟着小编一起来学习

介绍

OpenAI API 几乎可以应用于任何涉及理解或生成自然语言或代码的任务。我们提供一系列具有不同功率级别的模型,适用于不同的任务,并且能够微调您自己的自定义模型。这些模型可用于从内容生成到语义搜索和分类的所有领域。

验证

OpenAI API 使用 API 密钥进行身份验证。访问您的API 密钥页面以检索您将在请求中使用的 API 密钥。

请记住,您的 API 密钥是秘密的!不要与他人共享或在任何客户端代码(浏览器、应用程序)中公开它。生产请求必须通过您自己的后端服务器进行路由,您的 API 密钥可以从环境变量或密钥管理服务中安全加载。

所有 API 请求都应在AuthorizationHTTP 标头中包含您的 API 密钥,如下所示:

Authorization: Bearer YOUR_API_KEY

对于属于多个组织的用户,您可以传递一个标头来指定哪个组织用于 API 请求。来自这些 API 请求的使用将计入指定组织的订阅配额。

卷曲命令示例:

curl https://api.openai.com/v1/models \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'OpenAI-Organization: org-Kh317O0F3ISLtdXBdafrKQl2'

发出请求

您可以将下面的命令粘贴到您的终端中以运行您的第一个 API 请求。确保替换YOUR_API_KEY为您的秘密 API 密钥。

curl https://api.openai.com/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -d '{
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content": "Say this is a test!"}],
  "temperature": 0.7
}'

此请求查询模型以完成以提示“ Say this is a testgpt-3.5-turbo ”开头的文本。您应该会收到类似于以下内容的响应:

{
   "id":"chatcmpl-abc123",
   "object":"chat.completion",
   "created":1677858242,
   "model":"gpt-3.5-turbo-0301",
   "usage":{
      "prompt_tokens":13,
      "completion_tokens":7,
      "total_tokens":20
   },
   "choices":[
      {
         "message":{
            "role":"assistant",
            "content":"\n\nThis is a test!"
         },
         "finish_reason":"stop",
         "index":0
      }
   ]
}

现在你已经生成了你的第一个聊天完成。我们可以看到finish_reasonisstop这意味着 API 返回了模型生成的完整完成。在上面的请求中,我们只生成了一条消息,但是您可以设置参数n来生成多条消息选择。在这个例子中,gpt-3.5-turbo更多的是用于传统的文本完成任务。该模型还针对聊天应用程序进行了优化。

创建聊天

curl https://api.openai.com/v1/chat/completions \
  -H 'Content-Type: application/json' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -d '{
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content": "Hello!"}]
}'
{
  "model": "gpt-3.5-turbo",
  "messages": [{"role": "user", "content": "Hello!"}]
}
{
  "id": "chatcmpl-123",
  "object": "chat.completion",
  "created": 1677652288,
  "choices": [{
    "index": 0,
    "message": {
      "role": "assistant",
      "content": "\n\nHello there, how may I assist you today?",
    },
    "finish_reason": "stop"
  }],
  "usage": {
    "prompt_tokens": 9,
    "completion_tokens": 12,
    "total_tokens": 21
  }
}

PostMan实例

到此这篇关于Java如何使用ChatGPT的API详解的文章就介绍到这了,更多相关Java ChatGPT的API使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 解决Java中new BigDecimal()的坑

    解决Java中new BigDecimal()的坑

    这篇文章主要介绍了解决Java中new BigDecimal()的坑,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-06-06
  • Java 使用getClass().getResourceAsStream()方法获取资源

    Java 使用getClass().getResourceAsStream()方法获取资源

    这篇文章主要介绍了Java 使用getClass().getResourceAsStream()方法获取资源的相关资料,这里主要讲解哪种方式可以获取到文件资源,需要的朋友可以参考下
    2017-07-07
  • Java中String字符串常量池和intern方法源码分析

    Java中String字符串常量池和intern方法源码分析

    在之前的文章中,小编给大家介绍了String字符串的不可变性及其实现原理,其中给大家提到了字符串常量池的概念,那么什么是常量池,String字符串与常量池有什么关系,本文给大家唠唠字符串常量池及String#intern()方法的作用,需要的朋友可以参考下
    2023-05-05
  • Spring中filter过滤器的定义方法

    Spring中filter过滤器的定义方法

    这篇文章主要介绍了Spring中filter过滤器的定义方法,Filter 程序是一个实现了特殊接口的 Java 类,与 Servlet 类似,也是由 Servlet 容器进行调用和执行的,需要的朋友可以参考下
    2023-08-08
  • Java小程序求圆的周长和面积实例

    Java小程序求圆的周长和面积实例

    这篇文章主要介绍了首先用蒙塔卡洛算法求圆周率近似值,然后根据此近似值输出圆的周长和面积,具有一定参考价值,需要的朋友可以了解下。
    2017-09-09
  • Java 在PDF中添加页面跳转按钮功能(代码演示)

    Java 在PDF中添加页面跳转按钮功能(代码演示)

    这篇文章主要介绍了Java 在PDF中添加页面跳转按钮功能,本文给大家提供了多种功能的按钮,需要的朋友可以参考下
    2019-11-11
  • Spring MVC项目中的异常处理详解

    Spring MVC项目中的异常处理详解

    在Web开发中 我们经常会需要处理各种异常,这篇文章主要给大家介绍了关于Spring MVC项目中异常处理的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
    2022-06-06
  • 使用SpringMVC 重写、扩展HttpServletRequest请求参数

    使用SpringMVC 重写、扩展HttpServletRequest请求参数

    这篇文章主要介绍了使用SpringMVC 重写、扩展HttpServletRequest请求参数,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-08-08
  • Java实现获取行政区划的示例代码

    Java实现获取行政区划的示例代码

    这篇文章主要为大家详细介绍了如何利用Java语言实现获取行政区划的功能,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习游戏
    2023-03-03
  • java获取properties属性文件示例

    java获取properties属性文件示例

    Properties类表示了一个持久的属性集。Properties可保存在流中或从流中加载。属性列表中每个键及其对应值都是一个字符串。本文使用java读取这些属性,看下面详细介绍吧
    2014-01-01

最新评论