This sample demonstrates how to use the Agent Development Kit (ADK) with an LLM fronted by an Apigee proxy. It showcases the flexibility of the `ApigeeLlm` class in configuring the target LLM provider (Gemini or Vertex AI) and API version through the model string.
## Setup
Before running the sample, you need to configure your environment with the necessary credentials.
1.**Create a `.env` file:**
Copy the sample environment file to a new file named `.env` in the same directory.
```bash
cp .env-sample .env
```
2. **Set Environment Variables:**
Open the `.env` file and provide values for the following variables:
- `GOOGLE_API_KEY`: Your API key for the Google AI services (Gemini).
- `APIGEE_PROXY_URL`: The full URL of your Apigee proxy endpoint.
The `main.py` script will automatically load these variables when it runs.
## Run the Sample
Once your `.env` file is configured, you can run the sample with the following command:
```bash
python main.py
```
## Configuring the Apigee LLM
The `ApigeeLlm` class is configured using a special model string format in `agent.py`. This string determines which backend provider (Vertex AI or Gemini) and which API version to use.
### Model String Format
The supported format is:
`apigee/[<provider>/][<version>/]<model_id>`
- **`provider`** (optional): Can be `vertex_ai` or `gemini`.
- If specified, it forces the use of that provider.
- If omitted, the provider is determined by the `GOOGLE_GENAI_USE_VERTEXAI` environment variable. If this variable is set to `true` or `1`, Vertex AI is used; otherwise, `gemini` is used by default.
- **`version`** (optional): The API version to use (e.g., `v1`, `v1beta`).
- If omitted, the default version for the selected provider is used.
- **`model_id`** (required): The identifier for the model you want to use (e.g., `gemini-2.5-flash`).
### Configuration Examples
Here are some examples of how to configure the model string in `agent.py` to achieve different behaviors:
1. **Implicit Provider (determined by environment variable):**