feat: add support for Firecrawl

This commit is contained in:
AnotiaWang
2025-02-15 21:41:15 +08:00
parent abb93139a6
commit f8af8b4afc
12 changed files with 167 additions and 44 deletions

View File

@ -39,9 +39,32 @@
value: 'ollama',
},
])
const webSearchProviderOptions = computed(() => [
{
label: 'Tavily',
value: 'tavily',
help: 'settings.webSearch.providers.tavily.help',
// Only kept for easy reference in i18n Ally
_help: t('settings.webSearch.providers.tavily.help'),
link: 'https://app.tavily.com/home',
},
{
label: 'Firecrawl',
value: 'firecrawl',
help: 'settings.webSearch.providers.firecrawl.help',
// Only kept for easy reference in i18n Ally
_help: t('settings.webSearch.providers.firecrawl.help'),
link: 'https://www.firecrawl.dev/app/api-keys',
},
])
const selectedAiProvider = computed(() =>
aiProviderOptions.value.find((o) => o.value === config.value.ai.provider),
)
const selectedWebSearchProvider = computed(() =>
webSearchProviderOptions.value.find(
(o) => o.value === config.value.webSearch.provider,
),
)
// Try to find available AI models based on selected provider
const debouncedListAiModels = useDebounceFn(async () => {
@ -125,7 +148,7 @@
</template>
<USelect
v-model="config.ai.provider"
class="w-50"
class="w-auto"
:items="aiProviderOptions"
/>
</UFormField>
@ -174,20 +197,25 @@
<h3 class="font-bold"> {{ $t('settings.webSearch.provider') }} </h3>
<UFormField>
<template #help>
<i18n-t keypath="settings.webSearch.providerHelp" tag="p">
<i18n-t
v-if="selectedWebSearchProvider?.help"
:keypath="selectedWebSearchProvider.help"
tag="p"
>
<UButton
class="!p-0"
to="https://app.tavily.com/home"
:to="selectedWebSearchProvider.link"
target="_blank"
variant="link"
>
app.tavily.com
{{ selectedWebSearchProvider.link }}
</UButton>
</i18n-t>
</template>
<USelect
v-model="config.webSearch.provider"
:items="[{ label: 'Tavily', value: 'tavily' }]"
class="w-auto"
:items="webSearchProviderOptions"
/>
</UFormField>
<UFormField :label="$t('settings.webSearch.apiKey')" required>