Component
Invoker-based component templates used across Gen AI applications.
GenericLMComponent(lm_invoker)
Bases: LMComponent
A general-purpose LM component.
Examples:
Basic usage
component = GenericLMComponent.from_config(model_id="openai/gpt-5.4-nano")
response = await component.run(query="What is the capital of France?")
With custom prompt templates
component = GenericLMComponent.from_config(
model_id="openai/gpt-5.4-nano",
system_template="Talk like a {role}.",
)
response = await component.run(query="What is the capital of France?", role="pirate")
Attributes:
| Name | Type | Description |
|---|---|---|
prompt_vars |
set[str]
|
Required prompt variables. |
default_system_template |
str
|
Default system template. |
default_user_template |
str
|
Default user template. |
invoke(query, history=None, extra_contents=None, hyperparameters=None, event_emitter=None, max_calls=1, **prompt_kwargs)
async
Invokes the language model.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
query
|
str
|
The query to be passed to the language model. |
required |
history
|
list[Message] | None
|
Conversation history to include in the prompt. Defaults to None. |
None
|
extra_contents
|
list[MessageContent] | None
|
Extra user contents for prompt formatting. Defaults to None. |
None
|
hyperparameters
|
dict[str, Any] | None
|
Hyperparameters passed to the language model invocation. Defaults to None. |
None
|
event_emitter
|
EventEmitter | None
|
Event emitter for streaming outputs. Defaults to None. |
None
|
max_calls
|
int
|
The max number of times the language model can be invoked. Defaults to 1. |
1
|
**prompt_kwargs
|
Any
|
Additional prompt variables. |
{}
|
Returns:
| Name | Type | Description |
|---|---|---|
LMOutput |
LMOutput
|
The output of the language model. |
LMComponent(lm_invoker)
Bases: Component
A template component for LM-based components used across Gen AI applications.
Examples:
Define an LM component class
class MyLMComponent(LMComponent):
prompt_vars = {"context", "query"}
default_system_template = "Answer the query based on the following context: {context}"
default_user_template = "{query}"
Init with LM invoker
component = MyLMComponent(lm_invoker=lm_invoker)
Init with LM configuration
component = MyLMComponent.from_config(
model_id="openai/gpt-5.4-nano",
config={"response_schema": ResponseSchema},
)
Attributes:
| Name | Type | Description |
|---|---|---|
prompt_vars |
set[str]
|
Required prompt variables. |
default_system_template |
str
|
Default system template. |
default_user_template |
str
|
Default user template. |
Initializes LMComponent with an LM invoker.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
lm_invoker
|
BaseLMInvoker
|
The language model invoker. |
required |
Raises:
| Type | Description |
|---|---|
ValueError
|
|
from_config(model_id, credentials=None, config=None, system_template=None, user_template=None, prompt_builder_kwargs=None, **kwargs)
classmethod
Builds an LM invoker from config and initializes the component.
Parameters:
| Name | Type | Description | Default |
|---|---|---|---|
model_id
|
str | ModelId
|
The model ID. |
required |
credentials
|
str | dict[str, Any] | None
|
Model credentials. Defaults to None. |
None
|
config
|
dict[str, Any] | None
|
Model configuration. Defaults to None. |
None
|
system_template
|
str | None
|
System template. Defaults to None. |
None
|
user_template
|
str | None
|
User template. Defaults to None. |
None
|
prompt_builder_kwargs
|
dict[str, Any] | None
|
Prompt builder kwargs. Defaults to None. |
None
|
**kwargs
|
Any
|
Additional constructor kwargs for subclasses. |
{}
|
Returns:
| Name | Type | Description |
|---|---|---|
Self |
Self
|
A new LMComponent instance. |