rag.types

Define shared data classes used across the RAG subsystem.

Define shared data classes used across the RAG subsystem.

class SearchHit(content, score, source='', metadata=<factory>, parent_content=None, id='')[source]

Bases: object

Single search result from a RAG query.

Parameters:
content

Matched chunk text.

Type:

str

score

Relevance score (higher is better).

Type:

float

source

Source document identifier.

Type:

str

metadata

Additional metadata from indexing.

Type:

dict[str, Any]

parent_content

Parent chunk text for hierarchical context.

Type:

str | None

id

Unique chunk identifier.

Type:

str

content: str
score: float
source: str = ''
metadata: dict[str, Any]
parent_content: str | None = None
id: str = ''
class GenerationResult(text, usage=None, cost_usd=0.0, duration_ms=None)[source]

Bases: object

Result of a RAG generation call.

Return this from generate_fn to preserve token usage, cost, and timing metadata. Returning a plain string silently discards these metrics and emits a warning.

Parameters:
text

Generated answer text.

Type:

str

usage

Provider-specific token usage object (e.g. TokenUsage).

Type:

Any | None

cost_usd

Estimated cost in USD.

Type:

float

duration_ms

Wall-clock generation duration in milliseconds.

Type:

float | None

text: str
usage: Any | None = None
cost_usd: float = 0.0
duration_ms: float | None = None
class QueryResult(answer, hits, sources, prompt, usage=None, cost_usd=0.0, duration_ms=None)[source]

Bases: object

Result of a RAG query combining search and generation.

Parameters:
answer

Generated answer text.

Type:

str

hits

Search hits used as context.

Type:

list[ffai.rag.types.SearchHit]

sources

Deduplicated source identifiers.

Type:

list[str]

prompt

Full prompt sent to the generation function.

Type:

str

usage

Provider-specific token usage object.

Type:

Any | None

cost_usd

Estimated generation cost in USD.

Type:

float

duration_ms

Generation duration in milliseconds.

Type:

float | None

answer: str
hits: list[SearchHit]
sources: list[str]
prompt: str
usage: Any | None = None
cost_usd: float = 0.0
duration_ms: float | None = None

Classes

class GenerationResult(text, usage=None, cost_usd=0.0, duration_ms=None)[source]

Bases: object

Result of a RAG generation call.

Return this from generate_fn to preserve token usage, cost, and timing metadata. Returning a plain string silently discards these metrics and emits a warning.

Parameters:
text

Generated answer text.

Type:

str

usage

Provider-specific token usage object (e.g. TokenUsage).

Type:

Any | None

cost_usd

Estimated cost in USD.

Type:

float

duration_ms

Wall-clock generation duration in milliseconds.

Type:

float | None

text: str
usage: Any | None = None
cost_usd: float = 0.0
duration_ms: float | None = None
class QueryResult(answer, hits, sources, prompt, usage=None, cost_usd=0.0, duration_ms=None)[source]

Bases: object

Result of a RAG query combining search and generation.

Parameters:
answer

Generated answer text.

Type:

str

hits

Search hits used as context.

Type:

list[ffai.rag.types.SearchHit]

sources

Deduplicated source identifiers.

Type:

list[str]

prompt

Full prompt sent to the generation function.

Type:

str

usage

Provider-specific token usage object.

Type:

Any | None

cost_usd

Estimated generation cost in USD.

Type:

float

duration_ms

Generation duration in milliseconds.

Type:

float | None

answer: str
hits: list[SearchHit]
sources: list[str]
prompt: str
usage: Any | None = None
cost_usd: float = 0.0
duration_ms: float | None = None
class SearchHit(content, score, source='', metadata=<factory>, parent_content=None, id='')[source]

Bases: object

Single search result from a RAG query.

Parameters:
content

Matched chunk text.

Type:

str

score

Relevance score (higher is better).

Type:

float

source

Source document identifier.

Type:

str

metadata

Additional metadata from indexing.

Type:

dict[str, Any]

parent_content

Parent chunk text for hierarchical context.

Type:

str | None

id

Unique chunk identifier.

Type:

str

content: str
score: float
source: str = ''
metadata: dict[str, Any]
parent_content: str | None = None
id: str = ''