Ask questions about the open-sourced Twitter algorithm.
The app is publicly hosted here: https://chat-twitter.vercel.app/. Instructions for hosting it yourself are below.
The app is a NextJS/Tailwind CSS frontend with a FastAPI backend. The frontend is hosted on Vercel and the backend is hosted on a small node on fly.io. The backend uses a Pinecone vector DB on the free tier. There is a Dockerfile provided.
Right now, I'm footing the OpenAI bill on the public instance. But I may require users to bring their own key in the future.
OPENAI_API_KEY=...
OPENAI_ORG_ID=... # organization id, found in Manage account > settings
PINECONE_API_KEY=...
git clone https://github.com/mtenenholtz/chat-twitter.git
cd chat-twitter
npm i
npm run dev
# in the backend/ directory
pip install -r requirements.txt
# in the backend/ directory
python create_vector_db.py
Set up a Pinecone index. Give it a vector dimension of 1536 and name it pinecone-index. You can change this in backend/main.py if you want.
Run the backend server
uvicorn main:app --reload
I will continue development on this project as demand exists. But, if I abandon it, here are some ideas:
chat_stream endpoint with a websocket implementation.18 commits
JavaScript
52.5%
Python
45.2%
Dockerfile
2.1%
Ask questions about the open-sourced Twitter algorithm.
The app is publicly hosted here: https://chat-twitter.vercel.app/. Instructions for hosting it yourself are below.
The app is a NextJS/Tailwind CSS frontend with a FastAPI backend. The frontend is hosted on Vercel and the backend is hosted on a small node on fly.io. The backend uses a Pinecone vector DB on the free tier. There is a Dockerfile provided.
Right now, I'm footing the OpenAI bill on the public instance. But I may require users to bring their own key in the future.
OPENAI_API_KEY=...
OPENAI_ORG_ID=... # organization id, found in Manage account > settings
PINECONE_API_KEY=...
git clone https://github.com/mtenenholtz/chat-twitter.git
cd chat-twitter
npm i
npm run dev
# in the backend/ directory
pip install -r requirements.txt
# in the backend/ directory
python create_vector_db.py
Set up a Pinecone index. Give it a vector dimension of 1536 and name it pinecone-index. You can change this in backend/main.py if you want.
Run the backend server
uvicorn main:app --reload
I will continue development on this project as demand exists. But, if I abandon it, here are some ideas:
chat_stream endpoint with a websocket implementation.18 commits
JavaScript
52.5%
Python
45.2%
Dockerfile
2.1%