1.0.0 • Published 1 year ago

node-chatgpt v1.0.0

Weekly downloads
-
License
MIT
Repository
github
Last release
1 year ago

ChatGPT API

Node.js client for the unofficial ChatGPT API.

NPM Build Status MIT License Prettier Code Formatting

Intro

This package is a Node.js wrapper around ChatGPT by OpenAI. TS batteries included. ✨

You can use it to start building projects powered by ChatGPT like chatbots, websites, etc...

How it works

This package requires a valid session token from ChatGPT to access it's unofficial REST API.

To get a session token:

  1. Go to https://chat.openai.com/chat and log in or sign up.
  2. Open dev tools.
  3. Open Application > Cookies. ChatGPT cookies
  4. Copy the value for __Secure-next-auth.session-token and save it to your environment.

If you want to run the built-in demo, store this value as SESSION_TOKEN in a local .env file.

Note This package will switch to using the official API once it's released.

Note Prior to v1.0.0, this package used a headless browser via Playwright to automate the web UI. Here are the docs for the initial browser version.

Install

npm install --save chatgpt
# or
yarn add chatgpt
# or
pnpm add chatgpt

Usage

import { ChatGPTAPI } from 'chatgpt'

async function example() {
  const api = new ChatGPTAPI({ sessionToken: process.env.SESSION_TOKEN })

  // ensure the API is properly authenticated (optional)
  await api.ensureAuth()

  // send a message and wait for the response
  const response = await api.sendMessage(
    'Write a python version of bubble sort. Do not include example usage.'
  )

  // response is a markdown-formatted string
  console.log(response)
}

By default, the response will be formatted as markdown. If you want to work with plaintext only, you can use:

const api = new ChatGPTAPI({
  sessionToken: process.env.SESSION_TOKEN,
  markdown: false
})

A full example is included for testing purposes:

# 1. clone repo
# 2. install node deps
# 3. set `SESSION_TOKEN` in .env
# 4. run:
npx tsx src/example.ts

Docs

See the auto-generated docs for more info on methods and parameters.

Examples

All of these awesome projects use the chatgpt package. 🤯

If you create a cool integration, feel free to open a PR and add it to the list.

Credit

License

MIT © Travis Fischer

If you found this project interesting, please consider supporting my open source work by sponsoring me or following me on twitter