This is a Bellingcat hackathon submission
Radu Ciocan - code
Ana State - design
A chat interface that allows users to upload PDF/DOCX documents and and chat with them using ChatGPT as the large language model.
demo.mp4
- Make sure you ave installed Node v18 or later
- Download the tool's repository using the command:
git clone git@github.com:ciocan/langchain-chat-with-documents.git
- Move to the tool's directory and install the tool
cd langchain-chat-with-documents
npm install
- Copy the .env.example into .env file and add the following variables:
WEAVIATE_HOST= # do not use https:// just the domain like bellingcat-xxx.weaviate.network
WEAVIATE_API_KEY=
# cloudflare r2
CLOUDFLARE_ACCOUNT_ID=
CLOUDFLARE_SECRET_KEY=
CLOUDFLARE_SECRET_ACCESS_KEY=
# open ai key
OPENAI_API_KEY=
Weaviate is an open source vector database where the documents are vectorized and indexed. You can install it locally or use their free cloud.
Cloudflare R2 is a object storage solution compatible with AWS S3. They have a free tier of 10gb. More info
Signup for an OpenAI API key here
- Start the tool
npm run dev
This is a T3 Stack project bootstrapped with create-t3-app
.
Additional libraries:
- Zustand - Used for state management
- Mantine UI - Used for awesome UI components
- LangChain - Used for interacting with the LLM model (OpenAI)