mirascope.core.gemini.stream¶
The GeminiStream
class for convenience around streaming LLM calls.
Usage Documentation
GeminiStream
¶
GeminiStream(
*,
stream: (
Generator[
tuple[
_BaseCallResponseChunkT, _BaseToolT | None
],
None,
None,
]
| AsyncGenerator[
tuple[
_BaseCallResponseChunkT, _BaseToolT | None
],
None,
]
),
metadata: Metadata,
tool_types: list[type[_BaseToolT]] | None,
call_response_type: type[_BaseCallResponseT],
model: str,
prompt_template: str | None,
fn_args: dict[str, Any],
dynamic_config: _BaseDynamicConfigT,
messages: list[_MessageParamT],
call_params: _BaseCallParamsT,
call_kwargs: BaseCallKwargs[_ToolSchemaT]
)
Bases: BaseStream[GeminiCallResponse, GeminiCallResponseChunk, ContentDict, ContentDict, ContentDict, ContentsType, GeminiTool, Tool, GeminiDynamicConfig, GeminiCallParams, FinishReason]
A class for convenience around streaming Gemini LLM calls.
Example:
from mirascope.core import prompt_template
from mirascope.core.gemini import gemini_call
@gemini_call("gemini-1.5-flash", stream=True)
def recommend_book(genre: str) -> str:
return f"Recommend a {genre} book"
stream = recommend_book("fantasy") # returns `GeminiStream` instance
for chunk, _ in stream:
print(chunk.content, end="", flush=True)
Source code in mirascope/core/base/stream.py
construct_call_response
¶
construct_call_response() -> GeminiCallResponse
Constructs the call response from a consumed GeminiStream.
Raises:
Type | Description |
---|---|
ValueError
|
if the stream has not yet been consumed. |