Skip to content

Viibrant/litgraph

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

79 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

Litgraph

๐Ÿšง Under construction

Graph-augmented semantic search for academic literature

Litgraph screenshot
Current frontend with mock data: semantic results + graph view

Features

  • ๐Ÿ“„ Fetch papers from ArXiv API
  • ๐Ÿง  Queue papers for embedding (deferred, async)
  • ๐Ÿงฎ Track paper ingestion state in SQLite index
  • ๐Ÿ“ฆ Index embeddings into Qdrant
  • ๐Ÿ” Search Qdrant with fastembed support
  • ๐Ÿงฉ Merge vector + (planned) graph hits
  • โœ… Type-safe, testable, modular pipeline
  • โš™๏ธ Health checks, typed interfaces, and task runner setup

Usage

Requirements

  • Python 3.12+
  • Node.js 20+
  • Docker + Docker Compose

Local dev (CPU by default)

make up-full        # Run full stack with CPU
make up-full USE_GPU=1  # Run with GPU (requires NVIDIA runtime)

Services:

Direct tasks (no Docker)

poe server     # Run the FastAPI backend
poe pipeline   # Run the end-to-end pipeline (logs steps)
poe test       # Run the tests

Diagram

System architecture diagram
flowchart TD
    subgraph API
        A1[GET /search] --> P["run_pipeline()"]
    end

    subgraph Pipeline
        P --> F[Discover papers from ArXiv]
        F --> I[Update PaperIndex]
        I --> Q[Enqueue papers if not embedded]
        Q --> S[Semantic Search]
        S --> G[Get related from GraphStore]
        G --> M[Merge vector + graph results]
        M --> R[Return SearchResults]
    end

    subgraph Vector Store
        V1["Qdrant (hosted/local)"]
    end

    subgraph Embedding Worker
        W1["Reads Redis queue"]
        W1 --> E[Embed papers]
        E --> V[Upsert to Qdrant]
        V --> U[Update PaperIndex status]
    end

    subgraph Graph Store
        G1["(Planned) Neo4j / in-memory graph"]
    end

    S -->|vector hits| V1
    G -->|edges| G1
    G1 -->|related| G
Loading

Stack highlights:

  • Backend: FastAPI + Pydantic + Poetry (with poethepoet task runner)
  • Queue: Redis (Upstash or local)
  • Vector DB: Qdrant
  • Frontend: React + Vite + Tailwind
  • Infra: Docker Compose + Fly.io

Acknowledgements

Thank you to arXiv for use of its open access interoperability.

License

MIT

About

๐Ÿง‘โ€๐Ÿ”ฌ๐Ÿ” Graph-augmented semantic search for academic literature

Resources

License

Stars

Watchers

Forks