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

目录
  • 1、安装chatgpt-api
  • 2、chatgpt-api使用方法
  • 3、使用演示程序

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使用内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • ChatGPT在IDEA中使用的详细过程

    目录 安装 1.Settings 2. Plugins>MarketPlace 3.搜索chatgpt并安装(本人已安装) 配置 URL 设置 默认 官方源 自定义 Cloudflare 网络连接设置 读取超时 链接超时 使用 安装 下载最新版 并且手动安装: Settings/Preferences > Plugins > Marketplace > Install plugin from disk... 1.Settings 2. Plugins>MarketPlace

  • 手把手教你在Python里使用ChatGPT

    目录 前言 知识点 实现 代码 后话 前言 近来chatGPT挺火的,也试玩了一下,确实挺有意思.这里记录一下在Python中如何去使用chatGPT. 本篇文章的实现100%基于 chatGPT,我是搬运工无疑了!!! 本片文章比较简单. 知识点 pip install openai 看看 chatGPT的表现: 使用python编写一段发送网络请求的代码 python如何md5 也有抽风的表现: 小明妈妈大小明20岁,20年后小明妈妈大小明多少岁? 一个蛋糕切成8块我吃不完,切成4块刚刚好?

  • chatgpt国内镜像 pycharm idea插件使用详解

    ChatGPT(全名:Chat Generative Pre-trained Transformer),美国OpenAI 研发的聊天机器人程序,于2022年11月30日发布   .ChatGPT是人工智能技术驱动的自然语言处理工具,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流,甚至能完成撰写邮件.视频脚本.文案.翻译.代码,写论文等任务. 本文重点介绍chatgpt国内镜像 pycharm idea插件,一起看看吧! 这里是引用python可以

  • 使用ChatGPT来自动化Python任务

    目录 1.概述 2.内容 2.1 使用ChatGPT来绘制线性回归 2.2 使用Python给微信发信息 2.3 使用Python发送电子邮件 2.4 使用Python开发一个爬虫程序 3.总结 1.概述 最近,比较火热的ChatGPT很受欢迎.今天,笔者为大家来介绍一下ChatGPT能做哪些事情. 2.内容 ChatGPT是一款由OpenAI开发的专门从事对话的AI聊天机器人.它的目标是让AI系统更加自然的与之交互,但它也可以在我们编写代码的时候提供一些帮助. 2.1 使用ChatGPT来绘制

  • chatGPT使用及注册过程中常见的一些错误解决方法(所有报错汇总)

    目录 前言 一.在注册或者使用chatGPT之前要做的准备工作. 二.chatGPT注册过程及使用过程中报错解决方法. 1.Access denied,报错1020    (发生在注册时,或者之前已经注册好,而且能使用,但现在突然报这种错误) 2.not  available  in  your  country(发生在注册时,或者之前已经注册好,而且能使用,但现在突然报这种错误) 3.chatgpt is at capacity right now(发生在注册时,或者之前已经注册好,而且能使用

  • vscode使用chatGPT 的方法

    目录 vscode使用chatGPT 一.下载chatPGT 二.使用 三.现在来看看它写的怎样 vscode使用chatGPT 一.下载chatPGT 在拓展中找到chatGPT,我这里下载的是中文版 二.使用 1.使用快捷键 ctrl+shift+p进行查找 chatGPT 2.点击请输入问题 3.输入你的问题,回车,这样它就会进行代码的编写 4.等一会儿就会给你结果啦 三.现在来看看它写的怎样 生成的代码 import smtplib # 设置发送方的邮件服务器和端口号 smtp_serv

  • 如何在Python里使用ChatGPT及ChatGPT是什么?注册方式?

    目录 问: 如何在python中使用chatGPT? ChatGPT是什么?怎么注册? 废话不多说,直接开干!需要库 pip install openai import openai # Set your API key openai.api_key = "你的chatgpt的密钥key" # Use the GPT-3 model completion = openai.Completion.create(engine="text-davinci-002",pro

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

    目录 1.安装chatgpt-api 2.chatgpt-api使用方法 3.使用演示程序 chatgpt-api是 OpenAI ChatGPT 的非官方的 Node.js 包装器. 包括 TS 类型定义. chatgpt-api不再需要任何浏览器破解——它使用泄露出来的OpenAI官方ChatGPT 在后台使用的模型. 推荐:使用 NSDT场景设计器 快速搭建 3D场景. 你可以使用它开始构建由 ChatGPT 支持的项目,例如聊天机器人.网站等… import { ChatGPTAPI }

  • Ubuntu14.04搭建Caffe(仅CPU)详解教程

    首先吐槽一下本屌的笔记本,我现在的笔记本还是大一时候买的Dell INSPIRON 4010,没有Nvidia,没有Nvidia,没有Nvidia,没有Nvidia,重要的事情说四遍,呵呵. 操作系统: Ubuntu 14.04 是否使用PYTHON API: 是, 目标是安装后CAFFE能作为PYTHON MODULE来使用 硬件: 低端笔记本, 只使用CPU模式 1.安装依赖 sudo apt-get install libprotobuf-dev libleveldb-dev libsna

  • Linux Docker安装wordpress的方法详解教程

    安装mysql服务 下载mysql镜像: docker pull mysql 创建mysql容器并后台运行,指定数据库密码是123456.-e指定环境变量. docker run --name mysql_db -e MYSQL_ROOT_PASSWORD=123456 -d mysql 使用官方的wordpress wordpress镜像daocloud.io: docker pull daocloud.io/daocloud/dao-wordpress:latest 拉取镜像前请先登录: d

  • Go语言Mock使用基本指南详解

    当前的实践中问题 在项目之间依赖的时候我们往往可以通过mock一个接口的实现,以一种比较简洁.独立的方式,来进行测试.但是在mock使用的过程中,因为大家的风格不统一,而且很多使用minimal implement的方式来进行mock,这就导致了通过mock出的实现各个函数的返回值往往是静态的,就无法让caller根据返回值进行的一些复杂逻辑. 首先来举一个例子 package task type Task interface { Do(int) (string, error) } 通过mini

  • Larave框架通过sanctum进行API鉴权详解

    目录 目标 步骤 安装启动 安装扩展包 修改配置文件 数据库迁移 模拟数据 添加访问路由 测试获取token postman测试 测试其他接口 知识点补充1 知识点补充2 代码仓库 目标 1.使用laravel框架进行用户的登录,注册,认证 2.前后端分离的情况下,用户请求接口,使用API token进行认证 步骤 安装启动 composer create-project laravel/laravel example-appcd example-app   php artisan serve

  • Nest.js快速启动API项目过程详解

    目录 快速启动 使用nest自带的命令行工具 直接使用starter项目 用npm安装所需的包 创建controller 创建service 结构和命名 HTTP请求 处理Axios对象 配置 全局添加headers API文档 快速启动 最近上了一个新项目,这个客户管理一个庞大的任务和团队集群,而不同流程所适用的系统也不太一样,比如salesforce,hubspots之类的.这次的新项目需要在另外两个平台之间做一些事情.目前只需要先封装其中之一的API,因此我们选定使用NodeJS的框架Ne

  • Ajax基础详解教程(一)

    什么是Ajax? 在研究ajax之前首先让我们先来讨论一个问题 --什么是Web 2.0 .听到 Web 2.0 这个词的时候,应该首先问一问 "Web 1.0 是什么?" 虽然很少听人提到 Web 1.0,实际上它指的就是具有完全不同的请求和响应模型的传统 Web.比如,到 hdu.edu.cn 网站上点击一个按钮.就会对服务器发送一个请求,然后响应再返回到浏览器.该请求不仅仅是新内容和项目列表,而是另一个完整的 HTML 页面.因此当 Web 浏览器用新的 HTML 页面重绘时,可

  • python+requests+unittest API接口测试实例(详解)

    我在网上查找了下接口测试相关的资料,大都重点是以数据驱动的形式,将用例维护在文本或表格中,而没有说明怎么样去生成想要的用例, 问题: 测试接口时,比如参数a,b,c,我要先测a参数,有(不传,为空,整形,浮点,字符串,object,过短,超长,sql注入)这些情况,其中一种情况就是一条用例,同时要保证b,c的正确,确保a的测试不受b,c参数的错误影响 解决思路: 符合接口规范的参数可以手动去填写,或者准备在代码库中.那些不符合规范的参数(不传,为空,整形,浮点,字符串,object,过短,超长,

  • Ajax基础详解教程(二)

    在上篇文章给大家介绍了Ajax基础详解教程(一),讲到Ajax中open方法的第三个参数异步和同步的问题,今天呢,就来继续往下唠,先接着上回的代码 var oBtn = document.getElementById('btn'); oBtn.onclick = function(){ var xhr = null; if(window.XMLHttpRequest){ xhr = new XMLHttpRequest(); }else{ xhr = new ActiveXObject('Mic

  • java中栈和队列的实现和API的用法(详解)

    在java中要实现栈和队列,需要用到java集合的相关知识,特别是Stack.LinkedList等相关集合类型. 一.栈的实现 栈的实现,有两个方法:一个是用java本身的集合类型Stack类型:另一个是借用LinkedList来间接实现Stack. 1.Stack实现 直接用Stack来实现非常方便,常用的api函数如下: boolean        isEmpty() // 判断当前栈是否为空 synchronized E        peek() //获得当前栈顶元素 synchro

随机推荐