1987WEB视界-分享互联网热门产品和行业

您现在的位置是:首页 > 人工智能AI > 正文

人工智能AI

牛逼,用它可以轻松搭建一个AI平台!

1987web2023-09-21人工智能AI121

哈喽,大家好,我是开源君,一个资深的互联网玩家,致力于为大家分享各领域优质开源项目。

各位开源老铁们,最近公众号改版了,大家记得星标开源指南,第一时间收到我们优质内容的更新!

今天开源君给大家推荐的项目是chatgpt,ChatGPT 是由 OpenAI 开发的一个人工智能聊天机器人程序,在该基础上我们增添 TypeScript 规范,封装一个非官方的 Node.js 包装器,我们可以使用它快速构建由 chatgpt 驱动的项目,比如聊天机器人、聊天网站等。

安装

npm install chatgpt puppeteer

兼容性

  1. Node.js >= 18,Node.js 17、16 和 14 在早期版本中是受支持的,但 OpenAI 的 Cloudflare 在 v17 和 v16 更新上导致了一个 undici 错误,现在需确认 Node.js >= 18;

  2. 我们建议不要从客户端浏览器代码中使用 chatgpt,因为这会暴露您的私有会话令牌;

  3. 如果你想使用 chatgpt 构建一个网站,我们建议您在服务端使用;

使用

  1. 基础使用

import { ChatGPTAPIBrowser } fromchatgptasyncfunctionexample() {// use puppeteer to bypass cloudflare (headful because of captchas)const api = new ChatGPTAPIBrowser({email: process.env.OPENAI_EMAIL,password: process.env.OPENAI_PASSWORD})await api.initSession()const result = await api.sendMessage(Hello World!)console.log(result.response)}
  1. 基于  REST-based 版本

import { ChatGPTAPI, getOpenAIAuth } fromchatgptasyncfunctionexample() {// use puppeteer to bypass cloudflare (headful because of captchas)const openAIAuth = await getOpenAIAuth({email: process.env.OPENAI_EMAIL,password: process.env.OPENAI_PASSWORD})const api = new ChatGPTAPI({ ...openAIAuth })await api.initSession()// send a message andwaitforthe responseconst result = await api.sendMessage(Write a python version of bubble sort.)// result.response is a markdown-formatted stringconsole.log(result.response)}
  1. chatgpt 默认格式为 markdown,想使用纯文本可如下实例

const api = new ChatGPTAPIBrowser({ email, password, markdown:false})
  1. conversationId 和 messageId 跟踪会话

const api = new ChatGPTAPIBrowser({ email, password })await api.initSession()// send a message andwaitforthe responseletres = await api.sendMessage(What is OpenAI?)console.log(res.response)// send a follow-upres = await api.sendMessage(Can you expand on that?, {conversationId: res.conversationId,parentMessageId: res.messageId})console.log(res.response)// send another follow-up// send a follow-upres = await api.sendMessage(What were we talking about?, {conversationId: res.conversationId,parentMessageId: res.messageId})console.log(res.response)
  1. 有时候,chatgpt 在开始响应之前会挂起一段时间。这可能是由于速率限制,也可能是由于 OpenAI 服务器过载。为了缓解这些问题,您可以像这样添加超时。

// timeout after 2 minutes (whichwill also abort the underlying HTTP request)const response = await api.sendMessage(this is a timeout test, {timeoutMs: 2 * 60 * 1000})
  1. 动态引入

asyncfunctionexample() {// To use ESMinCommonJS, you can use a dynamic importconst { ChatGPTAPI, getOpenAIAuth } = await import(chatgpt)const openAIAuth = await getOpenAIAuth({email: process.env.OPENAI_EMAIL,password: process.env.OPENAI_PASSWORD})const api = new ChatGPTAPI({ ...openAIAuth })await api.initSession()const result = await api.sendMessage(Hello World!)console.log(result)}

项目地址

https://github.com/transitive-bullshit/chatgpt-api

写在最后

欢迎加入开源指南读者交流群,以摸鱼、白嫖技术课程为主,有一群有趣有料的小伙伴在等你哦!进群方式:开源指南 公众号 回复666,按提示操作即可进群。