Ever wanted to query your Obsidian notes using ChatGPT? Now you can! This Rust web service lets you do exactly that, by ingesting your Obsidian notes as embeddings into a Qdrant database and then using ChatGPT for prompting.
Usage assumes that your obsidian-git repo is in a private repo you own.
This service is primarily (currently) deployed through Shuttle. To deploy it, do the following:
- Run
cargo shuttle init --from joshua-mo-143/ballistaand follow the instructions - Copy
Secrets.toml.exampletoSecrets.tomland fill out the secrets. See the following below for an explanation:OPENAI_KEY: An OpenAI API key for which you have funds on.GITHUB_PERSONAL_ACCESS_TOKEN- A GitHub Personal Access Token. You need at the very leastrepo:readpermissions, since this is required to be able to download your obsidian-git repo if it's private.GITHUB_USERNAME- Your username (or alternatively - someone else's username, if you're using their obsidian-git repo).GITHUB_REPO- The repo you want to ingest. Note that only Markdown files are supported for now - Ballista will ignore anything else.QDRANT_URL- The URL of your Qdrant database. Note that the port needs to be 6334 asqdrant_clientutilises the gRPC URL. If you're just trying this out locally, you can leave it blank.QDRANT_API_KEY- Your Qdrant API key. You can leave this blank if you're just running this locally.
- Run
cargo shuttle deployand watch the magic happen! - Visit your deployment URL and try writing a prompt.
- Downloads your Markdown files from a GitHub repo and ingests it into ChatGPT embeddings, then stores it in Qdrant.
- Supports Github webhooks at
/webhooks/githubfor self-updating with no input required on your side. - Uses an internal queue for resilient updating. If your update fails, simply send the webhook again!
Yes, but I don't want to pay exorbitant amounts just to be able to query my extremely small knowledge base. If you're interested in using this, I don't think you do either.