Mirascope Frog Logo
Mirascope
DocsBlogPricingCloud
⌘K
Type to search
⌘Kto search
Escto close
mirascope
v1.25.7
1.3k
Join our
WelcomeLearnGuidesAPI Referencev1 (Legacy)
LLMOps
callscontentexceptionsformattingmcpmessagesmodelspromptsprovidersresponsestoolstypes
# calls ## <ApiType type="Class" slug="async-call" symbolName="AsyncCall" /> AsyncCall An async call that directly generates LLM responses without requiring a model argument. Created by decorating an async `MessageTemplate` with `llm.call`. The decorated async function becomes directly callable to generate responses asynchronously, with the `Model` bundled in. An `AsyncCall` is essentially: async `MessageTemplate` + tools + format + `Model`. It can be invoked directly: `await call(*args, **kwargs)` (no model argument needed). The model can be overridden at runtime using `with llm.model(...)` context manager. **Bases:** <TypeLink type={{"type_str": "BaseCall", "description": null, "kind": "simple", "symbol_name": "BaseCall", "doc_url": null}} />, <TypeLink type={{"type_str": "Generic[P, FormattableT]", "description": null, "kind": "generic", "base_type": {"type_str": "Generic", "description": null, "kind": "simple", "symbol_name": "Generic", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Generic"}, "parameters": [{"type_str": "P", "description": null, "kind": "simple", "symbol_name": "P", "doc_url": "/docs/api/llm/types#p"}, {"type_str": "FormattableT", "description": null, "kind": "simple", "symbol_name": "FormattableT", "doc_url": "/docs/api/llm/formatting#formattable-t"}], "doc_url": null}} /> <AttributesTable attributes={[ { "name": "prompt", "type_info": { "type_str": "AsyncPrompt[P, FormattableT]", "description": null, "kind": "generic", "base_type": { "type_str": "AsyncPrompt", "description": null, "kind": "simple", "symbol_name": "AsyncPrompt", "doc_url": null }, "parameters": [ { "type_str": "P", "description": null, "kind": "simple", "symbol_name": "P", "doc_url": null }, { "type_str": "FormattableT", "description": null, "kind": "simple", "symbol_name": "FormattableT", "doc_url": null } ], "doc_url": null }, "description": "The underlying AsyncPrompt instance that generates messages with tools and format." } ]} /> ## <ApiType type="Function" slug="mirascope-llm-calls-calls--async-call-call" symbolName="call" /> call Generates a response using the LLM asynchronously. <ParametersTable parameters={[ { "name": "self", "type_info": { "type_str": "Any", "description": null, "kind": "simple", "symbol_name": null, "doc_url": null } }, { "name": "args", "type_info": { "type_str": "P.args", "description": null, "kind": "simple", "symbol_name": "P.args", "doc_url": null }, "default": "()" }, { "name": "kwargs", "type_info": { "type_str": "P.kwargs", "description": null, "kind": "simple", "symbol_name": "P.kwargs", "doc_url": null }, "default": "{}" } ]} /> <ReturnTable returnType={{ "type_info": { "type_str": "AsyncResponse | AsyncResponse[FormattableT]", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union" }, "parameters": [ { "type_str": "AsyncResponse", "description": null, "kind": "simple", "symbol_name": "AsyncResponse", "doc_url": "/docs/api/llm/responses#async-response" }, { "type_str": "AsyncResponse[FormattableT]", "description": null, "kind": "generic", "base_type": { "type_str": "AsyncResponse", "description": null, "kind": "simple", "symbol_name": "AsyncResponse", "doc_url": "/docs/api/llm/responses#async-response" }, "parameters": [ { "type_str": "FormattableT", "description": null, "kind": "simple", "symbol_name": "FormattableT", "doc_url": "/docs/api/llm/formatting#formattable-t" } ], "doc_url": null } ], "doc_url": null } }} /> ## <ApiType type="Function" slug="mirascope-llm-calls-calls--async-call-stream" symbolName="stream" /> stream Generates a streaming response using the LLM asynchronously. <ParametersTable parameters={[ { "name": "self", "type_info": { "type_str": "Any", "description": null, "kind": "simple", "symbol_name": null, "doc_url": null } }, { "name": "args", "type_info": { "type_str": "P.args", "description": null, "kind": "simple", "symbol_name": "P.args", "doc_url": null }, "default": "()" }, { "name": "kwargs", "type_info": { "type_str": "P.kwargs", "description": null, "kind": "simple", "symbol_name": "P.kwargs", "doc_url": null }, "default": "{}" } ]} /> <ReturnTable returnType={{ "type_info": { "type_str": "AsyncStreamResponse[FormattableT] | AsyncStreamResponse", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union" }, "parameters": [ { "type_str": "AsyncStreamResponse[FormattableT]", "description": null, "kind": "generic", "base_type": { "type_str": "AsyncStreamResponse", "description": null, "kind": "simple", "symbol_name": "AsyncStreamResponse", "doc_url": "/docs/api/llm/responses#async-stream-response" }, "parameters": [ { "type_str": "FormattableT", "description": null, "kind": "simple", "symbol_name": "FormattableT", "doc_url": "/docs/api/llm/formatting#formattable-t" } ], "doc_url": null }, { "type_str": "AsyncStreamResponse", "description": null, "kind": "simple", "symbol_name": "AsyncStreamResponse", "doc_url": "/docs/api/llm/responses#async-stream-response" } ], "doc_url": null } }} /> ## <ApiType type="Class" slug="async-context-call" symbolName="AsyncContextCall" /> AsyncContextCall An async context-aware call that directly generates LLM responses without requiring a model argument. Created by decorating an async `ContextMessageTemplate` with `llm.call`. The decorated async function (with first parameter `'ctx'` of type `Context[DepsT]`) becomes directly callable to generate responses asynchronously with context dependencies, with the `Model` bundled in. An `AsyncContextCall` is essentially: async `ContextMessageTemplate` + tools + format + `Model`. It can be invoked directly: `await call(ctx, *args, **kwargs)` (no model argument needed). The model can be overridden at runtime using `with llm.model(...)` context manager. **Bases:** <TypeLink type={{"type_str": "BaseCall", "description": null, "kind": "simple", "symbol_name": "BaseCall", "doc_url": null}} />, <TypeLink type={{"type_str": "Generic[P, DepsT, FormattableT]", "description": null, "kind": "generic", "base_type": {"type_str": "Generic", "description": null, "kind": "simple", "symbol_name": "Generic", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Generic"}, "parameters": [{"type_str": "P", "description": null, "kind": "simple", "symbol_name": "P", "doc_url": "/docs/api/llm/types#p"}, {"type_str": "DepsT", "description": null, "kind": "simple", "symbol_name": "DepsT", "doc_url": null}, {"type_str": "FormattableT", "description": null, "kind": "simple", "symbol_name": "FormattableT", "doc_url": "/docs/api/llm/formatting#formattable-t"}], "doc_url": null}} /> <AttributesTable attributes={[ { "name": "prompt", "type_info": { "type_str": "AsyncContextPrompt[P, DepsT, FormattableT]", "description": null, "kind": "generic", "base_type": { "type_str": "AsyncContextPrompt", "description": null, "kind": "simple", "symbol_name": "AsyncContextPrompt", "doc_url": null }, "parameters": [ { "type_str": "P", "description": null, "kind": "simple", "symbol_name": "P", "doc_url": null }, { "type_str": "DepsT", "description": null, "kind": "simple", "symbol_name": "DepsT", "doc_url": null }, { "type_str": "FormattableT", "description": null, "kind": "simple", "symbol_name": "FormattableT", "doc_url": null } ], "doc_url": null }, "description": "The underlying AsyncContextPrompt instance that generates messages with tools and format." } ]} /> ## <ApiType type="Function" slug="mirascope-llm-calls-calls--async-context-call-call" symbolName="call" /> call Generates a response using the LLM asynchronously. <ParametersTable parameters={[ { "name": "self", "type_info": { "type_str": "Any", "description": null, "kind": "simple", "symbol_name": null, "doc_url": null } }, { "name": "ctx", "type_info": { "type_str": "Context[DepsT]", "description": null, "kind": "generic", "base_type": { "type_str": "Context", "description": null, "kind": "simple", "symbol_name": "Context", "doc_url": null }, "parameters": [ { "type_str": "DepsT", "description": null, "kind": "simple", "symbol_name": "DepsT", "doc_url": null } ], "doc_url": null } }, { "name": "args", "type_info": { "type_str": "P.args", "description": null, "kind": "simple", "symbol_name": "P.args", "doc_url": null }, "default": "()" }, { "name": "kwargs", "type_info": { "type_str": "P.kwargs", "description": null, "kind": "simple", "symbol_name": "P.kwargs", "doc_url": null }, "default": "{}" } ]} /> <ReturnTable returnType={{ "type_info": { "type_str": "AsyncContextResponse[DepsT, None] | AsyncContextResponse[DepsT, FormattableT]", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union" }, "parameters": [ { "type_str": "AsyncContextResponse[DepsT, None]", "description": null, "kind": "generic", "base_type": { "type_str": "AsyncContextResponse", "description": null, "kind": "simple", "symbol_name": "AsyncContextResponse", "doc_url": "/docs/api/llm/responses#async-context-response" }, "parameters": [ { "type_str": "DepsT", "description": null, "kind": "simple", "symbol_name": "DepsT", "doc_url": null }, { "type_str": "None", "description": null, "kind": "simple", "symbol_name": "None", "doc_url": "https://docs.python.org/3/library/constants.html#None" } ], "doc_url": null }, { "type_str": "AsyncContextResponse[DepsT, FormattableT]", "description": null, "kind": "generic", "base_type": { "type_str": "AsyncContextResponse", "description": null, "kind": "simple", "symbol_name": "AsyncContextResponse", "doc_url": "/docs/api/llm/responses#async-context-response" }, "parameters": [ { "type_str": "DepsT", "description": null, "kind": "simple", "symbol_name": "DepsT", "doc_url": null }, { "type_str": "FormattableT", "description": null, "kind": "simple", "symbol_name": "FormattableT", "doc_url": "/docs/api/llm/formatting#formattable-t" } ], "doc_url": null } ], "doc_url": null } }} /> ## <ApiType type="Function" slug="mirascope-llm-calls-calls--async-context-call-stream" symbolName="stream" /> stream Generates a streaming response using the LLM asynchronously. <ParametersTable parameters={[ { "name": "self", "type_info": { "type_str": "Any", "description": null, "kind": "simple", "symbol_name": null, "doc_url": null } }, { "name": "ctx", "type_info": { "type_str": "Context[DepsT]", "description": null, "kind": "generic", "base_type": { "type_str": "Context", "description": null, "kind": "simple", "symbol_name": "Context", "doc_url": null }, "parameters": [ { "type_str": "DepsT", "description": null, "kind": "simple", "symbol_name": "DepsT", "doc_url": null } ], "doc_url": null } }, { "name": "args", "type_info": { "type_str": "P.args", "description": null, "kind": "simple", "symbol_name": "P.args", "doc_url": null }, "default": "()" }, { "name": "kwargs", "type_info": { "type_str": "P.kwargs", "description": null, "kind": "simple", "symbol_name": "P.kwargs", "doc_url": null }, "default": "{}" } ]} /> <ReturnTable returnType={{ "type_info": { "type_str": "AsyncContextStreamResponse[DepsT, None] | AsyncContextStreamResponse[DepsT, FormattableT]", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union" }, "parameters": [ { "type_str": "AsyncContextStreamResponse[DepsT, None]", "description": null, "kind": "generic", "base_type": { "type_str": "AsyncContextStreamResponse", "description": null, "kind": "simple", "symbol_name": "AsyncContextStreamResponse", "doc_url": "/docs/api/llm/responses#async-context-stream-response" }, "parameters": [ { "type_str": "DepsT", "description": null, "kind": "simple", "symbol_name": "DepsT", "doc_url": null }, { "type_str": "None", "description": null, "kind": "simple", "symbol_name": "None", "doc_url": "https://docs.python.org/3/library/constants.html#None" } ], "doc_url": null }, { "type_str": "AsyncContextStreamResponse[DepsT, FormattableT]", "description": null, "kind": "generic", "base_type": { "type_str": "AsyncContextStreamResponse", "description": null, "kind": "simple", "symbol_name": "AsyncContextStreamResponse", "doc_url": "/docs/api/llm/responses#async-context-stream-response" }, "parameters": [ { "type_str": "DepsT", "description": null, "kind": "simple", "symbol_name": "DepsT", "doc_url": null }, { "type_str": "FormattableT", "description": null, "kind": "simple", "symbol_name": "FormattableT", "doc_url": "/docs/api/llm/formatting#formattable-t" } ], "doc_url": null } ], "doc_url": null } }} /> ## <ApiType type="Class" slug="call" symbolName="Call" /> Call A call that directly generates LLM responses without requiring a model argument. Created by decorating a `MessageTemplate` with `llm.call`. The decorated function becomes directly callable to generate responses, with the `Model` bundled in. A `Call` is essentially: `MessageTemplate` + tools + format + `Model`. It can be invoked directly: `call(*args, **kwargs)` (no model argument needed). The model can be overridden at runtime using `with llm.model(...)` context manager. **Bases:** <TypeLink type={{"type_str": "BaseCall", "description": null, "kind": "simple", "symbol_name": "BaseCall", "doc_url": null}} />, <TypeLink type={{"type_str": "Generic[P, FormattableT]", "description": null, "kind": "generic", "base_type": {"type_str": "Generic", "description": null, "kind": "simple", "symbol_name": "Generic", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Generic"}, "parameters": [{"type_str": "P", "description": null, "kind": "simple", "symbol_name": "P", "doc_url": "/docs/api/llm/types#p"}, {"type_str": "FormattableT", "description": null, "kind": "simple", "symbol_name": "FormattableT", "doc_url": "/docs/api/llm/formatting#formattable-t"}], "doc_url": null}} /> <AttributesTable attributes={[ { "name": "prompt", "type_info": { "type_str": "Prompt[P, FormattableT]", "description": null, "kind": "generic", "base_type": { "type_str": "Prompt", "description": null, "kind": "simple", "symbol_name": "Prompt", "doc_url": null }, "parameters": [ { "type_str": "P", "description": null, "kind": "simple", "symbol_name": "P", "doc_url": null }, { "type_str": "FormattableT", "description": null, "kind": "simple", "symbol_name": "FormattableT", "doc_url": null } ], "doc_url": null }, "description": "The underlying Prompt instance that generates messages with tools and format." } ]} /> ## <ApiType type="Function" slug="mirascope-llm-calls-calls--call-call" symbolName="call" /> call Generates a response using the LLM. <ParametersTable parameters={[ { "name": "self", "type_info": { "type_str": "Any", "description": null, "kind": "simple", "symbol_name": null, "doc_url": null } }, { "name": "args", "type_info": { "type_str": "P.args", "description": null, "kind": "simple", "symbol_name": "P.args", "doc_url": null }, "default": "()" }, { "name": "kwargs", "type_info": { "type_str": "P.kwargs", "description": null, "kind": "simple", "symbol_name": "P.kwargs", "doc_url": null }, "default": "{}" } ]} /> <ReturnTable returnType={{ "type_info": { "type_str": "Response | Response[FormattableT]", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union" }, "parameters": [ { "type_str": "Response", "description": null, "kind": "simple", "symbol_name": "Response", "doc_url": "/docs/api/llm/responses#response" }, { "type_str": "Response[FormattableT]", "description": null, "kind": "generic", "base_type": { "type_str": "Response", "description": null, "kind": "simple", "symbol_name": "Response", "doc_url": "/docs/api/llm/responses#response" }, "parameters": [ { "type_str": "FormattableT", "description": null, "kind": "simple", "symbol_name": "FormattableT", "doc_url": "/docs/api/llm/formatting#formattable-t" } ], "doc_url": null } ], "doc_url": null } }} /> ## <ApiType type="Function" slug="mirascope-llm-calls-calls--call-stream" symbolName="stream" /> stream Generates a streaming response using the LLM. <ParametersTable parameters={[ { "name": "self", "type_info": { "type_str": "Any", "description": null, "kind": "simple", "symbol_name": null, "doc_url": null } }, { "name": "args", "type_info": { "type_str": "P.args", "description": null, "kind": "simple", "symbol_name": "P.args", "doc_url": null }, "default": "()" }, { "name": "kwargs", "type_info": { "type_str": "P.kwargs", "description": null, "kind": "simple", "symbol_name": "P.kwargs", "doc_url": null }, "default": "{}" } ]} /> <ReturnTable returnType={{ "type_info": { "type_str": "StreamResponse | StreamResponse[FormattableT]", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union" }, "parameters": [ { "type_str": "StreamResponse", "description": null, "kind": "simple", "symbol_name": "StreamResponse", "doc_url": "/docs/api/llm/responses#stream-response" }, { "type_str": "StreamResponse[FormattableT]", "description": null, "kind": "generic", "base_type": { "type_str": "StreamResponse", "description": null, "kind": "simple", "symbol_name": "StreamResponse", "doc_url": "/docs/api/llm/responses#stream-response" }, "parameters": [ { "type_str": "FormattableT", "description": null, "kind": "simple", "symbol_name": "FormattableT", "doc_url": "/docs/api/llm/formatting#formattable-t" } ], "doc_url": null } ], "doc_url": null } }} /> ## <ApiType type="Class" slug="call-decorator" symbolName="CallDecorator" /> CallDecorator Decorator for converting a `MessageTemplate` into a `Call`. Takes a raw prompt function that returns message content and wraps it with tools, format, and a model to create a `Call` that can be invoked directly without needing to pass a model argument. The decorator automatically detects whether the function is async or context-aware and creates the appropriate `Call` variant (`Call`, `AsyncCall`, `ContextCall`, or `AsyncContextCall`). Conceptually: `CallDecorator` = `PromptDecorator` + `Model` Result: `Call` = `MessageTemplate` + tools + format + `Model` **Bases:** <TypeLink type={{"type_str": "Generic[ToolT, FormattableT]", "description": null, "kind": "generic", "base_type": {"type_str": "Generic", "description": null, "kind": "simple", "symbol_name": "Generic", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Generic"}, "parameters": [{"type_str": "ToolT", "description": null, "kind": "simple", "symbol_name": "ToolT", "doc_url": "/docs/api/llm/tools#tool-t"}, {"type_str": "FormattableT", "description": null, "kind": "simple", "symbol_name": "FormattableT", "doc_url": "/docs/api/llm/formatting#formattable-t"}], "doc_url": null}} /> <AttributesTable attributes={[ { "name": "model", "type_info": { "type_str": "Model", "description": null, "kind": "simple", "symbol_name": "Model", "doc_url": null }, "description": "The default model to use with this call. May be overridden." }, { "name": "tools", "type_info": { "type_str": "Sequence[ToolT] | None", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": null }, "parameters": [ { "type_str": "Sequence[ToolT]", "description": null, "kind": "generic", "base_type": { "type_str": "Sequence", "description": null, "kind": "simple", "symbol_name": "Sequence", "doc_url": null }, "parameters": [ { "type_str": "ToolT", "description": null, "kind": "simple", "symbol_name": "ToolT", "doc_url": null } ], "doc_url": null }, { "type_str": "None", "description": null, "kind": "simple", "symbol_name": "None", "doc_url": null } ], "doc_url": null }, "description": "The tools that are included in the prompt, if any." }, { "name": "format", "type_info": { "type_str": "type[FormattableT] | Format[FormattableT] | OutputParser[FormattableT] | None", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": null }, "parameters": [ { "type_str": "type[FormattableT]", "description": null, "kind": "generic", "base_type": { "type_str": "type", "description": null, "kind": "simple", "symbol_name": "type", "doc_url": null }, "parameters": [ { "type_str": "FormattableT", "description": null, "kind": "simple", "symbol_name": "FormattableT", "doc_url": null } ], "doc_url": null }, { "type_str": "Format[FormattableT]", "description": null, "kind": "generic", "base_type": { "type_str": "Format", "description": null, "kind": "simple", "symbol_name": "Format", "doc_url": null }, "parameters": [ { "type_str": "FormattableT", "description": null, "kind": "simple", "symbol_name": "FormattableT", "doc_url": null } ], "doc_url": null }, { "type_str": "OutputParser[FormattableT]", "description": null, "kind": "generic", "base_type": { "type_str": "OutputParser", "description": null, "kind": "simple", "symbol_name": "OutputParser", "doc_url": null }, "parameters": [ { "type_str": "FormattableT", "description": null, "kind": "simple", "symbol_name": "FormattableT", "doc_url": null } ], "doc_url": null }, { "type_str": "None", "description": null, "kind": "simple", "symbol_name": "None", "doc_url": null } ], "doc_url": null }, "description": "The structured output format off the prompt, if any." } ]} /> ## <ApiType type="Attribute" slug="call-t" symbolName="CallT" /> CallT **Type:** <TypeLink type={{"type_str": "TypeVar('CallT', bound='BaseCall')", "description": null, "kind": "simple", "symbol_name": null, "doc_url": null}} /> ## <ApiType type="Class" slug="context-call" symbolName="ContextCall" /> ContextCall A context-aware call that directly generates LLM responses without requiring a model argument. Created by decorating a `ContextMessageTemplate` with `llm.call`. The decorated function (with first parameter `'ctx'` of type `Context[DepsT]`) becomes directly callable to generate responses with context dependencies, with the `Model` bundled in. A `ContextCall` is essentially: `ContextMessageTemplate` + tools + format + `Model`. It can be invoked directly: `call(ctx, *args, **kwargs)` (no model argument needed). The model can be overridden at runtime using `with llm.model(...)` context manager. **Bases:** <TypeLink type={{"type_str": "BaseCall", "description": null, "kind": "simple", "symbol_name": "BaseCall", "doc_url": null}} />, <TypeLink type={{"type_str": "Generic[P, DepsT, FormattableT]", "description": null, "kind": "generic", "base_type": {"type_str": "Generic", "description": null, "kind": "simple", "symbol_name": "Generic", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Generic"}, "parameters": [{"type_str": "P", "description": null, "kind": "simple", "symbol_name": "P", "doc_url": "/docs/api/llm/types#p"}, {"type_str": "DepsT", "description": null, "kind": "simple", "symbol_name": "DepsT", "doc_url": null}, {"type_str": "FormattableT", "description": null, "kind": "simple", "symbol_name": "FormattableT", "doc_url": "/docs/api/llm/formatting#formattable-t"}], "doc_url": null}} /> <AttributesTable attributes={[ { "name": "prompt", "type_info": { "type_str": "ContextPrompt[P, DepsT, FormattableT]", "description": null, "kind": "generic", "base_type": { "type_str": "ContextPrompt", "description": null, "kind": "simple", "symbol_name": "ContextPrompt", "doc_url": null }, "parameters": [ { "type_str": "P", "description": null, "kind": "simple", "symbol_name": "P", "doc_url": null }, { "type_str": "DepsT", "description": null, "kind": "simple", "symbol_name": "DepsT", "doc_url": null }, { "type_str": "FormattableT", "description": null, "kind": "simple", "symbol_name": "FormattableT", "doc_url": null } ], "doc_url": null }, "description": "The underlying ContextPrompt instance that generates messages with tools and format." } ]} /> ## <ApiType type="Function" slug="mirascope-llm-calls-calls--context-call-call" symbolName="call" /> call Generates a response using the LLM. <ParametersTable parameters={[ { "name": "self", "type_info": { "type_str": "Any", "description": null, "kind": "simple", "symbol_name": null, "doc_url": null } }, { "name": "ctx", "type_info": { "type_str": "Context[DepsT]", "description": null, "kind": "generic", "base_type": { "type_str": "Context", "description": null, "kind": "simple", "symbol_name": "Context", "doc_url": null }, "parameters": [ { "type_str": "DepsT", "description": null, "kind": "simple", "symbol_name": "DepsT", "doc_url": null } ], "doc_url": null } }, { "name": "args", "type_info": { "type_str": "P.args", "description": null, "kind": "simple", "symbol_name": "P.args", "doc_url": null }, "default": "()" }, { "name": "kwargs", "type_info": { "type_str": "P.kwargs", "description": null, "kind": "simple", "symbol_name": "P.kwargs", "doc_url": null }, "default": "{}" } ]} /> <ReturnTable returnType={{ "type_info": { "type_str": "ContextResponse[DepsT, None] | ContextResponse[DepsT, FormattableT]", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union" }, "parameters": [ { "type_str": "ContextResponse[DepsT, None]", "description": null, "kind": "generic", "base_type": { "type_str": "ContextResponse", "description": null, "kind": "simple", "symbol_name": "ContextResponse", "doc_url": "/docs/api/llm/responses#context-response" }, "parameters": [ { "type_str": "DepsT", "description": null, "kind": "simple", "symbol_name": "DepsT", "doc_url": null }, { "type_str": "None", "description": null, "kind": "simple", "symbol_name": "None", "doc_url": "https://docs.python.org/3/library/constants.html#None" } ], "doc_url": null }, { "type_str": "ContextResponse[DepsT, FormattableT]", "description": null, "kind": "generic", "base_type": { "type_str": "ContextResponse", "description": null, "kind": "simple", "symbol_name": "ContextResponse", "doc_url": "/docs/api/llm/responses#context-response" }, "parameters": [ { "type_str": "DepsT", "description": null, "kind": "simple", "symbol_name": "DepsT", "doc_url": null }, { "type_str": "FormattableT", "description": null, "kind": "simple", "symbol_name": "FormattableT", "doc_url": "/docs/api/llm/formatting#formattable-t" } ], "doc_url": null } ], "doc_url": null } }} /> ## <ApiType type="Function" slug="mirascope-llm-calls-calls--context-call-stream" symbolName="stream" /> stream Generates a streaming response using the LLM. <ParametersTable parameters={[ { "name": "self", "type_info": { "type_str": "Any", "description": null, "kind": "simple", "symbol_name": null, "doc_url": null } }, { "name": "ctx", "type_info": { "type_str": "Context[DepsT]", "description": null, "kind": "generic", "base_type": { "type_str": "Context", "description": null, "kind": "simple", "symbol_name": "Context", "doc_url": null }, "parameters": [ { "type_str": "DepsT", "description": null, "kind": "simple", "symbol_name": "DepsT", "doc_url": null } ], "doc_url": null } }, { "name": "args", "type_info": { "type_str": "P.args", "description": null, "kind": "simple", "symbol_name": "P.args", "doc_url": null }, "default": "()" }, { "name": "kwargs", "type_info": { "type_str": "P.kwargs", "description": null, "kind": "simple", "symbol_name": "P.kwargs", "doc_url": null }, "default": "{}" } ]} /> <ReturnTable returnType={{ "type_info": { "type_str": "ContextStreamResponse[DepsT, None] | ContextStreamResponse[DepsT, FormattableT]", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union" }, "parameters": [ { "type_str": "ContextStreamResponse[DepsT, None]", "description": null, "kind": "generic", "base_type": { "type_str": "ContextStreamResponse", "description": null, "kind": "simple", "symbol_name": "ContextStreamResponse", "doc_url": "/docs/api/llm/responses#context-stream-response" }, "parameters": [ { "type_str": "DepsT", "description": null, "kind": "simple", "symbol_name": "DepsT", "doc_url": null }, { "type_str": "None", "description": null, "kind": "simple", "symbol_name": "None", "doc_url": "https://docs.python.org/3/library/constants.html#None" } ], "doc_url": null }, { "type_str": "ContextStreamResponse[DepsT, FormattableT]", "description": null, "kind": "generic", "base_type": { "type_str": "ContextStreamResponse", "description": null, "kind": "simple", "symbol_name": "ContextStreamResponse", "doc_url": "/docs/api/llm/responses#context-stream-response" }, "parameters": [ { "type_str": "DepsT", "description": null, "kind": "simple", "symbol_name": "DepsT", "doc_url": null }, { "type_str": "FormattableT", "description": null, "kind": "simple", "symbol_name": "FormattableT", "doc_url": "/docs/api/llm/formatting#formattable-t" } ], "doc_url": null } ], "doc_url": null } }} /> ## <ApiType type="Function" slug="call_fn" symbolName="call" /> call Decorates a `MessageTemplate` to create a `Call` that can be invoked directly. The `llm.call` decorator is the most convenient way to use Mirascope. It transforms a raw prompt function (that returns message content) into a `Call` object that bundles the function with tools, format, and a model. The resulting `Call` can be invoked directly to generate LLM responses without needing to pass a model argument. The decorator automatically detects the function type: - If the first parameter is named `'ctx'` with type `llm.Context[T]` (or a subclass thereof), creates a `ContextCall` - If the function is async, creates an `AsyncCall` or `AsyncContextCall` - Otherwise, creates a regular `Call` The model specified in the decorator can be overridden at runtime using the `llm.model()` context manager. When overridden, the context model completely replaces the decorated model, including all parameters. Conceptual flow: - `MessageTemplate`: raw function returning content - `@llm.prompt`: `MessageTemplate` → `Prompt` Includes tools and format, if applicable. Can be called by providing a `Model`. - `@llm.call`: `MessageTemplate` → `Call`. Includes a model, tools, and format. The model may be created on the fly from a model identifier and optional params, or provided outright. Example: Regular call: ```python from mirascope import llm @llm.call("openai/gpt-4") def recommend_book(genre: str): return f"Please recommend a book in {genre}." response: llm.Response = recommend_book("fantasy") print(response.pretty()) ``` Example: Context call: ```python from dataclasses import dataclass from mirascope import llm @dataclass class User: name: str age: int @llm.call("openai/gpt-4") def recommend_book(ctx: llm.Context[User], genre: str): return f"Recommend a {genre} book for {ctx.deps.name}, age {ctx.deps.age}." ctx = llm.Context(deps=User(name="Alice", age=15)) response = recommend_book(ctx, "fantasy") print(response.pretty()) ``` <ParametersTable parameters={[ { "name": "model", "type_info": { "type_str": "ModelId | Model", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union" }, "parameters": [ { "type_str": "ModelId", "description": null, "kind": "simple", "symbol_name": "ModelId", "doc_url": "/docs/api/llm/providers#model-id" }, { "type_str": "Model", "description": null, "kind": "simple", "symbol_name": "Model", "doc_url": "/docs/api/llm/models#model" } ], "doc_url": null }, "description": "A model ID string (e.g., \"openai/gpt-4\") or a `Model` instance" }, { "name": "tools", "type_info": { "type_str": "Sequence[ToolT] | None", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union" }, "parameters": [ { "type_str": "Sequence[ToolT]", "description": null, "kind": "generic", "base_type": { "type_str": "Sequence", "description": null, "kind": "simple", "symbol_name": "Sequence", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Sequence" }, "parameters": [ { "type_str": "ToolT", "description": null, "kind": "simple", "symbol_name": "ToolT", "doc_url": "/docs/api/llm/tools#tool-t" } ], "doc_url": null }, { "type_str": "None", "description": null, "kind": "simple", "symbol_name": "None", "doc_url": "https://docs.python.org/3/library/constants.html#None" } ], "doc_url": null }, "default": "None", "description": "Optional `Sequence` of tools to make available to the LLM" }, { "name": "format", "type_info": { "type_str": "type[FormattableT] | Format[FormattableT] | OutputParser[FormattableT] | None", "description": null, "kind": "union", "base_type": { "type_str": "Union", "description": null, "kind": "simple", "symbol_name": "Union", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Union" }, "parameters": [ { "type_str": "type[FormattableT]", "description": null, "kind": "generic", "base_type": { "type_str": "type", "description": null, "kind": "simple", "symbol_name": "type", "doc_url": "https://docs.python.org/3/library/functions.html#type" }, "parameters": [ { "type_str": "FormattableT", "description": null, "kind": "simple", "symbol_name": "FormattableT", "doc_url": "/docs/api/llm/formatting#formattable-t" } ], "doc_url": null }, { "type_str": "Format[FormattableT]", "description": null, "kind": "generic", "base_type": { "type_str": "Format", "description": null, "kind": "simple", "symbol_name": "Format", "doc_url": "/docs/api/llm/formatting#format" }, "parameters": [ { "type_str": "FormattableT", "description": null, "kind": "simple", "symbol_name": "FormattableT", "doc_url": "/docs/api/llm/formatting#formattable-t" } ], "doc_url": null }, { "type_str": "OutputParser[FormattableT]", "description": null, "kind": "generic", "base_type": { "type_str": "OutputParser", "description": null, "kind": "simple", "symbol_name": "OutputParser", "doc_url": "/docs/api/llm/formatting#output-parser" }, "parameters": [ { "type_str": "FormattableT", "description": null, "kind": "simple", "symbol_name": "FormattableT", "doc_url": "/docs/api/llm/formatting#formattable-t" } ], "doc_url": null }, { "type_str": "None", "description": null, "kind": "simple", "symbol_name": "None", "doc_url": "https://docs.python.org/3/library/constants.html#None" } ], "doc_url": null }, "default": "None", "description": "Optional response format class (`BaseModel`) or Format instance" }, { "name": "params", "type_info": { "type_str": "Unpack[Params]", "description": null, "kind": "generic", "base_type": { "type_str": "Unpack", "description": null, "kind": "simple", "symbol_name": "Unpack", "doc_url": "https://docs.python.org/3/library/typing.html#typing.Unpack" }, "parameters": [ { "type_str": "Params", "description": null, "kind": "simple", "symbol_name": "Params", "doc_url": "/docs/api/llm/models#params" } ], "doc_url": null }, "default": "{}" } ]} /> <ReturnTable returnType={{ "type_info": { "type_str": "CallDecorator[ToolT, FormattableT]", "description": null, "kind": "generic", "base_type": { "type_str": "CallDecorator", "description": null, "kind": "simple", "symbol_name": "CallDecorator", "doc_url": "/docs/api/llm/calls#call-decorator" }, "parameters": [ { "type_str": "ToolT", "description": null, "kind": "simple", "symbol_name": "ToolT", "doc_url": "/docs/api/llm/tools#tool-t" }, { "type_str": "FormattableT", "description": null, "kind": "simple", "symbol_name": "FormattableT", "doc_url": "/docs/api/llm/formatting#formattable-t" } ], "doc_url": null }, "description": "A `CallDecorator` that converts prompt functions into `Call` variants" }} />

On this page

On this page

© 2026 Mirascope. All rights reserved.

Mirascope® is a registered trademark of Mirascope, Inc. in the U.S.

Privacy PolicyTerms of Use