mirror of
https://github.com/RooVetGit/Roo-Code.git
synced 2026-09-08 22:21:23 +00:00
fix qwq model in openai provider (#1940)
* feat: Add the openAiR1FormatEnabled field to enable this switch in OpenAI compatible mode to support the current QWQ and future additional classes of R1 models. * feat: Add the openAiR1FormatEnabled field to enable this switch in OpenAI compatible mode to support the current QWQ and future additional classes of R1 models. * fix: add miss i18n * fix: add miss i18n * fix: remove the redundant call --------- Co-authored-by: xiong <yueminxiong.xym@alibaba-inc.com>
This commit is contained in:
parent
e8d6a552b3
commit
cc2420ea1a
24 changed files with 241 additions and 177 deletions
5
.changeset/nine-ways-worry.md
Normal file
5
.changeset/nine-ways-worry.md
Normal file
|
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
"roo-cline": patch
|
||||
---
|
||||
|
||||
Add the openAiR1FormatEnabled field to enable this switch in OpenAI compatible mode to support the current QWQ and future additional classes of R1 models.
|
||||
|
|
@ -63,10 +63,9 @@ export class OpenAiHandler extends BaseProvider implements SingleCompletionHandl
|
|||
const modelInfo = this.getModel().info
|
||||
const modelUrl = this.options.openAiBaseUrl ?? ""
|
||||
const modelId = this.options.openAiModelId ?? ""
|
||||
|
||||
const deepseekReasoner = modelId.includes("deepseek-reasoner")
|
||||
const enabledR1Format = this.options.openAiR1FormatEnabled ?? false
|
||||
const deepseekReasoner = modelId.includes("deepseek-reasoner") || enabledR1Format
|
||||
const ark = modelUrl.includes(".volces.com")
|
||||
|
||||
if (modelId.startsWith("o3-mini")) {
|
||||
yield* this.handleO3FamilyMessage(modelId, systemPrompt, messages)
|
||||
return
|
||||
|
|
|
|||
|
|
@ -2142,7 +2142,6 @@ export class ClineProvider extends EventEmitter<ClineProviderEvents> implements
|
|||
await this.configManager.setModeConfig(mode, config.id)
|
||||
}
|
||||
}
|
||||
|
||||
await this.contextProxy.setApiConfiguration(apiConfiguration)
|
||||
|
||||
if (this.getCurrentCline()) {
|
||||
|
|
|
|||
1
src/exports/roo-code.d.ts
vendored
1
src/exports/roo-code.d.ts
vendored
|
|
@ -200,6 +200,7 @@ export type GlobalStateKey =
|
|||
| "modelMaxThinkingTokens"
|
||||
| "azureApiVersion"
|
||||
| "openAiStreamingEnabled"
|
||||
| "openAiR1FormatEnabled"
|
||||
| "openRouterModelId"
|
||||
| "openRouterModelInfo"
|
||||
| "openRouterBaseUrl"
|
||||
|
|
|
|||
|
|
@ -48,6 +48,7 @@ export interface ApiHandlerOptions {
|
|||
vertexRegion?: string
|
||||
openAiBaseUrl?: string
|
||||
openAiApiKey?: string
|
||||
openAiR1FormatEnabled?: boolean
|
||||
openAiModelId?: string
|
||||
openAiCustomModelInfo?: ModelInfo
|
||||
openAiUseAzure?: boolean
|
||||
|
|
@ -127,6 +128,7 @@ export const API_CONFIG_KEYS: GlobalStateKey[] = [
|
|||
"azureApiVersion",
|
||||
"openRouterUseMiddleOutTransform",
|
||||
"openAiStreamingEnabled",
|
||||
"openAiR1FormatEnabled",
|
||||
// "deepSeekBaseUrl", // not exist on GlobalStateKey
|
||||
// "includeMaxTokens", // not exist on GlobalStateKey
|
||||
"unboundModelId",
|
||||
|
|
|
|||
|
|
@ -68,6 +68,7 @@ export const GLOBAL_STATE_KEYS = [
|
|||
"modelMaxThinkingTokens",
|
||||
"azureApiVersion",
|
||||
"openAiStreamingEnabled",
|
||||
"openAiR1FormatEnabled",
|
||||
"openRouterModelId",
|
||||
"openRouterModelInfo",
|
||||
"openRouterBaseUrl",
|
||||
|
|
|
|||
|
|
@ -55,6 +55,7 @@ import { TemperatureControl } from "./TemperatureControl"
|
|||
import { validateApiConfiguration, validateModelId, validateBedrockArn } from "@/utils/validate"
|
||||
import { ApiErrorMessage } from "./ApiErrorMessage"
|
||||
import { ThinkingBudget } from "./ThinkingBudget"
|
||||
import { R1FormatSetting } from "./R1FormatSetting"
|
||||
|
||||
interface ApiOptionsProps {
|
||||
uriScheme: string | undefined
|
||||
|
|
@ -104,7 +105,6 @@ const ApiOptions = ({
|
|||
!!apiConfiguration?.googleGeminiBaseUrl,
|
||||
)
|
||||
const [isDescriptionExpanded, setIsDescriptionExpanded] = useState(false)
|
||||
|
||||
const noTransform = <T,>(value: T) => value
|
||||
|
||||
const inputEventTransform = <E,>(event: E) => (event as { target: HTMLInputElement })?.target?.value as any
|
||||
|
|
@ -696,6 +696,10 @@ const ApiOptions = ({
|
|||
serviceName="OpenAI"
|
||||
serviceUrl="https://platform.openai.com"
|
||||
/>
|
||||
<R1FormatSetting
|
||||
onChange={handleInputChange("openAiR1FormatEnabled", noTransform)}
|
||||
openAiR1FormatEnabled={apiConfiguration?.openAiR1FormatEnabled ?? false}
|
||||
/>
|
||||
<Checkbox
|
||||
checked={apiConfiguration?.openAiStreamingEnabled ?? true}
|
||||
onChange={handleInputChange("openAiStreamingEnabled", noTransform)}>
|
||||
|
|
|
|||
25
webview-ui/src/components/settings/R1FormatSetting.tsx
Normal file
25
webview-ui/src/components/settings/R1FormatSetting.tsx
Normal file
|
|
@ -0,0 +1,25 @@
|
|||
import { Checkbox } from "vscrui"
|
||||
|
||||
import { useAppTranslation } from "@/i18n/TranslationContext"
|
||||
|
||||
interface R1FormatSettingProps {
|
||||
onChange: (value: boolean) => void
|
||||
openAiR1FormatEnabled?: boolean
|
||||
}
|
||||
|
||||
export const R1FormatSetting = ({ onChange, openAiR1FormatEnabled }: R1FormatSettingProps) => {
|
||||
const { t } = useAppTranslation()
|
||||
|
||||
return (
|
||||
<div>
|
||||
<div className="flex items-center gap-2">
|
||||
<Checkbox checked={openAiR1FormatEnabled} onChange={onChange}>
|
||||
<span className="font-medium">{t("settings:modelInfo.enableR1Format")}</span>
|
||||
</Checkbox>
|
||||
</div>
|
||||
<p className="text-vscode-descriptionForeground text-sm mt-0">
|
||||
{t("settings:modelInfo.enableR1FormatTips")}
|
||||
</p>
|
||||
</div>
|
||||
)
|
||||
}
|
||||
|
|
@ -136,7 +136,6 @@ const SettingsView = forwardRef<SettingsViewRef, SettingsViewProps>(({ onDone },
|
|||
|
||||
// Make sure apiConfiguration is initialized and managed by SettingsView.
|
||||
const apiConfiguration = useMemo(() => cachedState.apiConfiguration ?? {}, [cachedState.apiConfiguration])
|
||||
|
||||
useEffect(() => {
|
||||
// Update only when currentApiConfigName is changed.
|
||||
// Expected to be triggered by loadApiConfiguration/upsertApiConfiguration.
|
||||
|
|
@ -168,7 +167,6 @@ const SettingsView = forwardRef<SettingsViewRef, SettingsViewProps>(({ onDone },
|
|||
}
|
||||
|
||||
setChangeDetected(true)
|
||||
|
||||
return { ...prevState, apiConfiguration: { ...prevState.apiConfiguration, [field]: value } }
|
||||
})
|
||||
},
|
||||
|
|
|
|||
|
|
@ -349,13 +349,15 @@
|
|||
"outputPrice": "Preu de sortida",
|
||||
"cacheReadsPrice": "Preu de lectures de caché",
|
||||
"cacheWritesPrice": "Preu d'escriptures de caché",
|
||||
"enableStreaming": "Habilitar streaming",
|
||||
"enableR1Format": "Activar els paràmetres del model R1",
|
||||
"enableR1FormatTips": "S'ha d'activat quan s'utilitzen models R1 com el QWQ per evitar errors 400",
|
||||
"useAzure": "Utilitzar Azure",
|
||||
"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."
|
||||
},
|
||||
"enableStreaming": "Habilitar streaming",
|
||||
"useAzure": "Utilitzar Azure",
|
||||
"azureApiVersion": "Establir versió de l'API d'Azure"
|
||||
}
|
||||
},
|
||||
"modelPicker": {
|
||||
"automaticFetch": "L'extensió obté automàticament la llista més recent de models disponibles a <serviceLink>{{serviceName}}</serviceLink>. Si no esteu segur de quin model triar, Roo Code funciona millor amb <defaultModelLink>{{defaultModelId}}</defaultModelLink>. També podeu cercar \"free\" per a opcions gratuïtes actualment disponibles.",
|
||||
|
|
|
|||
|
|
@ -350,6 +350,8 @@
|
|||
"cacheReadsPrice": "Cache-Lesepreis",
|
||||
"cacheWritesPrice": "Cache-Schreibpreis",
|
||||
"enableStreaming": "Streaming aktivieren",
|
||||
"enableR1Format": "R1-Modellparameter aktivieren",
|
||||
"enableR1FormatTips": "Muss aktiviert werden, wenn R1-Modelle wie QWQ verwendet werden, um 400-Fehler zu vermeiden",
|
||||
"useAzure": "Azure verwenden",
|
||||
"azureApiVersion": "Azure API-Version festlegen",
|
||||
"gemini": {
|
||||
|
|
|
|||
|
|
@ -350,6 +350,8 @@
|
|||
"cacheReadsPrice": "Cache reads price",
|
||||
"cacheWritesPrice": "Cache writes price",
|
||||
"enableStreaming": "Enable streaming",
|
||||
"enableR1Format": "Enable R1 model parameters",
|
||||
"enableR1FormatTips": "Must be enabled when using R1 models such as QWQ to prevent 400 errors",
|
||||
"useAzure": "Use Azure",
|
||||
"azureApiVersion": "Set Azure API version",
|
||||
"gemini": {
|
||||
|
|
|
|||
|
|
@ -350,6 +350,8 @@
|
|||
"cacheReadsPrice": "Precio de lecturas de caché",
|
||||
"cacheWritesPrice": "Precio de escrituras de caché",
|
||||
"enableStreaming": "Habilitar streaming",
|
||||
"enableR1Format": "Habilitar parámetros del modelo R1",
|
||||
"enableR1FormatTips": "Debe habilitarse al utilizar modelos R1 como QWQ, para evitar el error 400",
|
||||
"useAzure": "Usar Azure",
|
||||
"azureApiVersion": "Establecer versión de API de Azure",
|
||||
"gemini": {
|
||||
|
|
|
|||
|
|
@ -350,6 +350,8 @@
|
|||
"cacheReadsPrice": "Prix des lectures de cache",
|
||||
"cacheWritesPrice": "Prix des écritures de cache",
|
||||
"enableStreaming": "Activer le streaming",
|
||||
"enableR1Format": "Activer les paramètres du modèle R1",
|
||||
"enableR1FormatTips": "Doit être activé lors de l'utilisation de modèles R1 tels que QWQ, pour éviter l'erreur 400",
|
||||
"useAzure": "Utiliser Azure",
|
||||
"azureApiVersion": "Définir la version de l'API Azure",
|
||||
"gemini": {
|
||||
|
|
|
|||
|
|
@ -350,6 +350,8 @@
|
|||
"cacheReadsPrice": "कैश रीड्स मूल्य",
|
||||
"cacheWritesPrice": "कैश राइट्स मूल्य",
|
||||
"enableStreaming": "स्ट्रीमिंग सक्षम करें",
|
||||
"enableR1Format": "R1 मॉडल पैरामीटर सक्षम करें",
|
||||
"enableR1FormatTips": "QWQ जैसी R1 मॉडलों का उपयोग करते समय इसे सक्षम करना आवश्यक है, ताकि 400 त्रुटि से बचा जा सके",
|
||||
"useAzure": "Azure का उपयोग करें",
|
||||
"azureApiVersion": "Azure API संस्करण सेट करें",
|
||||
"gemini": {
|
||||
|
|
|
|||
|
|
@ -350,6 +350,8 @@
|
|||
"cacheReadsPrice": "Prezzo letture cache",
|
||||
"cacheWritesPrice": "Prezzo scritture cache",
|
||||
"enableStreaming": "Abilita streaming",
|
||||
"enableR1Format": "Abilita i parametri del modello R1",
|
||||
"enableR1FormatTips": "Deve essere abilitato quando si utilizzano modelli R1 come QWQ, per evitare l'errore 400",
|
||||
"useAzure": "Usa Azure",
|
||||
"azureApiVersion": "Imposta versione API Azure",
|
||||
"gemini": {
|
||||
|
|
|
|||
|
|
@ -350,6 +350,8 @@
|
|||
"cacheReadsPrice": "キャッシュ読み取り価格",
|
||||
"cacheWritesPrice": "キャッシュ書き込み価格",
|
||||
"enableStreaming": "ストリーミングを有効化",
|
||||
"enableR1Format": "R1モデルパラメータを有効にする",
|
||||
"enableR1FormatTips": "QWQなどのR1モデルを使用する際には、有効にする必要があります。400エラーを防ぐために",
|
||||
"useAzure": "Azureを使用",
|
||||
"azureApiVersion": "Azure APIバージョンを設定",
|
||||
"gemini": {
|
||||
|
|
|
|||
|
|
@ -350,6 +350,8 @@
|
|||
"cacheReadsPrice": "캐시 읽기 가격",
|
||||
"cacheWritesPrice": "캐시 쓰기 가격",
|
||||
"enableStreaming": "스트리밍 활성화",
|
||||
"enableR1Format": "R1 모델 매개변수 활성화",
|
||||
"enableR1FormatTips": "QWQ와 같은 R1 모델을 사용할 때 활성화해야 하며, 400 오류를 방지합니다",
|
||||
"useAzure": "Azure 사용",
|
||||
"azureApiVersion": "Azure API 버전 설정",
|
||||
"gemini": {
|
||||
|
|
|
|||
|
|
@ -350,6 +350,8 @@
|
|||
"cacheReadsPrice": "Cena odczytów bufora",
|
||||
"cacheWritesPrice": "Cena zapisów bufora",
|
||||
"enableStreaming": "Włącz strumieniowanie",
|
||||
"enableR1Format": "Włącz parametry modelu R1",
|
||||
"enableR1FormatTips": "Należy włączyć podczas korzystania z modeli R1, takich jak QWQ, aby uniknąć błędu 400",
|
||||
"useAzure": "Użyj Azure",
|
||||
"azureApiVersion": "Ustaw wersję API Azure",
|
||||
"gemini": {
|
||||
|
|
|
|||
|
|
@ -350,6 +350,8 @@
|
|||
"cacheReadsPrice": "Preço de leituras de cache",
|
||||
"cacheWritesPrice": "Preço de escritas de cache",
|
||||
"enableStreaming": "Ativar streaming",
|
||||
"enableR1Format": "Ativar parâmetros do modelo R1",
|
||||
"enableR1FormatTips": "Deve ser ativado ao usar modelos R1 como QWQ, para evitar erro 400",
|
||||
"useAzure": "Usar Azure",
|
||||
"azureApiVersion": "Definir versão da API Azure",
|
||||
"gemini": {
|
||||
|
|
|
|||
|
|
@ -350,6 +350,8 @@
|
|||
"cacheReadsPrice": "Önbellek okuma fiyatı",
|
||||
"cacheWritesPrice": "Önbellek yazma fiyatı",
|
||||
"enableStreaming": "Akışı etkinleştir",
|
||||
"enableR1Format": "R1 model parametrelerini etkinleştir",
|
||||
"enableR1FormatTips": "QWQ gibi R1 modelleri kullanıldığında etkinleştirilmelidir, 400 hatası alınmaması için",
|
||||
"useAzure": "Azure kullan",
|
||||
"azureApiVersion": "Azure API sürümünü ayarla",
|
||||
"gemini": {
|
||||
|
|
|
|||
|
|
@ -350,6 +350,8 @@
|
|||
"cacheReadsPrice": "Giá đọc bộ nhớ đệm",
|
||||
"cacheWritesPrice": "Giá ghi bộ nhớ đệm",
|
||||
"enableStreaming": "Bật streaming",
|
||||
"enableR1Format": "Kích hoạt tham số mô hình R1",
|
||||
"enableR1FormatTips": "Cần kích hoạt khi sử dụng các mô hình R1 như QWQ, để tránh lỗi 400",
|
||||
"useAzure": "Sử dụng Azure",
|
||||
"azureApiVersion": "Đặt phiên bản API Azure",
|
||||
"gemini": {
|
||||
|
|
|
|||
|
|
@ -350,6 +350,8 @@
|
|||
"cacheReadsPrice": "缓存读取价格",
|
||||
"cacheWritesPrice": "缓存写入价格",
|
||||
"enableStreaming": "启用流式传输",
|
||||
"enableR1Format": "启用R1模型传参",
|
||||
"enableR1FormatTips": "当使用QWQ等类R1模型时需启用,防止报400错误",
|
||||
"useAzure": "使用 Azure 服务",
|
||||
"azureApiVersion": "设置 Azure API 版本",
|
||||
"gemini": {
|
||||
|
|
|
|||
|
|
@ -9,22 +9,22 @@
|
|||
"header": {
|
||||
"title": "設定",
|
||||
"saveButtonTooltip": "儲存變更",
|
||||
"nothingChangedTooltip": "沒有變更",
|
||||
"doneButtonTooltip": "捨棄未儲存的變更並關閉設定面板"
|
||||
"nothingChangedTooltip": "無任何變更",
|
||||
"doneButtonTooltip": "取消未保存的變更並關閉設定面板"
|
||||
},
|
||||
"unsavedChangesDialog": {
|
||||
"title": "未儲存的變更",
|
||||
"description": "是否捨棄變更並繼續?",
|
||||
"title": "未保存的變更",
|
||||
"description": "是否要取消變更並繼續?",
|
||||
"cancelButton": "取消",
|
||||
"discardButton": "捨棄變更"
|
||||
"discardButton": "取消變更"
|
||||
},
|
||||
"sections": {
|
||||
"providers": "提供者",
|
||||
"autoApprove": "自動核准",
|
||||
"browser": "瀏覽器 / 電腦使用",
|
||||
"autoApprove": "自動批准",
|
||||
"browser": "瀏覽器/電腦使用",
|
||||
"checkpoints": "檢查點",
|
||||
"notifications": "通知",
|
||||
"contextManagement": "內容管理",
|
||||
"contextManagement": "上下文管理",
|
||||
"terminal": "終端機",
|
||||
"advanced": "進階",
|
||||
"experimental": "實驗性功能",
|
||||
|
|
@ -32,75 +32,75 @@
|
|||
"about": "關於 Roo Code"
|
||||
},
|
||||
"autoApprove": {
|
||||
"description": "允許 Roo 自動執行操作而無需核准。僅在您完全信任 AI 並理解相關安全風險的情況下啟用這些設定。",
|
||||
"description": "允許 Roo 無需批准即執行操作。僅在您完全信任 AI 並了解相關安全風險時啟用這些設定。",
|
||||
"readOnly": {
|
||||
"label": "始終核准唯讀操作",
|
||||
"description": "啟用後,Roo 將自動檢視目錄內容並讀取檔案,無需點擊核准按鈕。"
|
||||
"label": "始終批准只讀操作",
|
||||
"description": "啟用後,Roo 將自動查看目錄內容和讀取文件,無需點擊批准按鈕。"
|
||||
},
|
||||
"write": {
|
||||
"label": "始終核准寫入操作",
|
||||
"description": "自動建立和編輯檔案而無需核准",
|
||||
"delayLabel": "寫入後延遲以允許診斷偵測潛在問題"
|
||||
"label": "始終批准寫入操作",
|
||||
"description": "自動建立和編輯文件而無需批准",
|
||||
"delayLabel": "寫入後延遲以允許診斷檢測潛在問題"
|
||||
},
|
||||
"browser": {
|
||||
"label": "始終核准瀏覽器操作",
|
||||
"description": "自動執行瀏覽器操作而無需核准",
|
||||
"note": "注意:僅當模型支援電腦使用時適用"
|
||||
"label": "始終批准瀏覽器操作",
|
||||
"description": "自動執行瀏覽器操作而無需批准",
|
||||
"note": "注意:僅適用於模型支援電腦使用時"
|
||||
},
|
||||
"retry": {
|
||||
"label": "始終重試失敗的 API 請求",
|
||||
"description": "當伺服器傳回錯誤回應時自動重試失敗的 API 請求",
|
||||
"description": "當伺服器返回錯誤響應時自動重試失敗的 API 請求",
|
||||
"delayLabel": "重試請求前的延遲"
|
||||
},
|
||||
"mcp": {
|
||||
"label": "始終核准 MCP 工具",
|
||||
"description": "在 MCP 伺服器檢視中啟用個別 MCP 工具的自動核准(需要此設定和工具的\"始終允許\"核取方塊)"
|
||||
"label": "始終批准 MCP 工具",
|
||||
"description": "在 MCP 伺服器檢視中啟用單個 MCP 工具的自動批准(需要此設定和工具的「始終允許」核取方框)"
|
||||
},
|
||||
"modeSwitch": {
|
||||
"label": "始終核准模式切換",
|
||||
"description": "自動在不同模式之間切換而無需核准"
|
||||
"label": "始終批准模式切換",
|
||||
"description": "自動在不同模式之間切換而無需批准"
|
||||
},
|
||||
"subtasks": {
|
||||
"label": "始終核准子任務的建立和完成",
|
||||
"description": "允許建立和完成子任務而無需核准"
|
||||
"label": "始終批准子任務的建立與完成",
|
||||
"description": "允許建立和完成子任務而無需批准"
|
||||
},
|
||||
"execute": {
|
||||
"label": "始終核准允許的執行操作",
|
||||
"description": "自動執行允許的終端機命令而無需核准",
|
||||
"allowedCommands": "允許的自動執行命令",
|
||||
"allowedCommandsDescription": "當\"始終核准執行操作\"啟用時可以自動執行的命令前綴。添加 * 以允許所有命令(謹慎使用)。",
|
||||
"commandPlaceholder": "輸入命令前綴(例如 'git ')",
|
||||
"label": "始終批准允許的執行操作",
|
||||
"description": "自動執行允許的終端機指令而無需批准",
|
||||
"allowedCommands": "允許自動執行的指令",
|
||||
"allowedCommandsDescription": "當「始終批准執行操作」啟用時可自動執行的指令前綴。加入 * 以允許所有指令(謹慎使用)。",
|
||||
"commandPlaceholder": "輸入指令前綴(例如:git )",
|
||||
"addButton": "新增"
|
||||
}
|
||||
},
|
||||
"providers": {
|
||||
"configProfile": "設定檔案",
|
||||
"configProfile": "配置設定檔",
|
||||
"description": "儲存不同的 API 設定以快速切換提供者和設定。",
|
||||
"apiProvider": "API 提供者",
|
||||
"model": "模型",
|
||||
"nameEmpty": "名稱不能為空",
|
||||
"nameEmpty": "名稱不可為空",
|
||||
"nameExists": "已存在同名的設定檔",
|
||||
"deleteProfile": "刪除設定檔",
|
||||
"invalidArnFormat": "無效的 ARN 格式。請檢查上面的範例。",
|
||||
"invalidArnFormat": "ARN 格式無效。請檢查上方示例。",
|
||||
"enterNewName": "輸入新名稱",
|
||||
"addProfile": "新增設定檔",
|
||||
"renameProfile": "重新命名設定檔",
|
||||
"newProfile": "新建設定檔",
|
||||
"newProfile": "新配置設定檔",
|
||||
"enterProfileName": "輸入設定檔名稱",
|
||||
"createProfile": "建立設定檔",
|
||||
"cannotDeleteOnlyProfile": "無法刪除唯一的設定檔",
|
||||
"vscodeLmDescription": "VS Code 語言模型 API 允許您運行其他 VS Code 擴展提供的模型(包括但不限於 GitHub Copilot)。最簡單的方式是從 VS Code Marketplace 安裝 Copilot 和 Copilot Chat 擴展。",
|
||||
"awsCustomArnUse": "輸入您要使用的模型的有效 AWS Bedrock ARN。格式範例:",
|
||||
"awsCustomArnDesc": "確保 ARN 中的區域與您上面選擇的 AWS 區域匹配。",
|
||||
"vscodeLmDescription": "VS Code 語言模型 API 可讓您執行其他擴充功能(如 GitHub Copilot)提供的模型。最快捷的方式是從 VS Code 市集安裝 Copilot 和 Copilot Chat 擴充功能。",
|
||||
"awsCustomArnUse": "輸入要使用的模型有效 AWS Bedrock ARN。格式範例:",
|
||||
"awsCustomArnDesc": "確保 ARN 中的區域與您選擇的 AWS 區域相符。",
|
||||
"openRouterApiKey": "OpenRouter API 金鑰",
|
||||
"getOpenRouterApiKey": "取得 OpenRouter API 金鑰",
|
||||
"apiKeyStorageNotice": "API 金鑰安全儲存在 VSCode 的秘密儲存中",
|
||||
"apiKeyStorageNotice": "API 金鑰安全儲存於 VSCode 金鑰儲存中",
|
||||
"glamaApiKey": "Glama API 金鑰",
|
||||
"getGlamaApiKey": "取得 Glama API 金鑰",
|
||||
"useCustomBaseUrl": "使用自訂基礎 URL",
|
||||
"useCustomBaseUrl": "使用自定義基礎 URL",
|
||||
"requestyApiKey": "Requesty API 金鑰",
|
||||
"getRequestyApiKey": "取得 Requesty API 金鑰",
|
||||
"openRouterTransformsText": "將提示和訊息鏈壓縮到內容大小 (<a>OpenRouter 轉換</a>)",
|
||||
"openRouterTransformsText": "將提示和訊息鏈壓縮到上下文大小 (<a>OpenRouter 轉換</a>)",
|
||||
"anthropicApiKey": "Anthropic API 金鑰",
|
||||
"getAnthropicApiKey": "取得 Anthropic API 金鑰",
|
||||
"deepSeekApiKey": "DeepSeek API 金鑰",
|
||||
|
|
@ -111,109 +111,109 @@
|
|||
"openAiBaseUrl": "基礎 URL",
|
||||
"getOpenAiApiKey": "取得 OpenAI API 金鑰",
|
||||
"mistralApiKey": "Mistral API 金鑰",
|
||||
"getMistralApiKey": "取得 Mistral / Codestral API 金鑰",
|
||||
"codestralBaseUrl": "Codestral 基礎 URL(選用)",
|
||||
"codestralBaseUrlDesc": "設定 Codestral 模型的替代 URL。",
|
||||
"awsCredentials": "AWS 憑證",
|
||||
"awsProfile": "AWS 設定檔",
|
||||
"awsProfileName": "AWS 設定檔名稱",
|
||||
"getMistralApiKey": "取得 Mistral/Codestral API 金鑰",
|
||||
"codestralBaseUrl": "Codestral 基礎 URL(可選)",
|
||||
"codestralBaseUrlDesc": "設置 Codestral 模型的替代 URL。",
|
||||
"awsCredentials": "AWS 認證",
|
||||
"awsProfile": "AWS 個人設定",
|
||||
"awsProfileName": "AWS 個人設定名稱",
|
||||
"awsAccessKey": "AWS 存取金鑰",
|
||||
"awsSecretKey": "AWS 秘密金鑰",
|
||||
"awsSessionToken": "AWS 工作階段權杖",
|
||||
"awsSecretKey": "AWS 機密金鑰",
|
||||
"awsSessionToken": "AWS 會話權杖",
|
||||
"awsRegion": "AWS 區域",
|
||||
"awsCrossRegion": "使用跨區域推論",
|
||||
"vscodeLmModel": "VSCode LM 模型",
|
||||
"vscodeLmWarning": "注意:這是一個非常實驗性的集成,提供者支援會有所不同。如果您收到有關不支援模型的錯誤,那麼這是提供者方面的問題。",
|
||||
"vscodeLmModel": "語言模型",
|
||||
"vscodeLmWarning": "注意:此為實驗性整合,提供者支援可能不同。若遇到模型不支援錯誤,請聯繫提供者。",
|
||||
"googleCloudSetup": {
|
||||
"title": "要使用 Google Cloud Vertex AI,您需要:",
|
||||
"step1": "1. 建立 Google Cloud 帳戶,啟用 Vertex AI API 並啟用所需的 Claude 模型。",
|
||||
"step1": "1. 建立 Google Cloud 帳戶,啟用 Vertex AI API 並啟用所需 Claude 模型。",
|
||||
"step2": "2. 安裝 Google Cloud CLI 並設定應用程式預設憑證。",
|
||||
"step3": "3. 或建立具有憑證的服務帳戶。"
|
||||
"step3": "3. 或建立具憑證的服務帳戶。"
|
||||
},
|
||||
"googleCloudCredentials": "Google Cloud 憑證",
|
||||
"googleCloudKeyFile": "Google Cloud 金鑰檔案路徑",
|
||||
"googleCloudProjectId": "Google Cloud 專案 ID",
|
||||
"googleCloudRegion": "Google Cloud 區域",
|
||||
"lmStudio": {
|
||||
"baseUrl": "基礎 URL(選用)",
|
||||
"baseUrl": "基礎 URL(可選)",
|
||||
"modelId": "模型 ID",
|
||||
"speculativeDecoding": "啟用推測解碼",
|
||||
"speculativeDecoding": "啟用預測性解碼",
|
||||
"draftModelId": "草稿模型 ID",
|
||||
"draftModelDesc": "推測解碼要正確運作,草稿模型必須來自相同的模型系列。",
|
||||
"draftModelDesc": "草稿模型必須來自相同模型系列才能正確運作。",
|
||||
"selectDraftModel": "選擇草稿模型",
|
||||
"noModelsFound": "找不到草稿模型。請確保 LM Studio 已在伺服器模式下執行。",
|
||||
"description": "LM Studio 允許您在本機電腦上執行模型。關於如何開始使用,請參閱他們的<a>快速入門指南</a>。您還需要啟動 LM Studio 的<b>本機伺服器</b>功能才能與此擴充功能一起使用。<span>注意:</span>Roo Code 使用複雜的提示,並在 Claude 模型上運作最佳。功能較弱的模型可能無法如預期運作。"
|
||||
"noModelsFound": "未找到草稿模型。請確保 LM Studio 以伺服器模式運行。",
|
||||
"description": "LM Studio 允許您在本地電腦運行模型。詳細資訊請參閱快速入門指南。您需要啟動 LM Studio 的本地伺服器功能才能與此擴充功能搭配使用。<span>注意:</span> Roo Code 使用複雜提示,與 Claude 模型搭配最佳。功能較弱的模型可能無法正常運作。"
|
||||
},
|
||||
"ollama": {
|
||||
"baseUrl": "基礎 URL(選用)",
|
||||
"baseUrl": "基礎 URL(可選)",
|
||||
"modelId": "模型 ID",
|
||||
"description": "Ollama 允許您在本機電腦上執行模型。關於如何開始使用,請參閱快速入門指南。",
|
||||
"warning": "注意:Roo Code 使用複雜的提示,並在 Claude 模型上運作最佳。功能較弱的模型可能無法如預期運作。"
|
||||
"description": "Ollama 允許您在本地電腦運行模型。請參閱快速入門指南。",
|
||||
"warning": "注意:Roo Code 使用複雜提示,與 Claude 模型搭配最佳。功能較弱的模型可能無法正常運作。"
|
||||
},
|
||||
"unboundApiKey": "Unbound API 金鑰",
|
||||
"getUnboundApiKey": "取得 Unbound API 金鑰",
|
||||
"humanRelay": {
|
||||
"description": "不需要 API 金鑰,但使用者需要協助將資訊複製並貼上到網頁聊天 AI。",
|
||||
"instructions": "使用期間會彈出對話框,並自動將目前訊息複製到剪貼簿。您需要將這些內容貼上到網頁版 AI(如 ChatGPT 或 Claude),然後將 AI 的回覆複製回對話框並點擊確認按鈕。"
|
||||
"description": "無需 API 金鑰,但使用者需協助將資訊複製到網頁聊天 AI。",
|
||||
"instructions": "使用期間,對話方格會彈出且當前訊息會自動複製到剪貼簿。您需將其貼到 ChatGPT 或 Claude 網頁版,再將 AI 回應複製回對話方塊並點擊確認按鈕。"
|
||||
},
|
||||
"openRouter": {
|
||||
"providerRouting": {
|
||||
"title": "OpenRouter 提供者路由",
|
||||
"description": "OpenRouter 將請求路由到適合您模型的最佳可用提供者。預設情況下,請求會在頂級提供者之間進行負載平衡以最大化正常運行時間。但是,您可以為此模型選擇特定的提供者。",
|
||||
"learnMore": "了解更多關於提供者路由的資訊"
|
||||
"description": "OpenRouter 會將請求路由到適合模型的最佳提供者。預設會在頂尖提供者之間負載平衡以確保正常運作時間。您可為此模型選擇特定提供者。",
|
||||
"learnMore": "了解更多關於提供者路由"
|
||||
}
|
||||
},
|
||||
"customModel": {
|
||||
"capabilities": "設定您的自訂 OpenAI 相容模型的功能和定價。請謹慎指定模型功能,因為它們會影響 Roo Code 的效能。",
|
||||
"capabilities": "設定自定義 OpenAI 相容模型的功能和定價。指定功能時需謹慎。",
|
||||
"maxTokens": {
|
||||
"label": "最大輸出權杖",
|
||||
"description": "模型在回應中可以生成的最大權杖數。(指定 -1 以允許伺服器設定最大權杖數。)"
|
||||
"label": "最大輸出トークン",
|
||||
"description": "模型回應可產生的最大トークン數。(指定 -1 使用伺服器設定最大值)"
|
||||
},
|
||||
"contextWindow": {
|
||||
"label": "內容視窗大小",
|
||||
"description": "模型可以處理的總權杖數(輸入 + 輸出)。"
|
||||
"label": "上下文視窗大小",
|
||||
"description": "模型可處理的總トークン數(輸入+輸出)"
|
||||
},
|
||||
"imageSupport": {
|
||||
"label": "圖像支援",
|
||||
"description": "此模型是否能夠處理和理解圖像?"
|
||||
"label": "影像支援",
|
||||
"description": "此模型是否能處理和理解影像?"
|
||||
},
|
||||
"computerUse": {
|
||||
"label": "電腦使用",
|
||||
"description": "此模型是否能夠與瀏覽器互動?(例如 Claude 3.7 Sonnet)"
|
||||
"description": "此模型能否與瀏覽器互動?(例如 Claude 3.7 Sonnet)"
|
||||
},
|
||||
"promptCache": {
|
||||
"label": "提示快取",
|
||||
"description": "此模型是否能夠快取提示?"
|
||||
"description": "此模型是否能快取提示?"
|
||||
},
|
||||
"pricing": {
|
||||
"input": {
|
||||
"label": "輸入價格",
|
||||
"description": "輸入/提示每百萬權杖的成本。這會影響向模型發送內容和指令的成本。"
|
||||
"description": "每百萬輸入/提示トークン的費用"
|
||||
},
|
||||
"output": {
|
||||
"label": "輸出價格",
|
||||
"description": "模型回應每百萬權杖的成本。這會影響生成內容和完成的成本。"
|
||||
"description": "模型回應每百萬トークン的費用"
|
||||
},
|
||||
"cacheReads": {
|
||||
"label": "快取讀取價格",
|
||||
"description": "從快取讀取每百萬權杖的成本。這是檢索快取回應時收取的價格。"
|
||||
"description": "讀取快取時的費用"
|
||||
},
|
||||
"cacheWrites": {
|
||||
"label": "快取寫入價格",
|
||||
"description": "寫入快取每百萬權杖的成本。這是首次快取提示時收取的價格。"
|
||||
"description": "首次將提示寫入快取時的費用"
|
||||
}
|
||||
},
|
||||
"resetDefaults": "重設為預設值"
|
||||
"resetDefaults": "重設預設值"
|
||||
}
|
||||
},
|
||||
"browser": {
|
||||
"enable": {
|
||||
"label": "啟用瀏覽器工具",
|
||||
"description": "啟用後,Roo 可以在使用支援電腦使用的模型時使用瀏覽器與網站互動。"
|
||||
"description": "啟用後,Roo 可在使用支援電腦使用的模型時使用瀏覽器互動。"
|
||||
},
|
||||
"viewport": {
|
||||
"label": "視窗大小",
|
||||
"description": "選擇瀏覽器互動的視窗大小。這會影響網站的顯示方式和互動方式。",
|
||||
"label": "視口大小",
|
||||
"description": "選擇瀏覽器互動的視口大小。",
|
||||
"options": {
|
||||
"largeDesktop": "大型桌面 (1280x800)",
|
||||
"smallDesktop": "小型桌面 (900x600)",
|
||||
|
|
@ -223,123 +223,123 @@
|
|||
},
|
||||
"screenshotQuality": {
|
||||
"label": "截圖品質",
|
||||
"description": "調整瀏覽器截圖的 WebP 品質。較高的值提供更清晰的截圖,但會增加 token 使用量。"
|
||||
"description": "調整瀏覽器截圖的 WebP 品質。較高值會增加 token 使用量。"
|
||||
},
|
||||
"remote": {
|
||||
"label": "使用遠端瀏覽器連線",
|
||||
"description": "連線到啟用遠端偵錯的 Chrome 瀏覽器 (--remote-debugging-port=9222)。",
|
||||
"urlPlaceholder": "自訂 URL(例如 http://localhost:9222)",
|
||||
"description": "連線到啟用遠端除錯的 Chrome 瀏覽器(--remote-debugging-port=9222)。",
|
||||
"urlPlaceholder": "自定義 URL(例如 http://localhost:9222)",
|
||||
"testButton": "測試連線",
|
||||
"testingButton": "測試中...",
|
||||
"instructions": "輸入 DevTools 協議主機地址或留空以自動探索本地 Chrome 實例。測試連線按鈕將嘗試使用自訂 URL(如果提供),或者如果欄位為空則自動探索。"
|
||||
"instructions": "輸入 DevTools 協定主機位址或留空以自動發現本機 Chrome 執行個體。"
|
||||
}
|
||||
},
|
||||
"checkpoints": {
|
||||
"enable": {
|
||||
"label": "啟用自動檢查點",
|
||||
"description": "啟用後,Roo 將在任務執行期間自動建立檢查點,使審核變更或返回到早期狀態變得容易。"
|
||||
"description": "啟用後,Roo 將在任務執行期間自動建立檢查點。"
|
||||
}
|
||||
},
|
||||
"notifications": {
|
||||
"sound": {
|
||||
"label": "啟用音效",
|
||||
"description": "啟用後,Roo 將為通知和事件播放音效。",
|
||||
"description": "啟用後,Roo 將為通知播放音效",
|
||||
"volumeLabel": "音量"
|
||||
},
|
||||
"tts": {
|
||||
"label": "啟用文字轉語音",
|
||||
"description": "啟用後,Roo 將使用文字轉語音功能朗讀其回應。",
|
||||
"description": "啟用後,Roo 將使用文字轉語音朗讀回應",
|
||||
"speedLabel": "速度"
|
||||
}
|
||||
},
|
||||
"contextManagement": {
|
||||
"description": "控制在 AI 的內容視窗中包含哪些資訊,影響 token 使用和回應品質",
|
||||
"description": "控制 AI 上下文視窗包含的資訊,影響 token 使用和回應品質",
|
||||
"openTabs": {
|
||||
"label": "開啟分頁內容限制",
|
||||
"description": "在內容中包含的 VSCode 開啟分頁的最大數量。較高的值提供更多內容,但會增加 token 使用量。"
|
||||
"label": "開啟的分頁上下文限制",
|
||||
"description": "最多包含的 VSCode 開啟分頁數"
|
||||
},
|
||||
"workspaceFiles": {
|
||||
"label": "工作區檔案內容限制",
|
||||
"description": "在目前工作目錄詳細資訊中包含的最大檔案數。較高的值提供更多內容,但會增加 token 使用量。"
|
||||
"label": "工作區檔案上下文限制",
|
||||
"description": "最多包含的當前工作目錄詳細資訊檔案數"
|
||||
},
|
||||
"rooignore": {
|
||||
"label": "在列表和搜尋中顯示 .rooignore 檔案",
|
||||
"description": "啟用後,與 .rooignore 中模式匹配的檔案將在列表中顯示鎖定符號。禁用時,這些檔案將從檔案列表和搜尋中完全隱藏。"
|
||||
"label": "顯示 .rooignore 檔案",
|
||||
"description": "啟用後,符合 .rooignore 模式之檔案會顯示上鎖符號"
|
||||
},
|
||||
"maxReadFile": {
|
||||
"label": "檔案讀取自動截斷閾值",
|
||||
"description": "一批中從檔案讀取的預設行數。較低的值會減少內容/資源使用,但可能需要對大型檔案進行更多次讀取。",
|
||||
"description": "預設讀取檔案的行數",
|
||||
"lines": "行"
|
||||
}
|
||||
},
|
||||
"terminal": {
|
||||
"outputLineLimit": {
|
||||
"label": "終端機輸出限制",
|
||||
"description": "執行命令時在終端機輸出中包含的最大行數。超過時將從中間刪除行,節省 token。"
|
||||
"description": "執行指令時包含的最大行數"
|
||||
},
|
||||
"shellIntegrationTimeout": {
|
||||
"label": "終端機 Shell 整合逾時",
|
||||
"description": "執行命令前等待 Shell 整合初始化的最長時間。對於 Shell 啟動時間較長的使用者,如果在終端機中看到\"Shell Integration Unavailable\"錯誤,可能需要增加此值。"
|
||||
"label": "終端機 shell 綜合超時",
|
||||
"description": "shell 綜合初始化的最長等待時間"
|
||||
}
|
||||
},
|
||||
"advanced": {
|
||||
"rateLimit": {
|
||||
"label": "速率限制",
|
||||
"description": "API 請求之間的最小時間。"
|
||||
"description": "API 請求間的最短時間"
|
||||
},
|
||||
"diff": {
|
||||
"label": "啟用透過差異編輯",
|
||||
"description": "啟用後,Roo 將能夠更快地編輯檔案,並將自動拒絕截斷的完整檔案寫入。與最新的 Claude 3.7 Sonnet 模型搭配最佳。",
|
||||
"label": "啟用 diff 編輯",
|
||||
"description": "啟用後可更快編輯文件並自動拒絕不完整的完整文件寫入",
|
||||
"strategy": {
|
||||
"label": "Diff 策略",
|
||||
"label": "diff 策略",
|
||||
"options": {
|
||||
"standard": "標準(單塊)",
|
||||
"multiBlock": "實驗性:多塊 diff",
|
||||
"standard": "標準(單一區塊)",
|
||||
"multiBlock": "實驗性:多區塊 diff",
|
||||
"unified": "實驗性:統一 diff"
|
||||
},
|
||||
"descriptions": {
|
||||
"standard": "標準 diff 策略一次對一個程式碼塊應用變更。",
|
||||
"unified": "統一 diff 策略採用多種方法應用差異並選擇最佳方法。",
|
||||
"multiBlock": "多塊 diff 策略允許在一個請求中更新檔案中的多個程式碼塊。"
|
||||
"standard": "每次修改單一程式區塊",
|
||||
"multiBlock": "單次請求更新多個程式區塊",
|
||||
"unified": "多種 diff 方法選擇最佳方案"
|
||||
}
|
||||
},
|
||||
"matchPrecision": {
|
||||
"label": "匹配精度",
|
||||
"description": "此滑桿控制應用差異時程式碼部分必須匹配的精確度。較低的值允許更靈活的匹配,但會增加錯誤替換的風險。極其謹慎地使用低於 100% 的值。"
|
||||
"label": "匹配精確度",
|
||||
"description": "此滑桿控制應用 diff 時程式區塊的匹配精確度"
|
||||
}
|
||||
}
|
||||
},
|
||||
"experimental": {
|
||||
"warning": "⚠️",
|
||||
"DIFF_STRATEGY": {
|
||||
"name": "使用實驗性統一差異策略",
|
||||
"description": "啟用實驗性統一差異策略。此策略可能減少由模型錯誤引起的重試次數,但可能導致意外行為或不正確的編輯。僅在您了解風險並願意仔細審查所有更改時才啟用。"
|
||||
"name": "使用實驗性統一 diff 策略",
|
||||
"description": "此實驗性策略可能減少模型錯誤導致的重試次數,但需謹慎使用"
|
||||
},
|
||||
"SEARCH_AND_REPLACE": {
|
||||
"name": "使用實驗性搜索和替換工具",
|
||||
"description": "啟用實驗性搜索和替換工具,允許 Roo 在一個請求中替換搜索詞的多個實例。"
|
||||
"name": "使用實驗性搜尋與取代工具",
|
||||
"description": "允許 Roo 在單一請求中取代多個搜尋詞實例"
|
||||
},
|
||||
"INSERT_BLOCK": {
|
||||
"name": "使用實驗性插入內容工具",
|
||||
"description": "啟用實驗性插入內容工具,允許 Roo 在特定行號插入內容,無需創建差異。"
|
||||
"description": "允許在特定行號插入內容而無需建立 diff"
|
||||
},
|
||||
"POWER_STEERING": {
|
||||
"name": "使用實驗性\"動力轉向\"模式",
|
||||
"description": "啟用後,Roo 將更頻繁地提醒模型關於其當前模式定義的詳細信息。這將導致對角色定義和自定義指令的更強遵守,但每條消息將使用更多 token。"
|
||||
"name": "使用實驗性「動力轉向」模式",
|
||||
"description": "此模式會更頻繁地提醒模型其角色定義"
|
||||
},
|
||||
"MULTI_SEARCH_AND_REPLACE": {
|
||||
"name": "使用實驗性多塊差異工具",
|
||||
"description": "啟用後,Roo 將使用多塊差異工具。這將嘗試在一個請求中更新文件中的多個代碼塊。"
|
||||
"name": "使用實驗性多區塊 diff 工具",
|
||||
"description": "單次請求更新檔案中的多個程式區塊"
|
||||
}
|
||||
},
|
||||
"temperature": {
|
||||
"useCustom": "使用自訂溫度",
|
||||
"description": "控制模型回應中的隨機性。",
|
||||
"rangeDescription": "較高的值使輸出更隨機,較低的值使其更確定性。"
|
||||
"useCustom": "使用自定義溫度",
|
||||
"description": "控制模型回應的隨機性",
|
||||
"rangeDescription": "較高值使輸出更隨機,較低值更確定"
|
||||
},
|
||||
"modelInfo": {
|
||||
"supportsImages": "支援圖像",
|
||||
"noImages": "不支援圖像",
|
||||
"supportsImages": "支援影像",
|
||||
"noImages": "不支援影像",
|
||||
"supportsComputerUse": "支援電腦使用",
|
||||
"noComputerUse": "不支援電腦使用",
|
||||
"supportsPromptCache": "支援提示快取",
|
||||
|
|
@ -349,81 +349,83 @@
|
|||
"outputPrice": "輸出價格",
|
||||
"cacheReadsPrice": "快取讀取價格",
|
||||
"cacheWritesPrice": "快取寫入價格",
|
||||
"enableStreaming": "啟用串流媒體",
|
||||
"enableStreaming": "啟用串流",
|
||||
"enableR1Format": "啟用R1模型參數",
|
||||
"enableR1FormatTips": "當使用QWQ等類R1模型時需啟用,防止400錯誤",
|
||||
"useAzure": "使用 Azure",
|
||||
"azureApiVersion": "設定 Azure API 版本",
|
||||
"gemini": {
|
||||
"freeRequests": "* 每分鐘免費 {{count}} 個請求。之後,計費取決於提示大小。",
|
||||
"pricingDetails": "有關更多資訊,請參閱定價詳情。"
|
||||
"freeRequests": "* 每分鐘免費 {{count}} 次請求。超過後依提示大小計費。",
|
||||
"pricingDetails": "查看定價細節"
|
||||
}
|
||||
},
|
||||
"modelPicker": {
|
||||
"automaticFetch": "擴充功能會自動獲取 <serviceLink>{{serviceName}}</serviceLink> 上可用的最新模型列表。如果您不確定選擇哪個模型,Roo Code 與 <defaultModelLink>{{defaultModelId}}</defaultModelLink> 配合最佳。您還可以搜尋\"free\"以尋找目前可用的免費選項。",
|
||||
"automaticFetch": "擴充功能會自動取得 {{serviceName}} 上最新模型列表。若不確定選擇,Roo Code 與 {{defaultModelId}} 搭配最佳。",
|
||||
"label": "模型",
|
||||
"searchPlaceholder": "搜尋",
|
||||
"noMatchFound": "未找到相符項目",
|
||||
"useCustomModel": "使用自訂: {{modelId}}"
|
||||
"useCustomModel": "使用自定義模型:{{modelId}}"
|
||||
},
|
||||
"footer": {
|
||||
"feedback": "如果您有任何問題或反饋,請隨時在 <githubLink>github.com/RooVetGit/Roo-Code</githubLink> 上提出問題或加入 <redditLink>reddit.com/r/RooCode</redditLink> 或 <discordLink>discord.gg/roocode</discordLink>",
|
||||
"feedback": "若有問題或建議,請在 <githubLink>GitHub</githubLink> 建立 issue 或加入 <discordLink>Discord</discordLink>",
|
||||
"version": "Roo Code v{{version}}",
|
||||
"telemetry": {
|
||||
"label": "允許匿名錯誤和使用情況報告",
|
||||
"description": "透過發送匿名使用資料和錯誤報告來幫助改進 Roo Code。絕不會發送程式碼、提示或個人資訊。有關更多詳細資訊,請參閱我們的隱私政策。"
|
||||
"label": "允許匿名錯誤和使用報告",
|
||||
"description": "匿名資料協助改善 Roo Code,絕不傳送程式碼或個人資訊"
|
||||
},
|
||||
"reset": {
|
||||
"description": "重設擴充功能中的所有全域狀態和秘密儲存。",
|
||||
"description": "重設擴充功能的全局狀態和金鑰儲存",
|
||||
"button": "重設"
|
||||
}
|
||||
},
|
||||
"thinkingBudget": {
|
||||
"maxTokens": "最大 tokens",
|
||||
"maxThinkingTokens": "最大思考 tokens"
|
||||
"maxTokens": "最大 token 數",
|
||||
"maxThinkingTokens": "最大思考 token 數"
|
||||
},
|
||||
"validation": {
|
||||
"apiKey": "您必須提供有效的 API 金鑰。",
|
||||
"awsRegion": "您必須選擇一個區域來使用 AWS Bedrock。",
|
||||
"googleCloud": "您必須提供有效的 Google Cloud 專案 ID 和區域。",
|
||||
"modelId": "您必須提供有效的模型 ID。",
|
||||
"modelSelector": "您必須提供有效的模型選擇器。",
|
||||
"openAi": "您必須提供有效的基礎 URL、API 金鑰和模型 ID。",
|
||||
"apiKey": "需要有效 API 金鑰",
|
||||
"awsRegion": "請選擇 AWS 區域",
|
||||
"googleCloud": "需要有效的 Google Cloud 專案 ID 和區域",
|
||||
"modelId": "需要有效模型 ID",
|
||||
"modelSelector": "需要有效模型選擇器",
|
||||
"openAi": "需要有效的基礎 URL、API 金鑰和模型 ID",
|
||||
"arn": {
|
||||
"invalidFormat": "ARN 格式無效。請檢查格式要求。",
|
||||
"regionMismatch": "警告:您的 ARN 中的區域 ({{arnRegion}}) 與您選擇的區域 ({{region}}) 不符。這可能會導致存取問題。提供者將使用 ARN 中的區域。"
|
||||
"invalidFormat": "ARN 格式無效",
|
||||
"regionMismatch": "ARN 區域與選擇的區域不匹配"
|
||||
},
|
||||
"modelAvailability": "您提供的模型 ID ({{modelId}}) 無法使用。請選擇其他模型。"
|
||||
"modelAvailability": "該模型 ID 不可用"
|
||||
},
|
||||
"placeholders": {
|
||||
"apiKey": "請輸入 API 金鑰...",
|
||||
"profileName": "請輸入設定檔名稱",
|
||||
"accessKey": "請輸入存取金鑰...",
|
||||
"secretKey": "請輸入密鑰...",
|
||||
"sessionToken": "請輸入工作階段權杖...",
|
||||
"credentialsJson": "請輸入憑證 JSON...",
|
||||
"keyFilePath": "請輸入金鑰檔案路徑...",
|
||||
"projectId": "請輸入專案 ID...",
|
||||
"customArn": "請輸入 ARN(例:arn:aws:bedrock:us-east-1:123456789012:foundation-model/my-model)",
|
||||
"baseUrl": "請輸入基礎 URL...",
|
||||
"apiKey": "輸入 API 金鑰...",
|
||||
"profileName": "輸入設定檔名稱",
|
||||
"accessKey": "輸入存取金鑰...",
|
||||
"secretKey": "輸入機密金鑰...",
|
||||
"sessionToken": "輸入會話權杖...",
|
||||
"credentialsJson": "輸入憑證 JSON...",
|
||||
"keyFilePath": "輸入金鑰檔案路徑...",
|
||||
"projectId": "輸入專案 ID...",
|
||||
"customArn": "ARN 範例:arn:aws:bedrock:...",
|
||||
"baseUrl": "輸入基礎 URL...",
|
||||
"modelId": {
|
||||
"lmStudio": "例:meta-llama-3.1-8b-instruct",
|
||||
"lmStudioDraft": "例:lmstudio-community/llama-3.2-1b-instruct",
|
||||
"ollama": "例:llama3.1"
|
||||
"lmStudio": "範例:meta-llama-3.1-8b-instruct",
|
||||
"lmStudioDraft": "範例:lmstudio-community/llama-3.2-1b-instruct",
|
||||
"ollama": "範例:llama3.1"
|
||||
},
|
||||
"numbers": {
|
||||
"maxTokens": "例:4096",
|
||||
"contextWindow": "例:128000",
|
||||
"inputPrice": "例:0.0001",
|
||||
"outputPrice": "例:0.0002",
|
||||
"cacheWritePrice": "例:0.00005"
|
||||
"maxTokens": "範例:4096",
|
||||
"contextWindow": "範例:128000",
|
||||
"inputPrice": "範例:0.0001",
|
||||
"outputPrice": "範例:0.0002",
|
||||
"cacheWritePrice": "範例:0.00005"
|
||||
}
|
||||
},
|
||||
"defaults": {
|
||||
"ollamaUrl": "預設值:http://localhost:11434",
|
||||
"lmStudioUrl": "預設值:http://localhost:1234",
|
||||
"geminiUrl": "預設值:https://generativelanguage.googleapis.com"
|
||||
"ollamaUrl": "預設:http://localhost:11434",
|
||||
"lmStudioUrl": "預設:http://localhost:1234",
|
||||
"geminiUrl": "預設:https://generativelanguage.googleapis.com"
|
||||
},
|
||||
"labels": {
|
||||
"customArn": "自訂 ARN",
|
||||
"useCustomArn": "使用自訂 ARN..."
|
||||
"customArn": "自定義 ARN",
|
||||
"useCustomArn": "使用自定義 ARN..."
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue