Skip to content

longlwu2000/kitt

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

KITT

KITT is a ChatGPT-powered AI that lives in a WebRTC conference call.

Preview gif

Online Demo

You can try an online demo right now at https://livekit.io/kitt

How it works

This repo contains two services:

  1. meet
  2. lkgpt-service

The meet service is a NextJS app that implements a typical video call app. The lkgpt-service implements KITT. When a room is created, a webhook calls a handler in lkgpt-service which adds a participant to the room. The particpant uses GCP's speech-to-text, ChatGPT, and GCP's text-to-speech to create KITT.

The following diagram illustrates this:

kitt-demo-architecture

Getting started

Prerequisites

Running Locally

To run locally, you'll need to run the two services in this repo: meet and lkgt-service.

Running Meet

In the meet/ directory, copy .env.example to .env.local and fill in your LiveKit connection details. Then run:

yarn install && yarn dev

Running lkgpt-service

In the lkgpt-service/ directory, copy config-sample.yaml to config.yaml and fill in your LiveKit connection details and OpenAI API key. Then run:

go run /cmd/server/main.go --config config.yaml --gcp-credentials-path gcp-credentials.json

Once both services are running you can navigate to http://localhost:3000. There's one more step needed when running locally. When deployed, KITT is spawned via a LiveKit webhook, but locally - the webhook will have no way of reaching your local lkgpt-service that's running. So you'll have to manually call an API to spawn KITT, using room_name from the url slug when you enter a room in the Meet UI.

curl -XPOST http://localhost:3001/join/<room_name>

About

Talk to ChatGPT in real time using LiveKit

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Go 50.6%
  • TypeScript 47.1%
  • CSS 1.3%
  • Other 1.0%