docs: readme

This commit is contained in:
Clelia (Astra) Bertelli
2025-11-24 15:08:17 +01:00
parent 6b92df8ad8
commit 732bed3d5d
4 changed files with 55 additions and 3 deletions
+2 -1
View File
@@ -11,4 +11,5 @@ wheels/
.env
# Caches
*cache/
*cache/
workflows.db
+49 -1
View File
@@ -1,3 +1,51 @@
# Study-Llama
LlamaAgents demo with LlamaClassify and LlamaExtract to categorize study notes, extract information from them and perform some basic retrieval (with metadata filtering) over the extracted info.
Study-Llama is a demo application for organizing, extracting, and searching study notes using LlamaAgents, LlamaClassify, and LlamaExtract. It features a Go-based web frontend and a Python backend for advanced note processing.
## Overview
- **Frontend (Go):**
Serves the web interface, handles user authentication, file uploads, and search requests. Renders pages using HTML templates and manages static assets.
- **Backend (Python):**
Provides APIs for classifying notes, extracting information, storing/retrieving data, and performing metadata-filtered vector searches. Handles database operations and vector search.
## How It Works
1. **User Interaction:**
Users access the web UI to sign in, create categories for their study notes, upload notes, and search among them.
2. **Frontend-to-Backend Communication:**
The Go server receives requests from the UI and communicates with the Python backend via HTTP API calls.
- For example, when a user uploads a note, the frontend sends the file and metadata to the backend for processing.
- Search queries are also forwarded to the python backend for vector search.
3. **Backend Processing:**
The Python backend (deployed on LlamaCloud as a LlamaAgent) handles:
- **Classification & Extraction:**
Uses workflows in `classify_and_extract/workflow.py` to classify notes (with LlamaClassify) and extract structured information (with LlamaExtract).
- **Database Operations:**
- **Files:**
Uploaded files and their metadata (name, category, owner) are stored.
- **Classification Rules:**
Custom rules for categorizing notes are stored and retrieved from the database.
- **Vector Search:**
Extracted summaries and FAQs are indexed for semantic search and retrieval.
## Features
- Upload and categorize study notes.
- Extract structured information from notes.
- Search notes with metadata filters.
- User authentication and access control.
- Modern web UI with Go templates.
## Project Structure
- **frontend/**
- `main.go`: Web server entry point.
- `handlers/`: HTTP request handlers.
- `auth/`, `files/`, `rules/`: Business logic and DB operations.
- `static/`: Images and assets.
- `templates/`: HTML templates.
- **src/**
- `study_llama/`: Python backend modules for classification, extraction, search, and database logic.
+4 -1
View File
@@ -33,4 +33,7 @@ build-fe: install-deps-fe
GOARCH=arm64 GOOS=darwin go build -o ${BIN}/${BIN_NAME}-darwin-arm64 ${MAIN_PKG}
clean-build-fe:
@rm -rf ${BIN}
@rm -rf ${BIN}
run-fe:
go run main.go
BIN
View File
Binary file not shown.