Skip to content

lukejmann/yerba

Repository files navigation

Yerba

A work in progress playground for connecting LLMs with data.

Concept · Architecture · Progress · Running locally


About

I've found that too much of the time I'm spending around LLMs involves copying external information, most often local data, into the prompt's context window. The project is designed to be an extensible system for bridging that gap.

Concepts

Space: A directory owned by a user. Contains user uploaded files alongside hidden files for executing tasks.

Task: Operations that can be performed on a space. Tasks are executed by the node that owns the space. Can be dispatched by users or other tasks.

Architecture

Progress

  • Spaces management
  • User authentication
  • File uploads and tracking
  • Task dispatching and execution system
  • File management tasks
  • CI/CD pipeline
  • Vector database tasks
    • Create database for space
    • Injesting files
    • Retrieving files
    • Request query
  • Chat interface
  • Connect external auth providers
  • Node to node communication (locks on spaces)

Running locally

pnpm i
pnpm gen
pnpm dev

Be sure to set the following environment variables: SPACES_DIR: The directory where spaces will be stored. DB_ADDR: The address of the database to connect to. OPENAI_API_KEY: Your OpenAI API key.