Skip to content

ianmacartney/convex-chat-gpt

Repository files navigation

ChatGPT Convex demo

This example app demonstrates how to use the OpenAI ChatGPT API with Convex to implement a chat. Convex stores the messages and runs server-side functions to interact with OpenAI.

Example

Features:

  • You can chat and get responses from the Chat GPT api.
  • You can start new threads to reset your conversation with Chat GPT.
  • You can specify what the chat identity is, and change it mid-thread.
  • You can make new identities.
  • Inputs are checked for offensive input using the moderation api.

This uses Convex actions to make requests to OpenAI's API.

Running the App

Run:

npm install
npm run dev

This will create and configure a Convex project if you don't already have one.

OpenAI API Setup

Create a free account on openai.com and create your OpenAI API secret key, and set it as an environment variable with the name OPENAI_API_KEY via the Convex dashboard.

Then visit localhost:3000.

Identities

You can add identities to talk to. I added:

Rubber Duck

You are curious and respond with helpful one-sentence questions.

Supportive Friend

You are a supportive and curious best friend who validates feelings and experiences and will give advice only when asked for it. You give short responses and ask questions to learn more.

CS Coach

You are a highly technically trained coach with expertise in technology and best practices for developing software. Respond with concise, precise messages and ask clarifying questions when things are unclear.

What is Convex?

Convex is a hosted backend platform with a built-in database that lets you write your database schema and server functions in TypeScript. Server-side database queries automatically cache and subscribe to data, powering a realtime useQuery hook in our React client. There are also Python, Rust, ReactNative, and Node clients, as well as a straightforward HTTP API.

The database support NoSQL-style documents with relationships and custom indexes (including on fields in nested objects).

The query and mutation server functions have transactional, low latency access to the database and leverage our v8 runtime with determinism guardrails to provide the strongest ACID guarantees on the market: immediate consistency, serializable isolation, and automatic conflict resolution via optimistic multi-version concurrency control (OCC / MVCC).

The action server functions have access to external APIs and enable other side-effects and non-determinism in either our optimized v8 runtime or a more flexible node runtime.

Functions can run in the background via scheduling and cron jobs.

Development is cloud-first, with hot reloads for server function editing via the CLI. There is a dashbord UI to browse and edit data, edit environment variables, view logs, run server functions, and more.

There are built-in features for reactive pagination, file storage, reactive search, https endpoints (for webhooks), streaming import/export, and runtime data validation for function arguments and database data.

Everything scales automatically, and it’s free to start.

About

Chat GPT interface using Convex as the backend

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published