Skip to content

Repository files navigation

Roset Logo

Roset

The transformation engine for unstructured data.

WebsiteDocumentationConsole

NPM Version PyPI Version License


Upload any document — get back markdown, embeddings, metadata, and a searchable index. What takes 7 weeks of plumbing to build, Roset handles in 5 minutes.

Roset doesn't compete with extraction services (Reducto, Gemini, Whisper). It orchestrates them — managing queues, retries, normalization, variant tracking, and a unified output schema across all file types.

Quick Start

import { RosetClient } from "@roset/sdk";

const roset = new RosetClient({ apiKey: process.env.ROSET_API_KEY });

// Upload a file — Roset routes to the right extraction provider
const { file_id, upload_url } = await roset.files.upload({
  filename: "report.pdf",
  content_type: "application/pdf",
  size_bytes: 102400,
});

// PUT file bytes directly to the signed URL
await fetch(upload_url, { method: "PUT", body: fileBuffer });

// Retrieve structured variants
const { variants } = await roset.files.listVariants(file_id);
// → markdown, embeddings, metadata, searchable-index
from roset import RosetClient

client = RosetClient(api_key="rsk_...")

# Upload and process
result = client.files.upload(
    filename="report.pdf",
    content_type="application/pdf",
    size_bytes=102400,
)

# Get variants
variants = client.files.list_variants(result["file_id"])

Features

  • Unified Uploadroset.files.upload(file) handles PDFs, images, audio, DOCX, PPTX. One API for all file types.
  • 4 Variant Types — Every upload produces markdown (readable), embeddings (searchable), metadata (filterable), and a searchable index (queryable).
  • Multi-Provider Routing — Automatically routes to Reducto (documents), Gemini (images), Whisper (audio), OpenAI (embeddings).
  • Managed Keys by Default — Roset manages extraction provider keys (Reducto, OpenAI, Gemini, Whisper) so you can start processing immediately. Optionally bring your own keys (BYOK) in Settings.
  • Processing State Machineuploading → queued → processing → completed / failed with retries and dead-letter handling.
  • Search & Q&A — Full-text, vector, and hybrid search. RAG-powered Q&A with source citations.
  • Storage Connectors — Connect existing S3, GCS, Azure Blob, MinIO, Cloudflare R2, or Supabase Storage buckets.
  • Spaces — Optionally scope files to namespace labels for B2B SaaS isolation (defaults to "default").
  • Webhooks — Processing lifecycle events (file completed, variant ready, job failed).

SDKs

SDK Description
@roset/sdk TypeScript SDK for web, backend, and edge runtimes.
roset Python SDK for backend and automation.

CLI

roset upload ./report.pdf documents/report.pdf
roset search "payment terms" --mode hybrid
roset qa "What are the key findings?"

See cli/ for installation and full command reference.

Architecture

Roset is a transformation engine that sits between your storage and everything else:

  1. Upload — Files go in unstructured (PDF, image, audio, document).
  2. Transform — Roset routes to the right extraction provider (Reducto, Gemini, Whisper, OpenAI) and produces structured variants.
  3. Query — Downstream systems consume the structured outputs: markdown for LLMs, embeddings for RAG, metadata for filtering, searchable index for full-text search.

License

Apache 2.0 © Roset

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Used by

Contributors

Languages