> ## Documentation Index
> Fetch the complete documentation index at: https://ikun.mintlify.site/llms.txt
> Use this file to discover all available pages before exploring further.

# Gemini

`GeminiTools` 是一组工具，允许 Agent 与 Google AI API 服务进行交互以生成图像和视频。

## 前提条件

在使用 `GeminiTools` 之前，请确保已安装 `google-genai` 库并已配置凭据。

1. **安装库：**
   ```bash theme={null}
   pip install google-genai agno
   ```

2. **设置凭据：**
   * 对于 Gemini API：
     ```bash theme={null}
     export GOOGLE_API_KEY="your-google-genai-api-key"
     ```
   * 对于 Vertex AI：
     ```bash theme={null}
     export GOOGLE_CLOUD_PROJECT="your-google-cloud-project-id"
     export GOOGLE_CLOUD_LOCATION="your-google-cloud-location"
     export GOOGLE_GENAI_USE_VERTEXAI=true
     ```

## 初始化

导入 `GeminiTools` 并将其添加到 Agent 的工具列表中。

```python theme={null}
from agno.agent import Agent
from agno.tools.models.gemini import GeminiTools

agent = Agent(
    tools=[GeminiTools()],
    show_tool_calls=True,
)
```

## 使用示例

`GeminiTools` 可用于多种任务。以下是一些示例：

### 图像生成

```python image_generation_agent.py theme={null}
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.models.gemini import GeminiTools
from agno.utils.media import save_base64_data

agent = Agent(
    model=OpenAIChat(id="gpt-4o"),
    tools=[GeminiTools()],
    show_tool_calls=True,
)

agent.print_response(
    "Create an artistic portrait of a cyberpunk samurai in a rainy city",
)
response = agent.run_response
if response.images:
    save_base64_data(response.images[0].content, "tmp/cyberpunk_samurai.png")
```

### 视频生成

<Note>
  视频生成需要 Vertex AI。
</Note>

```python video_generation_agent.py theme={null}
from agno.agent import Agent
from agno.models.openai import OpenAIChat
from agno.tools.models.gemini import GeminiTools
from agno.utils.media import save_base64_data

agent = Agent(
    model=OpenAIChat(id="gpt-4o"),
    tools=[GeminiTools(vertexai=True)],
    show_tool_calls=True,
    debug_mode=True,
)

agent.print_response(
    "Generate a 5-second video of a kitten playing a piano",
)
response = agent.run_response
if response.videos:
    for video in response.videos:
        save_base64_data(video.content, f"tmp/kitten_piano_{video.id}.mp4")
```

## 工具包函数

| Function         | Description |
| ---------------- | ----------- |
| `generate_image` | 根据文本提示生成图像  |
| `generate_video` | 根据文本提示生成视频  |

## 开发者资源

* 查看 [Toolkit](https://github.com/agno-agi/agno/blob/main/libs/agno/agno/tools/models/gemini.py)
* 查看 [图像生成指南](https://ai.google.dev/gemini-api/docs/image-generation)
* 查看 [视频生成指南](https://ai.google.dev/gemini-api/docs/video)
