Yes, another chat-with-your-pdf
-like app. But it's open-source (and self-hostable)!
Probably we don't need another one, but this implementation is a mobile application instead of a web application. Also we use a local db (postgres
with pgvector
extension) instead of a vector store service.
Node.js LTS
Yarn
Docker
anddocker-compose
- (OPTIONAL) Expo EAS account and
eas-cli
(no needed if you have installedxCode
andAndroid Studio
)
npm install -g eas-cli
eas login
- Clone the repo
git clone git@github.com:jrafaaael/thing-assistant.git
cd thing-assistant/
- Create
.env
file and:
- Provide value for the required
COHERE_API_KEY
variable - Consider changing
DATABASE_PASSWORD
variable to something randomly generated - If you want to access the webapp in a remote device (e.g mobile browser), set
BACKEND_IP
equals to your machine ip
cp docker/.env.example docker/.env
- Install dependencies in host
make install
- From root dir, run containers
make dev
Important
The first time you run the containers, you must perform database migrations. To do so, start the containers (see previous step) and, in another terminal, run:
docker compose -f docker/docker-compose.yaml exec thing-assistant-backend npx prisma migrate deploy
- Install dependencies
cd mobile/
yarn install
- Create
.env.local
file and populate with correct values
cp .env.example .env.local
- Create a development build (if you already have xCode and Android Studio installed, you can use
--local
flag to build the project locally instead of Expo servers)
yarn mobile:build:dev:android # OR yarn mobile:build:dev:ios
- Start the mobile development server
yarn start
-
Chat history
-
Replies
-
Background uploads
-
Chat with multiple file extension
-
Chat with web pages
-
Multi-file rooms
-
OCR for pdf files
-
Chat with multiple llm on-the-fly