Skip to main content
Pre-release

This release is a pre-release and may not be stable for production use.

Raggedy

Batteries-included, importable RAG core. pip install dynamanic-raggedy, then from raggedy import ... — drop it into any Python app.

Status

Pre-release (0.1.0a0). The library ships no mock providers — every LLM and embedder is a real adapter. Tests skip cleanly when no live LLM is reachable.

Phase 1 + intake + real providers shipped: in-memory store, deterministic embedder, semantic chunker, PII redaction (10 types, ephemeral map), cost tracking with daily limits, audit-run records, intake layer (files / directories / URLs / S3 → plain text / markdown / HTML / PDF / DOCX), and LLM adapters for Anthropic, OpenAI, Ollama, and LM Studio plus a GPU-aware local embedder (sentence-transformers, CUDA → MPS → CPU autodetect).

Quick start

from raggedy import Raggedy, RaggedyConfig, Document

rag = Raggedy(RaggedyConfig(
    llm="anthropic",                  # or "openai", "ollama", "lm_studio"
    llm_model="claude-haiku-4-5-20251001",
    embedding="sentence-transformers",
    embedding_model="sentence-transformers/all-MiniLM-L6-v2",
    device="auto",                    # CUDA → MPS → CPU
    store="memory",
    namespace="kb-handbook",
))

rag.ingest_sync([
    Document(id="hb-1", text="Refunds are processed within 5 business days."),
])

result = rag.query_sync("How long do refunds take?", top_k=4)
print(result.answer)
for s in result.sources:
    print(f"[Source {s.index}] {s.document_id} score={s.score:.3f}")
print(f"cost=${result.cost_usd:.6f} run_id={result.run_id}")

.env

Raggedy() calls python-dotenv once at construction and populates os.environ (without overriding existing vars). Drop your keys in a .env file at the project root:

ANTHROPIC_API_KEY=sk-ant-...
OPENAI_API_KEY=sk-...
OLLAMA_HOST=http://localhost:11434
LMSTUDIO_BASE_URL=http://localhost:1234/v1

See .env.example for the full list.

Intake

Raggedy.ingest_from(source) streams documents through extractors before indexing.

from raggedy.intake import DirectorySource, UrlSource

rag.ingest_from_sync(DirectorySource("./docs"), tags={"corpus": "handbook"})
rag.ingest_from_sync(UrlSource(["https://example.com/blog"]))

Install

The PyPI distribution name is dynamanic-raggedy (the short name raggedy is taken by an unrelated maintained project). The import path is still raggedy.

pip install dynamanic-raggedy                  # base: deterministic embedder, in-memory store, intake stdlib parsers
pip install "dynamanic-raggedy[anthropic]"     # Anthropic LLM
pip install "dynamanic-raggedy[openai]"        # OpenAI LLM + embeddings; also powers LM Studio (OpenAI-compatible)
pip install "dynamanic-raggedy[ollama]"        # no extra deps — ollama uses base httpx
pip install "dynamanic-raggedy[local]"         # sentence-transformers + torch (GPU-aware)
pip install "dynamanic-raggedy[pdf]"           # PDF extractor (pypdf)
pip install "dynamanic-raggedy[docx]"          # DOCX extractor (python-docx)
pip install "dynamanic-raggedy[s3]"            # S3 source (boto3)
pip install "dynamanic-raggedy[sqlitevec]"     # SQLite-vec store
pip install "dynamanic-raggedy[pgvector]"      # pgvector store
pip install "dynamanic-raggedy[qdrant]"        # Qdrant store
pip install "dynamanic-raggedy[chroma]"        # Chroma store
pip install "dynamanic-raggedy[weaviate]"      # Weaviate store
pip install "dynamanic-raggedy[all]"           # everything

License

MIT

Metadata

Release files for dynamanic-raggedy 0.3.0a0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for dynamanic-raggedy 0.3.0a0
File Size Uploaded Provenance
dynamanic_raggedy-0.3.0a0.tar.gz 231.5 kB Without provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for dynamanic-raggedy 0.3.0a0
File Interpreter ABI Platform
dynamanic_raggedy-0.3.0a0-py3-none-any.whl Python 3 none any Details

Total release size: 432.0 kB

Release files / dynamanic_raggedy-0.3.0a0.tar.gz

Download URL dynamanic_raggedy-0.3.0a0.tar.gz
Size 231.5 kB
Tags Source
SHA-256 checksum
How to use checksums
3721a129a347442d9f494b5d73862ad882aba759a4a694509653ee651377e666
BLAKE2b-256 checksum
How to use checksums
eaa2e0375ba3cbd76f49f9d58a70854bb22a271c8cf1f471b863eda7901d9209
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Release files / dynamanic_raggedy-0.3.0a0-py3-none-any.whl

Download URL dynamanic_raggedy-0.3.0a0-py3-none-any.whl
Size 200.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
742fa4a15bb42386942d465cb13302927b16c20a1e8a61cab466fae84c197b70
BLAKE2b-256 checksum
How to use checksums
ba527921d85324ef12658fc7b8dd187dfdfa951ced8fc9b366d70e2342d575a1
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.10

Security for dynamanic-raggedy 0.3.0a0

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

No provenance found

None of the files in this release were uploaded with provenance metadata.

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page