gemini.extractors¶
GeminiExtractor
¶
Bases: BaseExtractor[GeminiCall, GeminiTool, Any, T]
, Generic[T]
A class for extracting structured information using Google's Gemini Chat models.
Example:
from typing import Literal, Type
from pydantic import BaseModel
from mirascope.gemini import GeminiExtractor
class TaskDetails(BaseModel):
title: str
priority: Literal["low", "normal", "high"]
due_date: str
class TaskExtractor(GeminiExtractor[TaskDetails]):
extract_schema: Type[TaskDetails] = TaskDetails
prompt_template = """
USER: I need to extract task details.
MODEL: Sure, please provide the task description.
USER: {task}
"""
task: str
task_description = "Prepare the budget report by next Monday. It's a high priority task."
task = TaskExtractor(task=task_description).extract(retries=3)
assert isinstance(task, TaskDetails)
print(task)
#> title='Prepare the budget report' priority='high' due_date='next Monday'
Source code in mirascope/gemini/extractors.py
extract(retries=0, **kwargs)
¶
Extracts extract_schema
from the Gemini call response.
The extract_schema
is converted into a GeminiTool
, complete with a
description of the tool, all of the fields, and their types. This allows us to
take advantage of Gemini's tool/function calling functionality to extract
information from a prompt according to the context provided by the BaseModel
schema.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
retries |
Union[int, Retrying]
|
The maximum number of times to retry the query on validation error. |
0
|
**kwargs |
Any
|
Additional keyword arguments parameters to pass to the call. These
will override any existing arguments in |
{}
|
Returns:
Type | Description |
---|---|
T
|
The |
Raises:
Type | Description |
---|---|
AttributeError
|
if there is no tool in the call creation. |
ValidationError
|
if the schema cannot be instantiated from the completion. |
GeminiError
|
raises any Gemini errors. |
Source code in mirascope/gemini/extractors.py
extract_async(retries=0, **kwargs)
async
¶
Asynchronously extracts extract_schema
from the Gemini call response.
The extract_schema
is converted into a GeminiTool
, complete with a
description of the tool, all of the fields, and their types. This allows us to
take advantage of Gemini's tool/function calling functionality to extract
information from a prompt according to the context provided by the BaseModel
schema.
Parameters:
Name | Type | Description | Default |
---|---|---|---|
retries |
Union[int, AsyncRetrying]
|
The maximum number of times to retry the query on validation error. |
0
|
**kwargs |
Any
|
Additional keyword arguments parameters to pass to the call. These
will override any existing arguments in |
{}
|
Returns:
Type | Description |
---|---|
T
|
The |
Raises:
Type | Description |
---|---|
AttributeError
|
if there is no tool in the call creation. |
ValidationError
|
if the schema cannot be instantiated from the completion. |
GeminiError
|
raises any Gemini errors. |