Skip to content

Google Gemini

FlowKit supports Google's Gemini models via the GeminiAdapter.

Setup

bash
export GOOGLE_AI_API_KEY=...

Get your API key from Google AI Studio.

Usage

typescript
import { GeminiAdapter } from "@andresaya/flowkit";

const adapter = new GeminiAdapter({
  apiKey: process.env.GOOGLE_AI_API_KEY!,
  model: "gemini-1.5-flash",
});

const engine = new FlowEngine(flow, { llm: adapter, storage });

Configuration

typescript
interface GeminiConfig {
  /** Google AI API key (required) */
  apiKey: string;
  /** Model to use (default: gemini-1.5-flash) */
  model?: string;
  /** Temperature (default: 0) */
  temperature?: number;
  /** Max tokens (default: 4096) */
  maxTokens?: number;
  /** Timeout in ms (default: 60000) */
  timeout?: number;
  /** Enable streaming (default: false) */
  streaming?: boolean;
}

Available Models

ModelBest ForCost
gemini-1.5-flashFast and free tier friendlyFree/$
gemini-1.5-proMore capable$$
gemini-2.0-flash-expLatest experimentalFree

Example

typescript
import { 
  agent, flow, FlowEngine, MemoryStorage, GeminiAdapter, 
  name, yesNo 
} from "@andresaya/flowkit";

const bot = agent("Alex")
  .personality("friendly")
  .build();

const myFlow = flow("greeting", bot)
  .ask("name", "What's your name?", name(), "user_name")
  .then("confirm")
  .ask("confirm", "Nice to meet you {{user_name}}! Need help?", yesNo(), "needs_help")
  .when({ yes: "help", no: "bye" })
  .say("help", "How can I help?")
  .done()
  .say("bye", "Goodbye!")
  .done()
  .build();

const engine = new FlowEngine(myFlow, {
  llm: new GeminiAdapter({
    apiKey: process.env.GOOGLE_AI_API_KEY!,
    model: "gemini-1.5-flash",
  }),
  storage: new MemoryStorage(),
});

const result = await engine.start("session-1");
console.log(result.message);

Features

FeatureSupported
StreamingYes
Tool CallingYes
JSON ModeYes
Free TierYes

Tips

  1. Use gemini-1.5-flash for development - Generous free tier
  2. Great for multilingual support - Good at multiple languages
  3. Enable streaming - Better user experience
  4. Check rate limits - Free tier has request limits

Released under the MIT License.