溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

chatgpt api如何使用

發(fā)布時間:2023-02-25 10:18:34 來源:億速云 閱讀:579 作者:iii 欄目:開發(fā)技術(shù)

今天小編給大家分享一下chatgpt api如何使用的相關(guān)知識點,內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識,所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

chatgpt-api是 OpenAI ChatGPT 的非官方的 Node.js 包裝器。 包括 TS 類型定義。 chatgpt-api不再需要任何瀏覽器破解,它使用泄露出來的OpenAI官方ChatGPT 在后臺使用的模型。

?你可以使用它開始構(gòu)建由 ChatGPT 支持的項目,例如聊天機(jī)器人、網(wǎng)站等

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)。 與以前的版本相比,更新后的版本明顯更加輕巧和健壯,你也不必?fù)?dān)心 IP 問題或速率限制。

chatgpt api如何使用

1、安裝chatgpt-api

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

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

npm install chatgpt

2、chatgpt-api使用方法

首先注冊獲取 OpenAI API 密鑰并將其存儲在你的環(huán)境中。

下面是簡單的一次性對話:

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)
}

如果你想進(jìn)行持續(xù)多輪的對話,需要傳遞 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 處理程序添加流式響應(yīng):

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 選項添加超時設(shè)置:

// 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
  }
)

如果想查看有關(guān)實際發(fā)送到 OpenAI 完成 API 的內(nèi)容的更多信息,請在 ChatGPT API 構(gòu)造函數(shù)中設(shè)置 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`
})

請注意,我們會自動處理將先前的消息附加到提示并嘗試優(yōu)化可用token(默認(rèn)為 4096)。

在CommonJS中可以使用動態(tài)導(dǎo)入:

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、使用演示程序

要運(yùn)行包含的演示:

  • 克隆這個倉庫

  • 安裝node.js依賴

  • 在 .env 中設(shè)置 OPENAI_API_KEY

運(yùn)行倉庫中包含的基本演示程序:

npx tsx demos/demo.ts

chatgpt api如何使用

運(yùn)行倉庫中包含的顯示進(jìn)度處理的演示程序:

npx tsx demos/demo-on-progress.ts

上面這個演示使用 sendMessage可選的 onProgress 參數(shù)以接收中間結(jié)果,看起來就像 ChatGPT 正在“輸入”。

chatgpt api如何使用

運(yùn)行倉庫中包含的多輪對話演示程序:

npx tsx demos/demo-conversation.ts

chatgpt api如何使用

倉庫中的持久性演示展示了如何在 Redis 中存儲消息以實現(xiàn)持久化:

npx tsx demos/demo-conversation.ts

任何 keyv 適配器都支持消息的持久化,如果你想使用不同的方式存儲/檢索消息,則可以進(jìn)行覆蓋。

請注意,需要持久化消息來記住當(dāng)前 Node.js 進(jìn)程范圍之外的先前對話的上下文,因為默認(rèn)情況下,我們僅將消息存儲在內(nèi)存中。

以上就是“chatgpt api如何使用”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會為大家更新不同的知識,如果還想學(xué)習(xí)更多的知識,請關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI