Code Monkey home page Code Monkey logo

chatgpt-api's Introduction

ChatGPT API

Node.js wrapper around ChatGPT. Uses headless Chrome until the official API is released.

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

It uses headless Chromium via Playwright to automate the webapp, so you still need to have access to ChatGPT. It just makes building API-like integrations much easier.

Chromium will be opened in non-headless mode by default, which is important because the first time you run ChatGPTAPI.init(), you'll need to log in manually. We launch Chromium with a persistent context, however, so you shouldn't need to keep re-logging in after the first time.

When you log in the first time, we recommend dismissing the welcome modal so you can watch the progress. This isn't strictly necessary, but it helps to understand what's going on.

  • Demo video showing how the initial auth flow works (29 seconds)
  • Demo video showing how it works if you're already authed (13 seconds)

Note We'll replace headless chrome with the official API once it's released.

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

  // open chromium and wait until you've logged in
  await api.init({ auth: 'blocking' })

  // 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, ChatGPT responses are parsed as markdown using html-to-md. I've found that this works really well during my testing, but if you'd rather output plaintext, you can use:

const api = new ChatGPTAPI({ markdown: false })

A full example is included for testing purposes:

# clone repo
# install node deps
# then run
npx tsx src/example.ts

Docs

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

Related

License

MIT © Travis Fischer

Support my open source work by following me on twitter twitter

chatgpt-api's People

Contributors

transitive-bullshit avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.