From 77eb6ddd06cee25e4e4604414ffddd7cebbf6598 Mon Sep 17 00:00:00 2001 From: Matt Rubens Date: Fri, 4 Apr 2025 11:52:34 -0400 Subject: [PATCH] Add the gemini 2.5 pro preview model with upper bound pricing --- .changeset/quiet-turkeys-wash.md | 5 +++++ src/shared/api.ts | 8 ++++++++ webview-ui/src/components/settings/ModelInfoView.tsx | 8 +++++--- webview-ui/src/i18n/locales/ca/settings.json | 3 ++- webview-ui/src/i18n/locales/de/settings.json | 3 ++- webview-ui/src/i18n/locales/en/settings.json | 3 ++- webview-ui/src/i18n/locales/es/settings.json | 3 ++- webview-ui/src/i18n/locales/fr/settings.json | 3 ++- webview-ui/src/i18n/locales/hi/settings.json | 3 ++- webview-ui/src/i18n/locales/it/settings.json | 3 ++- webview-ui/src/i18n/locales/ja/settings.json | 3 ++- webview-ui/src/i18n/locales/ko/settings.json | 3 ++- webview-ui/src/i18n/locales/pl/settings.json | 3 ++- webview-ui/src/i18n/locales/pt-BR/settings.json | 3 ++- webview-ui/src/i18n/locales/tr/settings.json | 3 ++- webview-ui/src/i18n/locales/vi/settings.json | 3 ++- webview-ui/src/i18n/locales/zh-CN/settings.json | 3 ++- webview-ui/src/i18n/locales/zh-TW/settings.json | 3 ++- 18 files changed, 48 insertions(+), 18 deletions(-) create mode 100644 .changeset/quiet-turkeys-wash.md diff --git a/.changeset/quiet-turkeys-wash.md b/.changeset/quiet-turkeys-wash.md new file mode 100644 index 00000000000..767134c3743 --- /dev/null +++ b/.changeset/quiet-turkeys-wash.md @@ -0,0 +1,5 @@ +--- +"roo-cline": patch +--- + +Add the gemini 2.5 pro preview model with upper bound pricing diff --git a/src/shared/api.ts b/src/shared/api.ts index 979d8aa53f0..44f8f787eeb 100644 --- a/src/shared/api.ts +++ b/src/shared/api.ts @@ -629,6 +629,14 @@ export const geminiModels = { inputPrice: 0, outputPrice: 0, }, + "gemini-2.5-pro-preview-03-25": { + maxTokens: 65_535, + contextWindow: 1_048_576, + supportsImages: true, + supportsPromptCache: false, + inputPrice: 2.5, + outputPrice: 15, + }, "gemini-2.0-flash-001": { maxTokens: 8192, contextWindow: 1_048_576, diff --git a/webview-ui/src/components/settings/ModelInfoView.tsx b/webview-ui/src/components/settings/ModelInfoView.tsx index aa927f8ea2f..b692903a9b2 100644 --- a/webview-ui/src/components/settings/ModelInfoView.tsx +++ b/webview-ui/src/components/settings/ModelInfoView.tsx @@ -75,9 +75,11 @@ export const ModelInfoView = ({ ), isGemini && ( - {t("settings:modelInfo.gemini.freeRequests", { - count: selectedModelId && selectedModelId.includes("flash") ? 15 : 2, - })}{" "} + {selectedModelId === "gemini-2.5-pro-preview-03-25" + ? t("settings:modelInfo.gemini.billingEstimate") + : t("settings:modelInfo.gemini.freeRequests", { + count: selectedModelId && selectedModelId.includes("flash") ? 15 : 2, + })}{" "} {t("settings:modelInfo.gemini.pricingDetails")} diff --git a/webview-ui/src/i18n/locales/ca/settings.json b/webview-ui/src/i18n/locales/ca/settings.json index bb5ed1f9bc7..fad5647b7d7 100644 --- a/webview-ui/src/i18n/locales/ca/settings.json +++ b/webview-ui/src/i18n/locales/ca/settings.json @@ -369,7 +369,8 @@ "azureApiVersion": "Establir versió de l'API d'Azure", "gemini": { "freeRequests": "* Gratuït fins a {{count}} sol·licituds per minut. Després d'això, la facturació depèn de la mida del prompt.", - "pricingDetails": "Per a més informació, consulteu els detalls de preus." + "pricingDetails": "Per a més informació, consulteu els detalls de preus.", + "billingEstimate": "* La facturació és una estimació - el cost exacte depèn de la mida del prompt." } }, "modelPicker": { diff --git a/webview-ui/src/i18n/locales/de/settings.json b/webview-ui/src/i18n/locales/de/settings.json index 2e2241432e4..cb11a71485c 100644 --- a/webview-ui/src/i18n/locales/de/settings.json +++ b/webview-ui/src/i18n/locales/de/settings.json @@ -369,7 +369,8 @@ "azureApiVersion": "Azure API-Version festlegen", "gemini": { "freeRequests": "* Kostenlos bis zu {{count}} Anfragen pro Minute. Danach hängt die Abrechnung von der Prompt-Größe ab.", - "pricingDetails": "Weitere Informationen finden Sie in den Preisdetails." + "pricingDetails": "Weitere Informationen finden Sie in den Preisdetails.", + "billingEstimate": "* Die Abrechnung ist eine Schätzung - die genauen Kosten hängen von der Prompt-Größe ab." } }, "modelPicker": { diff --git a/webview-ui/src/i18n/locales/en/settings.json b/webview-ui/src/i18n/locales/en/settings.json index 67d05d3e561..02f16513580 100644 --- a/webview-ui/src/i18n/locales/en/settings.json +++ b/webview-ui/src/i18n/locales/en/settings.json @@ -369,7 +369,8 @@ "azureApiVersion": "Set Azure API version", "gemini": { "freeRequests": "* Free up to {{count}} requests per minute. After that, billing depends on prompt size.", - "pricingDetails": "For more info, see pricing details." + "pricingDetails": "For more info, see pricing details.", + "billingEstimate": "* Billing is an estimate - exact cost depends on prompt size." } }, "modelPicker": { diff --git a/webview-ui/src/i18n/locales/es/settings.json b/webview-ui/src/i18n/locales/es/settings.json index e4a40e25849..772ab298951 100644 --- a/webview-ui/src/i18n/locales/es/settings.json +++ b/webview-ui/src/i18n/locales/es/settings.json @@ -369,7 +369,8 @@ "azureApiVersion": "Establecer versión de API de Azure", "gemini": { "freeRequests": "* Gratis hasta {{count}} solicitudes por minuto. Después de eso, la facturación depende del tamaño del prompt.", - "pricingDetails": "Para más información, consulte los detalles de precios." + "pricingDetails": "Para más información, consulte los detalles de precios.", + "billingEstimate": "* La facturación es una estimación - el costo exacto depende del tamaño del prompt." } }, "modelPicker": { diff --git a/webview-ui/src/i18n/locales/fr/settings.json b/webview-ui/src/i18n/locales/fr/settings.json index 599033627f2..dfe136d9d09 100644 --- a/webview-ui/src/i18n/locales/fr/settings.json +++ b/webview-ui/src/i18n/locales/fr/settings.json @@ -369,7 +369,8 @@ "azureApiVersion": "Définir la version de l'API Azure", "gemini": { "freeRequests": "* Gratuit jusqu'à {{count}} requêtes par minute. Après cela, la facturation dépend de la taille du prompt.", - "pricingDetails": "Pour plus d'informations, voir les détails de tarification." + "pricingDetails": "Pour plus d'informations, voir les détails de tarification.", + "billingEstimate": "* La facturation est une estimation - le coût exact dépend de la taille du prompt." } }, "modelPicker": { diff --git a/webview-ui/src/i18n/locales/hi/settings.json b/webview-ui/src/i18n/locales/hi/settings.json index 6941f56c823..92a5279739e 100644 --- a/webview-ui/src/i18n/locales/hi/settings.json +++ b/webview-ui/src/i18n/locales/hi/settings.json @@ -369,7 +369,8 @@ "azureApiVersion": "Azure API संस्करण सेट करें", "gemini": { "freeRequests": "* प्रति मिनट {{count}} अनुरोधों तक मुफ्त। उसके बाद, बिलिंग प्रॉम्प्ट आकार पर निर्भर करती है।", - "pricingDetails": "अधिक जानकारी के लिए, मूल्य निर्धारण विवरण देखें।" + "pricingDetails": "अधिक जानकारी के लिए, मूल्य निर्धारण विवरण देखें।", + "billingEstimate": "* बिलिंग एक अनुमान है - सटीक लागत प्रॉम्प्ट आकार पर निर्भर करती है।" } }, "modelPicker": { diff --git a/webview-ui/src/i18n/locales/it/settings.json b/webview-ui/src/i18n/locales/it/settings.json index d78ba3499be..d5441e1b83b 100644 --- a/webview-ui/src/i18n/locales/it/settings.json +++ b/webview-ui/src/i18n/locales/it/settings.json @@ -369,7 +369,8 @@ "azureApiVersion": "Imposta versione API Azure", "gemini": { "freeRequests": "* Gratuito fino a {{count}} richieste al minuto. Dopo, la fatturazione dipende dalla dimensione del prompt.", - "pricingDetails": "Per maggiori informazioni, vedi i dettagli sui prezzi." + "pricingDetails": "Per maggiori informazioni, vedi i dettagli sui prezzi.", + "billingEstimate": "* La fatturazione è una stima - il costo esatto dipende dalle dimensioni del prompt." } }, "modelPicker": { diff --git a/webview-ui/src/i18n/locales/ja/settings.json b/webview-ui/src/i18n/locales/ja/settings.json index 7cfa2576b46..43b452b3ba7 100644 --- a/webview-ui/src/i18n/locales/ja/settings.json +++ b/webview-ui/src/i18n/locales/ja/settings.json @@ -369,7 +369,8 @@ "azureApiVersion": "Azure APIバージョンを設定", "gemini": { "freeRequests": "* 1分間あたり{{count}}リクエストまで無料。それ以降は、プロンプトサイズに応じて課金されます。", - "pricingDetails": "詳細は価格情報をご覧ください。" + "pricingDetails": "詳細は価格情報をご覧ください。", + "billingEstimate": "* 課金は見積もりです - 正確な費用はプロンプトのサイズによって異なります。" } }, "modelPicker": { diff --git a/webview-ui/src/i18n/locales/ko/settings.json b/webview-ui/src/i18n/locales/ko/settings.json index e9207256772..e559da363dd 100644 --- a/webview-ui/src/i18n/locales/ko/settings.json +++ b/webview-ui/src/i18n/locales/ko/settings.json @@ -369,7 +369,8 @@ "azureApiVersion": "Azure API 버전 설정", "gemini": { "freeRequests": "* 분당 {{count}}개의 요청까지 무료. 이후에는 프롬프트 크기에 따라 요금이 부과됩니다.", - "pricingDetails": "자세한 내용은 가격 정보를 참조하세요." + "pricingDetails": "자세한 내용은 가격 정보를 참조하세요.", + "billingEstimate": "* 요금은 추정치입니다 - 정확한 비용은 프롬프트 크기에 따라 달라집니다." } }, "modelPicker": { diff --git a/webview-ui/src/i18n/locales/pl/settings.json b/webview-ui/src/i18n/locales/pl/settings.json index aa5cdf34d2c..5f7f7213002 100644 --- a/webview-ui/src/i18n/locales/pl/settings.json +++ b/webview-ui/src/i18n/locales/pl/settings.json @@ -369,7 +369,8 @@ "azureApiVersion": "Ustaw wersję API Azure", "gemini": { "freeRequests": "* Darmowe do {{count}} zapytań na minutę. Po tym, rozliczanie zależy od rozmiaru podpowiedzi.", - "pricingDetails": "Więcej informacji znajdziesz w szczegółach cennika." + "pricingDetails": "Więcej informacji znajdziesz w szczegółach cennika.", + "billingEstimate": "* Rozliczenie jest szacunkowe - dokładny koszt zależy od rozmiaru podpowiedzi." } }, "modelPicker": { diff --git a/webview-ui/src/i18n/locales/pt-BR/settings.json b/webview-ui/src/i18n/locales/pt-BR/settings.json index 05f2d95fa13..810003b4d02 100644 --- a/webview-ui/src/i18n/locales/pt-BR/settings.json +++ b/webview-ui/src/i18n/locales/pt-BR/settings.json @@ -369,7 +369,8 @@ "azureApiVersion": "Definir versão da API Azure", "gemini": { "freeRequests": "* Gratuito até {{count}} requisições por minuto. Depois disso, a cobrança depende do tamanho do prompt.", - "pricingDetails": "Para mais informações, consulte os detalhes de preços." + "pricingDetails": "Para mais informações, consulte os detalhes de preços.", + "billingEstimate": "* A cobrança é uma estimativa - o custo exato depende do tamanho do prompt." } }, "modelPicker": { diff --git a/webview-ui/src/i18n/locales/tr/settings.json b/webview-ui/src/i18n/locales/tr/settings.json index 441c155e687..9fe01e1e56a 100644 --- a/webview-ui/src/i18n/locales/tr/settings.json +++ b/webview-ui/src/i18n/locales/tr/settings.json @@ -369,7 +369,8 @@ "azureApiVersion": "Azure API sürümünü ayarla", "gemini": { "freeRequests": "* Dakikada {{count}} isteğe kadar ücretsiz. Bundan sonra, ücretlendirme istem boyutuna bağlıdır.", - "pricingDetails": "Daha fazla bilgi için fiyatlandırma ayrıntılarına bakın." + "pricingDetails": "Daha fazla bilgi için fiyatlandırma ayrıntılarına bakın.", + "billingEstimate": "* Ücretlendirme bir tahmindir - kesin maliyet istem boyutuna bağlıdır." } }, "modelPicker": { diff --git a/webview-ui/src/i18n/locales/vi/settings.json b/webview-ui/src/i18n/locales/vi/settings.json index e2f258c7eba..754aa2b3201 100644 --- a/webview-ui/src/i18n/locales/vi/settings.json +++ b/webview-ui/src/i18n/locales/vi/settings.json @@ -369,7 +369,8 @@ "azureApiVersion": "Đặt phiên bản API Azure", "gemini": { "freeRequests": "* Miễn phí đến {{count}} yêu cầu mỗi phút. Sau đó, thanh toán phụ thuộc vào kích thước lời nhắc.", - "pricingDetails": "Để biết thêm thông tin, xem chi tiết giá." + "pricingDetails": "Để biết thêm thông tin, xem chi tiết giá.", + "billingEstimate": "* Thanh toán là ước tính - chi phí chính xác phụ thuộc vào kích thước lời nhắc." } }, "modelPicker": { diff --git a/webview-ui/src/i18n/locales/zh-CN/settings.json b/webview-ui/src/i18n/locales/zh-CN/settings.json index 69e49d61c04..949d71fe48c 100644 --- a/webview-ui/src/i18n/locales/zh-CN/settings.json +++ b/webview-ui/src/i18n/locales/zh-CN/settings.json @@ -369,7 +369,8 @@ "azureApiVersion": "设置 Azure API 版本", "gemini": { "freeRequests": "* 每分钟免费 {{count}} 个请求。之后,计费取决于提示大小。", - "pricingDetails": "有关更多信息,请参阅定价详情。" + "pricingDetails": "有关更多信息,请参阅定价详情。", + "billingEstimate": "* 计费为估计值 - 具体费用取决于提示大小。" } }, "modelPicker": { diff --git a/webview-ui/src/i18n/locales/zh-TW/settings.json b/webview-ui/src/i18n/locales/zh-TW/settings.json index 5b6b63906ee..3c2e634fc35 100644 --- a/webview-ui/src/i18n/locales/zh-TW/settings.json +++ b/webview-ui/src/i18n/locales/zh-TW/settings.json @@ -369,7 +369,8 @@ "azureApiVersion": "設定 Azure API 版本", "gemini": { "freeRequests": "* 每分鐘可免費使用 {{count}} 次請求,超過後將依提示大小計費。", - "pricingDetails": "詳細資訊請參閱定價說明。" + "pricingDetails": "詳細資訊請參閱定價說明。", + "billingEstimate": "* 費用為估算值 - 實際費用取決於提示大小。" } }, "modelPicker": {