open-webui/src/lib/components/workspace/Models/Capabilities.svelte

51 lines
1.4 KiB
Svelte
Raw Normal View History

2024-09-15 13:14:09 +00:00
<script lang="ts">
import { getContext } from 'svelte';
import Checkbox from '$lib/components/common/Checkbox.svelte';
import Tooltip from '$lib/components/common/Tooltip.svelte';
import { marked } from 'marked';
const i18n = getContext('i18n');
const helpText = {
vision: $i18n.t('Model accepts image inputs'),
usage: $i18n.t(
'Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.'
2024-11-19 09:12:47 +00:00
),
citations: $i18n.t('Displays citations in the response'),
2025-05-16 18:17:47 +00:00
reasoning: $i18n.t(
'Sends `enable_thinking: true` in the request. \nSupported toggle providers will return thinking content'
)
2024-09-15 13:14:09 +00:00
};
export let capabilities: {
vision?: boolean;
usage?: boolean;
2024-11-19 09:12:47 +00:00
citations?: boolean;
2025-05-16 18:17:47 +00:00
reasoning?: boolean;
2024-09-15 13:14:09 +00:00
} = {};
</script>
<div>
<div class="flex w-full justify-between mb-1">
<div class=" self-center text-sm font-semibold">{$i18n.t('Capabilities')}</div>
</div>
2024-11-07 08:53:39 +00:00
<div class="flex">
2024-09-15 13:14:09 +00:00
{#each Object.keys(capabilities) as capability}
2024-11-07 08:53:39 +00:00
<div class=" flex items-center gap-2 mr-3">
2024-09-15 13:14:09 +00:00
<Checkbox
state={capabilities[capability] ? 'checked' : 'unchecked'}
on:change={(e) => {
capabilities[capability] = e.detail === 'checked';
}}
/>
<div class=" py-0.5 text-sm capitalize">
<Tooltip content={marked.parse(helpText[capability])}>
{$i18n.t(capability)}
</Tooltip>
</div>
</div>
{/each}
</div>
</div>