mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-09-11 22:51:26 +00:00
Add Sonnet 1M context checkbox (#7032)
This commit is contained in:
parent
4c018663de
commit
13d1a5bc8f
24 changed files with 343 additions and 4 deletions
|
|
@ -3,6 +3,9 @@ import { z } from "zod"
|
|||
import { reasoningEffortsSchema, verbosityLevelsSchema, modelInfoSchema } from "./model.js"
|
||||
import { codebaseIndexProviderSchema } from "./codebase-index.js"
|
||||
|
||||
// Bedrock Claude Sonnet 4 model ID that supports 1M context
|
||||
export const BEDROCK_CLAUDE_SONNET_4_MODEL_ID = "anthropic.claude-sonnet-4-20250514-v1:0"
|
||||
|
||||
// Extended schema that includes "minimal" for GPT-5 models
|
||||
export const extendedReasoningEffortsSchema = z.union([reasoningEffortsSchema, z.literal("minimal")])
|
||||
|
||||
|
|
@ -135,6 +138,7 @@ const bedrockSchema = apiModelIdProviderModelSchema.extend({
|
|||
awsModelContextWindow: z.number().optional(),
|
||||
awsBedrockEndpointEnabled: z.boolean().optional(),
|
||||
awsBedrockEndpoint: z.string().optional(),
|
||||
awsBedrock1MContext: z.boolean().optional(), // Enable 'context-1m-2025-08-07' beta for 1M context window
|
||||
})
|
||||
|
||||
const vertexSchema = apiModelIdProviderModelSchema.extend({
|
||||
|
|
|
|||
|
|
@ -25,6 +25,7 @@ vi.mock("@aws-sdk/client-bedrock-runtime", () => {
|
|||
|
||||
import { AwsBedrockHandler } from "../bedrock"
|
||||
import { ConverseStreamCommand, BedrockRuntimeClient } from "@aws-sdk/client-bedrock-runtime"
|
||||
import { BEDROCK_CLAUDE_SONNET_4_MODEL_ID } from "@roo-code/types"
|
||||
|
||||
import type { Anthropic } from "@anthropic-ai/sdk"
|
||||
|
||||
|
|
@ -564,4 +565,184 @@ describe("AwsBedrockHandler", () => {
|
|||
expect(typeof model.info.supportsPromptCache).toBe("boolean")
|
||||
})
|
||||
})
|
||||
|
||||
describe("1M context beta feature", () => {
|
||||
it("should enable 1M context window when awsBedrock1MContext is true for Claude Sonnet 4", () => {
|
||||
const handler = new AwsBedrockHandler({
|
||||
apiModelId: BEDROCK_CLAUDE_SONNET_4_MODEL_ID,
|
||||
awsAccessKey: "test",
|
||||
awsSecretKey: "test",
|
||||
awsRegion: "us-east-1",
|
||||
awsBedrock1MContext: true,
|
||||
})
|
||||
|
||||
const model = handler.getModel()
|
||||
|
||||
// Should have 1M context window when enabled
|
||||
expect(model.info.contextWindow).toBe(1_000_000)
|
||||
})
|
||||
|
||||
it("should use default context window when awsBedrock1MContext is false for Claude Sonnet 4", () => {
|
||||
const handler = new AwsBedrockHandler({
|
||||
apiModelId: BEDROCK_CLAUDE_SONNET_4_MODEL_ID,
|
||||
awsAccessKey: "test",
|
||||
awsSecretKey: "test",
|
||||
awsRegion: "us-east-1",
|
||||
awsBedrock1MContext: false,
|
||||
})
|
||||
|
||||
const model = handler.getModel()
|
||||
|
||||
// Should use default context window (200k)
|
||||
expect(model.info.contextWindow).toBe(200_000)
|
||||
})
|
||||
|
||||
it("should not affect context window for non-Claude Sonnet 4 models", () => {
|
||||
const handler = new AwsBedrockHandler({
|
||||
apiModelId: "anthropic.claude-3-5-sonnet-20241022-v2:0",
|
||||
awsAccessKey: "test",
|
||||
awsSecretKey: "test",
|
||||
awsRegion: "us-east-1",
|
||||
awsBedrock1MContext: true,
|
||||
})
|
||||
|
||||
const model = handler.getModel()
|
||||
|
||||
// Should use default context window for non-Sonnet 4 models
|
||||
expect(model.info.contextWindow).toBe(200_000)
|
||||
})
|
||||
|
||||
it("should include anthropic_beta parameter when 1M context is enabled", async () => {
|
||||
const handler = new AwsBedrockHandler({
|
||||
apiModelId: BEDROCK_CLAUDE_SONNET_4_MODEL_ID,
|
||||
awsAccessKey: "test",
|
||||
awsSecretKey: "test",
|
||||
awsRegion: "us-east-1",
|
||||
awsBedrock1MContext: true,
|
||||
})
|
||||
|
||||
const messages: Anthropic.Messages.MessageParam[] = [
|
||||
{
|
||||
role: "user",
|
||||
content: "Test message",
|
||||
},
|
||||
]
|
||||
|
||||
const generator = handler.createMessage("", messages)
|
||||
await generator.next() // Start the generator
|
||||
|
||||
// Verify the command was created with the right payload
|
||||
expect(mockConverseStreamCommand).toHaveBeenCalled()
|
||||
const commandArg = mockConverseStreamCommand.mock.calls[0][0] as any
|
||||
|
||||
// Should include anthropic_beta parameter but NOT anthropic_version (only for thinking)
|
||||
expect(commandArg.anthropic_beta).toEqual(["context-1m-2025-08-07"])
|
||||
expect(commandArg.anthropic_version).toBeUndefined()
|
||||
})
|
||||
|
||||
it("should not include anthropic_beta parameter when 1M context is disabled", async () => {
|
||||
const handler = new AwsBedrockHandler({
|
||||
apiModelId: BEDROCK_CLAUDE_SONNET_4_MODEL_ID,
|
||||
awsAccessKey: "test",
|
||||
awsSecretKey: "test",
|
||||
awsRegion: "us-east-1",
|
||||
awsBedrock1MContext: false,
|
||||
})
|
||||
|
||||
const messages: Anthropic.Messages.MessageParam[] = [
|
||||
{
|
||||
role: "user",
|
||||
content: "Test message",
|
||||
},
|
||||
]
|
||||
|
||||
const generator = handler.createMessage("", messages)
|
||||
await generator.next() // Start the generator
|
||||
|
||||
// Verify the command was created with the right payload
|
||||
expect(mockConverseStreamCommand).toHaveBeenCalled()
|
||||
const commandArg = mockConverseStreamCommand.mock.calls[0][0] as any
|
||||
|
||||
// Should not include anthropic_beta parameter
|
||||
expect(commandArg.anthropic_beta).toBeUndefined()
|
||||
})
|
||||
|
||||
it("should not include anthropic_beta parameter for non-Claude Sonnet 4 models", async () => {
|
||||
const handler = new AwsBedrockHandler({
|
||||
apiModelId: "anthropic.claude-3-5-sonnet-20241022-v2:0",
|
||||
awsAccessKey: "test",
|
||||
awsSecretKey: "test",
|
||||
awsRegion: "us-east-1",
|
||||
awsBedrock1MContext: true,
|
||||
})
|
||||
|
||||
const messages: Anthropic.Messages.MessageParam[] = [
|
||||
{
|
||||
role: "user",
|
||||
content: "Test message",
|
||||
},
|
||||
]
|
||||
|
||||
const generator = handler.createMessage("", messages)
|
||||
await generator.next() // Start the generator
|
||||
|
||||
// Verify the command was created with the right payload
|
||||
expect(mockConverseStreamCommand).toHaveBeenCalled()
|
||||
const commandArg = mockConverseStreamCommand.mock.calls[0][0] as any
|
||||
|
||||
// Should not include anthropic_beta parameter for non-Sonnet 4 models
|
||||
expect(commandArg.anthropic_beta).toBeUndefined()
|
||||
})
|
||||
|
||||
it("should enable 1M context window with cross-region inference for Claude Sonnet 4", () => {
|
||||
const handler = new AwsBedrockHandler({
|
||||
apiModelId: BEDROCK_CLAUDE_SONNET_4_MODEL_ID,
|
||||
awsAccessKey: "test",
|
||||
awsSecretKey: "test",
|
||||
awsRegion: "us-east-1",
|
||||
awsUseCrossRegionInference: true,
|
||||
awsBedrock1MContext: true,
|
||||
})
|
||||
|
||||
const model = handler.getModel()
|
||||
|
||||
// Should have 1M context window even with cross-region prefix
|
||||
expect(model.info.contextWindow).toBe(1_000_000)
|
||||
// Model ID should have cross-region prefix
|
||||
expect(model.id).toBe(`us.${BEDROCK_CLAUDE_SONNET_4_MODEL_ID}`)
|
||||
})
|
||||
|
||||
it("should include anthropic_beta parameter with cross-region inference for Claude Sonnet 4", async () => {
|
||||
const handler = new AwsBedrockHandler({
|
||||
apiModelId: BEDROCK_CLAUDE_SONNET_4_MODEL_ID,
|
||||
awsAccessKey: "test",
|
||||
awsSecretKey: "test",
|
||||
awsRegion: "us-east-1",
|
||||
awsUseCrossRegionInference: true,
|
||||
awsBedrock1MContext: true,
|
||||
})
|
||||
|
||||
const messages: Anthropic.Messages.MessageParam[] = [
|
||||
{
|
||||
role: "user",
|
||||
content: "Test message",
|
||||
},
|
||||
]
|
||||
|
||||
const generator = handler.createMessage("", messages)
|
||||
await generator.next() // Start the generator
|
||||
|
||||
// Verify the command was created with the right payload
|
||||
expect(mockConverseStreamCommand).toHaveBeenCalled()
|
||||
const commandArg = mockConverseStreamCommand.mock.calls[
|
||||
mockConverseStreamCommand.mock.calls.length - 1
|
||||
][0] as any
|
||||
|
||||
// Should include anthropic_beta parameter but NOT anthropic_version (only for thinking)
|
||||
expect(commandArg.anthropic_beta).toEqual(["context-1m-2025-08-07"])
|
||||
expect(commandArg.anthropic_version).toBeUndefined()
|
||||
// Model ID should have cross-region prefix
|
||||
expect(commandArg.modelId).toBe(`us.${BEDROCK_CLAUDE_SONNET_4_MODEL_ID}`)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ import {
|
|||
BEDROCK_MAX_TOKENS,
|
||||
BEDROCK_DEFAULT_CONTEXT,
|
||||
AWS_INFERENCE_PROFILE_MAPPING,
|
||||
BEDROCK_CLAUDE_SONNET_4_MODEL_ID,
|
||||
} from "@roo-code/types"
|
||||
|
||||
import { ApiStream } from "../transform/stream"
|
||||
|
|
@ -62,6 +63,7 @@ interface BedrockPayload {
|
|||
system?: SystemContentBlock[]
|
||||
inferenceConfig: BedrockInferenceConfig
|
||||
anthropic_version?: string
|
||||
anthropic_beta?: string[]
|
||||
additionalModelRequestFields?: BedrockThinkingConfig
|
||||
}
|
||||
|
||||
|
|
@ -375,6 +377,11 @@ export class AwsBedrockHandler extends BaseProvider implements SingleCompletionH
|
|||
inferenceConfig.topP = 0.1
|
||||
}
|
||||
|
||||
// Check if 1M context is enabled for Claude Sonnet 4
|
||||
// Use parseBaseModelId to handle cross-region inference prefixes
|
||||
const baseModelId = this.parseBaseModelId(modelConfig.id)
|
||||
const is1MContextEnabled = baseModelId === BEDROCK_CLAUDE_SONNET_4_MODEL_ID && this.options.awsBedrock1MContext
|
||||
|
||||
const payload: BedrockPayload = {
|
||||
modelId: modelConfig.id,
|
||||
messages: formatted.messages,
|
||||
|
|
@ -383,6 +390,8 @@ export class AwsBedrockHandler extends BaseProvider implements SingleCompletionH
|
|||
...(additionalModelRequestFields && { additionalModelRequestFields }),
|
||||
// Add anthropic_version when using thinking features
|
||||
...(thinkingEnabled && { anthropic_version: "bedrock-2023-05-31" }),
|
||||
// Add anthropic_beta when 1M context is enabled
|
||||
...(is1MContextEnabled && { anthropic_beta: ["context-1m-2025-08-07"] }),
|
||||
}
|
||||
|
||||
// Create AbortController with 10 minute timeout
|
||||
|
|
@ -960,6 +969,17 @@ export class AwsBedrockHandler extends BaseProvider implements SingleCompletionH
|
|||
}
|
||||
}
|
||||
|
||||
// Check if 1M context is enabled for Claude Sonnet 4
|
||||
// Use parseBaseModelId to handle cross-region inference prefixes
|
||||
const baseModelId = this.parseBaseModelId(modelConfig.id)
|
||||
if (baseModelId === BEDROCK_CLAUDE_SONNET_4_MODEL_ID && this.options.awsBedrock1MContext) {
|
||||
// Update context window to 1M tokens when 1M context beta is enabled
|
||||
modelConfig.info = {
|
||||
...modelConfig.info,
|
||||
contextWindow: 1_000_000,
|
||||
}
|
||||
}
|
||||
|
||||
// Get model params including reasoning configuration
|
||||
const params = getModelParams({
|
||||
format: "anthropic",
|
||||
|
|
|
|||
|
|
@ -2,7 +2,12 @@ import { useCallback, useState, useEffect } from "react"
|
|||
import { Checkbox } from "vscrui"
|
||||
import { VSCodeTextField } from "@vscode/webview-ui-toolkit/react"
|
||||
|
||||
import { type ProviderSettings, type ModelInfo, BEDROCK_REGIONS } from "@roo-code/types"
|
||||
import {
|
||||
type ProviderSettings,
|
||||
type ModelInfo,
|
||||
BEDROCK_REGIONS,
|
||||
BEDROCK_CLAUDE_SONNET_4_MODEL_ID,
|
||||
} from "@roo-code/types"
|
||||
|
||||
import { useAppTranslation } from "@src/i18n/TranslationContext"
|
||||
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, StandardTooltip } from "@src/components/ui"
|
||||
|
|
@ -19,6 +24,9 @@ export const Bedrock = ({ apiConfiguration, setApiConfigurationField, selectedMo
|
|||
const { t } = useAppTranslation()
|
||||
const [awsEndpointSelected, setAwsEndpointSelected] = useState(!!apiConfiguration?.awsBedrockEndpointEnabled)
|
||||
|
||||
// Check if the selected model supports 1M context (Claude Sonnet 4)
|
||||
const supports1MContextBeta = apiConfiguration?.apiModelId === BEDROCK_CLAUDE_SONNET_4_MODEL_ID
|
||||
|
||||
// Update the endpoint enabled state when the configuration changes
|
||||
useEffect(() => {
|
||||
setAwsEndpointSelected(!!apiConfiguration?.awsBedrockEndpointEnabled)
|
||||
|
|
@ -159,6 +167,20 @@ export const Bedrock = ({ apiConfiguration, setApiConfigurationField, selectedMo
|
|||
</div>
|
||||
</>
|
||||
)}
|
||||
{supports1MContextBeta && (
|
||||
<div>
|
||||
<Checkbox
|
||||
checked={apiConfiguration?.awsBedrock1MContext ?? false}
|
||||
onChange={(checked: boolean) => {
|
||||
setApiConfigurationField("awsBedrock1MContext", checked)
|
||||
}}>
|
||||
{t("settings:providers.awsBedrock1MContextBetaLabel")}
|
||||
</Checkbox>
|
||||
<div className="text-sm text-vscode-descriptionForeground mt-1 ml-6">
|
||||
{t("settings:providers.awsBedrock1MContextBetaDescription")}
|
||||
</div>
|
||||
</div>
|
||||
)}
|
||||
<Checkbox
|
||||
checked={awsEndpointSelected}
|
||||
onChange={(isChecked) => {
|
||||
|
|
|
|||
|
|
@ -5,7 +5,7 @@ import { QueryClient, QueryClientProvider } from "@tanstack/react-query"
|
|||
import { renderHook } from "@testing-library/react"
|
||||
import type { Mock } from "vitest"
|
||||
|
||||
import { ProviderSettings, ModelInfo } from "@roo-code/types"
|
||||
import { ProviderSettings, ModelInfo, BEDROCK_CLAUDE_SONNET_4_MODEL_ID } from "@roo-code/types"
|
||||
|
||||
import { useSelectedModel } from "../useSelectedModel"
|
||||
import { useRouterModels } from "../useRouterModels"
|
||||
|
|
@ -448,4 +448,69 @@ describe("useSelectedModel", () => {
|
|||
expect(result.current.info?.supportsImages).toBe(false)
|
||||
})
|
||||
})
|
||||
|
||||
describe("bedrock provider with 1M context", () => {
|
||||
beforeEach(() => {
|
||||
mockUseRouterModels.mockReturnValue({
|
||||
data: {
|
||||
openrouter: {},
|
||||
requesty: {},
|
||||
glama: {},
|
||||
unbound: {},
|
||||
litellm: {},
|
||||
"io-intelligence": {},
|
||||
},
|
||||
isLoading: false,
|
||||
isError: false,
|
||||
} as any)
|
||||
|
||||
mockUseOpenRouterModelProviders.mockReturnValue({
|
||||
data: {},
|
||||
isLoading: false,
|
||||
isError: false,
|
||||
} as any)
|
||||
})
|
||||
|
||||
it("should enable 1M context window for Bedrock Claude Sonnet 4 when awsBedrock1MContext is true", () => {
|
||||
const apiConfiguration: ProviderSettings = {
|
||||
apiProvider: "bedrock",
|
||||
apiModelId: BEDROCK_CLAUDE_SONNET_4_MODEL_ID,
|
||||
awsBedrock1MContext: true,
|
||||
}
|
||||
|
||||
const wrapper = createWrapper()
|
||||
const { result } = renderHook(() => useSelectedModel(apiConfiguration), { wrapper })
|
||||
|
||||
expect(result.current.id).toBe(BEDROCK_CLAUDE_SONNET_4_MODEL_ID)
|
||||
expect(result.current.info?.contextWindow).toBe(1_000_000)
|
||||
})
|
||||
|
||||
it("should use default context window for Bedrock Claude Sonnet 4 when awsBedrock1MContext is false", () => {
|
||||
const apiConfiguration: ProviderSettings = {
|
||||
apiProvider: "bedrock",
|
||||
apiModelId: BEDROCK_CLAUDE_SONNET_4_MODEL_ID,
|
||||
awsBedrock1MContext: false,
|
||||
}
|
||||
|
||||
const wrapper = createWrapper()
|
||||
const { result } = renderHook(() => useSelectedModel(apiConfiguration), { wrapper })
|
||||
|
||||
expect(result.current.id).toBe(BEDROCK_CLAUDE_SONNET_4_MODEL_ID)
|
||||
expect(result.current.info?.contextWindow).toBe(200_000)
|
||||
})
|
||||
|
||||
it("should not affect context window for non-Claude Sonnet 4 Bedrock models", () => {
|
||||
const apiConfiguration: ProviderSettings = {
|
||||
apiProvider: "bedrock",
|
||||
apiModelId: "anthropic.claude-3-5-sonnet-20241022-v2:0",
|
||||
awsBedrock1MContext: true,
|
||||
}
|
||||
|
||||
const wrapper = createWrapper()
|
||||
const { result } = renderHook(() => useSelectedModel(apiConfiguration), { wrapper })
|
||||
|
||||
expect(result.current.id).toBe("anthropic.claude-3-5-sonnet-20241022-v2:0")
|
||||
expect(result.current.info?.contextWindow).toBe(200_000)
|
||||
})
|
||||
})
|
||||
})
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@ import {
|
|||
fireworksDefaultModelId,
|
||||
ioIntelligenceDefaultModelId,
|
||||
ioIntelligenceModels,
|
||||
BEDROCK_CLAUDE_SONNET_4_MODEL_ID,
|
||||
} from "@roo-code/types"
|
||||
|
||||
import type { ModelRecord, RouterModels } from "@roo/api"
|
||||
|
|
@ -174,7 +175,7 @@ function getSelectedModel({
|
|||
}
|
||||
case "bedrock": {
|
||||
const id = apiConfiguration.apiModelId ?? bedrockDefaultModelId
|
||||
const info = bedrockModels[id as keyof typeof bedrockModels]
|
||||
const baseInfo = bedrockModels[id as keyof typeof bedrockModels]
|
||||
|
||||
// Special case for custom ARN.
|
||||
if (id === "custom-arn") {
|
||||
|
|
@ -184,7 +185,17 @@ function getSelectedModel({
|
|||
}
|
||||
}
|
||||
|
||||
return { id, info }
|
||||
// Apply 1M context for Claude Sonnet 4 when enabled
|
||||
if (id === BEDROCK_CLAUDE_SONNET_4_MODEL_ID && apiConfiguration.awsBedrock1MContext && baseInfo) {
|
||||
// Create a new ModelInfo object with updated context window
|
||||
const info: ModelInfo = {
|
||||
...baseInfo,
|
||||
contextWindow: 1_000_000,
|
||||
}
|
||||
return { id, info }
|
||||
}
|
||||
|
||||
return { id, info: baseInfo }
|
||||
}
|
||||
case "vertex": {
|
||||
const id = apiConfiguration.apiModelId ?? vertexDefaultModelId
|
||||
|
|
|
|||
2
webview-ui/src/i18n/locales/ca/settings.json
generated
2
webview-ui/src/i18n/locales/ca/settings.json
generated
|
|
@ -261,6 +261,8 @@
|
|||
"anthropicUseAuthToken": "Passar la clau API d'Anthropic com a capçalera d'autorització en lloc de X-Api-Key",
|
||||
"anthropic1MContextBetaLabel": "Activa la finestra de context d'1M (Beta)",
|
||||
"anthropic1MContextBetaDescription": "Amplia la finestra de context a 1 milió de tokens per a Claude Sonnet 4",
|
||||
"awsBedrock1MContextBetaLabel": "Activa la finestra de context d'1M (Beta)",
|
||||
"awsBedrock1MContextBetaDescription": "Amplia la finestra de context a 1 milió de tokens per a Claude Sonnet 4",
|
||||
"cerebrasApiKey": "Clau API de Cerebras",
|
||||
"getCerebrasApiKey": "Obtenir clau API de Cerebras",
|
||||
"chutesApiKey": "Clau API de Chutes",
|
||||
|
|
|
|||
2
webview-ui/src/i18n/locales/de/settings.json
generated
2
webview-ui/src/i18n/locales/de/settings.json
generated
|
|
@ -263,6 +263,8 @@
|
|||
"anthropicUseAuthToken": "Anthropic API-Schlüssel als Authorization-Header anstelle von X-Api-Key übergeben",
|
||||
"anthropic1MContextBetaLabel": "1M Kontextfenster aktivieren (Beta)",
|
||||
"anthropic1MContextBetaDescription": "Erweitert das Kontextfenster für Claude Sonnet 4 auf 1 Million Token",
|
||||
"awsBedrock1MContextBetaLabel": "1M Kontextfenster aktivieren (Beta)",
|
||||
"awsBedrock1MContextBetaDescription": "Erweitert das Kontextfenster für Claude Sonnet 4 auf 1 Million Token",
|
||||
"cerebrasApiKey": "Cerebras API-Schlüssel",
|
||||
"getCerebrasApiKey": "Cerebras API-Schlüssel erhalten",
|
||||
"chutesApiKey": "Chutes API-Schlüssel",
|
||||
|
|
|
|||
|
|
@ -260,6 +260,8 @@
|
|||
"anthropicUseAuthToken": "Pass Anthropic API Key as Authorization header instead of X-Api-Key",
|
||||
"anthropic1MContextBetaLabel": "Enable 1M context window (Beta)",
|
||||
"anthropic1MContextBetaDescription": "Extends context window to 1 million tokens for Claude Sonnet 4",
|
||||
"awsBedrock1MContextBetaLabel": "Enable 1M context window (Beta)",
|
||||
"awsBedrock1MContextBetaDescription": "Extends context window to 1 million tokens for Claude Sonnet 4",
|
||||
"cerebrasApiKey": "Cerebras API Key",
|
||||
"getCerebrasApiKey": "Get Cerebras API Key",
|
||||
"chutesApiKey": "Chutes API Key",
|
||||
|
|
|
|||
2
webview-ui/src/i18n/locales/es/settings.json
generated
2
webview-ui/src/i18n/locales/es/settings.json
generated
|
|
@ -261,6 +261,8 @@
|
|||
"anthropicUseAuthToken": "Pasar la clave API de Anthropic como encabezado de autorización en lugar de X-Api-Key",
|
||||
"anthropic1MContextBetaLabel": "Habilitar ventana de contexto de 1M (Beta)",
|
||||
"anthropic1MContextBetaDescription": "Amplía la ventana de contexto a 1 millón de tokens para Claude Sonnet 4",
|
||||
"awsBedrock1MContextBetaLabel": "Habilitar ventana de contexto de 1M (Beta)",
|
||||
"awsBedrock1MContextBetaDescription": "Amplía la ventana de contexto a 1 millón de tokens para Claude Sonnet 4",
|
||||
"cerebrasApiKey": "Clave API de Cerebras",
|
||||
"getCerebrasApiKey": "Obtener clave API de Cerebras",
|
||||
"chutesApiKey": "Clave API de Chutes",
|
||||
|
|
|
|||
2
webview-ui/src/i18n/locales/fr/settings.json
generated
2
webview-ui/src/i18n/locales/fr/settings.json
generated
|
|
@ -261,6 +261,8 @@
|
|||
"anthropicUseAuthToken": "Passer la clé API Anthropic comme en-tête d'autorisation au lieu de X-Api-Key",
|
||||
"anthropic1MContextBetaLabel": "Activer la fenêtre de contexte de 1M (Bêta)",
|
||||
"anthropic1MContextBetaDescription": "Étend la fenêtre de contexte à 1 million de tokens pour Claude Sonnet 4",
|
||||
"awsBedrock1MContextBetaLabel": "Activer la fenêtre de contexte de 1M (Bêta)",
|
||||
"awsBedrock1MContextBetaDescription": "Étend la fenêtre de contexte à 1 million de tokens pour Claude Sonnet 4",
|
||||
"cerebrasApiKey": "Clé API Cerebras",
|
||||
"getCerebrasApiKey": "Obtenir la clé API Cerebras",
|
||||
"chutesApiKey": "Clé API Chutes",
|
||||
|
|
|
|||
2
webview-ui/src/i18n/locales/hi/settings.json
generated
2
webview-ui/src/i18n/locales/hi/settings.json
generated
|
|
@ -261,6 +261,8 @@
|
|||
"anthropicUseAuthToken": "X-Api-Key के बजाय Anthropic API कुंजी को Authorization हेडर के रूप में पास करें",
|
||||
"anthropic1MContextBetaLabel": "1M संदर्भ विंडो सक्षम करें (बीटा)",
|
||||
"anthropic1MContextBetaDescription": "Claude Sonnet 4 के लिए संदर्भ विंडो को 1 मिलियन टोकन तक बढ़ाता है",
|
||||
"awsBedrock1MContextBetaLabel": "1M संदर्भ विंडो सक्षम करें (बीटा)",
|
||||
"awsBedrock1MContextBetaDescription": "Claude Sonnet 4 के लिए संदर्भ विंडो को 1 मिलियन टोकन तक बढ़ाता है",
|
||||
"cerebrasApiKey": "Cerebras API कुंजी",
|
||||
"getCerebrasApiKey": "Cerebras API कुंजी प्राप्त करें",
|
||||
"chutesApiKey": "Chutes API कुंजी",
|
||||
|
|
|
|||
2
webview-ui/src/i18n/locales/id/settings.json
generated
2
webview-ui/src/i18n/locales/id/settings.json
generated
|
|
@ -265,6 +265,8 @@
|
|||
"anthropicUseAuthToken": "Kirim Anthropic API Key sebagai Authorization header alih-alih X-Api-Key",
|
||||
"anthropic1MContextBetaLabel": "Aktifkan jendela konteks 1M (Beta)",
|
||||
"anthropic1MContextBetaDescription": "Memperluas jendela konteks menjadi 1 juta token untuk Claude Sonnet 4",
|
||||
"awsBedrock1MContextBetaLabel": "Aktifkan jendela konteks 1M (Beta)",
|
||||
"awsBedrock1MContextBetaDescription": "Memperluas jendela konteks menjadi 1 juta token untuk Claude Sonnet 4",
|
||||
"cerebrasApiKey": "Cerebras API Key",
|
||||
"getCerebrasApiKey": "Dapatkan Cerebras API Key",
|
||||
"chutesApiKey": "Chutes API Key",
|
||||
|
|
|
|||
2
webview-ui/src/i18n/locales/it/settings.json
generated
2
webview-ui/src/i18n/locales/it/settings.json
generated
|
|
@ -261,6 +261,8 @@
|
|||
"anthropicUseAuthToken": "Passa la chiave API Anthropic come header di autorizzazione invece di X-Api-Key",
|
||||
"anthropic1MContextBetaLabel": "Abilita finestra di contesto da 1M (Beta)",
|
||||
"anthropic1MContextBetaDescription": "Estende la finestra di contesto a 1 milione di token per Claude Sonnet 4",
|
||||
"awsBedrock1MContextBetaLabel": "Abilita finestra di contesto da 1M (Beta)",
|
||||
"awsBedrock1MContextBetaDescription": "Estende la finestra di contesto a 1 milione di token per Claude Sonnet 4",
|
||||
"cerebrasApiKey": "Chiave API Cerebras",
|
||||
"getCerebrasApiKey": "Ottieni chiave API Cerebras",
|
||||
"chutesApiKey": "Chiave API Chutes",
|
||||
|
|
|
|||
2
webview-ui/src/i18n/locales/ja/settings.json
generated
2
webview-ui/src/i18n/locales/ja/settings.json
generated
|
|
@ -261,6 +261,8 @@
|
|||
"anthropicUseAuthToken": "Anthropic APIキーをX-Api-Keyの代わりにAuthorizationヘッダーとして渡す",
|
||||
"anthropic1MContextBetaLabel": "1Mコンテキストウィンドウを有効にする(ベータ版)",
|
||||
"anthropic1MContextBetaDescription": "Claude Sonnet 4のコンテキストウィンドウを100万トークンに拡張します",
|
||||
"awsBedrock1MContextBetaLabel": "1Mコンテキストウィンドウを有効にする(ベータ版)",
|
||||
"awsBedrock1MContextBetaDescription": "Claude Sonnet 4のコンテキストウィンドウを100万トークンに拡張します",
|
||||
"cerebrasApiKey": "Cerebras APIキー",
|
||||
"getCerebrasApiKey": "Cerebras APIキーを取得",
|
||||
"chutesApiKey": "Chutes APIキー",
|
||||
|
|
|
|||
2
webview-ui/src/i18n/locales/ko/settings.json
generated
2
webview-ui/src/i18n/locales/ko/settings.json
generated
|
|
@ -261,6 +261,8 @@
|
|||
"anthropicUseAuthToken": "X-Api-Key 대신 Authorization 헤더로 Anthropic API 키 전달",
|
||||
"anthropic1MContextBetaLabel": "1M 컨텍스트 창 활성화 (베타)",
|
||||
"anthropic1MContextBetaDescription": "Claude Sonnet 4의 컨텍스트 창을 100만 토큰으로 확장",
|
||||
"awsBedrock1MContextBetaLabel": "1M 컨텍스트 창 활성화 (베타)",
|
||||
"awsBedrock1MContextBetaDescription": "Claude Sonnet 4의 컨텍스트 창을 100만 토큰으로 확장",
|
||||
"cerebrasApiKey": "Cerebras API 키",
|
||||
"getCerebrasApiKey": "Cerebras API 키 가져오기",
|
||||
"chutesApiKey": "Chutes API 키",
|
||||
|
|
|
|||
2
webview-ui/src/i18n/locales/nl/settings.json
generated
2
webview-ui/src/i18n/locales/nl/settings.json
generated
|
|
@ -261,6 +261,8 @@
|
|||
"anthropicUseAuthToken": "Anthropic API-sleutel als Authorization-header doorgeven in plaats van X-Api-Key",
|
||||
"anthropic1MContextBetaLabel": "1M contextvenster inschakelen (bèta)",
|
||||
"anthropic1MContextBetaDescription": "Breidt het contextvenster uit tot 1 miljoen tokens voor Claude Sonnet 4",
|
||||
"awsBedrock1MContextBetaLabel": "1M contextvenster inschakelen (bèta)",
|
||||
"awsBedrock1MContextBetaDescription": "Breidt het contextvenster uit tot 1 miljoen tokens voor Claude Sonnet 4",
|
||||
"cerebrasApiKey": "Cerebras API-sleutel",
|
||||
"getCerebrasApiKey": "Cerebras API-sleutel verkrijgen",
|
||||
"chutesApiKey": "Chutes API-sleutel",
|
||||
|
|
|
|||
2
webview-ui/src/i18n/locales/pl/settings.json
generated
2
webview-ui/src/i18n/locales/pl/settings.json
generated
|
|
@ -261,6 +261,8 @@
|
|||
"anthropicUseAuthToken": "Przekaż klucz API Anthropic jako nagłówek Authorization zamiast X-Api-Key",
|
||||
"anthropic1MContextBetaLabel": "Włącz okno kontekstowe 1M (Beta)",
|
||||
"anthropic1MContextBetaDescription": "Rozszerza okno kontekstowe do 1 miliona tokenów dla Claude Sonnet 4",
|
||||
"awsBedrock1MContextBetaLabel": "Włącz okno kontekstowe 1M (Beta)",
|
||||
"awsBedrock1MContextBetaDescription": "Rozszerza okno kontekstowe do 1 miliona tokenów dla Claude Sonnet 4",
|
||||
"cerebrasApiKey": "Klucz API Cerebras",
|
||||
"getCerebrasApiKey": "Pobierz klucz API Cerebras",
|
||||
"chutesApiKey": "Klucz API Chutes",
|
||||
|
|
|
|||
2
webview-ui/src/i18n/locales/pt-BR/settings.json
generated
2
webview-ui/src/i18n/locales/pt-BR/settings.json
generated
|
|
@ -261,6 +261,8 @@
|
|||
"anthropicUseAuthToken": "Passar a chave de API Anthropic como cabeçalho Authorization em vez de X-Api-Key",
|
||||
"anthropic1MContextBetaLabel": "Ativar janela de contexto de 1M (Beta)",
|
||||
"anthropic1MContextBetaDescription": "Estende a janela de contexto para 1 milhão de tokens para o Claude Sonnet 4",
|
||||
"awsBedrock1MContextBetaLabel": "Ativar janela de contexto de 1M (Beta)",
|
||||
"awsBedrock1MContextBetaDescription": "Estende a janela de contexto para 1 milhão de tokens para o Claude Sonnet 4",
|
||||
"cerebrasApiKey": "Chave de API Cerebras",
|
||||
"getCerebrasApiKey": "Obter chave de API Cerebras",
|
||||
"chutesApiKey": "Chave de API Chutes",
|
||||
|
|
|
|||
2
webview-ui/src/i18n/locales/ru/settings.json
generated
2
webview-ui/src/i18n/locales/ru/settings.json
generated
|
|
@ -261,6 +261,8 @@
|
|||
"anthropicUseAuthToken": "Передавать Anthropic API-ключ как Authorization-заголовок вместо X-Api-Key",
|
||||
"anthropic1MContextBetaLabel": "Включить контекстное окно 1M (бета)",
|
||||
"anthropic1MContextBetaDescription": "Расширяет контекстное окно до 1 миллиона токенов для Claude Sonnet 4",
|
||||
"awsBedrock1MContextBetaLabel": "Включить контекстное окно 1M (бета)",
|
||||
"awsBedrock1MContextBetaDescription": "Расширяет контекстное окно до 1 миллиона токенов для Claude Sonnet 4",
|
||||
"cerebrasApiKey": "Cerebras API-ключ",
|
||||
"getCerebrasApiKey": "Получить Cerebras API-ключ",
|
||||
"chutesApiKey": "Chutes API-ключ",
|
||||
|
|
|
|||
2
webview-ui/src/i18n/locales/tr/settings.json
generated
2
webview-ui/src/i18n/locales/tr/settings.json
generated
|
|
@ -261,6 +261,8 @@
|
|||
"anthropicUseAuthToken": "Anthropic API Anahtarını X-Api-Key yerine Authorization başlığı olarak geçir",
|
||||
"anthropic1MContextBetaLabel": "1M bağlam penceresini etkinleştir (Beta)",
|
||||
"anthropic1MContextBetaDescription": "Claude Sonnet 4 için bağlam penceresini 1 milyon token'a genişletir",
|
||||
"awsBedrock1MContextBetaLabel": "1M bağlam penceresini etkinleştir (Beta)",
|
||||
"awsBedrock1MContextBetaDescription": "Claude Sonnet 4 için bağlam penceresini 1 milyon token'a genişletir",
|
||||
"cerebrasApiKey": "Cerebras API Anahtarı",
|
||||
"getCerebrasApiKey": "Cerebras API Anahtarını Al",
|
||||
"chutesApiKey": "Chutes API Anahtarı",
|
||||
|
|
|
|||
2
webview-ui/src/i18n/locales/vi/settings.json
generated
2
webview-ui/src/i18n/locales/vi/settings.json
generated
|
|
@ -261,6 +261,8 @@
|
|||
"anthropicUseAuthToken": "Truyền khóa API Anthropic dưới dạng tiêu đề Authorization thay vì X-Api-Key",
|
||||
"anthropic1MContextBetaLabel": "Bật cửa sổ ngữ cảnh 1M (Beta)",
|
||||
"anthropic1MContextBetaDescription": "Mở rộng cửa sổ ngữ cảnh lên 1 triệu token cho Claude Sonnet 4",
|
||||
"awsBedrock1MContextBetaLabel": "Bật cửa sổ ngữ cảnh 1M (Beta)",
|
||||
"awsBedrock1MContextBetaDescription": "Mở rộng cửa sổ ngữ cảnh lên 1 triệu token cho Claude Sonnet 4",
|
||||
"cerebrasApiKey": "Khóa API Cerebras",
|
||||
"getCerebrasApiKey": "Lấy khóa API Cerebras",
|
||||
"chutesApiKey": "Khóa API Chutes",
|
||||
|
|
|
|||
2
webview-ui/src/i18n/locales/zh-CN/settings.json
generated
2
webview-ui/src/i18n/locales/zh-CN/settings.json
generated
|
|
@ -261,6 +261,8 @@
|
|||
"anthropicUseAuthToken": "将 Anthropic API 密钥作为 Authorization 标头传递,而不是 X-Api-Key",
|
||||
"anthropic1MContextBetaLabel": "启用 1M 上下文窗口 (Beta)",
|
||||
"anthropic1MContextBetaDescription": "为 Claude Sonnet 4 将上下文窗口扩展至 100 万个 token",
|
||||
"awsBedrock1MContextBetaLabel": "启用 1M 上下文窗口 (Beta)",
|
||||
"awsBedrock1MContextBetaDescription": "为 Claude Sonnet 4 将上下文窗口扩展至 100 万个 token",
|
||||
"cerebrasApiKey": "Cerebras API 密钥",
|
||||
"getCerebrasApiKey": "获取 Cerebras API 密钥",
|
||||
"chutesApiKey": "Chutes API 密钥",
|
||||
|
|
|
|||
2
webview-ui/src/i18n/locales/zh-TW/settings.json
generated
2
webview-ui/src/i18n/locales/zh-TW/settings.json
generated
|
|
@ -261,6 +261,8 @@
|
|||
"anthropicUseAuthToken": "將 Anthropic API 金鑰作為 Authorization 標頭傳遞,而非使用 X-Api-Key",
|
||||
"anthropic1MContextBetaLabel": "啟用 1M 上下文視窗 (Beta)",
|
||||
"anthropic1MContextBetaDescription": "為 Claude Sonnet 4 將上下文視窗擴展至 100 萬個 token",
|
||||
"awsBedrock1MContextBetaLabel": "啟用 1M 上下文視窗 (Beta)",
|
||||
"awsBedrock1MContextBetaDescription": "為 Claude Sonnet 4 將上下文視窗擴展至 100 萬個 token",
|
||||
"cerebrasApiKey": "Cerebras API 金鑰",
|
||||
"getCerebrasApiKey": "取得 Cerebras API 金鑰",
|
||||
"chutesApiKey": "Chutes API 金鑰",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue