chatgpt-api使用指南详解教程【官方泄露版】

 更新时间:2023年02月20日 10:58:04   作者:新缸中之脑  
chatgpt-api是 OpenAI ChatGPT 的非官方的 Node.js 包装器, chatgpt-api不再需要任何浏览器破解它使用泄露出来的OpenAI官方ChatGPT 在后台使用的模型,这篇文章主要介绍了chatgpt-api使用指南【官方泄露版】,需要的朋友可以参考下

chatgpt-api是 OpenAI ChatGPT 的非官方的 Node.js 包装器。 包括 TS 类型定义。 chatgpt-api不再需要任何浏览器破解——它使用泄露出来的OpenAI官方ChatGPT 在后台使用的模型。 🔥

推荐:使用 NSDT场景设计器 快速搭建 3D场景

✨你可以使用它开始构建由 ChatGPT 支持的项目,例如聊天机器人、网站等…

import { ChatGPTAPI } from 'chatgpt'

const api = new ChatGPTAPI({
  apiKey: process.env.OPENAI_API_KEY
})

const res = await api.sendMessage('Hello World!')
console.log(res.text)

请升级到 chatgpt@latest(至少 v4.0.0)。 与以前的版本相比,更新后的版本明显更加轻巧和健壮,你也不必担心 IP 问题或速率限制。

在这里插入图片描述

1、安装chatgpt-api

确保你使用的是 node >= 18 以便 fetch 可用(node >= 14也可以,但你需要安装 fetch polyfill)。

使用如下命令安装 chatgpt-api :

npm install chatgpt

2、chatgpt-api使用方法

首先注册获取 OpenAI API 密钥并将其存储在你的环境中。

下面是简单的一次性对话:

import { ChatGPTAPI } from 'chatgpt'

async function example() {
  const api = new ChatGPTAPI({
    apiKey: process.env.OPENAI_API_KEY
  })

  const res = await api.sendMessage('Hello World!')
  console.log(res.text)
}

如果你想进行持续多轮的对话,需要传递 parentMessageid 和 conversationid:

const api = new ChatGPTAPI({ apiKey: process.env.OPENAI_API_KEY })

// send a message and wait for the response
let res = await api.sendMessage('What is OpenAI?')
console.log(res.text)

// send a follow-up
res = await api.sendMessage('Can you expand on that?', {
  conversationId: res.conversationId,
  parentMessageId: res.id
})
console.log(res.text)

// send another follow-up
res = await api.sendMessage('What were we talking about?', {
  conversationId: res.conversationId,
  parentMessageId: res.id
})
console.log(res.text)

可以通过 onProgress 处理程序添加流式响应:

const res = await api.sendMessage('Write a 500 word essay on frogs.', {
  // print the partial response as the AI is "typing"
  onProgress: (partialResponse) => console.log(partialResponse.text)
})

// print the full text at the end
console.log(res.text)

也可以使用 timeoutMs 选项添加超时设置:

// timeout after 2 minutes (which will also abort the underlying HTTP request)
const response = await api.sendMessage(
  'write me a really really long essay on frogs',
  {
    timeoutMs: 2 * 60 * 1000
  }
)

如果想查看有关实际发送到 OpenAI 完成 API 的内容的更多信息,请在 ChatGPT API 构造函数中设置 debug: true 选项:

const api = new ChatGPTAPI({
  apiKey: process.env.OPENAI_API_KEY,
  debug: true
})

你会注意到我们正在使用反向工程得到的 promptPrefix 和 promptSuffix。 你可以通过 sendMessage 的选项自定义这些:

const res = await api.sendMessage('what is the answer to the universe?', {
  promptPrefix: `You are ChatGPT, a large language model trained by OpenAI. You answer as concisely as possible for each response (e.g. don't be verbose). It is very important that you answer as concisely as possible, so please remember this. If you are generating a list, do not have too many items. Keep the number of items short.
Current date: ${new Date().toISOString()}\n\n`
})

请注意,我们会自动处理将先前的消息附加到提示并尝试优化可用token(默认为 4096)。

在CommonJS中可以使用动态导入:

async function example() {
  // To use ESM in CommonJS, you can use a dynamic import
  const { ChatGPTAPI } = await import('chatgpt')

  const api = new ChatGPTAPI({ apiKey: process.env.OPENAI_API_KEY })

  const res = await api.sendMessage('Hello World!')
  console.log(res.text)
}

完整的使用文档可以在这里查看

3、使用演示程序

要运行包含的演示:

  • 克隆这个仓库
  • 安装node.js依赖
  • 在 .env 中设置 OPENAI_API_KEY

运行仓库中包含的基本演示程序:

npx tsx demos/demo.ts

在这里插入图片描述

运行仓库中包含的显示进度处理的演示程序:

npx tsx demos/demo-on-progress.ts

上面这个演示使用 sendMessage可选的 onProgress 参数以接收中间结果,看起来就像 ChatGPT 正在“输入”。

在这里插入图片描述

运行仓库中包含的多轮对话演示程序:

npx tsx demos/demo-conversation.ts

在这里插入图片描述

仓库中的持久性演示展示了如何在 Redis 中存储消息以实现持久化:

npx tsx demos/demo-conversation.ts

任何 keyv 适配器都支持消息的持久化,如果你想使用不同的方式存储/检索消息,则可以进行覆盖。

请注意,需要持久化消息来记住当前 Node.js 进程范围之外的先前对话的上下文,因为默认情况下,我们仅将消息存储在内存中。

到此这篇关于chatgpt-api使用指南【官方泄露版】的文章就介绍到这了,更多相关chatgpt-api使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Elasticsearch的删除映射类型操作示例

    Elasticsearch的删除映射类型操作示例

    这篇文章主要为大家介绍了Elasticsearch的删除映射类型操作示例,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-04-04
  • git_stats web代码图形统计工具详解

    git_stats web代码图形统计工具详解

    仓库代码统计工具之一,可以按git提交人、提交次数、修改文件数、代码行数、注释量在时间维度上进行统计,亦可按各文件类型进行简单的统计,非常方便.本文给大家介绍git_stats web代码图形统计工具,需要的朋友参考下吧
    2021-12-12
  • 一文带你了解ChatGPT API的使用

    一文带你了解ChatGPT API的使用

    ChatGPT是OpenAI公司开发的一款基于自然语言处理技术的对话生成模型,,能够自动学习自然语言数据的特征,并生成高质量的语言文本。本文将为大家来介绍一下ChatGPT的API使用,希望对大家有所帮助
    2023-02-02
  • 好用的VSCode头部注释插件Fileheader Pro

    好用的VSCode头部注释插件Fileheader Pro

    这篇文章主要为大家介绍了VSCode头部注释插件Fileheader Pro的使用示例详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • NoVNC以Web方式交付VNC远程连接的方法

    NoVNC以Web方式交付VNC远程连接的方法

    noVNC是一个 HTML5 VNC 客户端,采用 HTML 5 WebSockets, Canvas 和 JavaScript 实现,这篇文章主要介绍了NoVNC以Web方式交付VNC远程连接的方法,感兴趣的朋友一起看看吧
    2021-09-09
  • 一文讲清base64编码原理

    一文讲清base64编码原理

    本文主要介绍了一文讲清base64编码原理,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-03-03
  • Minio设置文件链接永久有效的完整步骤

    Minio设置文件链接永久有效的完整步骤

    大家应该都知道minio分享文件的链接最多支持分享七天,而最近遇到了一个需求要求设置永久可下载,这篇文章主要给大家介绍了关于Minio设置文件链接永久有效的相关资料
    2022-07-07
  • 5个ChatGPT功能帮助你提升日常编码效率

    5个ChatGPT功能帮助你提升日常编码效率

    ChatGPT 作为最快完成亿活用户的应用,最近真的是火出天际了。今天分享5个 ChatGPT 功能,来提升我们的日常工作以及如何使用它提高代码质量
    2023-02-02
  • Typora 0.11.18免费版本安装使用教程(亲测可用)

    Typora 0.11.18免费版本安装使用教程(亲测可用)

    Typora是一款非常使用的笔记工具,对于程序员非常友好,在2021年11月23日,Typora 正式发布 1.0 版本,进入了付费时代,Typora免费版本0.11.18(最后的免费版),本文给大家分享Typora免费获取方法及安装使用教程,感兴趣的朋友参考下吧
    2022-07-07
  • APAP ALV进阶写法及优化详解

    APAP ALV进阶写法及优化详解

    这篇文章主要为大家介绍了APAP ALV进阶写法及优化详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-09-09

最新评论