@typochat-sdk/google
v0.1.2
Published
Proxy-aware [Google Generative AI](https://ai.google.dev/) (Gemini) provider for the [Vercel AI SDK](https://sdk.vercel.ai). All requests are routed through your proxy — no provider API keys needed on the client.
Readme
@typochat-sdk/google
Proxy-aware Google Generative AI (Gemini) provider for the Vercel AI SDK. All requests are routed through your proxy — no provider API keys needed on the client.
Installation
npm install @typochat-sdk/google @typochat-sdk/core @ai-sdk/googleQuick Start
import { createProxyGoogle } from "@typochat-sdk/google";
import { generateText } from "ai";
const google = createProxyGoogle({
apiKey: "tmk_xxxxx",
});
const { text } = await generateText({
model: google("gemini-2.5-flash"),
prompt: "Explain quantum computing in one paragraph.",
});Examples
Streaming
import { createProxyGoogle } from "@typochat-sdk/google";
import { streamText } from "ai";
const google = createProxyGoogle();
const result = streamText({
model: google("gemini-2.5-flash"),
prompt: "Explain how transformers work.",
});
for await (const chunk of result.textStream) {
process.stdout.write(chunk);
}Structured output
import { createProxyGoogle } from "@typochat-sdk/google";
import { generateObject } from "ai";
import { z } from "zod";
const google = createProxyGoogle();
const { object } = await generateObject({
model: google("gemini-2.5-flash"),
schema: z.object({
recipe: z.object({
name: z.string(),
ingredients: z.array(z.string()),
steps: z.array(z.string()),
}),
}),
prompt: "Generate a recipe for chocolate chip cookies.",
});Multi-turn chat
import { createProxyGoogle } from "@typochat-sdk/google";
import { generateText } from "ai";
const google = createProxyGoogle();
const { text } = await generateText({
model: google("gemini-2.5-flash"),
messages: [
{ role: "user", content: "What is the capital of France?" },
{ role: "assistant", content: "The capital of France is Paris." },
{ role: "user", content: "What is its population?" },
],
});Next.js Route Handler
// app/api/chat/route.ts
import { createProxyGoogle } from "@typochat-sdk/google";
import { streamText } from "ai";
const google = createProxyGoogle();
export async function POST(req: Request) {
const { messages } = await req.json();
const result = streamText({
model: google("gemini-2.5-pro"),
messages,
});
return result.toDataStreamResponse();
}Configuration
Environment variable
Set this and call createProxyGoogle() with no arguments:
NEXT_PUBLIC_AI_PROXY_KEY=tmk_xxxxxconst google = createProxyGoogle();Explicit config
const google = createProxyGoogle({
apiKey: "tmk_xxxxx",
});Custom proxy URL
By default, requests are routed through the hosted proxy. Override with proxyUrl or the NEXT_PUBLIC_AI_PROXY_URL env var:
const google = createProxyGoogle({
proxyUrl: "https://your-proxy.example.com",
apiKey: "tmk_xxxxx",
});Custom provider settings
Pass additional @ai-sdk/google settings:
const google = createProxyGoogle({
settings: {
// Any GoogleGenerativeAIProviderSettings
},
});Available Models
| Model ID | Description |
|----------|-------------|
| gemini-2.5-pro | Most capable Gemini model |
| gemini-2.5-flash | Fast and cost-effective |
| gemini-2.0-flash | Previous generation flash |
| gemini-2.0-flash-lite | Lightweight variant |
const pro = google("gemini-2.5-pro");
const flash = google("gemini-2.5-flash");License
MIT
