Giter Club home page Giter Club logo

ballista's Introduction

Ballista: Query Your Notes

Introduction

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

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/ballista and follow the instructions
  • Copy Secrets.toml.example to Secrets.toml and 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 least repo:read permissions, 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 as qdrant_client utilises 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 deploy and watch the magic happen!
  • Visit your deployment URL and try writing a prompt.

Features

  • Downloads your Markdown files from a GitHub repo and ingests it into ChatGPT embeddings, then stores it in Qdrant.
  • Supports Github webhooks at /webhooks/github for 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!

Isn't this just a ChatGPT wrapper?

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.

ballista's People

Contributors

joshua-mo-143 avatar dependabot[bot] avatar

Stargazers

Sigrid Jin (ง'̀-'́)ง oO avatar

Watchers

 avatar

Forkers

sigridjineth

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.