เพิ่มการรองรับรุ่น ChatGPT อย่างเป็นทางการแล้ว! ตอนนี้คุณสามารถใช้โมเดล gpt-3.5-turbo
กับ OpenAI API อย่างเป็นทางการได้ โดยใช้ ChatGPTClient
นี่เป็นรุ่นเดียวกับที่ ChatGPT ใช้ และเป็นรุ่นที่ทรงพลังที่สุดที่มีอยู่ตอนนี้ การใช้งานโมเดลนี้ ไม่ฟรี แต่ราคาถูกกว่า text-davinci-003
ถึง 10 เท่า (ราคา 0.002 ดอลลาร์ต่อ 1,000 โทเค็น)
ดูโพสต์ของ OpenAI การแนะนำ ChatGPT และ Whisper API สำหรับข้อมูลเพิ่มเติม
หากต้องการใช้งาน ให้ตั้งค่า โมเดลเริ่มต้นที่ใช้ใน modelOptions.model
เป็น gpt-3.5-turbo
แล้ว ChatGPTClient
จะจัดการส่วนที่เหลือChatGPTClient
ตอนนี้คือ gpt-3.5-turbo
คุณยังคงสามารถตั้งค่า userLabel
, chatGptLabel
และ promptPrefix
(คำแนะนำของระบบ) ได้ตามปกติ
อาจมีโอกาสสูงที่บัญชีของคุณจะถูกแบนหากคุณยังคงเปิดใช้งาน chat.openai.com โดยอัตโนมัติ ดำเนินการต่อด้วยความเสี่ยงของคุณเอง
ฉันได้เพิ่ม ChatGPTBrowserClient
รุ่นทดลองซึ่งขึ้นอยู่กับพร็อกซีเซิร์ฟเวอร์ย้อนกลับที่ใช้การเลี่ยงผ่าน Cloudflare ทำให้คุณสามารถพูดคุยกับ ChatGPT (chat.openai.com) โดยไม่ต้องใช้เบราว์เซอร์อัตโนมัติ สิ่งที่คุณต้องมีคือโทเค็นการเข้าถึงจาก https://chat.openai.com/api/auth/session
และเช่นเคย โปรดทราบว่าหากคุณเลือกที่จะไปในเส้นทางนี้ คุณกำลังเปิดเผยโทเค็นการเข้าถึงของคุณไปยังเซิร์ฟเวอร์บุคคลที่สามแบบปิด หากคุณกังวลเกี่ยวกับเรื่องนี้ คุณอาจเลือกใช้บัญชี ChatGPT ฟรีเพื่อลดความเสี่ยง หรือใช้ ChatGPTClient
ต่อไปแทนด้วยโมเดล text-davinci-003
น่าเสียดายที่วิธีที่เราใช้เข้าถึงโมเดลพื้นฐานของ ChatGPT ได้รับการแก้ไขแล้ว ตัวเลือกของคุณตอนนี้คือใช้ OpenAI API อย่างเป็นทางการกับโมเดล text-davinci-003
(ซึ่งมีค่าใช้จ่าย) หรือใช้โซลูชันบนเบราว์เซอร์เพื่อเชื่อมต่อกับแบ็กเอนด์ของ ChatGPT (ซึ่งมีประสิทธิภาพน้อยกว่า จำกัดอัตรามากกว่า และเป็น ไลบรารีนี้ไม่รองรับในขณะนี้)
ด้วยความช่วยเหลือของ @PawanOsman เราได้คิดหาวิธีที่จะใช้โมเดลพื้นฐานของ ChatGPT ต่อไป เพื่อหวังว่าจะป้องกันการสูญเสียการเข้าถึงอีกครั้ง เราได้ตัดสินใจมอบพร็อกซีเซิร์ฟเวอร์ย้อนกลับที่เข้ากันได้กับ OpenAI API ฉันได้อัปเดต ChatGPTClient
เพื่อรองรับการใช้พร็อกซีเซิร์ฟเวอร์ย้อนกลับแทนเซิร์ฟเวอร์ OpenAI API โปรดดูการใช้ Reverse Proxy สำหรับข้อมูลเพิ่มเติมเกี่ยวกับพร็อกซีเซิร์ฟเวอร์ที่มีอยู่และวิธีการทำงาน
โปรดทราบว่าหากคุณเลือกที่จะไปในเส้นทางนี้ คุณกำลังเปิดเผยโทเค็นการเข้าถึงของคุณไปยังเซิร์ฟเวอร์บุคคลที่สามแบบปิด หากคุณกังวลเกี่ยวกับเรื่องนี้ คุณอาจเลือกใช้บัญชี ChatGPT ฟรีเพื่อลดความเสี่ยง หรือใช้ OpenAI API อย่างเป็นทางการแทนด้วยโมเดล text-davinci-003
ฉันได้พบรูปแบบการทำงานใหม่สำหรับ text-chat-davinci-002
, text-chat-davinci-002-sh-alpha-aoruigiofdj83
นี่คือโมเดลพื้นฐานที่เวอร์ชัน ChatGPT Plus "Turbo" ใช้ การตอบสนองรวดเร็วอย่างเห็นได้ชัด ฉันได้อัปเดตไลบรารีเพื่อใช้โมเดลนี้แล้ว
จังหวะไม่ดี; text-chat-davinci-002-sh-alpha-aoruigiofdj83
ถูกลบออกหลังจากนั้นไม่นาน อาจเนื่องมาจากมีโมเดลใหม่อยู่ที่ไหนสักแห่งที่นั่น
สัมผัสพลังของ ChatGPT เวอร์ชัน GPT-4 ของ Bing ด้วย BingAIClient
(ทดลอง) เซิร์ฟเวอร์ API และ CLI ยังคงต้องได้รับการอัปเดตเพื่อรองรับสิ่งนี้ แต่คุณสามารถใช้ไคลเอ็นต์ได้โดยตรงในขณะนี้ โปรดทราบว่าหากบัญชีของคุณยังคงอยู่ในรายชื่อรอ คุณจะไม่สามารถใช้ไคลเอนต์รายนี้ได้
แม้ว่า text-chat-davinci-002-20221122
จะกลับมาอีกครั้ง แต่ดูเหมือนว่าจะมีการโหลดมากเกินไปอย่างต่อเนื่องและส่งกลับข้อผิดพลาด 429 มีแนวโน้มว่า OpenAI จะทุ่มเททรัพยากรเพียงเล็กน้อยให้กับโมเดลนี้เพื่อป้องกันไม่ให้สาธารณชนใช้กันอย่างแพร่หลาย นอกจากนี้ ฉันได้ยินมาว่าขณะนี้พนักงานและคู่ค้าของ OpenAI ล็อกการเข้าถึงเวอร์ชันที่ใหม่กว่าแล้ว ดังนั้นจึงไม่น่าเป็นไปได้ที่เราจะพบวิธีแก้ปัญหาใดๆ จนกว่าโมเดลจะเปิดตัวอย่างเป็นทางการ
คุณสามารถใช้รุ่น text-davinci-003
แทนแบบดรอปอินแทนได้ โปรดทราบว่า text-davinci-003
นั้นไม่ดีเท่ากับ text-chat-davinci-002
(ซึ่งได้รับการฝึกฝนผ่าน RHLF และปรับแต่งให้เป็น AI เชิงสนทนา) แม้ว่าผลลัพธ์จะยังคงค่อนข้างดีในกรณีส่วนใหญ่ โปรดทราบว่าการใช้ text-davinci-003
จะทำให้คุณเสียเครดิต ($)
ฉันจะเพิ่มการรองรับ ChatGPT บนเบราว์เซอร์อีกครั้งสำหรับเซิร์ฟเวอร์ API และ CLI โปรดติดดาวและดูพื้นที่เก็บข้อมูลนี้เพื่อรับการอัปเดต
รถไฟเหาะมาถึงจุดต่อไปแล้ว text-chat-davinci-002-20221122
กลับมาอีกครั้ง
กำลังพยายามใช้ text-chat-davinci-002-20221122
กับ OpenAI API ตอนนี้ส่งคืนข้อผิดพลาด 404 คุณสามารถใช้รุ่น text-davinci-003
แทนแบบดรอปอินแทนได้ โปรดทราบว่า text-davinci-003
นั้นไม่ดีเท่ากับ text-chat-davinci-002
(ซึ่งได้รับการฝึกฝนผ่าน RHLF และปรับแต่งให้เป็น AI การสนทนา) แม้ว่าผลลัพธ์จะยังคงดีมากก็ตาม โปรดทราบว่าการใช้ text-davinci-003
จะทำให้คุณเสียเครดิต ($)
โปรดรอการอัปเดตเพิ่มเติมในขณะที่เราตรวจสอบวิธีแก้ปัญหาเพิ่มเติม
กำลังพยายามใช้ text-chat-davinci-002-20230126
กับ OpenAI API ตอนนี้ส่งคืนข้อผิดพลาด 404 มีคนพบชื่อโมเดลใหม่แล้ว แต่พวกเขาไม่เต็มใจที่จะแบ่งปันในเวลานี้ ฉันจะอัปเดตพื้นที่เก็บข้อมูลนี้เมื่อฉันพบโมเดลใหม่ หากคุณมีโอกาสในการขาย โปรดเปิดประเด็นหรือคำขอดึงข้อมูล
ในระหว่างนี้ ฉันได้เพิ่มการรองรับสำหรับรุ่นเช่น text-davinci-003
ซึ่งคุณสามารถใช้แทนแบบดรอปอินได้ โปรดทราบว่า text-davinci-003
นั้นไม่ดีเท่ากับ text-chat-davinci-002
(ซึ่งได้รับการฝึกฝนผ่าน RHLF และปรับแต่งให้เป็น AI การสนทนา) แม้ว่าผลลัพธ์จะยังคงดีมากก็ตาม โปรดทราบว่าการใช้ text-davinci-003
จะทำให้คุณเสียเครดิต ($)
ผู้ใช้ Discord @pig#8932 พบโมเดล text-chat-davinci-002
, text-chat-davinci-002-20221122
ที่ใช้งานได้ ฉันได้อัปเดตไลบรารีเพื่อใช้โมเดลนี้แล้ว
การใช้งานไคลเอ็นต์สำหรับ ChatGPT และ Bing AI ใช้งานได้ในรูปแบบโมดูล Node.js, เซิร์ฟเวอร์ REST API และแอป CLI
ChatGPTClient
: รองรับโมเดลพื้นฐานของ ChatGPT อย่างเป็นทางการ gpt-3.5-turbo
ผ่าน API ของ OpenAIkeyv-file
ยังรวมอยู่ในแพ็คเกจนี้ด้วย และสามารถใช้เพื่อจัดเก็บการสนทนาในไฟล์ JSON หากคุณใช้เซิร์ฟเวอร์ API หรือ CLI (ดู settings.example.js
)text-davinci-003
BingAIClient
: รองรับ ChatGPT เวอร์ชันของ Bing ซึ่งขับเคลื่อนโดย GPT-4ChatGPTBrowserClient
: รองรับเว็บไซต์ ChatGPT อย่างเป็นทางการ โดยใช้พร็อกซีเซิร์ฟเวอร์ย้อนกลับสำหรับการเลี่ยงผ่าน Cloudflarenpm i @waylaidwanderer/chatgpt-api
ดู demos/use-bing-client.js
ดู demos/use-client.js
ดู demos/use-browser-client.js
คุณสามารถติดตั้งแพ็คเกจโดยใช้
npm i -g @waylaidwanderer/chatgpt-api
จากนั้นรันโดยใช้ chatgpt-api
ซึ่งใช้พารามิเตอร์ทางเลือก --settings=<path_to_settings.js>
หรือค้นหา settings.js
ในไดเร็กทอรีปัจจุบันหากไม่ได้ตั้งค่า โดยมีเนื้อหาต่อไปนี้:
module . exports = {
// Options for the Keyv cache, see https://www.npmjs.com/package/keyv.
// This is used for storing conversations, and supports additional drivers (conversations are stored in memory by default).
// Only necessary when using `ChatGPTClient`, or `BingAIClient` in jailbreak mode.
cacheOptions : { } ,
// If set, `ChatGPTClient` and `BingAIClient` will use `keyv-file` to store conversations to this JSON file instead of in memory.
// However, `cacheOptions.store` will override this if set
storageFilePath : process . env . STORAGE_FILE_PATH || './cache.json' ,
chatGptClient : {
// Your OpenAI API key (for `ChatGPTClient`)
openaiApiKey : process . env . OPENAI_API_KEY || '' ,
// (Optional) Support for a reverse proxy for the completions endpoint (private API server).
// Warning: This will expose your `openaiApiKey` to a third party. Consider the risks before using this.
// reverseProxyUrl: 'https://chatgpt.hato.ai/completions',
// (Optional) Parameters as described in https://platform.openai.com/docs/api-reference/completions
modelOptions : {
// You can override the model name and any other parameters here.
// The default model is `gpt-3.5-turbo`.
model : 'gpt-3.5-turbo' ,
// Set max_tokens here to override the default max_tokens of 1000 for the completion.
// max_tokens: 1000,
} ,
// (Optional) Davinci models have a max context length of 4097 tokens, but you may need to change this for other models.
// maxContextTokens: 4097,
// (Optional) You might want to lower this to save money if using a paid model like `text-davinci-003`.
// Earlier messages will be dropped until the prompt is within the limit.
// maxPromptTokens: 3097,
// (Optional) Set custom instructions instead of "You are ChatGPT...".
// (Optional) Set a custom name for the user
// userLabel: 'User',
// (Optional) Set a custom name for ChatGPT ("ChatGPT" by default)
// chatGptLabel: 'Bob',
// promptPrefix: 'You are Bob, a cowboy in Western times...',
// A proxy string like "http://<ip>:<port>"
proxy : '' ,
// (Optional) Set to true to enable `console.debug()` logging
debug : false ,
} ,
// Options for the Bing client
bingAiClient : {
// Necessary for some people in different countries, e.g. China (https://cn.bing.com)
host : '' ,
// The "_U" cookie value from bing.com
userToken : '' ,
// If the above doesn't work, provide all your cookies as a string instead
cookies : '' ,
// A proxy string like "http://<ip>:<port>"
proxy : '' ,
// (Optional) Set to true to enable `console.debug()` logging
debug : false ,
} ,
chatGptBrowserClient : {
// (Optional) Support for a reverse proxy for the conversation endpoint (private API server).
// Warning: This will expose your access token to a third party. Consider the risks before using this.
reverseProxyUrl : 'https://bypass.churchless.tech/api/conversation' ,
// Access token from https://chat.openai.com/api/auth/session
accessToken : '' ,
// Cookies from chat.openai.com (likely not required if using reverse proxy server).
cookies : '' ,
// A proxy string like "http://<ip>:<port>"
proxy : '' ,
// (Optional) Set to true to enable `console.debug()` logging
debug : false ,
} ,
// Options for the API server
apiOptions : {
port : process . env . API_PORT || 3000 ,
host : process . env . API_HOST || 'localhost' ,
// (Optional) Set to true to enable `console.debug()` logging
debug : false ,
// (Optional) Possible options: "chatgpt", "chatgpt-browser", "bing". (Default: "chatgpt")
clientToUse : 'chatgpt' ,
// (Optional) Generate titles for each conversation for clients that support it (only ChatGPTClient for now).
// This will be returned as a `title` property in the first response of the conversation.
generateTitles : false ,
// (Optional) Set this to allow changing the client or client options in POST /conversation.
// To disable, set to `null`.
perMessageClientOptionsWhitelist : {
// The ability to switch clients using `clientOptions.clientToUse` will be disabled if `validClientsToUse` is not set.
// To allow switching clients per message, you must set `validClientsToUse` to a non-empty array.
validClientsToUse : [ 'bing' , 'chatgpt' , 'chatgpt-browser' ] , // values from possible `clientToUse` options above
// The Object key, e.g. "chatgpt", is a value from `validClientsToUse`.
// If not set, ALL options will be ALLOWED to be changed. For example, `bing` is not defined in `perMessageClientOptionsWhitelist` above,
// so all options for `bingAiClient` will be allowed to be changed.
// If set, ONLY the options listed here will be allowed to be changed.
// In this example, each array element is a string representing a property in `chatGptClient` above.
chatgpt : [
'promptPrefix' ,
'userLabel' ,
'chatGptLabel' ,
// Setting `modelOptions.temperature` here will allow changing ONLY the temperature.
// Other options like `modelOptions.model` will not be allowed to be changed.
// If you want to allow changing all `modelOptions`, define `modelOptions` here instead of `modelOptions.temperature`.
'modelOptions.temperature' ,
] ,
} ,
} ,
// Options for the CLI app
cliOptions : {
// (Optional) Possible options: "chatgpt", "bing".
// clientToUse: 'bing',
} ,
} ;
หรือคุณสามารถติดตั้งและรันแพ็คเกจได้โดยตรง
git clone https://github.com/waylaidwanderer/node-chatgpt-api
npm install
(หากไม่ได้ใช้ Docker)settings.example.js
เป็น settings.js
ในไดเร็กทอรีรากและเปลี่ยนการตั้งค่าตามที่จำเป็นnpm start
หรือ npm run server
(หากไม่ได้ใช้ Docker)docker-compose up
(ต้องใช้นักเทียบท่า) เริ่มหรือสนทนาต่อ พารามิเตอร์เสริมจำเป็นสำหรับการสนทนาที่ครอบคลุมคำขอหลายรายการเท่านั้น
สนาม | คำอธิบาย |
---|---|
ข้อความ | ข้อความที่จะแสดงแก่ผู้ใช้ |
รหัสการสนทนา | (ไม่บังคับ) รหัสสำหรับการสนทนาที่คุณต้องการดำเนินการต่อ |
JailbreakConversationId | (ไม่บังคับ สำหรับ BingAIClient เท่านั้น) ตั้งค่าเป็น true เพื่อเริ่มการสนทนาในโหมดเจลเบรก หลังจากนั้น นี่ควรเป็น ID สำหรับการสนทนาการแหกคุก (ระบุในการตอบกลับเป็นพารามิเตอร์ชื่อ jailbreakConversationId ด้วย) |
รหัสข้อความผู้ปกครอง | (ไม่บังคับ สำหรับ ChatGPTClient และ BingAIClient ในโหมดเจลเบรค) รหัสของข้อความพาเรนต์ (เช่น response.messageId ) เมื่อสนทนาต่อ |
ลายเซ็นการสนทนา | (ไม่บังคับ สำหรับ BingAIClient เท่านั้น) ลายเซ็นสำหรับการสนทนา (ระบุในการตอบกลับเป็นพารามิเตอร์ชื่อ conversationSignature ด้วย) จำเป็นเมื่อสนทนาต่อเว้นแต่จะอยู่ในโหมดเจลเบรก |
รหัสลูกค้า | (ไม่บังคับ สำหรับ BingAIClient เท่านั้น) ID ของไคลเอ็นต์ จำเป็นเมื่อสนทนาต่อเว้นแต่จะอยู่ในโหมดเจลเบรก |
รหัสการร้องขอ | (ไม่บังคับ สำหรับ BingAIClient เท่านั้น) รหัสของการร้องขอ จำเป็นเมื่อสนทนาต่อเว้นแต่จะอยู่ในโหมดเจลเบรก |
ตัวเลือกไคลเอนต์ | (ไม่บังคับ) ออบเจ็กต์ที่มีตัวเลือกสำหรับไคลเอ็นต์ |
clientOptions.clientToUse | (ไม่บังคับ) ไคลเอ็นต์ที่จะใช้สำหรับข้อความนี้ ค่าที่เป็นไปได้: chatgpt , chatgpt-browser , bing |
ตัวเลือกไคลเอนต์.* | (ไม่บังคับ) ตัวเลือกที่ถูกต้องสำหรับลูกค้า ตัวอย่างเช่น สำหรับ ChatGPTClient คุณสามารถตั้งค่า clientOptions.openaiApiKey ให้ตั้งค่าคีย์ API สำหรับข้อความนี้เท่านั้น หรือ clientOptions.promptPrefix ให้ให้คำแนะนำ AI แบบกำหนดเองสำหรับข้อความนี้เท่านั้น เป็นต้น |
หากต้องการกำหนดค่าตัวเลือกที่สามารถเปลี่ยนแปลงได้ต่อข้อความ (ค่าเริ่มต้น: ทั้งหมด) โปรดดูความคิดเห็นสำหรับ perMessageClientOptionsWhitelist
ใน settings.example.js
หากต้องการอนุญาตการเปลี่ยนแปลงไคลเอ็นต์ ต้องตั้งค่า perMessageClientOptionsWhitelist.validClientsToUse
เป็นอาร์เรย์ที่ไม่ว่างเปล่าตามที่อธิบายไว้ในไฟล์การตั้งค่าตัวอย่าง
หากต้องการเริ่มการสนทนาด้วย ChatGPT ให้ส่งคำขอ POST ไปยังตำแหน่งข้อมูล /conversation
ของเซิร์ฟเวอร์ด้วยเนื้อหา JSON พร้อมพารามิเตอร์ตาม ตำแหน่งข้อมูล > POST /การสนทนา ด้านบน
{
"message" : " Hello, how are you today? " ,
"conversationId" : " your-conversation-id (optional) " ,
"parentMessageId" : " your-parent-message-id (optional, for `ChatGPTClient` only) " ,
"conversationSignature" : " your-conversation-signature (optional, for `BingAIClient` only) " ,
"clientId" : " your-client-id (optional, for `BingAIClient` only) " ,
"invocationId" : " your-invocation-id (optional, for `BingAIClient` only) " ,
}
เซิร์ฟเวอร์จะส่งคืนวัตถุ JSON ที่มีการตอบสนองของ ChatGPT:
// HTTP/1.1 200 OK
{
"response" : "I'm doing well, thank you! How are you?" ,
"conversationId" : "your-conversation-id" ,
"messageId" : "response-message-id (for `ChatGPTClient` only)" ,
"conversationSignature" : "your-conversation-signature (for `BingAIClient` only)" ,
"clientId" : "your-client-id (for `BingAIClient` only)" ,
"invocationId" : "your-invocation-id (for `BingAIClient` only - pass this new value back into subsequent requests as-is)" ,
"details" : "an object containing the raw response from the client"
}
หากคำขอไม่สำเร็จ เซิร์ฟเวอร์จะส่งคืนออบเจ็กต์ JSON พร้อมข้อความแสดงข้อผิดพลาด
หากวัตถุคำขอขาดคุณสมบัติที่จำเป็น (เช่น message
):
// HTTP/1.1 400 Bad Request
{
"error" : "The message parameter is required."
}
หากมีข้อผิดพลาดในการส่งข้อความถึง ChatGPT:
// HTTP/1.1 503 Service Unavailable
{
"error" : "There was an error communicating with ChatGPT."
}
คุณสามารถตั้งค่า "stream": true
ในเนื้อหาคำขอเพื่อรับสตรีมโทเค็นในขณะที่ถูกสร้างขึ้น
import { fetchEventSource } from '@waylaidwanderer/fetch-event-source' ; // use `@microsoft/fetch-event-source` instead if in a browser environment
const opts = {
method : 'POST' ,
headers : {
'Content-Type' : 'application/json' ,
} ,
body : JSON . stringify ( {
"message" : "Write a poem about cats." ,
"conversationId" : "your-conversation-id (optional)" ,
"parentMessageId" : "your-parent-message-id (optional)" ,
"stream" : true ,
// Any other parameters per `Endpoints > POST /conversation` above
} ) ,
} ;
ดู demos/use-api-server-streaming.js สำหรับตัวอย่างวิธีรับการตอบกลับในขณะที่ถูกสร้างขึ้น คุณจะได้รับโทเค็นครั้งละหนึ่งโทเค็น ดังนั้นคุณจะต้องเชื่อมต่อโทเค็นเหล่านั้นด้วยตัวเอง
ผลลัพธ์ที่สำเร็จ:
{ data : '' , event : '' , id : '' , retry : 3000 }
{ data : 'Hello' , event : '' , id : '' , retry : undefined }
{ data : '!' , event : '' , id : '' , retry : undefined }
{ data : ' How' , event : '' , id : '' , retry : undefined }
{ data : ' can' , event : '' , id : '' , retry : undefined }
{ data : ' I' , event : '' , id : '' , retry : undefined }
{ data : ' help' , event : '' , id : '' , retry : undefined }
{ data : ' you' , event : '' , id : '' , retry : undefined }
{ data : ' today' , event : '' , id : '' , retry : undefined }
{ data : '?' , event : '' , id : '' , retry : undefined }
{ data : '<result JSON here, see Method 1>' , event : 'result' , id : '' , retry : undefined }
{ data : '[DONE]' , event : '' , id : '' , retry : undefined }
// Hello! How can I help you today?
เอาต์พุตข้อผิดพลาด:
const message = {
data : '{"code":503,"error":"There was an error communicating with ChatGPT."}' ,
event : 'error' ,
id : '' ,
retry : undefined
} ;
if ( message . event === 'error' ) {
console . error ( JSON . parse ( message . data ) . error ) ; // There was an error communicating with ChatGPT.
}
fetch-event-source
ก่อนและใช้วิธี POST
ปฏิบัติตามคำแนะนำการตั้งค่าเดียวกันสำหรับเซิร์ฟเวอร์ API โดยสร้าง settings.js
หากติดตั้งทั่วโลก:
chatgpt-cli
หากติดตั้งในเครื่อง:
npm run cli
คำตอบของ ChatGPT จะถูกคัดลอกไปยังคลิปบอร์ดของคุณโดยอัตโนมัติ ดังนั้นคุณจึงสามารถวางลงในแอปพลิเคชันอื่นได้
ดังที่แสดงในตัวอย่างด้านบน คุณสามารถตั้งค่า reverseProxyUrl
ในตัวเลือกของ ChatGPTClient
เพื่อใช้พร็อกซีเซิร์ฟเวอร์ย้อนกลับแทน ChatGPT API อย่างเป็นทางการ ในตอนนี้ นี่เป็นวิธีเดียวที่จะใช้โมเดลพื้นฐานของ ChatGPT วิธีการนี้ได้รับการแก้ไขแล้ว และคำแนะนำด้านล่างไม่เกี่ยวข้องอีกต่อไป แต่คุณอาจต้องการใช้พร็อกซีย้อนกลับด้วยเหตุผลอื่น ปัจจุบัน Reverse Proxy Server ยังคงใช้สำหรับการบายพาส Cloudflare สำหรับ ChatGPTBrowserClient
มันทำงานอย่างไร? คำตอบง่ายๆ: ChatGPTClient
> Reverse proxy > เซิร์ฟเวอร์ OpenAI พร็อกซีเซิร์ฟเวอร์ย้อนกลับใช้เวทย์มนตร์บางอย่างภายใต้ประทุนเพื่อเข้าถึงโมเดลพื้นฐานโดยตรงผ่านเซิร์ฟเวอร์ของ OpenAI จากนั้นตอบกลับ ChatGPTClient
คำแนะนำมีให้ด้านล่าง
accessToken
)reverseProxyUrl
เป็น https://chatgpt.hato.ai/completions
ใน settings.js > chatGptClient
หรือตัวเลือกของ ChatGPTClient
settings.chatGptClient.openaiApiKey
) เป็นโทเค็นการเข้าถึง ChatGPT ที่คุณได้รับในขั้นตอนที่ 1model
เป็น text-davinci-002-render
, text-davinci-002-render-paid
หรือ text-davinci-002-render-sha
ขึ้นอยู่กับโมเดล ChatGPT ที่บัญชีของคุณสามารถเข้าถึงได้ โมเดล ต้อง เป็นชื่อโมเดล ChatGPT ไม่ใช่ชื่อโมเดลที่เกี่ยวข้อง และคุณไม่สามารถใช้โมเดลที่บัญชีของคุณไม่สามารถเข้าถึงได้stream: true
(API) หรือ onProgress
(client) เป็นวิธีการแก้ปัญหาชั่วคราวaccessToken
)reverseProxyUrl
เป็น https://chatgpt.pawan.krd/api/completions
ใน settings.js > chatGptClient
หรือตัวเลือกของ ChatGPTClient
settings.chatGptClient.openaiApiKey
) เป็นโทเค็นการเข้าถึง ChatGPT ที่คุณได้รับในขั้นตอนที่ 1model
เป็น text-davinci-002-render
, text-davinci-002-render-paid
หรือ text-davinci-002-render-sha
ขึ้นอยู่กับโมเดล ChatGPT ที่บัญชีของคุณสามารถเข้าถึงได้ โมเดล ต้อง เป็นชื่อโมเดล ChatGPT ไม่ใช่ชื่อโมเดลที่เกี่ยวข้อง และคุณไม่สามารถใช้โมเดลที่บัญชีของคุณไม่สามารถเข้าถึงได้stream: true
(API) หรือ onProgress
(client) เป็นวิธีการแก้ปัญหาชั่วคราว รายการโครงการที่ยอดเยี่ยมโดยใช้ @waylaidwanderer/chatgpt-api
:
เพิ่มของคุณลงในรายการโดยแก้ไข README นี้และสร้างคำขอดึง!
เว็บไคลเอ็นต์สำหรับโปรเจ็กต์นี้มีอยู่ที่ waylaidwanderer/PandoraAI
ChatGPTClient
เนื่องจาก gpt-3.5-turbo
เป็นโมเดลพื้นฐานของ ChatGPT ฉันจึงต้องพยายามอย่างเต็มที่เพื่อจำลองวิธีที่เว็บไซต์ ChatGPT อย่างเป็นทางการใช้งาน ซึ่งหมายความว่าการใช้งานของฉันหรือโมเดลพื้นฐานอาจไม่ทำงานเหมือนกันทุกประการในบางวิธี:
หากคุณต้องการมีส่วนร่วมในโครงการนี้ โปรดสร้างคำขอดึงข้อมูลพร้อมคำอธิบายโดยละเอียดเกี่ยวกับการเปลี่ยนแปลงของคุณ
โครงการนี้ได้รับอนุญาตภายใต้ใบอนุญาต MIT