mirror of
https://github.com/tinyhumansai/openhuman.git
synced 2026-07-29 14:02:19 +00:00
i18n(ai-routing): localize workload labels, descriptions, and hints (#3870)
Co-authored-by: OpenHuman <package@openhuman.org> Co-authored-by: Steven Enamakel <enamakel@tinyhumans.ai>
This commit is contained in:
co-authored by
OpenHuman
Steven Enamakel
parent
c3d86a4ea7
commit
bc59bb9307
@@ -109,7 +109,14 @@ export type ProviderRef =
|
||||
| { kind: 'local'; model: string; temperature?: number | null }
|
||||
| { kind: 'claude-code'; model: string; temperature?: number | null };
|
||||
|
||||
type Workload = { id: WorkloadId; group: WorkloadGroup; label: string; description: string };
|
||||
type Workload = {
|
||||
id: WorkloadId;
|
||||
group: WorkloadGroup;
|
||||
// i18n keys (resolved with `t()` at render) rather than literal English, so the
|
||||
// workload labels/descriptions translate like the rest of the panel.
|
||||
labelKey: string;
|
||||
descriptionKey: string;
|
||||
};
|
||||
|
||||
export type RoutingMap = Record<WorkloadId, ProviderRef>;
|
||||
type RoutingMode = 'managed' | 'own' | 'custom';
|
||||
@@ -161,79 +168,99 @@ const WORKLOADS: Workload[] = [
|
||||
{
|
||||
id: 'chat',
|
||||
group: 'chat',
|
||||
label: 'Chat',
|
||||
description: 'Direct conversational back-and-forth — “Quick” mode in Conversations',
|
||||
labelKey: 'settings.ai.routing.workload.chat.label',
|
||||
descriptionKey: 'settings.ai.routing.workload.chat.description',
|
||||
},
|
||||
{
|
||||
id: 'reasoning',
|
||||
group: 'chat',
|
||||
label: 'Reasoning',
|
||||
description: 'Main chat agent, meeting summarizer — “Reasoning” mode in Conversations',
|
||||
labelKey: 'settings.ai.routing.workload.reasoning.label',
|
||||
descriptionKey: 'settings.ai.routing.workload.reasoning.description',
|
||||
},
|
||||
{
|
||||
id: 'agentic',
|
||||
group: 'chat',
|
||||
label: 'Agentic',
|
||||
description: 'Sub-agent runners, tool loops, GIF decisions',
|
||||
labelKey: 'settings.ai.routing.workload.agentic.label',
|
||||
descriptionKey: 'settings.ai.routing.workload.agentic.description',
|
||||
},
|
||||
{
|
||||
id: 'coding',
|
||||
group: 'chat',
|
||||
label: 'Coding',
|
||||
description: 'Code generation and refactor passes',
|
||||
labelKey: 'settings.ai.routing.workload.coding.label',
|
||||
descriptionKey: 'settings.ai.routing.workload.coding.description',
|
||||
},
|
||||
{
|
||||
id: 'vision',
|
||||
group: 'chat',
|
||||
label: 'Vision',
|
||||
description: 'Image understanding for the vision sub-agent — always multimodal',
|
||||
labelKey: 'settings.ai.routing.workload.vision.label',
|
||||
descriptionKey: 'settings.ai.routing.workload.vision.description',
|
||||
},
|
||||
{
|
||||
id: 'memory',
|
||||
group: 'background',
|
||||
label: 'Memory summarization',
|
||||
description: 'Tree-extracts and consolidations',
|
||||
labelKey: 'settings.ai.routing.workload.memory.label',
|
||||
descriptionKey: 'settings.ai.routing.workload.memory.description',
|
||||
},
|
||||
{
|
||||
id: 'heartbeat',
|
||||
group: 'background',
|
||||
label: 'Heartbeat',
|
||||
description: 'Background reasoning between user turns',
|
||||
labelKey: 'settings.ai.routing.workload.heartbeat.label',
|
||||
descriptionKey: 'settings.ai.routing.workload.heartbeat.description',
|
||||
},
|
||||
{
|
||||
id: 'learning',
|
||||
group: 'background',
|
||||
label: 'Learning · Reflections',
|
||||
description: 'Periodic reflection over recent history',
|
||||
labelKey: 'settings.ai.routing.workload.learning.label',
|
||||
descriptionKey: 'settings.ai.routing.workload.learning.description',
|
||||
},
|
||||
{
|
||||
id: 'subconscious',
|
||||
group: 'background',
|
||||
label: 'Subconscious',
|
||||
description: 'Eventfulness scoring + drift checks',
|
||||
labelKey: 'settings.ai.routing.workload.subconscious.label',
|
||||
descriptionKey: 'settings.ai.routing.workload.subconscious.description',
|
||||
},
|
||||
];
|
||||
|
||||
const WORKLOAD_MODEL_HINTS: Record<WorkloadId, string> = {
|
||||
chat: 'Recommended: a cheap or mid-cost fast chat model with high tokens/sec and low latency. Open-source local models can work well here if they feel responsive.',
|
||||
reasoning:
|
||||
'Recommended: a more expensive frontier or strong reasoning model for deep thinking. This is used for the main chat agent, meeting summaries, and heavier answer synthesis.',
|
||||
agentic:
|
||||
'Recommended: a reliable instruction-following model with strong tool use. Mid-cost frontier models are usually safest; capable open-source models can work if tool calling is stable.',
|
||||
coding:
|
||||
'Recommended: a coding-tuned model with strong instruction following, edit quality, and long-context performance. This is usually worth spending more on.',
|
||||
vision:
|
||||
'Recommended: a multimodal model that accepts image input. The managed default (vision-v1) is image-capable; any provider you route here is always treated as vision-enabled.',
|
||||
memory:
|
||||
'Recommended: a cheaper summarization model. It should be consistent and compact, but it does not need premium frontier-level reasoning.',
|
||||
heartbeat:
|
||||
'Recommended: a cheap, efficient background model. This runs often between turns, so low cost matters more than maximum intelligence.',
|
||||
learning:
|
||||
'Recommended: a stronger reflective model. This can be mid-cost or premium because it benefits from better synthesis over recent history.',
|
||||
subconscious:
|
||||
'Recommended: a very cheap monitoring model, ideally one that is lightweight and predictable. This is for eventfulness scoring, drift checks, and quiet background evaluation.',
|
||||
// i18n keys for the per-workload "Recommended: …" hints (resolved with `t()`).
|
||||
const WORKLOAD_MODEL_HINT_KEYS: Record<WorkloadId, string> = {
|
||||
chat: 'settings.ai.routing.workload.chat.hint',
|
||||
reasoning: 'settings.ai.routing.workload.reasoning.hint',
|
||||
agentic: 'settings.ai.routing.workload.agentic.hint',
|
||||
coding: 'settings.ai.routing.workload.coding.hint',
|
||||
vision: 'settings.ai.routing.workload.vision.hint',
|
||||
memory: 'settings.ai.routing.workload.memory.hint',
|
||||
heartbeat: 'settings.ai.routing.workload.heartbeat.hint',
|
||||
learning: 'settings.ai.routing.workload.learning.hint',
|
||||
subconscious: 'settings.ai.routing.workload.subconscious.hint',
|
||||
};
|
||||
|
||||
// Build the "pending routing changes" summary: one `"<label> → <target>"`
|
||||
// entry per workload whose draft route differs from the saved route. Extracted
|
||||
// as a pure, exported function so the (translated) formatting is unit-testable
|
||||
// without rendering the whole panel.
|
||||
export function buildRoutingDiffSummary(
|
||||
saved: RoutingMap,
|
||||
draft: RoutingMap,
|
||||
t: (key: string) => string
|
||||
): string[] {
|
||||
const describe = (r: ProviderRef): string => {
|
||||
if (r.kind === 'openhuman') return 'openhuman';
|
||||
if (r.kind === 'default') return 'cloud';
|
||||
const tempSuffix = r.temperature != null ? `@${r.temperature.toFixed(2)}` : '';
|
||||
if (r.kind === 'cloud') return `${r.providerSlug}:${r.model}${tempSuffix}`;
|
||||
return `local:${r.model}${tempSuffix}`;
|
||||
};
|
||||
const out: string[] = [];
|
||||
for (const w of WORKLOADS) {
|
||||
const a = saved[w.id];
|
||||
const b = draft[w.id];
|
||||
if (JSON.stringify(a) !== JSON.stringify(b)) {
|
||||
out.push(`${t(w.labelKey)} → ${describe(b)}`);
|
||||
}
|
||||
}
|
||||
return out;
|
||||
}
|
||||
|
||||
// TIER_PRESETS removed alongside the Local provider section.
|
||||
|
||||
// ─────────────────────────────────────────────────────────────────────────────
|
||||
@@ -1734,13 +1761,13 @@ const WorkloadRow = ({
|
||||
<div className="flex items-center justify-between gap-3 py-3 transition-colors">
|
||||
<div className="min-w-0 flex-1 space-y-1">
|
||||
<div className="text-sm font-medium text-neutral-900 dark:text-neutral-100">
|
||||
{workload.label}
|
||||
{t(workload.labelKey)}
|
||||
</div>
|
||||
<div className="text-xs leading-5 text-neutral-500 dark:text-neutral-400">
|
||||
{workload.description}
|
||||
{t(workload.descriptionKey)}
|
||||
</div>
|
||||
<div className="text-[11px] leading-5 text-neutral-500 dark:text-neutral-400">
|
||||
{WORKLOAD_MODEL_HINTS[workload.id]}
|
||||
{t(WORKLOAD_MODEL_HINT_KEYS[workload.id])}
|
||||
</div>
|
||||
{resolved ? (
|
||||
<div
|
||||
@@ -2089,7 +2116,9 @@ const CustomRoutingDialog = ({
|
||||
<div
|
||||
role="dialog"
|
||||
aria-modal="true"
|
||||
aria-label={formatI18n(t('settings.ai.customRoutingForWorkload'), { label: workload.label })}
|
||||
aria-label={formatI18n(t('settings.ai.customRoutingForWorkload'), {
|
||||
label: t(workload.labelKey),
|
||||
})}
|
||||
className="fixed inset-0 z-50 flex items-center justify-center bg-black/30 p-4">
|
||||
<div className="w-full max-w-md rounded-2xl border border-neutral-200 dark:border-neutral-800 bg-white dark:bg-neutral-900 p-6 shadow-soft">
|
||||
<div className="flex items-start justify-between gap-3 mb-4">
|
||||
@@ -2098,10 +2127,10 @@ const CustomRoutingDialog = ({
|
||||
{t('settings.ai.customRouting')}
|
||||
</h3>
|
||||
<p className="mt-0.5 text-xs text-neutral-500 dark:text-neutral-400">
|
||||
{workload.label}
|
||||
{t(workload.labelKey)}
|
||||
</p>
|
||||
<p className="mt-2 max-w-md text-xs leading-5 text-neutral-500 dark:text-neutral-400">
|
||||
{WORKLOAD_MODEL_HINTS[workload.id]}
|
||||
{t(WORKLOAD_MODEL_HINT_KEYS[workload.id])}
|
||||
</p>
|
||||
</div>
|
||||
<Button
|
||||
@@ -2966,24 +2995,10 @@ const AIPanel = ({ embedded = false }: AIPanelProps = {}) => {
|
||||
// applyPreset removed alongside the Cloud / Local / Mixed preset pills —
|
||||
// the new Default/Custom binary toggle handles routing per workload.
|
||||
|
||||
const diffSummary = useMemo(() => {
|
||||
const out: string[] = [];
|
||||
for (const w of WORKLOADS) {
|
||||
const a = saved.routing[w.id];
|
||||
const b = draft.routing[w.id];
|
||||
if (JSON.stringify(a) !== JSON.stringify(b)) {
|
||||
const describe = (r: ProviderRef) => {
|
||||
if (r.kind === 'openhuman') return 'openhuman';
|
||||
if (r.kind === 'default') return 'cloud';
|
||||
const tempSuffix = r.temperature != null ? `@${r.temperature.toFixed(2)}` : '';
|
||||
if (r.kind === 'cloud') return `${r.providerSlug}:${r.model}${tempSuffix}`;
|
||||
return `local:${r.model}${tempSuffix}`;
|
||||
};
|
||||
out.push(`${w.label} → ${describe(b)}`);
|
||||
}
|
||||
}
|
||||
return out;
|
||||
}, [saved, draft]);
|
||||
const diffSummary = useMemo(
|
||||
() => buildRoutingDiffSummary(saved.routing, draft.routing, t),
|
||||
[saved, draft, t]
|
||||
);
|
||||
|
||||
const chatRows = WORKLOADS.filter(w => w.group === 'chat');
|
||||
const bgRows = WORKLOADS.filter(w => w.group === 'background');
|
||||
|
||||
@@ -29,7 +29,11 @@ import {
|
||||
openhumanHeartbeatSettingsSet,
|
||||
openhumanHeartbeatTickNow,
|
||||
} from '../../../../utils/tauriCommands/heartbeat';
|
||||
import AIPanel, { BackgroundLoopControls } from '../AIPanel';
|
||||
import AIPanel, {
|
||||
BackgroundLoopControls,
|
||||
buildRoutingDiffSummary,
|
||||
type RoutingMap,
|
||||
} from '../AIPanel';
|
||||
|
||||
vi.mock('../../../../services/api/aiSettingsApi', () => ({
|
||||
ALL_WORKLOADS: [
|
||||
@@ -1539,3 +1543,41 @@ describe('AIPanel', () => {
|
||||
await waitFor(() => expect(screen.getByText('tick failed')).toBeInTheDocument());
|
||||
});
|
||||
});
|
||||
|
||||
describe('buildRoutingDiffSummary', () => {
|
||||
const allDefault = (): RoutingMap => ({
|
||||
chat: { kind: 'default' },
|
||||
reasoning: { kind: 'default' },
|
||||
agentic: { kind: 'default' },
|
||||
coding: { kind: 'default' },
|
||||
vision: { kind: 'default' },
|
||||
memory: { kind: 'default' },
|
||||
heartbeat: { kind: 'default' },
|
||||
learning: { kind: 'default' },
|
||||
subconscious: { kind: 'default' },
|
||||
});
|
||||
|
||||
it('emits one "<label> → <target>" entry per changed workload and skips unchanged ones', () => {
|
||||
// Identity `t` so we can assert the workload's i18n label key is used.
|
||||
const t = (key: string) => key;
|
||||
const saved = allDefault();
|
||||
saved.coding = { kind: 'cloud', providerSlug: 'x', model: 'y' };
|
||||
const draft = allDefault();
|
||||
draft.chat = { kind: 'cloud', providerSlug: 'openai', model: 'gpt-4o', temperature: 0.3 };
|
||||
draft.reasoning = { kind: 'openhuman' };
|
||||
draft.agentic = { kind: 'local', model: 'llama3' };
|
||||
// coding: saved=cloud, draft=default → changed; describe(default) === 'cloud'.
|
||||
|
||||
expect(buildRoutingDiffSummary(saved, draft, t)).toEqual([
|
||||
'settings.ai.routing.workload.chat.label → openai:gpt-4o@0.30',
|
||||
'settings.ai.routing.workload.reasoning.label → openhuman',
|
||||
'settings.ai.routing.workload.agentic.label → local:llama3',
|
||||
'settings.ai.routing.workload.coding.label → cloud',
|
||||
]);
|
||||
});
|
||||
|
||||
it('returns an empty list when draft matches saved', () => {
|
||||
const routing = allDefault();
|
||||
expect(buildRoutingDiffSummary(routing, { ...routing }, k => k)).toEqual([]);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -3541,6 +3541,46 @@ const messages: TranslationMap = {
|
||||
'settings.ai.routing.backgroundTasks': 'مهام الخلفية',
|
||||
'settings.ai.routing.bgTasksDesc':
|
||||
'النماذج المستخدمة خارج التدفق الرئيسي للمحادثات للتلخيص والقلب والتعلم والتقييم اللاوعي.',
|
||||
'settings.ai.routing.workload.chat.label': 'Chat',
|
||||
'settings.ai.routing.workload.chat.description':
|
||||
'Direct conversational back-and-forth — “Quick” mode in Conversations',
|
||||
'settings.ai.routing.workload.chat.hint':
|
||||
'Recommended: a cheap or mid-cost fast chat model with high tokens/sec and low latency. Open-source local models can work well here if they feel responsive.',
|
||||
'settings.ai.routing.workload.reasoning.label': 'Reasoning',
|
||||
'settings.ai.routing.workload.reasoning.description':
|
||||
'Main chat agent, meeting summarizer — “Reasoning” mode in Conversations',
|
||||
'settings.ai.routing.workload.reasoning.hint':
|
||||
'Recommended: a more expensive frontier or strong reasoning model for deep thinking. This is used for the main chat agent, meeting summaries, and heavier answer synthesis.',
|
||||
'settings.ai.routing.workload.agentic.label': 'Agentic',
|
||||
'settings.ai.routing.workload.agentic.description':
|
||||
'Sub-agent runners, tool loops, GIF decisions',
|
||||
'settings.ai.routing.workload.agentic.hint':
|
||||
'Recommended: a reliable instruction-following model with strong tool use. Mid-cost frontier models are usually safest; capable open-source models can work if tool calling is stable.',
|
||||
'settings.ai.routing.workload.coding.label': 'Coding',
|
||||
'settings.ai.routing.workload.coding.description': 'Code generation and refactor passes',
|
||||
'settings.ai.routing.workload.coding.hint':
|
||||
'Recommended: a coding-tuned model with strong instruction following, edit quality, and long-context performance. This is usually worth spending more on.',
|
||||
'settings.ai.routing.workload.vision.label': 'Vision',
|
||||
'settings.ai.routing.workload.vision.description':
|
||||
'Image understanding for the vision sub-agent — always multimodal',
|
||||
'settings.ai.routing.workload.vision.hint':
|
||||
'Recommended: a multimodal model that accepts image input. The managed default (vision-v1) is image-capable; any provider you route here is always treated as vision-enabled.',
|
||||
'settings.ai.routing.workload.memory.label': 'Memory summarization',
|
||||
'settings.ai.routing.workload.memory.description': 'Tree-extracts and consolidations',
|
||||
'settings.ai.routing.workload.memory.hint':
|
||||
'Recommended: a cheaper summarization model. It should be consistent and compact, but it does not need premium frontier-level reasoning.',
|
||||
'settings.ai.routing.workload.heartbeat.label': 'Heartbeat',
|
||||
'settings.ai.routing.workload.heartbeat.description': 'Background reasoning between user turns',
|
||||
'settings.ai.routing.workload.heartbeat.hint':
|
||||
'Recommended: a cheap, efficient background model. This runs often between turns, so low cost matters more than maximum intelligence.',
|
||||
'settings.ai.routing.workload.learning.label': 'Learning · Reflections',
|
||||
'settings.ai.routing.workload.learning.description': 'Periodic reflection over recent history',
|
||||
'settings.ai.routing.workload.learning.hint':
|
||||
'Recommended: a stronger reflective model. This can be mid-cost or premium because it benefits from better synthesis over recent history.',
|
||||
'settings.ai.routing.workload.subconscious.label': 'Subconscious',
|
||||
'settings.ai.routing.workload.subconscious.description': 'Eventfulness scoring + drift checks',
|
||||
'settings.ai.routing.workload.subconscious.hint':
|
||||
'Recommended: a very cheap monitoring model, ideally one that is lightweight and predictable. This is for eventfulness scoring, drift checks, and quiet background evaluation.',
|
||||
'settings.ai.routing.addCustomProvider': 'إضافة موفر مخصص',
|
||||
'settings.ai.globalModel.title': 'اختر نموذجًا واحدًا لكل شيء',
|
||||
'settings.ai.globalModel.desc':
|
||||
|
||||
@@ -3615,6 +3615,46 @@ const messages: TranslationMap = {
|
||||
'settings.ai.routing.backgroundTasks': 'ব্যাকগ্রাউন্ড টাস্ক',
|
||||
'settings.ai.routing.bgTasksDesc':
|
||||
'তুলনা, হার্টবিট, শিক্ষা এবং অবচেতনের মূল্যায়নের মূল কথোপকথনের বাইরে যে মডেলগুলো ব্যবহার করা হয়েছে সেগুলো ব্যবহার করা হয়েছে।',
|
||||
'settings.ai.routing.workload.chat.label': 'Chat',
|
||||
'settings.ai.routing.workload.chat.description':
|
||||
'Direct conversational back-and-forth — “Quick” mode in Conversations',
|
||||
'settings.ai.routing.workload.chat.hint':
|
||||
'Recommended: a cheap or mid-cost fast chat model with high tokens/sec and low latency. Open-source local models can work well here if they feel responsive.',
|
||||
'settings.ai.routing.workload.reasoning.label': 'Reasoning',
|
||||
'settings.ai.routing.workload.reasoning.description':
|
||||
'Main chat agent, meeting summarizer — “Reasoning” mode in Conversations',
|
||||
'settings.ai.routing.workload.reasoning.hint':
|
||||
'Recommended: a more expensive frontier or strong reasoning model for deep thinking. This is used for the main chat agent, meeting summaries, and heavier answer synthesis.',
|
||||
'settings.ai.routing.workload.agentic.label': 'Agentic',
|
||||
'settings.ai.routing.workload.agentic.description':
|
||||
'Sub-agent runners, tool loops, GIF decisions',
|
||||
'settings.ai.routing.workload.agentic.hint':
|
||||
'Recommended: a reliable instruction-following model with strong tool use. Mid-cost frontier models are usually safest; capable open-source models can work if tool calling is stable.',
|
||||
'settings.ai.routing.workload.coding.label': 'Coding',
|
||||
'settings.ai.routing.workload.coding.description': 'Code generation and refactor passes',
|
||||
'settings.ai.routing.workload.coding.hint':
|
||||
'Recommended: a coding-tuned model with strong instruction following, edit quality, and long-context performance. This is usually worth spending more on.',
|
||||
'settings.ai.routing.workload.vision.label': 'Vision',
|
||||
'settings.ai.routing.workload.vision.description':
|
||||
'Image understanding for the vision sub-agent — always multimodal',
|
||||
'settings.ai.routing.workload.vision.hint':
|
||||
'Recommended: a multimodal model that accepts image input. The managed default (vision-v1) is image-capable; any provider you route here is always treated as vision-enabled.',
|
||||
'settings.ai.routing.workload.memory.label': 'Memory summarization',
|
||||
'settings.ai.routing.workload.memory.description': 'Tree-extracts and consolidations',
|
||||
'settings.ai.routing.workload.memory.hint':
|
||||
'Recommended: a cheaper summarization model. It should be consistent and compact, but it does not need premium frontier-level reasoning.',
|
||||
'settings.ai.routing.workload.heartbeat.label': 'Heartbeat',
|
||||
'settings.ai.routing.workload.heartbeat.description': 'Background reasoning between user turns',
|
||||
'settings.ai.routing.workload.heartbeat.hint':
|
||||
'Recommended: a cheap, efficient background model. This runs often between turns, so low cost matters more than maximum intelligence.',
|
||||
'settings.ai.routing.workload.learning.label': 'Learning · Reflections',
|
||||
'settings.ai.routing.workload.learning.description': 'Periodic reflection over recent history',
|
||||
'settings.ai.routing.workload.learning.hint':
|
||||
'Recommended: a stronger reflective model. This can be mid-cost or premium because it benefits from better synthesis over recent history.',
|
||||
'settings.ai.routing.workload.subconscious.label': 'Subconscious',
|
||||
'settings.ai.routing.workload.subconscious.description': 'Eventfulness scoring + drift checks',
|
||||
'settings.ai.routing.workload.subconscious.hint':
|
||||
'Recommended: a very cheap monitoring model, ideally one that is lightweight and predictable. This is for eventfulness scoring, drift checks, and quiet background evaluation.',
|
||||
'settings.ai.routing.addCustomProvider': 'কাস্টম প্রদানকারী যোগ করুন',
|
||||
'settings.ai.globalModel.title': 'সবকিছুর জন্য একটি মডেল চয়ন করুন',
|
||||
'settings.ai.globalModel.desc':
|
||||
|
||||
@@ -3702,6 +3702,49 @@ const messages: TranslationMap = {
|
||||
'settings.ai.routing.backgroundTasks': 'Hintergrundaufgaben',
|
||||
'settings.ai.routing.bgTasksDesc':
|
||||
'Modelle, die außerhalb des Hauptgesprächsflusses für Zusammenfassung, Herzschlag, Lernen und unbewusste Bewertung verwendet werden.',
|
||||
'settings.ai.routing.workload.chat.label': 'Chat',
|
||||
'settings.ai.routing.workload.chat.description':
|
||||
'Direkter dialogischer Austausch hin und her – „Schnell“-Modus in Unterhaltungen',
|
||||
'settings.ai.routing.workload.chat.hint':
|
||||
'Empfohlen: ein günstiges oder mittelpreisiges, schnelles Chat-Modell mit hohem Tokens/Sek.-Durchsatz und geringer Latenz. Quelloffene lokale Modelle eignen sich hier gut, wenn sie sich reaktionsschnell anfühlen.',
|
||||
'settings.ai.routing.workload.reasoning.label': 'Reasoning',
|
||||
'settings.ai.routing.workload.reasoning.description':
|
||||
'Haupt-Chat-Agent, Meeting-Zusammenfasser – „Reasoning“-Modus in Unterhaltungen',
|
||||
'settings.ai.routing.workload.reasoning.hint':
|
||||
'Empfohlen: ein leistungsfähigeres Frontier- oder starkes Reasoning-Modell für tiefes Nachdenken. Wird für den Haupt-Chat-Agenten, Meeting-Zusammenfassungen und aufwändigere Antwortsynthese genutzt.',
|
||||
'settings.ai.routing.workload.agentic.label': 'Agentisch',
|
||||
'settings.ai.routing.workload.agentic.description':
|
||||
'Sub-Agent-Runner, Tool-Schleifen, GIF-Entscheidungen',
|
||||
'settings.ai.routing.workload.agentic.hint':
|
||||
'Empfohlen: ein zuverlässiges, anweisungstreues Modell mit starker Tool-Nutzung. Mittelpreisige Frontier-Modelle sind meist am sichersten; leistungsfähige Open-Source-Modelle funktionieren, wenn das Tool-Calling stabil ist.',
|
||||
'settings.ai.routing.workload.coding.label': 'Programmierung',
|
||||
'settings.ai.routing.workload.coding.description': 'Code-Generierung und Refactoring-Durchläufe',
|
||||
'settings.ai.routing.workload.coding.hint':
|
||||
'Empfohlen: ein auf Programmierung abgestimmtes Modell mit starker Anweisungstreue, Edit-Qualität und Long-Context-Leistung. Hier lohnt sich meist eine größere Investition.',
|
||||
'settings.ai.routing.workload.vision.label': 'Vision',
|
||||
'settings.ai.routing.workload.vision.description':
|
||||
'Bildverständnis für den Vision-Sub-Agenten – immer multimodal',
|
||||
'settings.ai.routing.workload.vision.hint':
|
||||
'Empfohlen: ein multimodales Modell, das Bildeingaben akzeptiert. Der verwaltete Standard (vision-v1) ist bildfähig; jeder hier zugewiesene Anbieter wird stets als vision-fähig behandelt.',
|
||||
'settings.ai.routing.workload.memory.label': 'Memory-Zusammenfassung',
|
||||
'settings.ai.routing.workload.memory.description': 'Baum-Extraktionen und Konsolidierungen',
|
||||
'settings.ai.routing.workload.memory.hint':
|
||||
'Empfohlen: ein günstigeres Zusammenfassungsmodell. Es sollte konsistent und kompakt sein, braucht aber keine erstklassige Frontier-Reasoning-Leistung.',
|
||||
'settings.ai.routing.workload.heartbeat.label': 'Heartbeat',
|
||||
'settings.ai.routing.workload.heartbeat.description':
|
||||
'Hintergrund-Reasoning zwischen Nutzer-Eingaben',
|
||||
'settings.ai.routing.workload.heartbeat.hint':
|
||||
'Empfohlen: ein günstiges, effizientes Hintergrundmodell. Läuft häufig zwischen den Eingaben, daher zählen niedrige Kosten mehr als maximale Intelligenz.',
|
||||
'settings.ai.routing.workload.learning.label': 'Lernen · Reflexionen',
|
||||
'settings.ai.routing.workload.learning.description':
|
||||
'Periodische Reflexion über den jüngsten Verlauf',
|
||||
'settings.ai.routing.workload.learning.hint':
|
||||
'Empfohlen: ein stärkeres reflektierendes Modell. Kann mittelpreisig oder Premium sein, da es von besserer Synthese über den jüngsten Verlauf profitiert.',
|
||||
'settings.ai.routing.workload.subconscious.label': 'Unterbewusstsein',
|
||||
'settings.ai.routing.workload.subconscious.description':
|
||||
'Bewertung der Ereignishaftigkeit + Drift-Prüfungen',
|
||||
'settings.ai.routing.workload.subconscious.hint':
|
||||
'Empfohlen: ein sehr günstiges Überwachungsmodell, idealerweise leichtgewichtig und vorhersehbar. Für Ereignishaftigkeits-Bewertung, Drift-Prüfungen und stille Hintergrundauswertung.',
|
||||
'settings.ai.routing.addCustomProvider': 'Benutzerdefinierten Anbieter hinzufügen',
|
||||
'settings.ai.globalModel.title': 'Wählen Sie ein Modell für alles',
|
||||
'settings.ai.globalModel.desc':
|
||||
|
||||
@@ -4217,6 +4217,46 @@ const en: TranslationMap = {
|
||||
'settings.ai.routing.backgroundTasks': 'Background Tasks',
|
||||
'settings.ai.routing.bgTasksDesc':
|
||||
'Models used outside the main conversation flow for summarization, heartbeat, learning, and subconscious evaluation.',
|
||||
'settings.ai.routing.workload.chat.label': 'Chat',
|
||||
'settings.ai.routing.workload.chat.description':
|
||||
'Direct conversational back-and-forth — “Quick” mode in Conversations',
|
||||
'settings.ai.routing.workload.chat.hint':
|
||||
'Recommended: a cheap or mid-cost fast chat model with high tokens/sec and low latency. Open-source local models can work well here if they feel responsive.',
|
||||
'settings.ai.routing.workload.reasoning.label': 'Reasoning',
|
||||
'settings.ai.routing.workload.reasoning.description':
|
||||
'Main chat agent, meeting summarizer — “Reasoning” mode in Conversations',
|
||||
'settings.ai.routing.workload.reasoning.hint':
|
||||
'Recommended: a more expensive frontier or strong reasoning model for deep thinking. This is used for the main chat agent, meeting summaries, and heavier answer synthesis.',
|
||||
'settings.ai.routing.workload.agentic.label': 'Agentic',
|
||||
'settings.ai.routing.workload.agentic.description':
|
||||
'Sub-agent runners, tool loops, GIF decisions',
|
||||
'settings.ai.routing.workload.agentic.hint':
|
||||
'Recommended: a reliable instruction-following model with strong tool use. Mid-cost frontier models are usually safest; capable open-source models can work if tool calling is stable.',
|
||||
'settings.ai.routing.workload.coding.label': 'Coding',
|
||||
'settings.ai.routing.workload.coding.description': 'Code generation and refactor passes',
|
||||
'settings.ai.routing.workload.coding.hint':
|
||||
'Recommended: a coding-tuned model with strong instruction following, edit quality, and long-context performance. This is usually worth spending more on.',
|
||||
'settings.ai.routing.workload.vision.label': 'Vision',
|
||||
'settings.ai.routing.workload.vision.description':
|
||||
'Image understanding for the vision sub-agent — always multimodal',
|
||||
'settings.ai.routing.workload.vision.hint':
|
||||
'Recommended: a multimodal model that accepts image input. The managed default (vision-v1) is image-capable; any provider you route here is always treated as vision-enabled.',
|
||||
'settings.ai.routing.workload.memory.label': 'Memory summarization',
|
||||
'settings.ai.routing.workload.memory.description': 'Tree-extracts and consolidations',
|
||||
'settings.ai.routing.workload.memory.hint':
|
||||
'Recommended: a cheaper summarization model. It should be consistent and compact, but it does not need premium frontier-level reasoning.',
|
||||
'settings.ai.routing.workload.heartbeat.label': 'Heartbeat',
|
||||
'settings.ai.routing.workload.heartbeat.description': 'Background reasoning between user turns',
|
||||
'settings.ai.routing.workload.heartbeat.hint':
|
||||
'Recommended: a cheap, efficient background model. This runs often between turns, so low cost matters more than maximum intelligence.',
|
||||
'settings.ai.routing.workload.learning.label': 'Learning · Reflections',
|
||||
'settings.ai.routing.workload.learning.description': 'Periodic reflection over recent history',
|
||||
'settings.ai.routing.workload.learning.hint':
|
||||
'Recommended: a stronger reflective model. This can be mid-cost or premium because it benefits from better synthesis over recent history.',
|
||||
'settings.ai.routing.workload.subconscious.label': 'Subconscious',
|
||||
'settings.ai.routing.workload.subconscious.description': 'Eventfulness scoring + drift checks',
|
||||
'settings.ai.routing.workload.subconscious.hint':
|
||||
'Recommended: a very cheap monitoring model, ideally one that is lightweight and predictable. This is for eventfulness scoring, drift checks, and quiet background evaluation.',
|
||||
'settings.ai.routing.addCustomProvider': 'Add Custom Provider',
|
||||
'settings.ai.globalModel.title': 'Choose one model for everything',
|
||||
'settings.ai.globalModel.desc':
|
||||
|
||||
@@ -3678,6 +3678,46 @@ const messages: TranslationMap = {
|
||||
'settings.ai.routing.backgroundTasks': 'Tareas en segundo plano',
|
||||
'settings.ai.routing.bgTasksDesc':
|
||||
'Modelos utilizados fuera del flujo principal de la conversación para resumen, latido, aprendizaje y evaluación subconsciente.',
|
||||
'settings.ai.routing.workload.chat.label': 'Chat',
|
||||
'settings.ai.routing.workload.chat.description':
|
||||
'Direct conversational back-and-forth — “Quick” mode in Conversations',
|
||||
'settings.ai.routing.workload.chat.hint':
|
||||
'Recommended: a cheap or mid-cost fast chat model with high tokens/sec and low latency. Open-source local models can work well here if they feel responsive.',
|
||||
'settings.ai.routing.workload.reasoning.label': 'Reasoning',
|
||||
'settings.ai.routing.workload.reasoning.description':
|
||||
'Main chat agent, meeting summarizer — “Reasoning” mode in Conversations',
|
||||
'settings.ai.routing.workload.reasoning.hint':
|
||||
'Recommended: a more expensive frontier or strong reasoning model for deep thinking. This is used for the main chat agent, meeting summaries, and heavier answer synthesis.',
|
||||
'settings.ai.routing.workload.agentic.label': 'Agentic',
|
||||
'settings.ai.routing.workload.agentic.description':
|
||||
'Sub-agent runners, tool loops, GIF decisions',
|
||||
'settings.ai.routing.workload.agentic.hint':
|
||||
'Recommended: a reliable instruction-following model with strong tool use. Mid-cost frontier models are usually safest; capable open-source models can work if tool calling is stable.',
|
||||
'settings.ai.routing.workload.coding.label': 'Coding',
|
||||
'settings.ai.routing.workload.coding.description': 'Code generation and refactor passes',
|
||||
'settings.ai.routing.workload.coding.hint':
|
||||
'Recommended: a coding-tuned model with strong instruction following, edit quality, and long-context performance. This is usually worth spending more on.',
|
||||
'settings.ai.routing.workload.vision.label': 'Vision',
|
||||
'settings.ai.routing.workload.vision.description':
|
||||
'Image understanding for the vision sub-agent — always multimodal',
|
||||
'settings.ai.routing.workload.vision.hint':
|
||||
'Recommended: a multimodal model that accepts image input. The managed default (vision-v1) is image-capable; any provider you route here is always treated as vision-enabled.',
|
||||
'settings.ai.routing.workload.memory.label': 'Memory summarization',
|
||||
'settings.ai.routing.workload.memory.description': 'Tree-extracts and consolidations',
|
||||
'settings.ai.routing.workload.memory.hint':
|
||||
'Recommended: a cheaper summarization model. It should be consistent and compact, but it does not need premium frontier-level reasoning.',
|
||||
'settings.ai.routing.workload.heartbeat.label': 'Heartbeat',
|
||||
'settings.ai.routing.workload.heartbeat.description': 'Background reasoning between user turns',
|
||||
'settings.ai.routing.workload.heartbeat.hint':
|
||||
'Recommended: a cheap, efficient background model. This runs often between turns, so low cost matters more than maximum intelligence.',
|
||||
'settings.ai.routing.workload.learning.label': 'Learning · Reflections',
|
||||
'settings.ai.routing.workload.learning.description': 'Periodic reflection over recent history',
|
||||
'settings.ai.routing.workload.learning.hint':
|
||||
'Recommended: a stronger reflective model. This can be mid-cost or premium because it benefits from better synthesis over recent history.',
|
||||
'settings.ai.routing.workload.subconscious.label': 'Subconscious',
|
||||
'settings.ai.routing.workload.subconscious.description': 'Eventfulness scoring + drift checks',
|
||||
'settings.ai.routing.workload.subconscious.hint':
|
||||
'Recommended: a very cheap monitoring model, ideally one that is lightweight and predictable. This is for eventfulness scoring, drift checks, and quiet background evaluation.',
|
||||
'settings.ai.routing.addCustomProvider': 'Agregar proveedor personalizado',
|
||||
'settings.ai.globalModel.title': 'Elige un modelo para todo',
|
||||
'settings.ai.globalModel.desc':
|
||||
|
||||
@@ -3693,6 +3693,46 @@ const messages: TranslationMap = {
|
||||
'settings.ai.routing.backgroundTasks': 'Tâches en arrière-plan',
|
||||
'settings.ai.routing.bgTasksDesc':
|
||||
"Modèles utilisés en dehors du flux principal de conversation pour la synthèse, le suivi, l'apprentissage et l'évaluation subconsciente.",
|
||||
'settings.ai.routing.workload.chat.label': 'Chat',
|
||||
'settings.ai.routing.workload.chat.description':
|
||||
'Direct conversational back-and-forth — “Quick” mode in Conversations',
|
||||
'settings.ai.routing.workload.chat.hint':
|
||||
'Recommended: a cheap or mid-cost fast chat model with high tokens/sec and low latency. Open-source local models can work well here if they feel responsive.',
|
||||
'settings.ai.routing.workload.reasoning.label': 'Reasoning',
|
||||
'settings.ai.routing.workload.reasoning.description':
|
||||
'Main chat agent, meeting summarizer — “Reasoning” mode in Conversations',
|
||||
'settings.ai.routing.workload.reasoning.hint':
|
||||
'Recommended: a more expensive frontier or strong reasoning model for deep thinking. This is used for the main chat agent, meeting summaries, and heavier answer synthesis.',
|
||||
'settings.ai.routing.workload.agentic.label': 'Agentic',
|
||||
'settings.ai.routing.workload.agentic.description':
|
||||
'Sub-agent runners, tool loops, GIF decisions',
|
||||
'settings.ai.routing.workload.agentic.hint':
|
||||
'Recommended: a reliable instruction-following model with strong tool use. Mid-cost frontier models are usually safest; capable open-source models can work if tool calling is stable.',
|
||||
'settings.ai.routing.workload.coding.label': 'Coding',
|
||||
'settings.ai.routing.workload.coding.description': 'Code generation and refactor passes',
|
||||
'settings.ai.routing.workload.coding.hint':
|
||||
'Recommended: a coding-tuned model with strong instruction following, edit quality, and long-context performance. This is usually worth spending more on.',
|
||||
'settings.ai.routing.workload.vision.label': 'Vision',
|
||||
'settings.ai.routing.workload.vision.description':
|
||||
'Image understanding for the vision sub-agent — always multimodal',
|
||||
'settings.ai.routing.workload.vision.hint':
|
||||
'Recommended: a multimodal model that accepts image input. The managed default (vision-v1) is image-capable; any provider you route here is always treated as vision-enabled.',
|
||||
'settings.ai.routing.workload.memory.label': 'Memory summarization',
|
||||
'settings.ai.routing.workload.memory.description': 'Tree-extracts and consolidations',
|
||||
'settings.ai.routing.workload.memory.hint':
|
||||
'Recommended: a cheaper summarization model. It should be consistent and compact, but it does not need premium frontier-level reasoning.',
|
||||
'settings.ai.routing.workload.heartbeat.label': 'Heartbeat',
|
||||
'settings.ai.routing.workload.heartbeat.description': 'Background reasoning between user turns',
|
||||
'settings.ai.routing.workload.heartbeat.hint':
|
||||
'Recommended: a cheap, efficient background model. This runs often between turns, so low cost matters more than maximum intelligence.',
|
||||
'settings.ai.routing.workload.learning.label': 'Learning · Reflections',
|
||||
'settings.ai.routing.workload.learning.description': 'Periodic reflection over recent history',
|
||||
'settings.ai.routing.workload.learning.hint':
|
||||
'Recommended: a stronger reflective model. This can be mid-cost or premium because it benefits from better synthesis over recent history.',
|
||||
'settings.ai.routing.workload.subconscious.label': 'Subconscious',
|
||||
'settings.ai.routing.workload.subconscious.description': 'Eventfulness scoring + drift checks',
|
||||
'settings.ai.routing.workload.subconscious.hint':
|
||||
'Recommended: a very cheap monitoring model, ideally one that is lightweight and predictable. This is for eventfulness scoring, drift checks, and quiet background evaluation.',
|
||||
'settings.ai.routing.addCustomProvider': 'Ajouter un fournisseur personnalisé',
|
||||
'settings.ai.globalModel.title': 'Choisissez un modèle pour tout',
|
||||
'settings.ai.globalModel.desc':
|
||||
|
||||
@@ -3620,6 +3620,46 @@ const messages: TranslationMap = {
|
||||
'settings.ai.routing.backgroundTasks': 'पृष्ठभूमि कार्य',
|
||||
'settings.ai.routing.bgTasksDesc':
|
||||
'मॉडल संक्षेपण, दिल की धड़कन, सीखने और अवचेतन मूल्यांकन के लिए मुख्य बातचीत प्रवाह के बाहर इस्तेमाल किया।',
|
||||
'settings.ai.routing.workload.chat.label': 'Chat',
|
||||
'settings.ai.routing.workload.chat.description':
|
||||
'Direct conversational back-and-forth — “Quick” mode in Conversations',
|
||||
'settings.ai.routing.workload.chat.hint':
|
||||
'Recommended: a cheap or mid-cost fast chat model with high tokens/sec and low latency. Open-source local models can work well here if they feel responsive.',
|
||||
'settings.ai.routing.workload.reasoning.label': 'Reasoning',
|
||||
'settings.ai.routing.workload.reasoning.description':
|
||||
'Main chat agent, meeting summarizer — “Reasoning” mode in Conversations',
|
||||
'settings.ai.routing.workload.reasoning.hint':
|
||||
'Recommended: a more expensive frontier or strong reasoning model for deep thinking. This is used for the main chat agent, meeting summaries, and heavier answer synthesis.',
|
||||
'settings.ai.routing.workload.agentic.label': 'Agentic',
|
||||
'settings.ai.routing.workload.agentic.description':
|
||||
'Sub-agent runners, tool loops, GIF decisions',
|
||||
'settings.ai.routing.workload.agentic.hint':
|
||||
'Recommended: a reliable instruction-following model with strong tool use. Mid-cost frontier models are usually safest; capable open-source models can work if tool calling is stable.',
|
||||
'settings.ai.routing.workload.coding.label': 'Coding',
|
||||
'settings.ai.routing.workload.coding.description': 'Code generation and refactor passes',
|
||||
'settings.ai.routing.workload.coding.hint':
|
||||
'Recommended: a coding-tuned model with strong instruction following, edit quality, and long-context performance. This is usually worth spending more on.',
|
||||
'settings.ai.routing.workload.vision.label': 'Vision',
|
||||
'settings.ai.routing.workload.vision.description':
|
||||
'Image understanding for the vision sub-agent — always multimodal',
|
||||
'settings.ai.routing.workload.vision.hint':
|
||||
'Recommended: a multimodal model that accepts image input. The managed default (vision-v1) is image-capable; any provider you route here is always treated as vision-enabled.',
|
||||
'settings.ai.routing.workload.memory.label': 'Memory summarization',
|
||||
'settings.ai.routing.workload.memory.description': 'Tree-extracts and consolidations',
|
||||
'settings.ai.routing.workload.memory.hint':
|
||||
'Recommended: a cheaper summarization model. It should be consistent and compact, but it does not need premium frontier-level reasoning.',
|
||||
'settings.ai.routing.workload.heartbeat.label': 'Heartbeat',
|
||||
'settings.ai.routing.workload.heartbeat.description': 'Background reasoning between user turns',
|
||||
'settings.ai.routing.workload.heartbeat.hint':
|
||||
'Recommended: a cheap, efficient background model. This runs often between turns, so low cost matters more than maximum intelligence.',
|
||||
'settings.ai.routing.workload.learning.label': 'Learning · Reflections',
|
||||
'settings.ai.routing.workload.learning.description': 'Periodic reflection over recent history',
|
||||
'settings.ai.routing.workload.learning.hint':
|
||||
'Recommended: a stronger reflective model. This can be mid-cost or premium because it benefits from better synthesis over recent history.',
|
||||
'settings.ai.routing.workload.subconscious.label': 'Subconscious',
|
||||
'settings.ai.routing.workload.subconscious.description': 'Eventfulness scoring + drift checks',
|
||||
'settings.ai.routing.workload.subconscious.hint':
|
||||
'Recommended: a very cheap monitoring model, ideally one that is lightweight and predictable. This is for eventfulness scoring, drift checks, and quiet background evaluation.',
|
||||
'settings.ai.routing.addCustomProvider': 'कस्टम प्रदाता जोड़ें',
|
||||
'settings.ai.globalModel.title': 'हर चीज़ के लिए एक मॉडल चुनें',
|
||||
'settings.ai.globalModel.desc':
|
||||
|
||||
@@ -3624,6 +3624,46 @@ const messages: TranslationMap = {
|
||||
'settings.ai.routing.backgroundTasks': 'Tugas Latar Belakang',
|
||||
'settings.ai.routing.bgTasksDesc':
|
||||
'Model digunakan di luar aliran percakapan utama untuk summarisasi, detak jantung, pembelajaran, dan evaluasi bawah sadar.',
|
||||
'settings.ai.routing.workload.chat.label': 'Chat',
|
||||
'settings.ai.routing.workload.chat.description':
|
||||
'Direct conversational back-and-forth — “Quick” mode in Conversations',
|
||||
'settings.ai.routing.workload.chat.hint':
|
||||
'Recommended: a cheap or mid-cost fast chat model with high tokens/sec and low latency. Open-source local models can work well here if they feel responsive.',
|
||||
'settings.ai.routing.workload.reasoning.label': 'Reasoning',
|
||||
'settings.ai.routing.workload.reasoning.description':
|
||||
'Main chat agent, meeting summarizer — “Reasoning” mode in Conversations',
|
||||
'settings.ai.routing.workload.reasoning.hint':
|
||||
'Recommended: a more expensive frontier or strong reasoning model for deep thinking. This is used for the main chat agent, meeting summaries, and heavier answer synthesis.',
|
||||
'settings.ai.routing.workload.agentic.label': 'Agentic',
|
||||
'settings.ai.routing.workload.agentic.description':
|
||||
'Sub-agent runners, tool loops, GIF decisions',
|
||||
'settings.ai.routing.workload.agentic.hint':
|
||||
'Recommended: a reliable instruction-following model with strong tool use. Mid-cost frontier models are usually safest; capable open-source models can work if tool calling is stable.',
|
||||
'settings.ai.routing.workload.coding.label': 'Coding',
|
||||
'settings.ai.routing.workload.coding.description': 'Code generation and refactor passes',
|
||||
'settings.ai.routing.workload.coding.hint':
|
||||
'Recommended: a coding-tuned model with strong instruction following, edit quality, and long-context performance. This is usually worth spending more on.',
|
||||
'settings.ai.routing.workload.vision.label': 'Vision',
|
||||
'settings.ai.routing.workload.vision.description':
|
||||
'Image understanding for the vision sub-agent — always multimodal',
|
||||
'settings.ai.routing.workload.vision.hint':
|
||||
'Recommended: a multimodal model that accepts image input. The managed default (vision-v1) is image-capable; any provider you route here is always treated as vision-enabled.',
|
||||
'settings.ai.routing.workload.memory.label': 'Memory summarization',
|
||||
'settings.ai.routing.workload.memory.description': 'Tree-extracts and consolidations',
|
||||
'settings.ai.routing.workload.memory.hint':
|
||||
'Recommended: a cheaper summarization model. It should be consistent and compact, but it does not need premium frontier-level reasoning.',
|
||||
'settings.ai.routing.workload.heartbeat.label': 'Heartbeat',
|
||||
'settings.ai.routing.workload.heartbeat.description': 'Background reasoning between user turns',
|
||||
'settings.ai.routing.workload.heartbeat.hint':
|
||||
'Recommended: a cheap, efficient background model. This runs often between turns, so low cost matters more than maximum intelligence.',
|
||||
'settings.ai.routing.workload.learning.label': 'Learning · Reflections',
|
||||
'settings.ai.routing.workload.learning.description': 'Periodic reflection over recent history',
|
||||
'settings.ai.routing.workload.learning.hint':
|
||||
'Recommended: a stronger reflective model. This can be mid-cost or premium because it benefits from better synthesis over recent history.',
|
||||
'settings.ai.routing.workload.subconscious.label': 'Subconscious',
|
||||
'settings.ai.routing.workload.subconscious.description': 'Eventfulness scoring + drift checks',
|
||||
'settings.ai.routing.workload.subconscious.hint':
|
||||
'Recommended: a very cheap monitoring model, ideally one that is lightweight and predictable. This is for eventfulness scoring, drift checks, and quiet background evaluation.',
|
||||
'settings.ai.routing.addCustomProvider': 'Tambahkan Penyedia Khusus',
|
||||
'settings.ai.globalModel.title': 'Pilih satu model untuk semuanya',
|
||||
'settings.ai.globalModel.desc':
|
||||
|
||||
@@ -3670,6 +3670,46 @@ const messages: TranslationMap = {
|
||||
'settings.ai.routing.backgroundTasks': 'Attività in background',
|
||||
'settings.ai.routing.bgTasksDesc':
|
||||
'Modelli utilizzati al di fuori del flusso principale della conversazione per sintesi, battito, apprendimento e valutazione subconscia.',
|
||||
'settings.ai.routing.workload.chat.label': 'Chat',
|
||||
'settings.ai.routing.workload.chat.description':
|
||||
'Direct conversational back-and-forth — “Quick” mode in Conversations',
|
||||
'settings.ai.routing.workload.chat.hint':
|
||||
'Recommended: a cheap or mid-cost fast chat model with high tokens/sec and low latency. Open-source local models can work well here if they feel responsive.',
|
||||
'settings.ai.routing.workload.reasoning.label': 'Reasoning',
|
||||
'settings.ai.routing.workload.reasoning.description':
|
||||
'Main chat agent, meeting summarizer — “Reasoning” mode in Conversations',
|
||||
'settings.ai.routing.workload.reasoning.hint':
|
||||
'Recommended: a more expensive frontier or strong reasoning model for deep thinking. This is used for the main chat agent, meeting summaries, and heavier answer synthesis.',
|
||||
'settings.ai.routing.workload.agentic.label': 'Agentic',
|
||||
'settings.ai.routing.workload.agentic.description':
|
||||
'Sub-agent runners, tool loops, GIF decisions',
|
||||
'settings.ai.routing.workload.agentic.hint':
|
||||
'Recommended: a reliable instruction-following model with strong tool use. Mid-cost frontier models are usually safest; capable open-source models can work if tool calling is stable.',
|
||||
'settings.ai.routing.workload.coding.label': 'Coding',
|
||||
'settings.ai.routing.workload.coding.description': 'Code generation and refactor passes',
|
||||
'settings.ai.routing.workload.coding.hint':
|
||||
'Recommended: a coding-tuned model with strong instruction following, edit quality, and long-context performance. This is usually worth spending more on.',
|
||||
'settings.ai.routing.workload.vision.label': 'Vision',
|
||||
'settings.ai.routing.workload.vision.description':
|
||||
'Image understanding for the vision sub-agent — always multimodal',
|
||||
'settings.ai.routing.workload.vision.hint':
|
||||
'Recommended: a multimodal model that accepts image input. The managed default (vision-v1) is image-capable; any provider you route here is always treated as vision-enabled.',
|
||||
'settings.ai.routing.workload.memory.label': 'Memory summarization',
|
||||
'settings.ai.routing.workload.memory.description': 'Tree-extracts and consolidations',
|
||||
'settings.ai.routing.workload.memory.hint':
|
||||
'Recommended: a cheaper summarization model. It should be consistent and compact, but it does not need premium frontier-level reasoning.',
|
||||
'settings.ai.routing.workload.heartbeat.label': 'Heartbeat',
|
||||
'settings.ai.routing.workload.heartbeat.description': 'Background reasoning between user turns',
|
||||
'settings.ai.routing.workload.heartbeat.hint':
|
||||
'Recommended: a cheap, efficient background model. This runs often between turns, so low cost matters more than maximum intelligence.',
|
||||
'settings.ai.routing.workload.learning.label': 'Learning · Reflections',
|
||||
'settings.ai.routing.workload.learning.description': 'Periodic reflection over recent history',
|
||||
'settings.ai.routing.workload.learning.hint':
|
||||
'Recommended: a stronger reflective model. This can be mid-cost or premium because it benefits from better synthesis over recent history.',
|
||||
'settings.ai.routing.workload.subconscious.label': 'Subconscious',
|
||||
'settings.ai.routing.workload.subconscious.description': 'Eventfulness scoring + drift checks',
|
||||
'settings.ai.routing.workload.subconscious.hint':
|
||||
'Recommended: a very cheap monitoring model, ideally one that is lightweight and predictable. This is for eventfulness scoring, drift checks, and quiet background evaluation.',
|
||||
'settings.ai.routing.addCustomProvider': 'Aggiungi provider personalizzato',
|
||||
'settings.ai.globalModel.title': 'Scegli un modello per tutto',
|
||||
'settings.ai.globalModel.desc':
|
||||
|
||||
@@ -3588,6 +3588,46 @@ const messages: TranslationMap = {
|
||||
'settings.ai.routing.backgroundTasks': '백그라운드 작업',
|
||||
'settings.ai.routing.bgTasksDesc':
|
||||
'요약, 하트비트, 학습 및 잠재의식 평가처럼 기본 대화 흐름 밖에서 사용되는 모델입니다.',
|
||||
'settings.ai.routing.workload.chat.label': 'Chat',
|
||||
'settings.ai.routing.workload.chat.description':
|
||||
'Direct conversational back-and-forth — “Quick” mode in Conversations',
|
||||
'settings.ai.routing.workload.chat.hint':
|
||||
'Recommended: a cheap or mid-cost fast chat model with high tokens/sec and low latency. Open-source local models can work well here if they feel responsive.',
|
||||
'settings.ai.routing.workload.reasoning.label': 'Reasoning',
|
||||
'settings.ai.routing.workload.reasoning.description':
|
||||
'Main chat agent, meeting summarizer — “Reasoning” mode in Conversations',
|
||||
'settings.ai.routing.workload.reasoning.hint':
|
||||
'Recommended: a more expensive frontier or strong reasoning model for deep thinking. This is used for the main chat agent, meeting summaries, and heavier answer synthesis.',
|
||||
'settings.ai.routing.workload.agentic.label': 'Agentic',
|
||||
'settings.ai.routing.workload.agentic.description':
|
||||
'Sub-agent runners, tool loops, GIF decisions',
|
||||
'settings.ai.routing.workload.agentic.hint':
|
||||
'Recommended: a reliable instruction-following model with strong tool use. Mid-cost frontier models are usually safest; capable open-source models can work if tool calling is stable.',
|
||||
'settings.ai.routing.workload.coding.label': 'Coding',
|
||||
'settings.ai.routing.workload.coding.description': 'Code generation and refactor passes',
|
||||
'settings.ai.routing.workload.coding.hint':
|
||||
'Recommended: a coding-tuned model with strong instruction following, edit quality, and long-context performance. This is usually worth spending more on.',
|
||||
'settings.ai.routing.workload.vision.label': 'Vision',
|
||||
'settings.ai.routing.workload.vision.description':
|
||||
'Image understanding for the vision sub-agent — always multimodal',
|
||||
'settings.ai.routing.workload.vision.hint':
|
||||
'Recommended: a multimodal model that accepts image input. The managed default (vision-v1) is image-capable; any provider you route here is always treated as vision-enabled.',
|
||||
'settings.ai.routing.workload.memory.label': 'Memory summarization',
|
||||
'settings.ai.routing.workload.memory.description': 'Tree-extracts and consolidations',
|
||||
'settings.ai.routing.workload.memory.hint':
|
||||
'Recommended: a cheaper summarization model. It should be consistent and compact, but it does not need premium frontier-level reasoning.',
|
||||
'settings.ai.routing.workload.heartbeat.label': 'Heartbeat',
|
||||
'settings.ai.routing.workload.heartbeat.description': 'Background reasoning between user turns',
|
||||
'settings.ai.routing.workload.heartbeat.hint':
|
||||
'Recommended: a cheap, efficient background model. This runs often between turns, so low cost matters more than maximum intelligence.',
|
||||
'settings.ai.routing.workload.learning.label': 'Learning · Reflections',
|
||||
'settings.ai.routing.workload.learning.description': 'Periodic reflection over recent history',
|
||||
'settings.ai.routing.workload.learning.hint':
|
||||
'Recommended: a stronger reflective model. This can be mid-cost or premium because it benefits from better synthesis over recent history.',
|
||||
'settings.ai.routing.workload.subconscious.label': 'Subconscious',
|
||||
'settings.ai.routing.workload.subconscious.description': 'Eventfulness scoring + drift checks',
|
||||
'settings.ai.routing.workload.subconscious.hint':
|
||||
'Recommended: a very cheap monitoring model, ideally one that is lightweight and predictable. This is for eventfulness scoring, drift checks, and quiet background evaluation.',
|
||||
'settings.ai.routing.addCustomProvider': '사용자 정의 공급자 추가',
|
||||
'settings.ai.globalModel.title': '모든 것에 대해 하나의 모델을 선택합니다.',
|
||||
'settings.ai.globalModel.desc':
|
||||
|
||||
@@ -3671,6 +3671,46 @@ const messages: TranslationMap = {
|
||||
'settings.ai.routing.backgroundTasks': 'Zadania w tle',
|
||||
'settings.ai.routing.bgTasksDesc':
|
||||
'Modele używane poza głównym przepływem rozmowy do podsumowań, heartbeat, uczenia i oceny podświadomości.',
|
||||
'settings.ai.routing.workload.chat.label': 'Chat',
|
||||
'settings.ai.routing.workload.chat.description':
|
||||
'Direct conversational back-and-forth — “Quick” mode in Conversations',
|
||||
'settings.ai.routing.workload.chat.hint':
|
||||
'Recommended: a cheap or mid-cost fast chat model with high tokens/sec and low latency. Open-source local models can work well here if they feel responsive.',
|
||||
'settings.ai.routing.workload.reasoning.label': 'Reasoning',
|
||||
'settings.ai.routing.workload.reasoning.description':
|
||||
'Main chat agent, meeting summarizer — “Reasoning” mode in Conversations',
|
||||
'settings.ai.routing.workload.reasoning.hint':
|
||||
'Recommended: a more expensive frontier or strong reasoning model for deep thinking. This is used for the main chat agent, meeting summaries, and heavier answer synthesis.',
|
||||
'settings.ai.routing.workload.agentic.label': 'Agentic',
|
||||
'settings.ai.routing.workload.agentic.description':
|
||||
'Sub-agent runners, tool loops, GIF decisions',
|
||||
'settings.ai.routing.workload.agentic.hint':
|
||||
'Recommended: a reliable instruction-following model with strong tool use. Mid-cost frontier models are usually safest; capable open-source models can work if tool calling is stable.',
|
||||
'settings.ai.routing.workload.coding.label': 'Coding',
|
||||
'settings.ai.routing.workload.coding.description': 'Code generation and refactor passes',
|
||||
'settings.ai.routing.workload.coding.hint':
|
||||
'Recommended: a coding-tuned model with strong instruction following, edit quality, and long-context performance. This is usually worth spending more on.',
|
||||
'settings.ai.routing.workload.vision.label': 'Vision',
|
||||
'settings.ai.routing.workload.vision.description':
|
||||
'Image understanding for the vision sub-agent — always multimodal',
|
||||
'settings.ai.routing.workload.vision.hint':
|
||||
'Recommended: a multimodal model that accepts image input. The managed default (vision-v1) is image-capable; any provider you route here is always treated as vision-enabled.',
|
||||
'settings.ai.routing.workload.memory.label': 'Memory summarization',
|
||||
'settings.ai.routing.workload.memory.description': 'Tree-extracts and consolidations',
|
||||
'settings.ai.routing.workload.memory.hint':
|
||||
'Recommended: a cheaper summarization model. It should be consistent and compact, but it does not need premium frontier-level reasoning.',
|
||||
'settings.ai.routing.workload.heartbeat.label': 'Heartbeat',
|
||||
'settings.ai.routing.workload.heartbeat.description': 'Background reasoning between user turns',
|
||||
'settings.ai.routing.workload.heartbeat.hint':
|
||||
'Recommended: a cheap, efficient background model. This runs often between turns, so low cost matters more than maximum intelligence.',
|
||||
'settings.ai.routing.workload.learning.label': 'Learning · Reflections',
|
||||
'settings.ai.routing.workload.learning.description': 'Periodic reflection over recent history',
|
||||
'settings.ai.routing.workload.learning.hint':
|
||||
'Recommended: a stronger reflective model. This can be mid-cost or premium because it benefits from better synthesis over recent history.',
|
||||
'settings.ai.routing.workload.subconscious.label': 'Subconscious',
|
||||
'settings.ai.routing.workload.subconscious.description': 'Eventfulness scoring + drift checks',
|
||||
'settings.ai.routing.workload.subconscious.hint':
|
||||
'Recommended: a very cheap monitoring model, ideally one that is lightweight and predictable. This is for eventfulness scoring, drift checks, and quiet background evaluation.',
|
||||
'settings.ai.routing.addCustomProvider': 'Dodaj własnego dostawcę',
|
||||
'settings.ai.globalModel.title': 'Wybierz jeden model do wszystkiego',
|
||||
'settings.ai.globalModel.desc':
|
||||
|
||||
@@ -3676,6 +3676,46 @@ const messages: TranslationMap = {
|
||||
'settings.ai.routing.backgroundTasks': 'Tarefas de segundo plano',
|
||||
'settings.ai.routing.bgTasksDesc':
|
||||
'Modelos usados fora do fluxo principal de conversa para resumir, monitoramento, aprendizado e avaliação subconsciente.',
|
||||
'settings.ai.routing.workload.chat.label': 'Chat',
|
||||
'settings.ai.routing.workload.chat.description':
|
||||
'Direct conversational back-and-forth — “Quick” mode in Conversations',
|
||||
'settings.ai.routing.workload.chat.hint':
|
||||
'Recommended: a cheap or mid-cost fast chat model with high tokens/sec and low latency. Open-source local models can work well here if they feel responsive.',
|
||||
'settings.ai.routing.workload.reasoning.label': 'Reasoning',
|
||||
'settings.ai.routing.workload.reasoning.description':
|
||||
'Main chat agent, meeting summarizer — “Reasoning” mode in Conversations',
|
||||
'settings.ai.routing.workload.reasoning.hint':
|
||||
'Recommended: a more expensive frontier or strong reasoning model for deep thinking. This is used for the main chat agent, meeting summaries, and heavier answer synthesis.',
|
||||
'settings.ai.routing.workload.agentic.label': 'Agentic',
|
||||
'settings.ai.routing.workload.agentic.description':
|
||||
'Sub-agent runners, tool loops, GIF decisions',
|
||||
'settings.ai.routing.workload.agentic.hint':
|
||||
'Recommended: a reliable instruction-following model with strong tool use. Mid-cost frontier models are usually safest; capable open-source models can work if tool calling is stable.',
|
||||
'settings.ai.routing.workload.coding.label': 'Coding',
|
||||
'settings.ai.routing.workload.coding.description': 'Code generation and refactor passes',
|
||||
'settings.ai.routing.workload.coding.hint':
|
||||
'Recommended: a coding-tuned model with strong instruction following, edit quality, and long-context performance. This is usually worth spending more on.',
|
||||
'settings.ai.routing.workload.vision.label': 'Vision',
|
||||
'settings.ai.routing.workload.vision.description':
|
||||
'Image understanding for the vision sub-agent — always multimodal',
|
||||
'settings.ai.routing.workload.vision.hint':
|
||||
'Recommended: a multimodal model that accepts image input. The managed default (vision-v1) is image-capable; any provider you route here is always treated as vision-enabled.',
|
||||
'settings.ai.routing.workload.memory.label': 'Memory summarization',
|
||||
'settings.ai.routing.workload.memory.description': 'Tree-extracts and consolidations',
|
||||
'settings.ai.routing.workload.memory.hint':
|
||||
'Recommended: a cheaper summarization model. It should be consistent and compact, but it does not need premium frontier-level reasoning.',
|
||||
'settings.ai.routing.workload.heartbeat.label': 'Heartbeat',
|
||||
'settings.ai.routing.workload.heartbeat.description': 'Background reasoning between user turns',
|
||||
'settings.ai.routing.workload.heartbeat.hint':
|
||||
'Recommended: a cheap, efficient background model. This runs often between turns, so low cost matters more than maximum intelligence.',
|
||||
'settings.ai.routing.workload.learning.label': 'Learning · Reflections',
|
||||
'settings.ai.routing.workload.learning.description': 'Periodic reflection over recent history',
|
||||
'settings.ai.routing.workload.learning.hint':
|
||||
'Recommended: a stronger reflective model. This can be mid-cost or premium because it benefits from better synthesis over recent history.',
|
||||
'settings.ai.routing.workload.subconscious.label': 'Subconscious',
|
||||
'settings.ai.routing.workload.subconscious.description': 'Eventfulness scoring + drift checks',
|
||||
'settings.ai.routing.workload.subconscious.hint':
|
||||
'Recommended: a very cheap monitoring model, ideally one that is lightweight and predictable. This is for eventfulness scoring, drift checks, and quiet background evaluation.',
|
||||
'settings.ai.routing.addCustomProvider': 'Adicionar provedor personalizado',
|
||||
'settings.ai.globalModel.title': 'Escolha um modelo para tudo',
|
||||
'settings.ai.globalModel.desc':
|
||||
|
||||
@@ -3647,6 +3647,46 @@ const messages: TranslationMap = {
|
||||
'settings.ai.routing.backgroundTasks': 'Фоновые задачи',
|
||||
'settings.ai.routing.bgTasksDesc':
|
||||
'Модели, используемые вне основного потока разговора для подведения итогов, сердцебиения, обучения и подсознательной оценки.',
|
||||
'settings.ai.routing.workload.chat.label': 'Chat',
|
||||
'settings.ai.routing.workload.chat.description':
|
||||
'Direct conversational back-and-forth — “Quick” mode in Conversations',
|
||||
'settings.ai.routing.workload.chat.hint':
|
||||
'Recommended: a cheap or mid-cost fast chat model with high tokens/sec and low latency. Open-source local models can work well here if they feel responsive.',
|
||||
'settings.ai.routing.workload.reasoning.label': 'Reasoning',
|
||||
'settings.ai.routing.workload.reasoning.description':
|
||||
'Main chat agent, meeting summarizer — “Reasoning” mode in Conversations',
|
||||
'settings.ai.routing.workload.reasoning.hint':
|
||||
'Recommended: a more expensive frontier or strong reasoning model for deep thinking. This is used for the main chat agent, meeting summaries, and heavier answer synthesis.',
|
||||
'settings.ai.routing.workload.agentic.label': 'Agentic',
|
||||
'settings.ai.routing.workload.agentic.description':
|
||||
'Sub-agent runners, tool loops, GIF decisions',
|
||||
'settings.ai.routing.workload.agentic.hint':
|
||||
'Recommended: a reliable instruction-following model with strong tool use. Mid-cost frontier models are usually safest; capable open-source models can work if tool calling is stable.',
|
||||
'settings.ai.routing.workload.coding.label': 'Coding',
|
||||
'settings.ai.routing.workload.coding.description': 'Code generation and refactor passes',
|
||||
'settings.ai.routing.workload.coding.hint':
|
||||
'Recommended: a coding-tuned model with strong instruction following, edit quality, and long-context performance. This is usually worth spending more on.',
|
||||
'settings.ai.routing.workload.vision.label': 'Vision',
|
||||
'settings.ai.routing.workload.vision.description':
|
||||
'Image understanding for the vision sub-agent — always multimodal',
|
||||
'settings.ai.routing.workload.vision.hint':
|
||||
'Recommended: a multimodal model that accepts image input. The managed default (vision-v1) is image-capable; any provider you route here is always treated as vision-enabled.',
|
||||
'settings.ai.routing.workload.memory.label': 'Memory summarization',
|
||||
'settings.ai.routing.workload.memory.description': 'Tree-extracts and consolidations',
|
||||
'settings.ai.routing.workload.memory.hint':
|
||||
'Recommended: a cheaper summarization model. It should be consistent and compact, but it does not need premium frontier-level reasoning.',
|
||||
'settings.ai.routing.workload.heartbeat.label': 'Heartbeat',
|
||||
'settings.ai.routing.workload.heartbeat.description': 'Background reasoning between user turns',
|
||||
'settings.ai.routing.workload.heartbeat.hint':
|
||||
'Recommended: a cheap, efficient background model. This runs often between turns, so low cost matters more than maximum intelligence.',
|
||||
'settings.ai.routing.workload.learning.label': 'Learning · Reflections',
|
||||
'settings.ai.routing.workload.learning.description': 'Periodic reflection over recent history',
|
||||
'settings.ai.routing.workload.learning.hint':
|
||||
'Recommended: a stronger reflective model. This can be mid-cost or premium because it benefits from better synthesis over recent history.',
|
||||
'settings.ai.routing.workload.subconscious.label': 'Subconscious',
|
||||
'settings.ai.routing.workload.subconscious.description': 'Eventfulness scoring + drift checks',
|
||||
'settings.ai.routing.workload.subconscious.hint':
|
||||
'Recommended: a very cheap monitoring model, ideally one that is lightweight and predictable. This is for eventfulness scoring, drift checks, and quiet background evaluation.',
|
||||
'settings.ai.routing.addCustomProvider': 'Добавить специального поставщика.',
|
||||
'settings.ai.globalModel.title': 'Выберите одну модель для всего.',
|
||||
'settings.ai.globalModel.desc':
|
||||
|
||||
@@ -3436,6 +3436,46 @@ const messages: TranslationMap = {
|
||||
'settings.ai.routing.chatDesc': '用于直接用户交互、回复、推理、智能体循环和编码帮助的模型。',
|
||||
'settings.ai.routing.backgroundTasks': '后台任务',
|
||||
'settings.ai.routing.bgTasksDesc': '在主对话流程之外用于总结、心跳、学习和潜意识评估的模型。',
|
||||
'settings.ai.routing.workload.chat.label': 'Chat',
|
||||
'settings.ai.routing.workload.chat.description':
|
||||
'Direct conversational back-and-forth — “Quick” mode in Conversations',
|
||||
'settings.ai.routing.workload.chat.hint':
|
||||
'Recommended: a cheap or mid-cost fast chat model with high tokens/sec and low latency. Open-source local models can work well here if they feel responsive.',
|
||||
'settings.ai.routing.workload.reasoning.label': 'Reasoning',
|
||||
'settings.ai.routing.workload.reasoning.description':
|
||||
'Main chat agent, meeting summarizer — “Reasoning” mode in Conversations',
|
||||
'settings.ai.routing.workload.reasoning.hint':
|
||||
'Recommended: a more expensive frontier or strong reasoning model for deep thinking. This is used for the main chat agent, meeting summaries, and heavier answer synthesis.',
|
||||
'settings.ai.routing.workload.agentic.label': 'Agentic',
|
||||
'settings.ai.routing.workload.agentic.description':
|
||||
'Sub-agent runners, tool loops, GIF decisions',
|
||||
'settings.ai.routing.workload.agentic.hint':
|
||||
'Recommended: a reliable instruction-following model with strong tool use. Mid-cost frontier models are usually safest; capable open-source models can work if tool calling is stable.',
|
||||
'settings.ai.routing.workload.coding.label': 'Coding',
|
||||
'settings.ai.routing.workload.coding.description': 'Code generation and refactor passes',
|
||||
'settings.ai.routing.workload.coding.hint':
|
||||
'Recommended: a coding-tuned model with strong instruction following, edit quality, and long-context performance. This is usually worth spending more on.',
|
||||
'settings.ai.routing.workload.vision.label': 'Vision',
|
||||
'settings.ai.routing.workload.vision.description':
|
||||
'Image understanding for the vision sub-agent — always multimodal',
|
||||
'settings.ai.routing.workload.vision.hint':
|
||||
'Recommended: a multimodal model that accepts image input. The managed default (vision-v1) is image-capable; any provider you route here is always treated as vision-enabled.',
|
||||
'settings.ai.routing.workload.memory.label': 'Memory summarization',
|
||||
'settings.ai.routing.workload.memory.description': 'Tree-extracts and consolidations',
|
||||
'settings.ai.routing.workload.memory.hint':
|
||||
'Recommended: a cheaper summarization model. It should be consistent and compact, but it does not need premium frontier-level reasoning.',
|
||||
'settings.ai.routing.workload.heartbeat.label': 'Heartbeat',
|
||||
'settings.ai.routing.workload.heartbeat.description': 'Background reasoning between user turns',
|
||||
'settings.ai.routing.workload.heartbeat.hint':
|
||||
'Recommended: a cheap, efficient background model. This runs often between turns, so low cost matters more than maximum intelligence.',
|
||||
'settings.ai.routing.workload.learning.label': 'Learning · Reflections',
|
||||
'settings.ai.routing.workload.learning.description': 'Periodic reflection over recent history',
|
||||
'settings.ai.routing.workload.learning.hint':
|
||||
'Recommended: a stronger reflective model. This can be mid-cost or premium because it benefits from better synthesis over recent history.',
|
||||
'settings.ai.routing.workload.subconscious.label': 'Subconscious',
|
||||
'settings.ai.routing.workload.subconscious.description': 'Eventfulness scoring + drift checks',
|
||||
'settings.ai.routing.workload.subconscious.hint':
|
||||
'Recommended: a very cheap monitoring model, ideally one that is lightweight and predictable. This is for eventfulness scoring, drift checks, and quiet background evaluation.',
|
||||
'settings.ai.routing.addCustomProvider': '添加自定义提供商',
|
||||
'settings.ai.globalModel.title': '为所有事情选择一种型号',
|
||||
'settings.ai.globalModel.desc':
|
||||
|
||||
Reference in New Issue
Block a user