Google GenAI Provider for Composio SDK
Google GenAI Provider for Composio SDK.
- Google GenAI Integration: Seamless integration with Google's Generative AI models (Gemini)
- Function Calling Support: Convert Composio tools to Google GenAI function declarations
- Type Safety: Full TypeScript support with proper type definitions
- Execution Modifiers: Support for transforming tool inputs and outputs
- Flexible Authentication: Support for custom authentication parameters
- Streaming Support: First-class support for streaming responses
``bash`
npm install @composio/core @composio/google @google/genaior
yarn add @composio/core @composio/google @google/genaior
pnpm add @composio/core @composio/google @google/genai
Required environment variables:
- COMPOSIO_API_KEY: Your Composio API keyGEMINI_API_KEY
- : Your Google AI API key
Optional environment variables:
- GOOGLE_PROJECT_ID: Your Google Cloud project ID (for custom deployments)GOOGLE_LOCATION
- : Your Google Cloud location (for custom deployments)
`typescript
import { Composio } from '@composio/core';
import { GoogleProvider } from '@composio/google';
import { GoogleGenerativeAI } from '@google/genai';
// Initialize Google GenAI
const genAI = new GoogleGenerativeAI(process.env.GEMINI_API_KEY);
// Initialize Composio with Google provider
const composio = new Composio({
apiKey: process.env.COMPOSIO_API_KEY,
provider: new GoogleProvider(),
});
// Get available tools
const tools = await composio.tools.get('user123', {
toolkits: ['gmail', 'calendar'],
limit: 10,
});
`
Check out our complete example implementations:
The GoogleProvider class extends BaseNonAgenticProvider and provides Google GenAI-specific functionality.
#### Methods
##### wrapTool(tool: Tool): GoogleTool
Wraps a Composio tool in the Google GenAI function declaration format.
`typescript`
const wrappedTool = provider.wrapTool(composioTool);
##### wrapTools(tools: Tool[]): GoogleGenAIToolCollection
Wraps multiple Composio tools in the Google GenAI function declaration format.
`typescript`
const wrappedTools = provider.wrapTools(composioTools);
##### executeToolCall(userId: string, tool: GoogleGenAIFunctionCall, options?: ExecuteToolFnOptions, modifiers?: ExecuteToolModifiers): Promise
Executes a tool call from Google GenAI and returns the result as a JSON string.
`typescript`
const result = await provider.executeToolCall('user123', functionCall, options, modifiers);
#### Types
`typescript
interface GoogleGenAIFunctionCall {
name: string;
args: Record
}
type GoogleTool = {
name: string;
description: string;
parameters: Schema;
};
type GoogleGenAIToolCollection = GoogleTool[];
``
We welcome contributions! Please see our Contributing Guide for more details.
ISC License
For support, please visit our Documentation or join our Discord Community.