mirror of
https://github.com/open-webui/open-webui.git
synced 2026-09-20 00:11:27 +00:00
88 lines
2.4 KiB
Svelte
88 lines
2.4 KiB
Svelte
<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 toolLabels = {
|
|
time: {
|
|
label: $i18n.t('Time & Calculation'),
|
|
description: $i18n.t('Get current time and perform date/time calculations')
|
|
},
|
|
memory: {
|
|
label: $i18n.t('Memory'),
|
|
description: $i18n.t('Search and manage user memories')
|
|
},
|
|
chats: {
|
|
label: $i18n.t('Chat History'),
|
|
description: $i18n.t('Search and view user chat history')
|
|
},
|
|
notes: {
|
|
label: $i18n.t('Notes'),
|
|
description: $i18n.t('Search, view, and manage user notes')
|
|
},
|
|
knowledge: {
|
|
label: $i18n.t('Knowledge Base'),
|
|
description: $i18n.t('Browse and query knowledge bases')
|
|
},
|
|
channels: {
|
|
label: $i18n.t('Channels'),
|
|
description: $i18n.t('Search channels and channel messages')
|
|
},
|
|
web_search: {
|
|
label: $i18n.t('Web Search'),
|
|
description: $i18n.t('Search the web and fetch URLs')
|
|
},
|
|
image_generation: {
|
|
label: $i18n.t('Image Generation'),
|
|
description: $i18n.t('Generate and edit images')
|
|
},
|
|
code_interpreter: {
|
|
label: $i18n.t('Code Interpreter'),
|
|
description: $i18n.t('Execute code')
|
|
},
|
|
tasks: {
|
|
label: $i18n.t('Task Management'),
|
|
description: $i18n.t('Break down complex requests into trackable steps')
|
|
},
|
|
automations: {
|
|
label: $i18n.t('Automations'),
|
|
description: $i18n.t('Create and manage scheduled automations')
|
|
}
|
|
};
|
|
|
|
const allTools = Object.keys(toolLabels);
|
|
|
|
export let builtinTools: Record<string, boolean> = {};
|
|
</script>
|
|
|
|
<div>
|
|
<div class="flex w-full justify-between mb-1">
|
|
<div class="self-center text-xs font-medium text-gray-500">{$i18n.t('Builtin Tools')}</div>
|
|
</div>
|
|
<div class="flex items-center mt-2 flex-wrap">
|
|
{#each allTools as tool}
|
|
<div class="flex items-center gap-2 mr-3">
|
|
<Checkbox
|
|
state={builtinTools[tool] !== false ? 'checked' : 'unchecked'}
|
|
on:change={(e) => {
|
|
if (e.detail === 'checked') {
|
|
delete builtinTools[tool];
|
|
} else {
|
|
builtinTools[tool] = false;
|
|
}
|
|
builtinTools = builtinTools;
|
|
}}
|
|
/>
|
|
|
|
<div class="py-0.5 text-sm">
|
|
<Tooltip content={marked.parse(toolLabels[tool].description)}>
|
|
{$i18n.t(toolLabels[tool].label)}
|
|
</Tooltip>
|
|
</div>
|
|
</div>
|
|
{/each}
|
|
</div>
|
|
</div>
|