Skip to content

neopheus/node-chatgpt-api

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

48 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ChatGPT API Server

NPM npm MIT License GitHub Repo stars

This is a simple API server wrapper for ChatGPT. It supports multiple OpenAI accounts, setting proxies for each account, and load-balancing requests between accounts.

Getting Started

Prerequisites

  • Node.js
  • npm
  • An account with ChatGPT
  • A valid NopeCHA API key
  • xvfb (for headless Chrome)

Installation

You can install the package using

npm i -g @waylaidwanderer/chatgpt-api

then run it using chatgpt-api (or xvfb-run chatgpt-api for headless servers).
This takes an optional --settings=<path_to_settings.js> parameter, or looks for settings.js in the current directory if not set, with the following contents:

module.exports = {
    accounts: [
        {
            email: '[email protected]',
            password: 'password1',
            // Any other options that `ChatGPTAPIBrowser` supports...
        },
        {
            email: '[email protected]',
            password: 'password2',
            proxyServer: 'user:pass@ip:port',
        },
        {
            email: '[email protected]',
            password: 'password3',
            proxyServer: 'ip:port',
            // Example of overriding the default `nopechaKey` for this account
            nopechaKey: 'accountNopechaKey',
        },
        // Add more accounts as needed...
    ],
    // The port the server will run on (optional, defaults to 3000)
    port: 3000,
    // Your NopeCHA API key.
    // This will be applied to all accounts but can be overridden on a per-account basis.
    nopechaKey: 'nopechaKey',
    // Your 2Captcha API key.
    // This will be applied to all accounts but can be overridden on a per-account basis.
    twoCaptchaKey: '2captchaKey',
};

Alternatively, you can install the package locally and run it using node index.js:

  1. Clone this repository
  2. Install dependencies with npm install
  3. Rename settings.example.js to settings.js in the root directory and change the settings where required.
  4. Start the server using xvfb-run node index.js (for headless servers) or node index.js

Usage

To start a conversation with ChatGPT, send a POST request to the server's /conversation endpoint with a JSON body in the following format:

{
    "message": "Hello, how are you today?",
    "conversationId": "your-conversation-id (optional)",
    "parentMessageId": "your-parent-message-id (optional)"
}

The server will return a JSON object containing ChatGPT's response:

{
    "response": "I'm doing well, thank you! How are you?",
    "conversationId": "your-conversation-id",
    "messageId": "your-message-id"
}

If the request is unsuccessful, the server will return a JSON object with an error message and a status code of 503.

If no sessions have finished initializing yet:

{
    "error": "No sessions available."
}

If there was an error sending the message to ChatGPT:

{
    "error": "There was an error communicating with ChatGPT."
}

Contributing

If you'd like to contribute to this project, please create a pull request with a detailed description of your changes.

Acknowledgments

This API server is powered by @transitive-bullshit's chatgpt-api (chatgpt on npm).

License

This project is licensed under the MIT License.

About

An API layer for ChatGPT, powered by @transitive-bullshit's chatgpt-api (chatgpt on npm).

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • JavaScript 100.0%