Files
decoluaandClaude Fable 5 1319dea620 fix(providers): count apikey connections for freeTier providers
openrouter, nvidia, gemini lack authModes, so dualAuthTypes on the
providers page defaulted to "oauth" and their apikey connections showed
as "No connections" on the freeTier card.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-29 20:21:27 +07:00

86 lines
3.8 KiB
JavaScript

import { GOOGLE_OAUTH_CLIENT } from "../shared.js";
export default {
id: "gemini",
priority: 50,
hasFree: true,
alias: "gemini",
display: {
name: "Gemini",
icon: "diamond",
color: "#4285F4",
textIcon: "GE",
website: "https://ai.google.dev",
notice: {
apiKeyUrl: "https://aistudio.google.com/app/apikey",
},
},
category: "freeTier",
authType: "apikey",
authModes: ["apikey"],
mediaPriority: 1,
transport: {
baseUrl: "https://generativelanguage.googleapis.com/v1beta/models",
format: "gemini",
clientId: "681255809395-oo8ft2oprdrnp9e3aqf6av3hmdib135j.apps.googleusercontent.com",
clientSecret: "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",
auth: {
apiKey: {
header: "x-goog-api-key",
scheme: "raw",
},
oauth: {
header: "Authorization",
scheme: "bearer",
},
},
},
models: [
{ id: "gemini-3.6-flash", name: "Gemini 3.6 Flash" },
{ id: "gemini-3.5-flash-lite", name: "Gemini 3.5 Flash Lite" },
{ id: "gemini-3.1-pro-preview", name: "Gemini 3.1 Pro Preview" },
{ id: "gemini-3.1-flash-lite-preview", name: "Gemini 3.1 Flash Lite Preview" },
{ id: "gemini-3-flash-preview", name: "Gemini 3 Flash Preview" },
{ id: "gemini-2.5-pro", name: "Gemini 2.5 Pro" },
{ id: "gemini-2.5-flash", name: "Gemini 2.5 Flash" },
{ id: "gemini-2.5-flash-lite", name: "Gemini 2.5 Flash Lite" },
{ id: "gemma-4-31b-it", name: "Gemma 4 31B IT" },
{ id: "gemini-embedding-2-preview", name: "Gemini Embedding 2 Preview", kind: "embedding" },
{ id: "gemini-embedding-001", name: "Gemini Embedding 001", kind: "embedding" },
{ id: "text-embedding-005", name: "Text Embedding 005", kind: "embedding" },
{ id: "text-embedding-004", name: "Text Embedding 004 (Legacy)", kind: "embedding" },
{ id: "gemini-3.1-flash-image-preview", name: "Gemini 3.1 Flash Image (Nano Banana 2)", params: [], kind: "image" },
{ id: "gemini-3-pro-image-preview", name: "Gemini 3 Pro Image (Nano Banana Pro)", params: [], kind: "image" },
{ id: "gemini-2.5-flash-image", name: "Gemini 2.5 Flash Image (Nano Banana)", params: [], kind: "image" },
{ id: "gemini-2.5-pro", name: "Gemini 2.5 Pro (Best)", params: ["language","prompt"], kind: "stt" },
{ id: "gemini-2.5-flash", name: "Gemini 2.5 Flash", params: ["language","prompt"], kind: "stt" },
{ id: "gemini-2.5-flash-lite", name: "Gemini 2.5 Flash Lite (Cheapest)", params: ["language","prompt"], kind: "stt" },
{ id: "gemini-2.0-flash", name: "Gemini 2.0 Flash", params: ["language","prompt"], kind: "stt" },
{ id: "gemini-3.1-flash-tts-preview", name: "Gemini 3.1 Flash TTS", kind: "tts" },
{ id: "gemini-2.5-flash-preview-tts", name: "Gemini 2.5 Flash TTS", kind: "tts" },
{ id: "gemini-2.5-pro-preview-tts", name: "Gemini 2.5 Pro TTS", kind: "tts" },
{ id: "embedding-001", name: "Embedding 001", dimensions: 768, kind: "embedding" },
],
serviceKinds: ["llm","embedding","image","imageToText","webSearch","tts","stt"],
ttsConfig: {
baseUrl: "https://generativelanguage.googleapis.com/v1beta/models",
authType: "apikey",
authHeader: "key",
format: "gemini-tts",
},
sttConfig: {
baseUrl: "https://generativelanguage.googleapis.com/v1beta/models",
authType: "apikey",
authHeader: "key",
format: "gemini-stt",
},
embeddingConfig: { baseUrl: "https://generativelanguage.googleapis.com/v1beta/models", authType: "apikey", authHeader: "key" },
imageConfig: { baseUrl: "https://generativelanguage.googleapis.com/v1beta/models" },
searchViaChat: {
defaultModel: "gemini-2.5-flash",
endpoint: "https://generativelanguage.googleapis.com/v1beta/models/{model}:generateContent",
pricingUrl: "https://ai.google.dev/pricing",
freeTier: "Free tier: 15 RPM, 1M tokens/day on gemini-2.5-flash via AI Studio.",
},
};