The Google Gemini adapter provides access to Google's Gemini models, including Gemini Pro and Gemini Ultra.
npm install @tanstack/ai-gemini
npm install @tanstack/ai-gemini
import { chat } from "@tanstack/ai";
import { gemini } from "@tanstack/ai-gemini";
const adapter = gemini({
apiKey: process.env.GEMINI_API_KEY!,
});
const stream = chat({
adapter,
messages: [{ role: "user", content: "Hello!" }],
model: "gemini-pro",
});
import { chat } from "@tanstack/ai";
import { gemini } from "@tanstack/ai-gemini";
const adapter = gemini({
apiKey: process.env.GEMINI_API_KEY!,
});
const stream = chat({
adapter,
messages: [{ role: "user", content: "Hello!" }],
model: "gemini-pro",
});
import { gemini, type GeminiConfig } from "@tanstack/ai-gemini";
const config: GeminiConfig = {
apiKey: process.env.GEMINI_API_KEY!,
baseURL: "https://generativelanguage.googleapis.com/v1", // Optional
};
const adapter = gemini(config);
import { gemini, type GeminiConfig } from "@tanstack/ai-gemini";
const config: GeminiConfig = {
apiKey: process.env.GEMINI_API_KEY!,
baseURL: "https://generativelanguage.googleapis.com/v1", // Optional
};
const adapter = gemini(config);
import { chat, toStreamResponse } from "@tanstack/ai";
import { gemini } from "@tanstack/ai-gemini";
const adapter = gemini({
apiKey: process.env.GEMINI_API_KEY!,
});
export async function POST(request: Request) {
const { messages } = await request.json();
const stream = chat({
adapter,
messages,
model: "gemini-pro",
});
return toStreamResponse(stream);
}
import { chat, toStreamResponse } from "@tanstack/ai";
import { gemini } from "@tanstack/ai-gemini";
const adapter = gemini({
apiKey: process.env.GEMINI_API_KEY!,
});
export async function POST(request: Request) {
const { messages } = await request.json();
const stream = chat({
adapter,
messages,
model: "gemini-pro",
});
return toStreamResponse(stream);
}
import { chat, toolDefinition } from "@tanstack/ai";
import { gemini } from "@tanstack/ai-gemini";
import { z } from "zod";
const adapter = gemini({
apiKey: process.env.GEMINI_API_KEY!,
});
const getCalendarEventsDef = toolDefinition({
name: "get_calendar_events",
description: "Get calendar events",
inputSchema: z.object({
date: z.string(),
}),
});
const getCalendarEvents = getCalendarEventsDef.server(async ({ date }) => {
// Fetch calendar events
return { events: [...] };
});
const stream = chat({
adapter,
messages,
model: "gemini-pro",
tools: [getCalendarEvents],
});
import { chat, toolDefinition } from "@tanstack/ai";
import { gemini } from "@tanstack/ai-gemini";
import { z } from "zod";
const adapter = gemini({
apiKey: process.env.GEMINI_API_KEY!,
});
const getCalendarEventsDef = toolDefinition({
name: "get_calendar_events",
description: "Get calendar events",
inputSchema: z.object({
date: z.string(),
}),
});
const getCalendarEvents = getCalendarEventsDef.server(async ({ date }) => {
// Fetch calendar events
return { events: [...] };
});
const stream = chat({
adapter,
messages,
model: "gemini-pro",
tools: [getCalendarEvents],
});
Gemini supports various provider-specific options:
const stream = chat({
adapter: gemini({ apiKey: process.env.GEMINI_API_KEY! }),
messages,
model: "gemini-pro",
providerOptions: {
temperature: 0.7,
maxOutputTokens: 1000,
topP: 0.9,
topK: 40,
},
});
const stream = chat({
adapter: gemini({ apiKey: process.env.GEMINI_API_KEY! }),
messages,
model: "gemini-pro",
providerOptions: {
temperature: 0.7,
maxOutputTokens: 1000,
topP: 0.9,
topK: 40,
},
});
Set your API key in environment variables:
GEMINI_API_KEY=your-api-key-here
GEMINI_API_KEY=your-api-key-here
Creates a Gemini adapter instance.
Parameters:
Returns: A Gemini adapter instance.
