1
0
mirror of https://github.com/TandoorRecipes/recipes.git synced 2026-01-11 17:16:59 -05:00

lots of AI provider stuff

This commit is contained in:
vabene1111
2025-09-09 07:54:59 +02:00
parent 98d308aee9
commit 286d707347
15 changed files with 79 additions and 37 deletions

View File

@@ -74,6 +74,10 @@
</v-menu>
</v-btn>
</template>
<template v-slot:item.space="{ item }" v-if="genericModel.model.name == 'AiProvider'">
<v-chip label v-if="item.space == null" color="success">{{$t('Global')}}</v-chip>
<v-chip label v-else color="info">{{$t('Space')}}</v-chip>
</template>
<template v-slot:item.action="{ item }">
<v-btn class="float-right" icon="$menu" variant="plain">
<v-icon icon="$menu"></v-icon>

View File

@@ -60,7 +60,7 @@
</v-card>
</v-col>
<v-col cols="12" md="6" v-if="useUserPreferenceStore().serverSettings.enableAiImport">
<v-col cols="12" md="6" v-if="useUserPreferenceStore().activeSpace.aiEnabled">
<v-card
:title="$t('AI')"
:subtitle="$t('AIImportSubtitle')"
@@ -69,7 +69,7 @@
:color="(importType == 'ai') ? 'primary' : ''"
elevation="1"
@click="importType = 'ai'"
:disabled="!useUserPreferenceStore().serverSettings.enableAiImport">
:disabled="!useUserPreferenceStore().activeSpace.aiEnabled">
</v-card>
</v-col>
@@ -142,7 +142,11 @@
<div v-if="importType == 'ai'">
<v-row>
<v-col md="6">
<ModelSelect model="AiProvider" v-model="selectedAiProvider"></ModelSelect>
<ModelSelect model="AiProvider" v-model="selectedAiProvider">
<template #append>
<v-btn icon="$settings" :to="{name:'ModelListPage', params: {model: 'AiProvider'}}" color="success"></v-btn>
</template>
</ModelSelect>
</v-col>
<v-col md="6">
<v-btn-toggle class="mb-2" border divided v-model="aiMode">
@@ -735,12 +739,12 @@ function loadRecipeFromUrl(recipeFromSourceRequest: RecipeFromSource) {
function loadRecipeFromAiImport() {
let request = null
if(selectedAiProvider.value == undefined) {
if (selectedAiProvider.value == undefined) {
useMessageStore().addError(ErrorMessageType.CREATE_ERROR, "No AI Provider selected")
}
if (image.value != null && aiMode.value == 'file') {
request = doAiImport(selectedAiProvider.value.id!,image.value)
request = doAiImport(selectedAiProvider.value.id!, image.value)
} else if (sourceImportText.value != '' && aiMode.value == 'text') {
request = doAiImport(selectedAiProvider.value.id!, null, sourceImportText.value)
}