mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-08-28 05:27:24 +00:00
more translations, mostly settings
This commit is contained in:
parent
4922201c41
commit
b263b6adba
7 changed files with 314 additions and 90 deletions
|
|
@ -32,6 +32,8 @@ import {
|
|||
vertexDefaultModelId,
|
||||
vertexModels,
|
||||
} from "../../../../src/shared/api"
|
||||
import { useTranslation } from "react-i18next"
|
||||
import { Trans } from "react-i18next"
|
||||
import { ExtensionMessage } from "../../../../src/shared/ExtensionMessage"
|
||||
import { useExtensionState } from "../../context/ExtensionStateContext"
|
||||
import { vscode } from "../../utils/vscode"
|
||||
|
|
@ -72,6 +74,7 @@ declare module "vscode" {
|
|||
}
|
||||
|
||||
const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, isPopup }: ApiOptionsProps) => {
|
||||
const { t, ready } = useTranslation("translation", { keyPrefix: "apiOptions", useSuspense: false })
|
||||
const { apiConfiguration, setApiConfiguration, uriScheme } = useExtensionState()
|
||||
const [ollamaModels, setOllamaModels] = useState<string[]>([])
|
||||
const [lmStudioModels, setLmStudioModels] = useState<string[]>([])
|
||||
|
|
@ -144,7 +147,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
value={selectedModelId}
|
||||
onChange={handleInputChange("apiModelId")}
|
||||
style={{ width: "100%" }}>
|
||||
<VSCodeOption value="">Select a model...</VSCodeOption>
|
||||
<VSCodeOption value="">{t("selectModel")}</VSCodeOption>
|
||||
{Object.keys(models).map((modelId) => (
|
||||
<VSCodeOption
|
||||
key={modelId}
|
||||
|
|
@ -165,7 +168,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
<div style={{ display: "flex", flexDirection: "column", gap: 5, marginBottom: isPopup ? -10 : 0 }}>
|
||||
<DropdownContainer className="dropdown-container">
|
||||
<label htmlFor="api-provider">
|
||||
<span style={{ fontWeight: 500 }}>API Provider</span>
|
||||
<span style={{ fontWeight: 500 }}>{t("apiProvider")}</span>
|
||||
</label>
|
||||
<VSCodeDropdown
|
||||
id="api-provider"
|
||||
|
|
@ -183,7 +186,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
<VSCodeOption value="vertex">GCP Vertex AI</VSCodeOption>
|
||||
<VSCodeOption value="bedrock">AWS Bedrock</VSCodeOption>
|
||||
<VSCodeOption value="openai-native">OpenAI</VSCodeOption>
|
||||
<VSCodeOption value="openai">OpenAI Compatible</VSCodeOption>
|
||||
<VSCodeOption value="openai">{t("getCompatibleVendor", { vendor: "OpenAI" })}</VSCodeOption>
|
||||
<VSCodeOption value="vscode-lm">VS Code LM API</VSCodeOption>
|
||||
<VSCodeOption value="lmstudio">LM Studio</VSCodeOption>
|
||||
<VSCodeOption value="ollama">Ollama</VSCodeOption>
|
||||
|
|
@ -197,7 +200,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
style={{ width: "100%" }}
|
||||
type="password"
|
||||
onInput={handleInputChange("apiKey")}
|
||||
placeholder="Enter API Key...">
|
||||
placeholder={t("enterApiKey")}>
|
||||
<span style={{ fontWeight: 500 }}>Anthropic API Key</span>
|
||||
</VSCodeTextField>
|
||||
|
||||
|
|
@ -213,7 +216,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
})
|
||||
}
|
||||
}}>
|
||||
Use custom base URL
|
||||
{t("useCustomBaseUrl")}
|
||||
</VSCodeCheckbox>
|
||||
|
||||
{anthropicBaseUrlSelected && (
|
||||
|
|
@ -232,7 +235,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
marginTop: 3,
|
||||
color: "var(--vscode-descriptionForeground)",
|
||||
}}>
|
||||
This key is stored locally and only used to make API requests from this extension.
|
||||
{t("apiKeyInfo")}
|
||||
{!apiConfiguration?.apiKey && (
|
||||
<VSCodeLink
|
||||
href="https://console.anthropic.com/settings/keys"
|
||||
|
|
@ -240,7 +243,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
display: "inline",
|
||||
fontSize: "inherit",
|
||||
}}>
|
||||
You can get an Anthropic API key by signing up here.
|
||||
{t("getApiKeyMessage", { vendor: "Anthropic" })}
|
||||
</VSCodeLink>
|
||||
)}
|
||||
</p>
|
||||
|
|
@ -254,8 +257,8 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
style={{ width: "100%" }}
|
||||
type="password"
|
||||
onInput={handleInputChange("openAiNativeApiKey")}
|
||||
placeholder="Enter API Key...">
|
||||
<span style={{ fontWeight: 500 }}>OpenAI API Key</span>
|
||||
placeholder={t("enterApiKey")}>
|
||||
<span style={{ fontWeight: 500 }}>{t("getApiVendorKey", { vendor: "OpenAI" })}</span>
|
||||
</VSCodeTextField>
|
||||
<p
|
||||
style={{
|
||||
|
|
@ -263,7 +266,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
marginTop: 3,
|
||||
color: "var(--vscode-descriptionForeground)",
|
||||
}}>
|
||||
This key is stored locally and only used to make API requests from this extension.
|
||||
{t("apiKeyInfo")}
|
||||
{!apiConfiguration?.openAiNativeApiKey && (
|
||||
<VSCodeLink
|
||||
href="https://platform.openai.com/api-keys"
|
||||
|
|
@ -271,7 +274,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
display: "inline",
|
||||
fontSize: "inherit",
|
||||
}}>
|
||||
You can get an OpenAI API key by signing up here.
|
||||
{t("getApiKeyMessage", { vendor: "OpenAI" })}
|
||||
</VSCodeLink>
|
||||
)}
|
||||
</p>
|
||||
|
|
@ -285,8 +288,8 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
style={{ width: "100%" }}
|
||||
type="password"
|
||||
onInput={handleInputChange("deepSeekApiKey")}
|
||||
placeholder="Enter API Key...">
|
||||
<span style={{ fontWeight: 500 }}>DeepSeek API Key</span>
|
||||
placeholder={t("enterApiKey")}>
|
||||
<span style={{ fontWeight: 500 }}>{t("getApiVendorKey", { vendor: "DeepSeek" })}</span>
|
||||
</VSCodeTextField>
|
||||
<p
|
||||
style={{
|
||||
|
|
@ -294,7 +297,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
marginTop: 3,
|
||||
color: "var(--vscode-descriptionForeground)",
|
||||
}}>
|
||||
This key is stored locally and only used to make API requests from this extension.
|
||||
{t("apiKeyInfo")}
|
||||
{!apiConfiguration?.deepSeekApiKey && (
|
||||
<VSCodeLink
|
||||
href="https://www.deepseek.com/"
|
||||
|
|
@ -302,7 +305,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
display: "inline",
|
||||
fontSize: "inherit",
|
||||
}}>
|
||||
You can get a DeepSeek API key by signing up here.
|
||||
{t("getApiKeyMessage", { vendor: "DeepSeek" })}
|
||||
</VSCodeLink>
|
||||
)}
|
||||
</p>
|
||||
|
|
@ -316,8 +319,8 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
style={{ width: "100%" }}
|
||||
type="password"
|
||||
onInput={handleInputChange("mistralApiKey")}
|
||||
placeholder="Enter API Key...">
|
||||
<span style={{ fontWeight: 500 }}>Mistral API Key</span>
|
||||
placeholder={t("enterApiKey")}>
|
||||
<span style={{ fontWeight: 500 }}>{t("getApiVendorKey", { vendor: "Mistral" })}</span>
|
||||
</VSCodeTextField>
|
||||
<p
|
||||
style={{
|
||||
|
|
@ -325,7 +328,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
marginTop: 3,
|
||||
color: "var(--vscode-descriptionForeground)",
|
||||
}}>
|
||||
This key is stored locally and only used to make API requests from this extension.
|
||||
{t("apiKeyInfo")}
|
||||
{!apiConfiguration?.mistralApiKey && (
|
||||
<VSCodeLink
|
||||
href="https://console.mistral.ai/codestral"
|
||||
|
|
@ -333,7 +336,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
display: "inline",
|
||||
fontSize: "inherit",
|
||||
}}>
|
||||
You can get a Mistral API key by signing up here.
|
||||
{t("getApiKeyMessage", { vendor: "Mistral" })}
|
||||
</VSCodeLink>
|
||||
)}
|
||||
</p>
|
||||
|
|
@ -347,15 +350,15 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
style={{ width: "100%" }}
|
||||
type="password"
|
||||
onInput={handleInputChange("openRouterApiKey")}
|
||||
placeholder="Enter API Key...">
|
||||
<span style={{ fontWeight: 500 }}>OpenRouter API Key</span>
|
||||
placeholder={t("enterApiKey")}>
|
||||
<span style={{ fontWeight: 500 }}>{t("getApiVendorKey", { vendor: "OpenRouter" })}</span>
|
||||
</VSCodeTextField>
|
||||
{!apiConfiguration?.openRouterApiKey && (
|
||||
<VSCodeButtonLink
|
||||
href={getOpenRouterAuthUrl(uriScheme)}
|
||||
style={{ margin: "5px 0 0 0" }}
|
||||
appearance="secondary">
|
||||
Get OpenRouter API Key
|
||||
{t("getApiKeyMessage", { vendor: "OpenRouter" })}
|
||||
</VSCodeButtonLink>
|
||||
)}
|
||||
<p
|
||||
|
|
@ -364,13 +367,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
marginTop: "5px",
|
||||
color: "var(--vscode-descriptionForeground)",
|
||||
}}>
|
||||
This key is stored locally and only used to make API requests from this extension.{" "}
|
||||
{/* {!apiConfiguration?.openRouterApiKey && (
|
||||
<span style={{ color: "var(--vscode-charts-green)" }}>
|
||||
(<span style={{ fontWeight: 500 }}>Note:</span> OpenRouter is recommended for high rate
|
||||
limits, prompt caching, and wider selection of models.)
|
||||
</span>
|
||||
)} */}
|
||||
{t("apiKeyInfo")}
|
||||
</p>
|
||||
</div>
|
||||
)}
|
||||
|
|
@ -387,35 +384,35 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
style={{ width: "100%" }}
|
||||
type="password"
|
||||
onInput={handleInputChange("awsAccessKey")}
|
||||
placeholder="Enter Access Key...">
|
||||
<span style={{ fontWeight: 500 }}>AWS Access Key</span>
|
||||
placeholder={t("enterAwsAccessKey")}>
|
||||
<span style={{ fontWeight: 500 }}>{t("awsAccessKey")}</span>
|
||||
</VSCodeTextField>
|
||||
<VSCodeTextField
|
||||
value={apiConfiguration?.awsSecretKey || ""}
|
||||
style={{ width: "100%" }}
|
||||
type="password"
|
||||
onInput={handleInputChange("awsSecretKey")}
|
||||
placeholder="Enter Secret Key...">
|
||||
<span style={{ fontWeight: 500 }}>AWS Secret Key</span>
|
||||
placeholder={t("enterAwsSecretKey")}>
|
||||
<span style={{ fontWeight: 500 }}>{t("awsSecretKey")}</span>
|
||||
</VSCodeTextField>
|
||||
<VSCodeTextField
|
||||
value={apiConfiguration?.awsSessionToken || ""}
|
||||
style={{ width: "100%" }}
|
||||
type="password"
|
||||
onInput={handleInputChange("awsSessionToken")}
|
||||
placeholder="Enter Session Token...">
|
||||
<span style={{ fontWeight: 500 }}>AWS Session Token</span>
|
||||
placeholder={t("enterAwsSessionToken")}>
|
||||
<span style={{ fontWeight: 500 }}>{t("awsSessionToken")}</span>
|
||||
</VSCodeTextField>
|
||||
<div className="dropdown-container">
|
||||
<label htmlFor="aws-region-dropdown">
|
||||
<span style={{ fontWeight: 500 }}>AWS Region</span>
|
||||
<span style={{ fontWeight: 500 }}>{t("getRegion", { vendor: "AWS" })}</span>
|
||||
</label>
|
||||
<VSCodeDropdown
|
||||
id="aws-region-dropdown"
|
||||
value={apiConfiguration?.awsRegion || ""}
|
||||
style={{ width: "100%" }}
|
||||
onChange={handleInputChange("awsRegion")}>
|
||||
<VSCodeOption value="">Select a region...</VSCodeOption>
|
||||
<VSCodeOption value="">{t("selectRegion")}</VSCodeOption>
|
||||
{/* The user will have to choose a region that supports the model they use, but this shouldn't be a problem since they'd have to request access for it in that region in the first place. */}
|
||||
<VSCodeOption value="us-east-1">us-east-1</VSCodeOption>
|
||||
<VSCodeOption value="us-east-2">us-east-2</VSCodeOption>
|
||||
|
|
@ -452,7 +449,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
awsUseCrossRegionInference: isChecked,
|
||||
})
|
||||
}}>
|
||||
Use cross-region inference
|
||||
{t("useCrossRegionInference")}
|
||||
</VSCodeCheckbox>
|
||||
<p
|
||||
style={{
|
||||
|
|
@ -460,9 +457,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
marginTop: "5px",
|
||||
color: "var(--vscode-descriptionForeground)",
|
||||
}}>
|
||||
Authenticate by either providing the keys above or use the default AWS credential providers, i.e.
|
||||
~/.aws/credentials or environment variables. These credentials are only used locally to make API requests
|
||||
from this extension.
|
||||
{t("awsInfo")}
|
||||
</p>
|
||||
</div>
|
||||
)}
|
||||
|
|
@ -478,19 +473,19 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
value={apiConfiguration?.vertexProjectId || ""}
|
||||
style={{ width: "100%" }}
|
||||
onInput={handleInputChange("vertexProjectId")}
|
||||
placeholder="Enter Project ID...">
|
||||
<span style={{ fontWeight: 500 }}>Google Cloud Project ID</span>
|
||||
placeholder={t("enterGcpProjectId")}>
|
||||
<span style={{ fontWeight: 500 }}>{t("gcpProjectId")}</span>
|
||||
</VSCodeTextField>
|
||||
<div className="dropdown-container">
|
||||
<label htmlFor="vertex-region-dropdown">
|
||||
<span style={{ fontWeight: 500 }}>Google Cloud Region</span>
|
||||
<span style={{ fontWeight: 500 }}>{t("getRegion", { vendor: "Google Cloud" })}</span>
|
||||
</label>
|
||||
<VSCodeDropdown
|
||||
id="vertex-region-dropdown"
|
||||
value={apiConfiguration?.vertexRegion || ""}
|
||||
style={{ width: "100%" }}
|
||||
onChange={handleInputChange("vertexRegion")}>
|
||||
<VSCodeOption value="">Select a region...</VSCodeOption>
|
||||
<VSCodeOption value="">{t("selectRegion")}</VSCodeOption>
|
||||
<VSCodeOption value="us-east5">us-east5</VSCodeOption>
|
||||
<VSCodeOption value="us-central1">us-central1</VSCodeOption>
|
||||
<VSCodeOption value="europe-west1">europe-west1</VSCodeOption>
|
||||
|
|
@ -504,17 +499,12 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
marginTop: "5px",
|
||||
color: "var(--vscode-descriptionForeground)",
|
||||
}}>
|
||||
To use Google Cloud Vertex AI, you need to
|
||||
<VSCodeLink
|
||||
href="https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-claude#before_you_begin"
|
||||
style={{ display: "inline", fontSize: "inherit" }}>
|
||||
{"1) create a Google Cloud account › enable the Vertex AI API › enable the desired Claude models,"}
|
||||
</VSCodeLink>{" "}
|
||||
<VSCodeLink
|
||||
href="https://cloud.google.com/docs/authentication/provide-credentials-adc#google-idp"
|
||||
style={{ display: "inline", fontSize: "inherit" }}>
|
||||
{"2) install the Google Cloud CLI › configure Application Default Credentials."}
|
||||
</VSCodeLink>
|
||||
<Trans
|
||||
i18nKey="apiOptions.gcpLinks"
|
||||
components={{
|
||||
Link: <VSCodeLink />,
|
||||
}}
|
||||
/>
|
||||
</p>
|
||||
</div>
|
||||
)}
|
||||
|
|
@ -527,7 +517,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
type="password"
|
||||
onInput={handleInputChange("geminiApiKey")}
|
||||
placeholder="Enter API Key...">
|
||||
<span style={{ fontWeight: 500 }}>Gemini API Key</span>
|
||||
<span style={{ fontWeight: 500 }}>{t("getApiVendorKey", { vendor: "Gemini" })}</span>
|
||||
</VSCodeTextField>
|
||||
<p
|
||||
style={{
|
||||
|
|
@ -535,7 +525,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
marginTop: 3,
|
||||
color: "var(--vscode-descriptionForeground)",
|
||||
}}>
|
||||
This key is stored locally and only used to make API requests from this extension.
|
||||
{t("apiKeyInfo")}
|
||||
{!apiConfiguration?.geminiApiKey && (
|
||||
<VSCodeLink
|
||||
href="https://ai.google.dev/"
|
||||
|
|
@ -543,7 +533,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
display: "inline",
|
||||
fontSize: "inherit",
|
||||
}}>
|
||||
You can get a Gemini API key by signing up here.
|
||||
{t("getApiKeyMessage", { vendor: "Gemini" })}
|
||||
</VSCodeLink>
|
||||
)}
|
||||
</p>
|
||||
|
|
@ -557,23 +547,23 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
style={{ width: "100%" }}
|
||||
type="url"
|
||||
onInput={handleInputChange("openAiBaseUrl")}
|
||||
placeholder={"Enter base URL..."}>
|
||||
<span style={{ fontWeight: 500 }}>Base URL</span>
|
||||
placeholder={t("enterBaseUrl")}>
|
||||
<span style={{ fontWeight: 500 }}>{t("baseUrl")}</span>
|
||||
</VSCodeTextField>
|
||||
<VSCodeTextField
|
||||
value={apiConfiguration?.openAiApiKey || ""}
|
||||
style={{ width: "100%" }}
|
||||
type="password"
|
||||
onInput={handleInputChange("openAiApiKey")}
|
||||
placeholder="Enter API Key...">
|
||||
<span style={{ fontWeight: 500 }}>API Key</span>
|
||||
placeholder={t("enterApiKey")}>
|
||||
<span style={{ fontWeight: 500 }}>{t("apiKey")}</span>
|
||||
</VSCodeTextField>
|
||||
<VSCodeTextField
|
||||
value={apiConfiguration?.openAiModelId || ""}
|
||||
style={{ width: "100%" }}
|
||||
onInput={handleInputChange("openAiModelId")}
|
||||
placeholder={"Enter Model ID..."}>
|
||||
<span style={{ fontWeight: 500 }}>Model ID</span>
|
||||
placeholder={t("enterModelId")}>
|
||||
<span style={{ fontWeight: 500 }}>{t("modelId")}</span>
|
||||
</VSCodeTextField>
|
||||
<VSCodeCheckbox
|
||||
checked={azureApiVersionSelected}
|
||||
|
|
@ -615,7 +605,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
<div>
|
||||
<div className="dropdown-container">
|
||||
<label htmlFor="vscode-lm-model">
|
||||
<span style={{ fontWeight: 500 }}>Language Model</span>
|
||||
<span style={{ fontWeight: 500 }}></span>
|
||||
</label>
|
||||
{vsCodeLmModels.length > 0 ? (
|
||||
<VSCodeDropdown
|
||||
|
|
@ -638,7 +628,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
})
|
||||
}}
|
||||
style={{ width: "100%" }}>
|
||||
<VSCodeOption value="">Select a model...</VSCodeOption>
|
||||
<VSCodeOption value="">{t("selectModel")}</VSCodeOption>
|
||||
{vsCodeLmModels.map((model) => (
|
||||
<VSCodeOption
|
||||
key={`${model.vendor}/${model.family}`}
|
||||
|
|
@ -654,9 +644,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
marginTop: "5px",
|
||||
color: "var(--vscode-descriptionForeground)",
|
||||
}}>
|
||||
The VS Code Language Model API allows you to run models provided by other VS Code extensions
|
||||
(including but not limited to GitHub Copilot). The easiest way to get started is to install the
|
||||
Copilot extension from the VS Marketplace and enabling Claude 3.5 Sonnet.
|
||||
{t("vscodeLanguageModelsInfo")}
|
||||
</p>
|
||||
)}
|
||||
|
||||
|
|
@ -667,7 +655,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
color: "var(--vscode-errorForeground)",
|
||||
fontWeight: 500,
|
||||
}}>
|
||||
Note: This is a very experimental integration and may not work as expected.
|
||||
{t("experimentalFeature")}
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
|
|
@ -688,7 +676,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
style={{ width: "100%" }}
|
||||
onInput={handleInputChange("lmStudioModelId")}
|
||||
placeholder={"e.g. meta-llama-3.1-8b-instruct"}>
|
||||
<span style={{ fontWeight: 500 }}>Model ID</span>
|
||||
<span style={{ fontWeight: 500 }}>{t("modelId")}</span>
|
||||
</VSCodeTextField>
|
||||
{lmStudioModels.length > 0 && (
|
||||
<VSCodeRadioGroup
|
||||
|
|
@ -820,7 +808,7 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
|
|||
<>
|
||||
<div className="dropdown-container">
|
||||
<label htmlFor="model-id">
|
||||
<span style={{ fontWeight: 500 }}>Model</span>
|
||||
<span style={{ fontWeight: 500 }}>{t("model")}</span>
|
||||
</label>
|
||||
{selectedProvider === "anthropic" && createDropdown(anthropicModels)}
|
||||
{selectedProvider === "bedrock" && createDropdown(bedrockModels)}
|
||||
|
|
@ -884,6 +872,7 @@ export const ModelInfoView = ({
|
|||
isPopup?: boolean
|
||||
}) => {
|
||||
const isGemini = Object.keys(geminiModels).includes(selectedModelId)
|
||||
const { t, ready } = useTranslation("translation", { keyPrefix: "apiOptions", useSuspense: false })
|
||||
|
||||
const infoItems = [
|
||||
modelInfo.description && (
|
||||
|
|
@ -898,56 +887,57 @@ export const ModelInfoView = ({
|
|||
<ModelInfoSupportsItem
|
||||
key="supportsImages"
|
||||
isSupported={modelInfo.supportsImages ?? false}
|
||||
supportsLabel="Supports images"
|
||||
doesNotSupportLabel="Does not support images"
|
||||
supportsLabel={t("supportsImages")}
|
||||
doesNotSupportLabel={t("doesNotSupportImages")}
|
||||
/>,
|
||||
<ModelInfoSupportsItem
|
||||
key="supportsComputerUse"
|
||||
isSupported={modelInfo.supportsComputerUse ?? false}
|
||||
supportsLabel="Supports computer use"
|
||||
doesNotSupportLabel="Does not support computer use"
|
||||
supportsLabel={t("supportsComputerUse")}
|
||||
doesNotSupportLabel={t("doesNotSupportComputerUse")}
|
||||
/>,
|
||||
!isGemini && (
|
||||
<ModelInfoSupportsItem
|
||||
key="supportsPromptCache"
|
||||
isSupported={modelInfo.supportsPromptCache}
|
||||
supportsLabel="Supports prompt caching"
|
||||
doesNotSupportLabel="Does not support prompt caching"
|
||||
supportsLabel={t("supportsPromptCache")}
|
||||
doesNotSupportLabel={t("doesNotSupportPromptCache")}
|
||||
/>
|
||||
),
|
||||
modelInfo.maxTokens !== undefined && modelInfo.maxTokens > 0 && (
|
||||
<span key="maxTokens">
|
||||
<span style={{ fontWeight: 500 }}>Max output:</span> {modelInfo.maxTokens?.toLocaleString()} tokens
|
||||
<span style={{ fontWeight: 500 }}>{t("maxOutput")}:</span> {modelInfo.maxTokens?.toLocaleString()} {t("tokens")}
|
||||
</span>
|
||||
),
|
||||
modelInfo.inputPrice !== undefined && modelInfo.inputPrice > 0 && (
|
||||
<span key="inputPrice">
|
||||
<span style={{ fontWeight: 500 }}>Input price:</span> {formatPrice(modelInfo.inputPrice)}/million tokens
|
||||
<span style={{ fontWeight: 500 }}>{t("inputPrice")}:</span> {formatPrice(modelInfo.inputPrice)}/
|
||||
{t("millionTokens")}
|
||||
</span>
|
||||
),
|
||||
modelInfo.supportsPromptCache && modelInfo.cacheWritesPrice && (
|
||||
<span key="cacheWritesPrice">
|
||||
<span style={{ fontWeight: 500 }}>Cache writes price:</span> {formatPrice(modelInfo.cacheWritesPrice || 0)}
|
||||
/million tokens
|
||||
<span style={{ fontWeight: 500 }}>{t("cacheWritesPrice")}:</span> {formatPrice(modelInfo.cacheWritesPrice || 0)}/
|
||||
{t("millionTokens")}
|
||||
</span>
|
||||
),
|
||||
modelInfo.supportsPromptCache && modelInfo.cacheReadsPrice && (
|
||||
<span key="cacheReadsPrice">
|
||||
<span style={{ fontWeight: 500 }}>Cache reads price:</span> {formatPrice(modelInfo.cacheReadsPrice || 0)}/million
|
||||
tokens
|
||||
<span style={{ fontWeight: 500 }}>{t("cacheReadsPrice")}:</span> {formatPrice(modelInfo.cacheReadsPrice || 0)}/
|
||||
{t("millionTokens")}
|
||||
</span>
|
||||
),
|
||||
modelInfo.outputPrice !== undefined && modelInfo.outputPrice > 0 && (
|
||||
<span key="outputPrice">
|
||||
<span style={{ fontWeight: 500 }}>Output price:</span> {formatPrice(modelInfo.outputPrice)}/million tokens
|
||||
<span style={{ fontWeight: 500 }}>{t("outputPrice")}:</span> {formatPrice(modelInfo.outputPrice)}/
|
||||
{t("millionTokens")}
|
||||
</span>
|
||||
),
|
||||
isGemini && (
|
||||
<span key="geminiInfo" style={{ fontStyle: "italic" }}>
|
||||
* Free up to {selectedModelId && selectedModelId.includes("flash") ? "15" : "2"} requests per minute. After that,
|
||||
billing depends on prompt size.{" "}
|
||||
{t("geminiInfo", { selectedModelId })}{" "}
|
||||
<VSCodeLink href="https://ai.google.dev/pricing" style={{ display: "inline", fontSize: "inherit" }}>
|
||||
For more info, see pricing details.
|
||||
{t("pricingDetails")}
|
||||
</VSCodeLink>
|
||||
</span>
|
||||
),
|
||||
|
|
|
|||
|
|
@ -14,7 +14,7 @@ i18n.use(initReactI18next) // passes i18n down to react-i18next
|
|||
react: {
|
||||
bindI18n: "languageChanged",
|
||||
transSupportBasicHtmlNodes: true,
|
||||
transKeepBasicHtmlNodesFor: ["b", "i", "strong", "em"],
|
||||
transKeepBasicHtmlNodesFor: ["b", "i", "strong", "em", "br"],
|
||||
},
|
||||
})
|
||||
|
||||
|
|
|
|||
|
|
@ -22,5 +22,52 @@
|
|||
"resetStateDescription": "Dies setzt den gesamten globalen Zustand und die geheime Speicherung in der Erweiterung zurück.",
|
||||
"feedback": "Wenn Sie Fragen oder Feedback haben, können Sie gerne ein Issue eröffnen unter",
|
||||
"version": "v"
|
||||
},
|
||||
"apiOptions": {
|
||||
"selectModel": "Modell auswählen...",
|
||||
"model": "Modell",
|
||||
"apiProvider": "API-Anbieter",
|
||||
"enterApiKey": "API-Schlüssel eingeben...",
|
||||
"apiKey": "API-Schlüssel",
|
||||
"enterBaseUrl": "Basis-URL eingeben...",
|
||||
"baseUrl": "Basis-URL",
|
||||
"enterModelId": "Modell-ID eingeben...",
|
||||
"modelId": "Modell-ID",
|
||||
"useCustomBaseUrl": "Benutzerdefinierte Basis-URL verwenden",
|
||||
"apiKeyInfo": "Dieser Schlüssel wird lokal gespeichert und nur verwendet, um API-Anfragen von dieser Erweiterung zu stellen.",
|
||||
"getApiKeyMessage": "Sie können einen {{vendor}}-API-Schlüssel erhalten, indem Sie sich hier anmelden.",
|
||||
"getApiVendorKey": "{{vendor}}-API-Schlüssel",
|
||||
"getCompatibleVendor": "{{vendor}} kompatibel",
|
||||
"enterGcpProjectId": "Projekt-ID eingeben...",
|
||||
"gcpProjectId": "Google Cloud Projekt-ID",
|
||||
"gcpLinks": "Um Google Cloud Vertex AI zu verwenden, müssen Sie <Link href=\"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-claude#before_you_begin\"> 1) ein Google Cloud-Konto erstellen › die Vertex AI API aktivieren › die gewünschten Claude-Modelle aktivieren, </Link><br /> <Link href=\"https://cloud.google.com/docs/authentication/provide-credentials-adc#google-idp\"> 2) die Google Cloud CLI installieren › Anwendungsstandardanmeldeinformationen konfigurieren. </Link>",
|
||||
"enterAwsAccessKey": "Zugriffsschlüssel eingeben...",
|
||||
"awsAccessKey": "AWS-Zugriffsschlüssel",
|
||||
"enterAwsSecretKey": "Geheimschlüssel eingeben...",
|
||||
"awsSecretKey": "AWS-Geheimschlüssel",
|
||||
"enterAwsSessionToken": "Sitzungstoken eingeben...",
|
||||
"awsSessionToken": "AWS-Sitzungstoken",
|
||||
"awsRegion": "AWS-Region",
|
||||
"getRegion": "{{vendor}}-Region",
|
||||
"selectRegion": "Region auswählen...",
|
||||
"useCrossRegionInference": "Regionsübergreifende Inferenz verwenden",
|
||||
"awsInfo": "Authentifizieren Sie sich entweder durch Eingabe der oben genannten Schlüssel oder verwenden Sie die Standard-AWS-Anmeldeinformationen, d.h. ~/.aws/credentials oder Umgebungsvariablen. Diese Anmeldeinformationen werden nur lokal verwendet, um API-Anfragen von dieser Erweiterung zu stellen.",
|
||||
"vscodeLanguageModelsInfo": "Die VS Code Language Model API ermöglicht es Ihnen, Modelle zu verwenden, die von anderen VS Code-Erweiterungen bereitgestellt werden (einschließlich, aber nicht beschränkt auf GitHub Copilot). Der einfachste Weg, um loszulegen, ist die Installation der Copilot-Erweiterung aus dem VS Marketplace und die Aktivierung von Claude 3.5 Sonnet.",
|
||||
"experimentalFeature": "Hinweis: Dies ist eine sehr experimentelle Integration und funktioniert möglicherweise nicht wie erwartet.",
|
||||
"supportsImages": "Unterstützt Bilder",
|
||||
"doesNotSupportImages": "Unterstützt keine Bilder",
|
||||
"supportsComputerUse": "Unterstützt Computernutzung",
|
||||
"doesNotSupportComputerUse": "Unterstützt keine Computernutzung",
|
||||
"supportsPromptCache": "Unterstützt Prompt-Caching",
|
||||
"doesNotSupportPromptCache": "Unterstützt kein Prompt-Caching",
|
||||
"maxOutput": "Maximale Ausgabe",
|
||||
"tokens": "Token",
|
||||
"inputPrice": "Eingabepreis",
|
||||
"millionTokens": "Millionen Token",
|
||||
"cacheWritesPrice": "Preis für Cache-Schreibvorgänge",
|
||||
"cacheReadsPrice": "Preis für Cache-Lesevorgänge",
|
||||
"outputPrice": "Ausgabepreis",
|
||||
"geminiInfo": "* Kostenlos bis zu {{selectedModelId}} Anfragen pro Minute. Danach hängt die Abrechnung von der Promptgröße ab.",
|
||||
"pricingDetails": "Weitere Informationen finden Sie in den Preisdaten."
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,5 +22,51 @@
|
|||
"resetStateDescription": "This will reset all global state and secret storage in the extension.",
|
||||
"feedback": "If you have any questions or feedback, feel free to open an issue at",
|
||||
"version": "v"
|
||||
},
|
||||
"apiOptions": {
|
||||
"selectModel": "Select a Model...",
|
||||
"model": "Model",
|
||||
"apiProvider": "API Provider",
|
||||
"enterApiKey": "Enter API Key...",
|
||||
"apiKey": "API Key",
|
||||
"enterBaseUrl": "Enter Base URL...",
|
||||
"baseUrl": "Base URL",
|
||||
"enterModelId": "Enter Model ID...",
|
||||
"modelId": "Model ID",
|
||||
"useCustomBaseUrl": "Use custom base URL",
|
||||
"apiKeyInfo": "This key is stored locally and only used to make API requests from this extension.",
|
||||
"getApiKeyMessage": "You can get an {{vendor}} API key by signing up here.",
|
||||
"getApiVendorKey": "{{vendor}} API Key",
|
||||
"getCompatibleVendor": "{{vendor}} Compatible",
|
||||
"enterGcpProjectId": "Enter Project ID...",
|
||||
"gcpProjectId": "Google Cloud Project ID",
|
||||
"gcpLinks": "To use Google Cloud Vertex AI, you need to <Link href=\"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-claude#before_you_begin\"> 1) create a Google Cloud account › enable the Vertex AI API › enable the desired Claude models, </Link><br /> <Link href=\"https://cloud.google.com/docs/authentication/provide-credentials-adc#google-idp\"> 2) install the Google Cloud CLI › configure Application Default Credentials. </Link>",
|
||||
"enterAwsAccessKey": "Enter Access Key...",
|
||||
"awsAccessKey": "AWS Access Key",
|
||||
"enterAwsSecretKey": "Enter Secret Key...",
|
||||
"awsSecretKey": "AWS Secret Key",
|
||||
"enterAwsSessionToken": "Enter Session Token...",
|
||||
"awsSessionToken": "AWS Session Token",
|
||||
"getRegion": "{{vendor}} Region",
|
||||
"selectRegion": "Select a Region...",
|
||||
"useCrossRegionInference": "Use cross-region inference",
|
||||
"awsInfo": "Authenticate by either providing the keys above or use the default AWS credential providers, i.e. ~/.aws/credentials or environment variables. These credentials are only used locally to make API requests from this extension.",
|
||||
"vscodeLanguageModelsInfo": "The VS Code Language Model API allows you to run models provided by other VS Code extensions (including but not limited to GitHub Copilot). The easiest way to get started is to install the Copilot extension from the VS Marketplace and enabling Claude 3.5 Sonnet.",
|
||||
"experimentalFeature": "Note: This is a very experimental integration and may not work as expected.",
|
||||
"supportsImages": "Supports images",
|
||||
"doesNotSupportImages": "Does not support images",
|
||||
"supportsComputerUse": "Supports computer use",
|
||||
"doesNotSupportComputerUse": "Does not support computer use",
|
||||
"supportsPromptCache": "Supports prompt caching",
|
||||
"doesNotSupportPromptCache": "Does not support prompt caching",
|
||||
"maxOutput": "Max output",
|
||||
"tokens": "tokens",
|
||||
"inputPrice": "Input price",
|
||||
"millionTokens": "million tokens",
|
||||
"cacheWritesPrice": "Cache writes price",
|
||||
"cacheReadsPrice": "Cache reads price",
|
||||
"outputPrice": "Output price",
|
||||
"geminiInfo": "* Free up to {{selectedModelId}} requests per minute. After that, billing depends on prompt size.",
|
||||
"pricingDetails": "For more info, see pricing details."
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,5 +22,52 @@
|
|||
"resetStateDescription": "これにより、拡張機能のすべてのグローバル状態と秘密のストレージがリセットされます。",
|
||||
"feedback": "ご質問やフィードバックがある場合は、気軽に問題を開いてください",
|
||||
"version": "バージョン"
|
||||
},
|
||||
"apiOptions": {
|
||||
"selectModel": "Select a Model...",
|
||||
"model": "Model",
|
||||
"apiProvider": "API Provider",
|
||||
"enterApiKey": "Enter API Key...",
|
||||
"apiKey": "API Key",
|
||||
"enterBaseUrl": "Enter Base URL...",
|
||||
"baseUrl": "Base URL",
|
||||
"enterModelId": "Enter Model ID...",
|
||||
"modelId": "Model ID",
|
||||
"useCustomBaseUrl": "Use custom base URL",
|
||||
"apiKeyInfo": "This key is stored locally and only used to make API requests from this extension.",
|
||||
"getApiKeyMessage": "You can get an {{vendor}} API key by signing up here.",
|
||||
"getApiVendorKey": "{{vendor}} API Key",
|
||||
"getCompatibleVendor": "{{vendor}} Compatible",
|
||||
"enterGcpProjectId": "Enter Project ID...",
|
||||
"gcpProjectId": "Google Cloud Project ID",
|
||||
"gcpLinks": "To use Google Cloud Vertex AI, you need to <Link href=\"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-claude#before_you_begin\"> 1) create a Google Cloud account › enable the Vertex AI API › enable the desired Claude models, </Link><br /> <Link href=\"https://cloud.google.com/docs/authentication/provide-credentials-adc#google-idp\"> 2) install the Google Cloud CLI › configure Application Default Credentials. </Link>",
|
||||
"enterAwsAccessKey": "Enter Access Key...",
|
||||
"awsAccessKey": "AWS Access Key",
|
||||
"enterAwsSecretKey": "Enter Secret Key...",
|
||||
"awsSecretKey": "AWS Secret Key",
|
||||
"enterAwsSessionToken": "Enter Session Token...",
|
||||
"awsSessionToken": "AWS Session Token",
|
||||
"awsRegion": "AWS Region",
|
||||
"getRegion": "{{vendor}} Region",
|
||||
"selectRegion": "Select a Region...",
|
||||
"useCrossRegionInference": "Use cross-region inference",
|
||||
"awsInfo": "Authenticate by either providing the keys above or use the default AWS credential providers, i.e. ~/.aws/credentials or environment variables. These credentials are only used locally to make API requests from this extension.",
|
||||
"vscodeLanguageModelsInfo": "The VS Code Language Model API allows you to run models provided by other VS Code extensions (including but not limited to GitHub Copilot). The easiest way to get started is to install the Copilot extension from the VS Marketplace and enabling Claude 3.5 Sonnet.",
|
||||
"experimentalFeature": "Note: This is a very experimental integration and may not work as expected.",
|
||||
"supportsImages": "Supports images",
|
||||
"doesNotSupportImages": "Does not support images",
|
||||
"supportsComputerUse": "Supports computer use",
|
||||
"doesNotSupportComputerUse": "Does not support computer use",
|
||||
"supportsPromptCache": "Supports prompt caching",
|
||||
"doesNotSupportPromptCache": "Does not support prompt caching",
|
||||
"maxOutput": "Max output",
|
||||
"tokens": "tokens",
|
||||
"inputPrice": "Input price",
|
||||
"millionTokens": "million tokens",
|
||||
"cacheWritesPrice": "Cache writes price",
|
||||
"cacheReadsPrice": "Cache reads price",
|
||||
"outputPrice": "Output price",
|
||||
"geminiInfo": "* Free up to {{selectedModelId}} requests per minute. After that, billing depends on prompt size.",
|
||||
"pricingDetails": "For more info, see pricing details."
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,5 +22,52 @@
|
|||
"resetStateDescription": "这将重置扩展中的所有全局状态和秘密存储。",
|
||||
"feedback": "如果您有任何问题或反馈,请随时在以下网址提交问题",
|
||||
"version": "版本"
|
||||
},
|
||||
"apiOptions": {
|
||||
"selectModel": "选择模型...",
|
||||
"model": "模型",
|
||||
"apiProvider": "API 提供商",
|
||||
"enterApiKey": "输入 API 密钥...",
|
||||
"apiKey": "API 密钥",
|
||||
"enterBaseUrl": "输入基本 URL...",
|
||||
"baseUrl": "基本 URL",
|
||||
"enterModelId": "输入模型 ID...",
|
||||
"modelId": "模型 ID",
|
||||
"useCustomBaseUrl": "使用自定义基本 URL",
|
||||
"apiKeyInfo": "此密钥存储在本地,仅用于从此扩展进行 API 请求。",
|
||||
"getApiKeyMessage": "您可以通过在此处注册来获取 {{vendor}} API 密钥。",
|
||||
"getApiVendorKey": "{{vendor}} API 密钥",
|
||||
"getCompatibleVendor": "{{vendor}} 兼容",
|
||||
"enterGcpProjectId": "输入项目 ID...",
|
||||
"gcpProjectId": "Google Cloud 项目 ID",
|
||||
"gcpLinks": "要使用 Google Cloud Vertex AI,您需要 <Link href=\"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-claude#before_you_begin\"> 1) 创建一个 Google Cloud 帐户 › 启用 Vertex AI API › 启用所需的 Claude 模型,</Link><br /> <Link href=\"https://cloud.google.com/docs/authentication/provide-credentials-adc#google-idp\"> 2) 安装 Google Cloud CLI › 配置应用程序默认凭据。</Link>",
|
||||
"enterAwsAccessKey": "输入访问密钥...",
|
||||
"awsAccessKey": "AWS 访问密钥",
|
||||
"enterAwsSecretKey": "输入秘密密钥...",
|
||||
"awsSecretKey": "AWS 秘密密钥",
|
||||
"enterAwsSessionToken": "输入会话令牌...",
|
||||
"awsSessionToken": "AWS 会话令牌",
|
||||
"awsRegion": "AWS 区域",
|
||||
"getRegion": "{{vendor}} 区域",
|
||||
"selectRegion": "选择区域...",
|
||||
"useCrossRegionInference": "使用跨区域推理",
|
||||
"awsInfo": "通过提供上述密钥或使用默认的 AWS 凭证提供程序进行身份验证,即 ~/.aws/credentials 或环境变量。这些凭证仅在本地用于从此扩展进行 API 请求。",
|
||||
"vscodeLanguageModelsInfo": "VS Code 语言模型 API 允许您运行其他 VS Code 扩展提供的模型(包括但不限于 GitHub Copilot)。最简单的方法是从 VS Marketplace 安装 Copilot 扩展并启用 Claude 3.5 Sonnet。",
|
||||
"experimentalFeature": "注意:这是一个非常实验性的集成,可能无法按预期工作。",
|
||||
"supportsImages": "支持图像",
|
||||
"doesNotSupportImages": "不支持图像",
|
||||
"supportsComputerUse": "支持计算机使用",
|
||||
"doesNotSupportComputerUse": "不支持计算机使用",
|
||||
"supportsPromptCache": "支持提示缓存",
|
||||
"doesNotSupportPromptCache": "不支持提示缓存",
|
||||
"maxOutput": "最大输出",
|
||||
"tokens": "令牌",
|
||||
"inputPrice": "输入价格",
|
||||
"millionTokens": "百万令牌",
|
||||
"cacheWritesPrice": "缓存写入价格",
|
||||
"cacheReadsPrice": "缓存读取价格",
|
||||
"outputPrice": "输出价格",
|
||||
"geminiInfo": "* 每分钟最多 {{selectedModelId}} 次请求免费。之后,费用取决于提示大小。",
|
||||
"pricingDetails": "有关更多信息,请参阅定价详情。"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22,5 +22,52 @@
|
|||
"resetStateDescription": "這將重置擴展中的所有全局狀態和秘密存儲。",
|
||||
"feedback": "如果您有任何問題或反饋,請隨時在以下網址提交問題",
|
||||
"version": "版本"
|
||||
},
|
||||
"apiOptions": {
|
||||
"selectModel": "選擇模型...",
|
||||
"model": "模型",
|
||||
"apiProvider": "API 提供者",
|
||||
"enterApiKey": "輸入 API 金鑰...",
|
||||
"apiKey": "API 金鑰",
|
||||
"enterBaseUrl": "輸入基本 URL...",
|
||||
"baseUrl": "基本 URL",
|
||||
"enterModelId": "輸入模型 ID...",
|
||||
"modelId": "模型 ID",
|
||||
"useCustomBaseUrl": "使用自定義基本 URL",
|
||||
"apiKeyInfo": "此金鑰僅存儲在本地,僅用於從此擴展進行 API 請求。",
|
||||
"getApiKeyMessage": "您可以通過在此處註冊來獲取 {{vendor}} API 金鑰。",
|
||||
"getApiVendorKey": "{{vendor}} API 金鑰",
|
||||
"getCompatibleVendor": "{{vendor}} 兼容",
|
||||
"enterGcpProjectId": "輸入項目 ID...",
|
||||
"gcpProjectId": "Google Cloud 項目 ID",
|
||||
"gcpLinks": "要使用 Google Cloud Vertex AI,您需要 <Link href=\"https://cloud.google.com/vertex-ai/generative-ai/docs/partner-models/use-claude#before_you_begin\"> 1) 創建 Google Cloud 帳戶 › 啟用 Vertex AI API › 啟用所需的 Claude 模型, </Link><br /> <Link href=\"https://cloud.google.com/docs/authentication/provide-credentials-adc#google-idp\"> 2) 安裝 Google Cloud CLI › 配置應用程序默認憑據。 </Link>",
|
||||
"enterAwsAccessKey": "輸入訪問金鑰...",
|
||||
"awsAccessKey": "AWS 訪問金鑰",
|
||||
"enterAwsSecretKey": "輸入秘密金鑰...",
|
||||
"awsSecretKey": "AWS 秘密金鑰",
|
||||
"enterAwsSessionToken": "輸入會話令牌...",
|
||||
"awsSessionToken": "AWS 會話令牌",
|
||||
"awsRegion": "AWS 區域",
|
||||
"getRegion": "{{vendor}} 區域",
|
||||
"selectRegion": "選擇區域...",
|
||||
"useCrossRegionInference": "使用跨區域推理",
|
||||
"awsInfo": "通過提供上述金鑰或使用默認的 AWS 憑據提供者進行身份驗證,即 ~/.aws/credentials 或環境變量。這些憑據僅在本地用於從此擴展進行 API 請求。",
|
||||
"vscodeLanguageModelsInfo": "VS Code 語言模型 API 允許您運行其他 VS Code 擴展提供的模型(包括但不限於 GitHub Copilot)。最簡單的入門方法是從 VS Marketplace 安裝 Copilot 擴展並啟用 Claude 3.5 Sonnet。",
|
||||
"experimentalFeature": "注意:這是一個非常實驗性的集成,可能無法按預期工作。",
|
||||
"supportsImages": "支持圖片",
|
||||
"doesNotSupportImages": "不支持圖片",
|
||||
"supportsComputerUse": "支持電腦使用",
|
||||
"doesNotSupportComputerUse": "不支持電腦使用",
|
||||
"supportsPromptCache": "支持提示緩存",
|
||||
"doesNotSupportPromptCache": "不支持提示緩存",
|
||||
"maxOutput": "最大輸出",
|
||||
"tokens": "標記",
|
||||
"inputPrice": "輸入價格",
|
||||
"millionTokens": "百萬標記",
|
||||
"cacheWritesPrice": "緩存寫入價格",
|
||||
"cacheReadsPrice": "緩存讀取價格",
|
||||
"outputPrice": "輸出價格",
|
||||
"geminiInfo": "* 每分鐘最多免費 {{selectedModelId}} 次請求。之後,計費取決於提示大小。",
|
||||
"pricingDetails": "更多信息,請參見定價詳情。"
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue