papi-ai/google

Google Gemini provider for PapiAI

Maintainers

Package info

github.com/papi-ai/google

pkg:composer/papi-ai/google

Transparency log

Statistics

Installs: 2 492

Dependents: 0

Suggesters: 0

Stars: 0

Open Issues: 0

v0.15.6 2026-07-31 18:03 UTC

README

CI Latest Version Total Downloads PHP Version License

Google Gemini provider for PapiAI - A simple but powerful PHP library for building AI agents.

Installation

composer require papi-ai/google

Usage

use PapiAI\Core\Agent;
use PapiAI\Google\GoogleProvider;

$provider = new GoogleProvider(
    apiKey: $_ENV['GOOGLE_API_KEY'],
    defaultModel: GoogleProvider::MODEL_3_6_FLASH,
);

$agent = new Agent(
    provider: $provider,
    model: GoogleProvider::MODEL_3_6_FLASH,
    instructions: 'You are a helpful assistant.',
);

$response = $agent->run('Hello!');
echo $response->text;

Available Models

Gemini (text and chat)

GoogleProvider::MODEL_3_6_FLASH      // 'gemini-3.6-flash' (default)
GoogleProvider::MODEL_3_5_FLASH      // 'gemini-3.5-flash'
GoogleProvider::MODEL_3_5_FLASH_LITE // 'gemini-3.5-flash-lite'
GoogleProvider::MODEL_3_1_PRO        // 'gemini-3.1-pro-preview'
GoogleProvider::MODEL_3_FLASH        // 'gemini-3-flash-preview'
GoogleProvider::MODEL_2_5_PRO        // 'gemini-2.5-pro'
GoogleProvider::MODEL_2_5_FLASH      // 'gemini-2.5-flash'

Image generation and editing

GoogleProvider::MODEL_3_1_FLASH_IMAGE      // 'gemini-3.1-flash-image' (default)
GoogleProvider::MODEL_3_1_FLASH_LITE_IMAGE // 'gemini-3.1-flash-lite-image'
GoogleProvider::MODEL_3_PRO_IMAGE          // 'gemini-3-pro-image'
GoogleProvider::MODEL_2_5_FLASH_IMAGE      // 'gemini-2.5-flash-image'

The Imagen constants are still here but every one of them is @deprecated: the Imagen line shuts down on 17 August 2026, and its :predict endpoint has no successor. Use the Gemini image models above.

Video generation

GoogleProvider::MODEL_VEO_3_1      // 'veo-3.1-generate-preview' (default)
GoogleProvider::MODEL_VEO_3_1_LITE // 'veo-3.1-lite-generate-preview'

Features

  • Tool/function calling, including forced tool choice
  • Vision/multimodal support
  • Structured output (JSON mode)
  • Streaming support
  • Reasoning effort, mapped to Gemini's thinking levels and budgets
  • Image generation and editing
  • Video generation and text embeddings

Image Generation

use PapiAI\Google\GoogleProvider;

$provider = new GoogleProvider($_ENV['GOOGLE_API_KEY']);

$result = $provider->generateImage(
    prompt: 'A professional product photo of headphones on a white background',
    options: [
        'model' => GoogleProvider::MODEL_3_1_FLASH_IMAGE,
        'aspectRatio' => '1:1',  // 1:1, 16:9, 9:16, 4:3, 3:4, and more on 3.1 Flash Image
        'imageSize' => '2K',     // 1K, 2K or 4K ('0.5K' on 3.1 Flash Image)
    ]
);

$image = $result['images'][0];

// These models return JPEG by default, so take the extension from the response
// rather than assuming PNG.
$extension = str_replace('image/', '', $image['mimeType']);
file_put_contents("output.{$extension}", base64_decode($image['data']));

// Or save straight to disk, choosing your own path
$provider->generateImageToFile(
    prompt: 'A modern minimalist workspace',
    outputPath: '/path/to/image.jpg'
);

Leave aspectRatio and imageSize out and the model picks its own, rather than being forced into a square.

These models return one image per request. Asking for numberOfImages greater than one throws a ProviderException instead of quietly handing back a single image; call generateImage() once per image you need.

Image Editing

$result = $provider->editImage(
    imageUrl: 'https://example.com/photo.jpg',
    prompt: 'Make the sky dramatic and overcast',
);

file_put_contents('edited.jpg', base64_decode($result['images'][0]['data']));
echo $result['text']; // any commentary the model returned alongside the image

License

MIT