@polyweave/google (1.0.8)
Installation
@polyweave:registry=https://hub.kl1.tenere.ai/api/packages/Polyweave/npm/npm install @polyweave/google@1.0.8"@polyweave/google": "1.0.8"About this package
Google (Gemini)
Google Gemini adapter for Polyweave. Multimodal chat, embeddings, and vision.
Published as @polyweave/google.
Synopsis
import { createGoogleAdapter } from '@polyweave/google';
import { createTextFrame, createFrameSink } from '@polyweave/core';
var adapter = createGoogleAdapter({ apiKey: process.env.GEMINI_API_KEY, model: 'gemini-2.5-flash' });
adapter.source.pipe(createFrameSink(function(frame) {
if (frame.type === 'TEXT') console.log(frame.content.text);
}));
adapter.sink.write(createTextFrame('Write a haiku about clouds'));
Install
npm install @polyweave/google
Description
Google Gemini adapter using the native Gemini Generative Language API. Supports chat with streaming SSE, vision via image input, embeddings via embedContent, and function calling. Not OpenAI-compatible — uses Google's contents/parts model format internally.
Models: gemini-2.5-flash, gemini-2.5-pro, gemini-2.0-flash, gemini-1.5-flash, gemini-1.5-pro, text-embedding-004.
API
createGoogleAdapter(config)
| Parameter | Type | Default | Description |
|---|---|---|---|
config.apiKey |
string |
process.env.GEMINI_API_KEY |
API key |
config.baseURL |
string |
https://generativelanguage.googleapis.com/v1beta |
Base URL |
config.model |
string |
gemini-2.5-flash |
Default model |
config.budget |
number |
0 | Budget cap |
config.name |
string |
null | Node name for PARAM targeting |
config.timeout |
number |
120000 | Request timeout in ms |
Returns an IFrameDuplex with source and sink.
Frame Protocol
| Inbound | Outbound |
|---|---|
| TEXT, IMAGE, EMBEDDING | TEXT, EMBEDDING, TOOL_CALL, RECEIPT, ERROR, END |
| PARAM | — |
| COST_CHECK | COST |
PARAM Keys
model, max_tokens, temperature, top_p, stream, system, tools, tool_choice, embedding_model, task_type, budget, apiKey
Tests
npm test
Covers adapter construction and PARAM accumulation.
Requirements
Node.js 18 or later. ESM only.
Caveats
Uses Google's native API format (not OpenAI-compatible). API key is passed as a query parameter in the URL (not as a Bearer token). Streaming uses alt=sse query parameter. Vision URL input uses fileData.fileUri. Embedding responses use embedding.values format.
See Also
License
MIT
Dependencies
Development Dependencies
| ID | Version |
|---|---|
| @rigor/core | * |
Peer Dependencies
| ID | Version |
|---|---|
| @polyweave/core | * |
| @polyweave/costs | * |
| @polyweave/errors | * |
| @polyweave/push-websocket | * |