Google Gemini 适配器提供了访问 Google 的 Gemini 模型的功能,包括文本生成、使用 Imagen 进行图像生成以及实验性的文本到语音转换。
npm install @tanstack/ai-gemini
import { chat } from "@tanstack/ai";
import { geminiText } from "@tanstack/ai-gemini";
const stream = chat({
adapter: geminiText("gemini-2.5-pro"),
messages: [{ role: "user", content: "Hello!" }],
});
import { chat } from "@tanstack/ai";
import { createGeminiChat } from "@tanstack/ai-gemini";
const adapter = createGeminiChat(process.env.GEMINI_API_KEY!, {
// ... your config options
});
const stream = chat({
adapter: adapter("gemini-2.5-pro"),
messages: [{ role: "user", content: "Hello!" }],
});
import { createGeminiChat, type GeminiChatConfig } from "@tanstack/ai-gemini";
const config: Omit<GeminiChatConfig, 'apiKey'> = {
baseURL: "https://generativelanguage.googleapis.com/v1beta", // Optional
};
const adapter = createGeminiChat(process.env.GEMINI_API_KEY!, config);
import { chat, toServerSentEventsResponse } from "@tanstack/ai";
import { geminiText } from "@tanstack/ai-gemini";
export async function POST(request: Request) {
const { messages } = await request.json();
const stream = chat({
adapter: geminiText("gemini-2.5-pro"),
messages,
});
return toServerSentEventsResponse(stream);
}
import { chat, toolDefinition } from "@tanstack/ai";
import { geminiText } from "@tanstack/ai-gemini";
import { z } from "zod";
const getCalendarEventsDef = toolDefinition({
name: "get_calendar_events",
description: "Get calendar events for a date",
inputSchema: z.object({
date: z.string(),
}),
});
const getCalendarEvents = getCalendarEventsDef.server(async ({ date }) => {
// Fetch calendar events
return { events: [] };
});
const stream = chat({
adapter: geminiText("gemini-2.5-pro"),
messages,
tools: [getCalendarEvents],
});
Gemini 支持各种模型特定的选项
const stream = chat({
adapter: geminiText("gemini-2.5-pro"),
messages,
modelOptions: {
maxOutputTokens: 2048,
temperature: 0.7,
topP: 0.9,
topK: 40,
stopSequences: ["END"],
},
});
为支持它的模型启用思考功能
modelOptions: {
thinking: {
includeThoughts: true,
},
}
配置结构化输出格式
modelOptions: {
responseMimeType: "application/json",
}
总结长文本内容
import { summarize } from "@tanstack/ai";
import { geminiSummarize } from "@tanstack/ai-gemini";
const result = await summarize({
adapter: geminiSummarize("gemini-2.5-pro"),
text: "Your long text to summarize...",
maxLength: 100,
style: "concise", // "concise" | "bullet-points" | "paragraph"
});
console.log(result.summary);
使用 Imagen 生成图像
import { generateImage } from "@tanstack/ai";
import { geminiImage } from "@tanstack/ai-gemini";
const result = await generateImage({
adapter: geminiImage("imagen-3.0-generate-002"),
prompt: "A futuristic cityscape at sunset",
numberOfImages: 1,
});
console.log(result.images);
const result = await generateImage({
adapter: geminiImage("imagen-3.0-generate-002"),
prompt: "...",
modelOptions: {
aspectRatio: "16:9", // "1:1" | "3:4" | "4:3" | "9:16" | "16:9"
personGeneration: "DONT_ALLOW", // Control person generation
safetyFilterLevel: "BLOCK_SOME", // Safety filtering
},
});
注意: Gemini TTS 处于实验阶段,可能需要 Live API 才能完全发挥功能。
从文本生成语音
import { generateSpeech } from "@tanstack/ai";
import { geminiSpeech } from "@tanstack/ai-gemini";
const result = await generateSpeech({
adapter: geminiSpeech("gemini-2.5-flash-preview-tts"),
text: "Hello from Gemini TTS!",
});
console.log(result.audio); // Base64 encoded audio
将您的 API 密钥设置为环境变量
GEMINI_API_KEY=your-api-key-here
# or
GOOGLE_API_KEY=your-api-key-here
使用环境变量创建一个 Gemini 文本/聊天适配器。
返回值: 一个 Gemini 文本适配器实例。
使用显式的 API 密钥创建一个 Gemini 文本/聊天适配器。
参数
返回值: 一个 Gemini 文本适配器实例。
使用环境变量创建一个 Gemini 摘要适配器。
返回值: 一个 Gemini 摘要适配器实例。
使用显式的 API 密钥创建一个 Gemini 摘要适配器。
返回值: 一个 Gemini 摘要适配器实例。
使用环境变量创建一个 Gemini 图像生成适配器。
返回值: 一个 Gemini 图像适配器实例。
使用显式的 API 密钥创建一个 Gemini 图像生成适配器。
返回值: 一个 Gemini 图像适配器实例。
使用环境变量创建一个 Gemini TTS 适配器。
返回值: 一个 Gemini TTS 适配器实例。
使用显式的 API 密钥创建一个 Gemini TTS 适配器。
返回值: 一个 Gemini TTS 适配器实例。