extractor

package
v1.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Feb 17, 2026 License: MIT Imports: 8 Imported by: 0

Documentation

Index

Constants

This section is empty.

Variables

This section is empty.

Functions

This section is empty.

Types

type Backend

type Backend interface {
	// Name returns the unique identifier for this backend
	Name() string

	// Extract fetches and extracts content from a URL
	Extract(ctx context.Context, url string, format string) (*ExtractResult, error)

	// IsAvailable checks if the backend is properly configured
	IsAvailable() bool
}

Backend is the interface for content extraction backends

type ExtractResult

type ExtractResult struct {
	URL     string
	Title   string
	Content string // Extracted content (plain text or markdown depending on backend)
}

ExtractResult holds the output of a content extraction

type JinaBackend

type JinaBackend struct {
	APIKey  string // Optional - works without auth but with rate limits
	Timeout time.Duration
	BaseURL string // overridable for testing (default: https://r.jina.ai/)
	// contains filtered or unexported fields
}

JinaBackend extracts content using Jina Reader API (r.jina.ai)

func NewJinaBackend

func NewJinaBackend(apiKey string, timeout time.Duration) *JinaBackend

NewJinaBackend creates a new Jina Reader extraction backend

func (*JinaBackend) Extract

func (j *JinaBackend) Extract(ctx context.Context, url string, format string) (*ExtractResult, error)

Extract fetches and extracts content from a URL using Jina Reader

func (*JinaBackend) IsAvailable

func (j *JinaBackend) IsAvailable() bool

IsAvailable always returns true - Jina Reader works without an API key

func (*JinaBackend) Name

func (j *JinaBackend) Name() string

Name returns the backend identifier

type TavilyBackend

type TavilyBackend struct {
	APIKey       string
	ExtractDepth string // "basic" or "advanced"
	Timeout      time.Duration
	BaseURL      string // overridable for testing
	// contains filtered or unexported fields
}

TavilyBackend extracts content using Tavily Extract API

func NewTavilyBackend

func NewTavilyBackend(apiKey, extractDepth string, timeout time.Duration) *TavilyBackend

NewTavilyBackend creates a new Tavily extraction backend

func (*TavilyBackend) Extract

func (t *TavilyBackend) Extract(ctx context.Context, url string, format string) (*ExtractResult, error)

Extract fetches and extracts content from a URL using Tavily

func (*TavilyBackend) IsAvailable

func (t *TavilyBackend) IsAvailable() bool

IsAvailable checks if the Tavily API key is configured

func (*TavilyBackend) Name

func (t *TavilyBackend) Name() string

Name returns the backend identifier

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL