Spaces:
Running
Running
<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> | |