Class FunctionDeclaration (1.92.0)

FunctionDeclaration(
 *,
 name: str,
 parameters: typing.Dict[str, typing.Any],
 description: typing.Optional[str] = None,
 response: typing.Optional[typing.Dict[str, typing.Any]] = None
)

A representation of a function declaration.

Usage: Create function declaration and tool:

```
get_current_weather_func = generative_models.FunctionDeclaration(
 name="get_current_weather",
 description="Get the current weather in a given location",
 parameters={
 "type": "object",
 "properties": {
 "location": {
 "type": "string",
 "description": "The city and state, e.g. San Francisco, CA"
 },
 "unit": {
 "type": "string",
 "enum": [
 "celsius",
 "fahrenheit",
 ]
 }
 },
 "required": [
 "location"
 ]
 },
 # Optional:
 response={
 "type": "object",
 "properties": {
 "weather": {
 "type": "string",
 "description": "The weather in the city"
 },
 },
 },
)
weather_tool = generative_models.Tool(
 function_declarations=[get_current_weather_func],
)
```
Use tool in `GenerativeModel.generate_content`:
```
model = GenerativeModel("gemini-pro")
print(model.generate_content(
 "What is the weather like in Boston?",
 # You can specify tools when creating a model to avoid having to send them with every request.
 tools=[weather_tool],
))
```
Use tool in chat:
```
model = GenerativeModel(
 "gemini-pro",
 # You can specify tools when creating a model to avoid having to send them with every request.
 tools=[weather_tool],
)
chat = model.start_chat()
print(chat.send_message("What is the weather like in Boston?"))
print(chat.send_message(
 Part.from_function_response(
 name="get_current_weather",
 response={
 "content": {"weather_there": "super nice"},
 }
 ),
))
```

Methods

FunctionDeclaration

FunctionDeclaration(
 *,
 name: str,
 parameters: typing.Dict[str, typing.Any],
 description: typing.Optional[str] = None,
 response: typing.Optional[typing.Dict[str, typing.Any]] = None
)

Constructs a FunctionDeclaration.

Except as otherwise noted, the content of this page is licensed under the Creative Commons Attribution 4.0 License, and code samples are licensed under the Apache 2.0 License. For details, see the Google Developers Site Policies. Java is a registered trademark of Oracle and/or its affiliates.

Last updated 2025年10月30日 UTC.