org.llm4s.extract
Members list
Type members
Classlikes
Service for extracting text content from documents.
Service for extracting text content from documents.
DocumentExtractor is source-agnostic - it works with raw bytes from any source (filesystem, S3, HTTP, database, etc.). This allows the same extraction logic to be used regardless of where the document is stored. extractFromPath is the one filesystem-aware entry point, provided because loading a local file is common enough that every caller would otherwise write the same three lines.
Supported formats:
- Plain text files (.txt, .md, .json, .xml, .csv, .html)
- PDF documents (.pdf)
- Word documents (.docx, .doc)
Usage:
val extractor = TikaDocumentExtractor
// Extract from bytes (common for S3, HTTP responses)
val result = extractor.extract(bytes, "report.pdf")
// Extract from stream (for large files)
val result = extractor.extractFromStream(inputStream, "report.pdf")
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
- Known subtypes
-
object TikaDocumentExtractor
Supported document formats for extraction.
Attributes
- Companion
- trait
- Supertypes
-
trait Sumtrait Mirrorclass Objecttrait Matchableclass Any
- Self type
-
DocumentFormat.type
Extracted document content with metadata.
Extracted document content with metadata.
Represents the result of extracting text from a document, including any metadata that could be extracted (title, author, etc.)
Value parameters
- format
-
The detected document format
- metadata
-
Document metadata (title, author, pageCount, etc.)
- text
-
The extracted text content
Attributes
- Supertypes
-
trait Serializabletrait Producttrait Equalsclass Objecttrait Matchableclass AnyShow all
Media-aware extraction: reads a file and returns it as text, an image, audio samples or video frames, discriminated by the MIME type Tika sniffs from its content.
Media-aware extraction: reads a file and returns it as text, an image, audio samples or video frames, discriminated by the MIME type Tika sniffs from its content.
Kept separate from DocumentExtractor on purpose. Document loading wants text and metadata from anything text-bearing; multimodal embedding wants the decoded media itself. The two share only the initial Tika sniff, and the audio and video cases overlap llm4s-speech and llm4s-image rather than RAG, so this may not stay here.
The sniff stays here because it needs Tika; the vocabulary it resolves to (org.llm4s.media.MediaCategory) lives in llm4s-media, so the modules that would consume audio and video branches can name the same categories without inheriting Tika.
Attributes
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
MediaExtractor.type
The DocumentExtractor implementation, backed by Apache Tika, PDFBox and POI.
The DocumentExtractor implementation, backed by Apache Tika, PDFBox and POI.
Supports:
- PDF documents via Apache PDFBox
- Word documents (.docx) via Apache POI
- Plain text files with UTF-8 encoding
- HTML, XML, JSON via Apache Tika
- Other formats via Tika fallback
This object is the single Tika/PDFBox/POI entry point in the library. It replaces both org.llm4s.extract.TikaDocumentExtractor and org.llm4s.llmconnect.extractors.UniversalExtractor, which were independent implementations of the same job.
Attributes
- Supertypes
- Self type