github-actions[bot]
GitHub deploy: f34fd77b5dea66f4e37392944231a7068ee2617b
2fbb5e6
raw
history blame
2.14 kB
<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 capabilityLabels = {
vision: {
label: $i18n.t('Vision'),
description: $i18n.t('Model accepts image inputs')
},
file_upload: {
label: $i18n.t('File Upload'),
description: $i18n.t('Model accepts file inputs')
},
web_search: {
label: $i18n.t('Web Search'),
description: $i18n.t('Model can search the web for information')
},
image_generation: {
label: $i18n.t('Image Generation'),
description: $i18n.t('Model can generate images based on text prompts')
},
code_interpreter: {
label: $i18n.t('Code Interpreter'),
description: $i18n.t('Model can execute code and perform calculations')
},
usage: {
label: $i18n.t('Usage'),
description: $i18n.t(
'Sends `stream_options: { include_usage: true }` in the request.\nSupported providers will return token usage information in the response when set.'
)
},
citations: {
label: $i18n.t('Citations'),
description: $i18n.t('Displays citations in the response')
}
};
export let capabilities: {
vision?: boolean;
file_upload?: boolean;
web_search?: boolean;
image_generation?: boolean;
code_interpreter?: boolean;
usage?: boolean;
citations?: boolean;
} = {};
</script>
<div>
<div class="flex w-full justify-between mb-1">
<div class=" self-center text-sm font-semibold">{$i18n.t('Capabilities')}</div>
</div>
<div class="flex">
{#each Object.keys(capabilityLabels) as capability}
<div class=" flex items-center gap-2 mr-3">
<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(capabilityLabels[capability].description)}>
{$i18n.t(capabilityLabels[capability].label)}
</Tooltip>
</div>
</div>
{/each}
</div>
</div>