Home
Softono
langchain-chat-with-documents

langchain-chat-with-documents

Open source MIT TypeScript
285
Stars
58
Forks
2
Issues
4
Watchers
3 years
Last Commit

About langchain-chat-with-documents

Chat with documents (pdf, docx, txt) using ChatGPT and Langchain

Platforms

Web Self-hosted

Languages

TypeScript

Links

Chat with documents using LLM

This is a Bellingcat hackathon submission

Team Members

Radu Ciocan - code

Ana State - design

Tool Description

A chat interface that allows users to upload PDF/DOCX documents and and chat with them using ChatGPT as the large language model.

https://user-images.githubusercontent.com/4984377/233852126-6828f7b6-cfc3-485c-a893-c2ce9e6b345f.mp4

Installation

  1. Make sure you ave installed Node v18 or later
  2. Download the tool's repository using the command:
git clone [email protected]:ciocan/langchain-chat-with-documents.git
  1. Move to the tool's directory and install the tool
cd langchain-chat-with-documents
npm install
  1. 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

  1. Start the tool
npm run dev

Tech Stack

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)

High Level Architecture

architecture