@ -19,7 +19,7 @@
|
|||||||
}>()
|
}>()
|
||||||
|
|
||||||
const { t, locale } = useI18n()
|
const { t, locale } = useI18n()
|
||||||
const { config, showConfigManager } = storeToRefs(useConfigStore())
|
const { showConfigManager, isConfigValid } = storeToRefs(useConfigStore())
|
||||||
const toast = useToast()
|
const toast = useToast()
|
||||||
|
|
||||||
const reasoningContent = ref('')
|
const reasoningContent = ref('')
|
||||||
@ -41,10 +41,7 @@
|
|||||||
)
|
)
|
||||||
|
|
||||||
async function getFeedback() {
|
async function getFeedback() {
|
||||||
const aiConfig = config.value.ai
|
if (!isConfigValid.value) {
|
||||||
const webSearchConfig = config.value.webSearch
|
|
||||||
|
|
||||||
if (!aiConfig.model || !aiConfig.apiKey || !webSearchConfig.apiKey) {
|
|
||||||
toast.add({
|
toast.add({
|
||||||
title: t('index.missingConfigTitle'),
|
title: t('index.missingConfigTitle'),
|
||||||
description: t('index.missingConfigDescription'),
|
description: t('index.missingConfigDescription'),
|
||||||
|
@ -65,9 +65,6 @@
|
|||||||
researchResultInjectionKey,
|
researchResultInjectionKey,
|
||||||
} from '~/constants/injection-keys'
|
} from '~/constants/injection-keys'
|
||||||
|
|
||||||
const { t } = useI18n()
|
|
||||||
const { config } = storeToRefs(useConfigStore())
|
|
||||||
const toast = useToast()
|
|
||||||
const version = useRuntimeConfig().public.version
|
const version = useRuntimeConfig().public.version
|
||||||
|
|
||||||
const configManagerRef = ref<InstanceType<typeof ConfigManager>>()
|
const configManagerRef = ref<InstanceType<typeof ConfigManager>>()
|
||||||
@ -93,18 +90,6 @@
|
|||||||
provide(researchResultInjectionKey, researchResult)
|
provide(researchResultInjectionKey, researchResult)
|
||||||
|
|
||||||
async function generateFeedback() {
|
async function generateFeedback() {
|
||||||
const aiConfig = config.value.ai
|
|
||||||
const webSearchConfig = config.value.webSearch
|
|
||||||
|
|
||||||
if (!aiConfig.model || !aiConfig.apiKey || !webSearchConfig.apiKey) {
|
|
||||||
toast.add({
|
|
||||||
title: t('index.missingConfigTitle'),
|
|
||||||
description: t('index.missingConfigDescription'),
|
|
||||||
color: 'error',
|
|
||||||
})
|
|
||||||
configManagerRef.value?.show()
|
|
||||||
return
|
|
||||||
}
|
|
||||||
feedbackRef.value?.getFeedback()
|
feedbackRef.value?.getFeedback()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -30,6 +30,18 @@ export interface Config {
|
|||||||
webSearch: ConfigWebSearch
|
webSearch: ConfigWebSearch
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function validateConfig(config: Config) {
|
||||||
|
const ai = config.ai
|
||||||
|
if (ai.provider !== 'ollama' && !ai.apiKey) return false
|
||||||
|
if (typeof ai.contextSize !== 'undefined' && ai.contextSize < 0) return false
|
||||||
|
|
||||||
|
const ws = config.webSearch
|
||||||
|
if (!ws.apiKey) return false
|
||||||
|
if (typeof ws.concurrencyLimit !== 'undefined' && ws.concurrencyLimit! < 1)
|
||||||
|
return false
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
|
||||||
export const useConfigStore = defineStore('config', () => {
|
export const useConfigStore = defineStore('config', () => {
|
||||||
const config = useLocalStorage<Config>('deep-research-config', {
|
const config = useLocalStorage<Config>('deep-research-config', {
|
||||||
ai: {
|
ai: {
|
||||||
@ -47,6 +59,7 @@ export const useConfigStore = defineStore('config', () => {
|
|||||||
'dismiss-update-version',
|
'dismiss-update-version',
|
||||||
'',
|
'',
|
||||||
)
|
)
|
||||||
|
const isConfigValid = computed(() => validateConfig(config.value))
|
||||||
|
|
||||||
const aiApiBase = computed(() => {
|
const aiApiBase = computed(() => {
|
||||||
if (config.value.ai.provider === 'openrouter') {
|
if (config.value.ai.provider === 'openrouter') {
|
||||||
@ -65,6 +78,7 @@ export const useConfigStore = defineStore('config', () => {
|
|||||||
|
|
||||||
return {
|
return {
|
||||||
config: skipHydrate(config),
|
config: skipHydrate(config),
|
||||||
|
isConfigValid,
|
||||||
aiApiBase,
|
aiApiBase,
|
||||||
showConfigManager,
|
showConfigManager,
|
||||||
dismissUpdateVersion: skipHydrate(dismissUpdateVersion),
|
dismissUpdateVersion: skipHydrate(dismissUpdateVersion),
|
||||||
|
Reference in New Issue
Block a user