I created this project with the intended purpose of having a personalized chatbot assistant that I can have a conversation with.
This project is a chatbot that allows users to interact with it using their voice recordings and receive an audio response. The server handles the interaction by leveraging OpenAI's Whisper-1 model and Chat Completions API. The voice comes from Elevenlabs API, which has many other options for voices.
- Record audio of your voice
- Recieve audio response from server
- Replay chat recordings
- Store recent chat history
- Clear entire chat history
These are the core technologies. You can view the rest in package.json / requirements.txt / requirements-dev.txt
- Typescript
- ReactJS / Vite
- React-media-recorder
- FastAPI
- OpenAI
- Uvicorn
Change directory to backend
cd serverpython3 -m venv venvsource venv/bin/activatesource venv/Scripts/activatepip3 install -r requirements.txtCreate a .env file at the root of the server directory. Replace "your_own_key" with your own actual keys.
ELEVEN_LABS_API_KEY=your_own_key
ELEVEN_LABS_VOICE_ID=your_own_key
OPENAI_API_KEY=your_own_key
OPENAI_ORG_ID=your_own_keyuvicorn main:appTo have server reset after each update, run this instead:
uvicorn main:app --reloadChange directory to the frontend.
cd ..
cd clientnpm installApplication should be running on http://localhost:5173
npm run devSee package.json for other available scripts.