Skip to content

AI Models

lumen.ai.models

LineEdit = Annotated[InsertLine | ReplaceLine | DeleteLine, Field(discriminator='op')] module-attribute

DeleteLine

Bases: BaseModel

line_no = Field(ge=1, description='The 1-based line number to delete.') class-attribute instance-attribute

op = 'delete' class-attribute instance-attribute

EscapeBaseModel

Bases: PartialBaseModel

insufficient_context = Field(description='True if lacking context, else False. If True, leave other fields empty.') class-attribute instance-attribute

insufficient_context_reason = Field(description="If lacking sufficient context, explain why; else use ''. Do not base off the user query; only from the data context provided.", examples=['A timeseries is requested but SQL only provides customer and order data; please include a time dimension', 'The previous result is one aggregated value; try a different aggregation or more dimensions', '']) class-attribute instance-attribute

model_post_init(__context)

After model initialization, check if insufficient_context. If it is, raise a MissingContextError with the provided explanation to stop further processing.

InsertLine

Bases: BaseModel

line = Field(min_length=1, description='Content for the new line (must be non-empty).') class-attribute instance-attribute

line_no = Field(ge=1, description='Insert BEFORE this 1-based line number. Use line_no == len(lines) to append at the end.') class-attribute instance-attribute

op = 'insert' class-attribute instance-attribute

MissingContextError

Bases: Exception

Raise to indicate missing context for a query.

PartialBaseModel

Bases: BaseModel, PartialLiteralMixin

ReplaceLine

Bases: BaseModel

line = Field(description='The new content for the line (empty string is allowed).') class-attribute instance-attribute

line_no = Field(ge=1, description='The 1-based line number to replace.') class-attribute instance-attribute

op = 'replace' class-attribute instance-attribute

RetrySpec

Bases: BaseModel

Represents a revision of text with its content and changes.

chain_of_thought = Field(description='In a sentence or two, explain the plan to revise the text based on the feedback provided.') class-attribute instance-attribute

edits = Field(description='A list of line edits based on the chain_of_thought.') class-attribute instance-attribute

validate_indices_nonconflicting()

ThinkingYesNo

Bases: BaseModel

chain_of_thought = Field(description='Briefly explain your reasoning as to why you will be answering yes or no.') class-attribute instance-attribute

yes = Field(description='True if yes, otherwise False.') class-attribute instance-attribute

YesNo

Bases: BaseModel

yes = Field(description='True if yes, otherwise False.') class-attribute instance-attribute