Skip to main content

Google (Gemini) provider for Metorial

Project description

metorial-google

Google (Gemini) provider integration for Metorial - enables using Metorial tools with Google's Gemini models through function calling.

Installation

pip install metorial-google
# or
uv add metorial-google
# or
poetry add metorial-google

Features

  • 🤖 Gemini Integration: Full support for Gemini Pro, Gemini Flash, and other Google AI models
  • 🛠️ Function Calling: Native Google function calling support
  • 📡 Session Management: Automatic tool lifecycle handling
  • 🔄 Format Conversion: Converts Metorial tools to Google function declaration format
  • Async Support: Full async/await support

Usage

Basic Usage

import asyncio
import google.generativeai as genai
from metorial import Metorial
from metorial_google import MetorialGoogleSession

async def main():
    # Initialize clients
    metorial = Metorial(api_key="your-metorial-api-key")
    genai.configure(api_key="your-google-api-key")
    
    # Create session with your server deployments
    async with metorial.session(["your-server-deployment-id"]) as session:
        # Create Google-specific wrapper
        google_session = MetorialGoogleSession(session.tool_manager)
        
        model = genai.GenerativeModel(
            model_name="gemini-pro",
            tools=google_session.tools
        )
        
        response = model.generate_content("What can you help me with?")
        
        # Handle function calls if present
        if response.candidates[0].content.parts:
            function_calls = [
                part.function_call for part in response.candidates[0].content.parts
                if hasattr(part, 'function_call') and part.function_call
            ]
            
            if function_calls:
                tool_response = await google_session.call_tools(function_calls)
                # Continue conversation with tool_response

asyncio.run(main())

Using Convenience Functions

from metorial_google import build_google_tools, call_google_tools

async def example_with_functions():
    # Get tools in Google format
    tools = build_google_tools(tool_manager)
    
    # Call tools from Google response
    response = await call_google_tools(tool_manager, function_calls)

API Reference

MetorialGoogleSession

Main session class for Google integration.

session = MetorialGoogleSession(tool_manager)

Properties:

  • tools: List of tools in Google function declaration format

Methods:

  • async call_tools(function_calls): Execute function calls and return user content

build_google_tools(tool_mgr)

Build Google-compatible tool definitions.

Returns: List of tool definitions in Google format

call_google_tools(tool_mgr, function_calls)

Execute function calls from Google response.

Returns: User content with function responses

Tool Format

Tools are converted to Google's function declaration format:

[{
    "function_declarations": [
        {
            "name": "tool_name",
            "description": "Tool description",
            "parameters": {
                "type": "object",
                "properties": {...},
                "required": [...]
            }
        }
    ]
}]

Error Handling

try:
    response = await google_session.call_tools(function_calls)
except Exception as e:
    print(f"Tool execution failed: {e}")

Tool errors are returned as error objects in the response format.

Dependencies

  • google-generativeai>=0.3.0
  • metorial-mcp-session>=1.0.0
  • typing-extensions>=4.0.0

License

MIT License - see LICENSE file for details.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

metorial_google-1.0.0rc1.tar.gz (5.8 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

metorial_google-1.0.0rc1-py3-none-any.whl (4.8 kB view details)

Uploaded Python 3

File details

Details for the file metorial_google-1.0.0rc1.tar.gz.

File metadata

  • Download URL: metorial_google-1.0.0rc1.tar.gz
  • Upload date:
  • Size: 5.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.12.9

File hashes

Hashes for metorial_google-1.0.0rc1.tar.gz
Algorithm Hash digest
SHA256 498de59944d7f4039697703f4827b90b01aa2f1bae780602da4c10f683dc69a6
MD5 79f67aaeb739eaa6e517c0274205602d
BLAKE2b-256 3093988ac5845b887fc39fe6e9728af42a709e90d88bcbce18a875a4234b04a5

See more details on using hashes here.

Provenance

The following attestation bundles were made for metorial_google-1.0.0rc1.tar.gz:

Publisher: release.yml on metorial/metorial-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file metorial_google-1.0.0rc1-py3-none-any.whl.

File metadata

File hashes

Hashes for metorial_google-1.0.0rc1-py3-none-any.whl
Algorithm Hash digest
SHA256 9e791bf452e528f5839552b9fdf96d25fcbe49f4b1aac510343d4fc427ffac67
MD5 89b1c35790d82e584ef8012a35351dd8
BLAKE2b-256 e5415e016689ba079bd42e6ca98efe89973407f065f5a289c2bd101367505c08

See more details on using hashes here.

Provenance

The following attestation bundles were made for metorial_google-1.0.0rc1-py3-none-any.whl:

Publisher: release.yml on metorial/metorial-python

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page