- AI
- Aggiornamento QUASAR
This commit is contained in:
@@ -1,78 +1,10 @@
|
||||
.colmodif {
|
||||
cursor: pointer;
|
||||
}
|
||||
|
||||
.coldate {
|
||||
max-width: 250px;
|
||||
min-width: 200px;
|
||||
}
|
||||
|
||||
.tdclass, .trclass{
|
||||
min-height: 20px !important;
|
||||
margin-top: 5px;
|
||||
}
|
||||
|
||||
.q-table td {
|
||||
padding-left: 1px;
|
||||
padding-right: 2px;
|
||||
padding-top: 0;
|
||||
padding-bottom: 0;
|
||||
&__title {
|
||||
font-size: 1rem;
|
||||
}
|
||||
}
|
||||
|
||||
.q-table {
|
||||
&__col {
|
||||
font-size: 1rem;
|
||||
color: gray;
|
||||
}
|
||||
}
|
||||
|
||||
.newrec_fields{
|
||||
display: flex;
|
||||
padding: 2px;
|
||||
margin: 2px;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.riduci_pad {
|
||||
min-height: 30px;
|
||||
padding: 4px 8px !important;
|
||||
}
|
||||
|
||||
|
||||
.q-table__top{
|
||||
padding-top: 0 !important;
|
||||
}
|
||||
|
||||
|
||||
.barselection {
|
||||
padding: 0;
|
||||
flex-wrap: nowrap;
|
||||
display: flex;
|
||||
align-items: center;
|
||||
justify-content: space-between;
|
||||
}
|
||||
|
||||
.myitem {
|
||||
padding: 0px 0px 0px 0px !important;
|
||||
}
|
||||
|
||||
.myitem-0 {
|
||||
flex-grow: 0;
|
||||
padding-left: 2px;
|
||||
}
|
||||
|
||||
.myitem-1 {
|
||||
flex-grow: 0;
|
||||
}
|
||||
|
||||
.myitem-2 {
|
||||
flex-grow: 0;
|
||||
}
|
||||
|
||||
.myitem-3 {
|
||||
flex-grow: 1;
|
||||
}
|
||||
.response-content {
|
||||
white-space: pre-wrap;
|
||||
word-break: break-word;
|
||||
font-family: monospace;
|
||||
font-size: 14px;
|
||||
line-height: 1.5;
|
||||
padding: 10px;
|
||||
background-color: #f8f8f8;
|
||||
border-radius: 4px;
|
||||
}
|
||||
@@ -11,6 +11,8 @@ import { useQuasar } from 'quasar'
|
||||
import { costanti } from '@costanti'
|
||||
import { useRouter } from 'vue-router'
|
||||
|
||||
import { serv_constants } from '@store/Modules/serv_constants'
|
||||
|
||||
export default defineComponent({
|
||||
name: 'CAITools',
|
||||
props: {
|
||||
@@ -26,14 +28,144 @@ export default defineComponent({
|
||||
|
||||
const $router = useRouter()
|
||||
|
||||
const options = ref(<any>{})
|
||||
|
||||
const querySel = ref('')
|
||||
|
||||
const contestSysteList = [
|
||||
{ label: 'Standard', value: '' },
|
||||
{ label: 'Matematica', value: 'Sei un esperto in Matematica' },
|
||||
{ label: 'Editoriale', value: 'Sei un esperto in Editoria e scrittura di articoli e blog' },
|
||||
{ label: 'Programmazione', value: 'Sei un esperto in programmazione' },
|
||||
]
|
||||
const modelList = [
|
||||
{ label: 'DeepSeek', value: 'deepseek-chat' },
|
||||
]
|
||||
|
||||
const outputTypeList = [
|
||||
{ label: 'Formato Testo', value: 'Ritornami l\'output in formato testo' },
|
||||
{ label: 'Per Telegram', value: 'Ritornami l\'output formattato per incollarlo sulla chat Telegram, usando delle emoticons in punti chiave e il grassetto (**) nelle parole chiave.' },
|
||||
{ label: 'Formato JSON', value: 'Ritornami l\'output in formato JSON' },
|
||||
{ label: 'Formato CSV (campi separati da \'|\')', value: 'Ritornami l\'output in formato CSV, con i campi separati da \'|\'' },
|
||||
]
|
||||
|
||||
const tempList = [{ label: 'Temperatura a 0.3', value: 0.3 },
|
||||
{ label: 'Temperatura a 0.5', value: 0.5 },
|
||||
{ label: 'Temperatura a 1', value: 1 },
|
||||
{ label: 'Temperatura a 1.2', value: 1.2 },
|
||||
{ label: 'Temperatura a 1.5', value: 1.5 },
|
||||
]
|
||||
|
||||
const tokenList = [
|
||||
{ label: '50 Token', value: 50 },
|
||||
{ label: '100 Token', value: 100 },
|
||||
{ label: '200 Token', value: 200 },
|
||||
{ label: '500 Token', value: 500 },
|
||||
{ label: '1000 Token', value: 1000 },
|
||||
{ label: '2500 Token', value: 2500 },
|
||||
{ label: '4000 Token', value: 4000 },
|
||||
{ label: '5000 Token', value: 5000 },
|
||||
{ label: '10000 Token', value: 10000 },
|
||||
]
|
||||
|
||||
const model = ref('deepseek-chat')
|
||||
const max_tokens = ref(100)
|
||||
const outputType = ref('')
|
||||
const temp = ref(0.3)
|
||||
const stream = ref(false)
|
||||
const contestsystem = ref('')
|
||||
|
||||
const inputPrompt = ref('');
|
||||
const result = ref('');
|
||||
const isLoading = ref(false);
|
||||
const errorMessage = ref('');
|
||||
const finish_reason = ref('');
|
||||
const withexplain = ref(false);
|
||||
|
||||
const querylist = ref(<any[]>[])
|
||||
|
||||
|
||||
const modelLabel = computed(() => {
|
||||
const foundModel = modelList.find((item: any) => item.value === model.value);
|
||||
return foundModel ? foundModel.label : null;
|
||||
})
|
||||
|
||||
function mount() {
|
||||
// Mount
|
||||
|
||||
querylist.value = globalStore.getQueryAI()
|
||||
|
||||
outputType.value = outputTypeList[0].value
|
||||
|
||||
}
|
||||
|
||||
async function handleSubmit() {
|
||||
isLoading.value = true;
|
||||
errorMessage.value = '';
|
||||
result.value = '';
|
||||
|
||||
options.value = {
|
||||
model: model.value,
|
||||
max_tokens: max_tokens.value,
|
||||
temp: temp.value,
|
||||
stream: stream.value,
|
||||
withexplain: withexplain.value,
|
||||
}
|
||||
|
||||
try {
|
||||
|
||||
const resdata = await globalStore.getQueryDS(inputPrompt.value, options.value)
|
||||
|
||||
if (resdata.code === serv_constants.RIS_CODE_OK) {
|
||||
if (resdata.choice) {
|
||||
finish_reason.value = resdata.choice.finish_reason || ''
|
||||
}
|
||||
if (resdata.choice.message) {
|
||||
result.value = resdata.choice.message.content || ''
|
||||
}
|
||||
} else if (resdata.code === serv_constants.RIS_CODE_ERR) {
|
||||
errorMessage.value = resdata.error.message || resdata.error;
|
||||
$q.notify({
|
||||
color: 'negative',
|
||||
icon: 'error',
|
||||
message: 'Errore durante la richiesta',
|
||||
caption: errorMessage.value
|
||||
});
|
||||
}
|
||||
|
||||
} catch (error: any) {
|
||||
errorMessage.value = error.response?.data?.error || error.message;
|
||||
$q.notify({
|
||||
color: 'negative',
|
||||
icon: 'error',
|
||||
message: 'Errore durante la richiesta',
|
||||
caption: errorMessage.value
|
||||
});
|
||||
}
|
||||
|
||||
isLoading.value = false;
|
||||
|
||||
}
|
||||
|
||||
const copyToClipboard = () => {
|
||||
if (!result.value) return;
|
||||
|
||||
navigator.clipboard.writeText(result.value).then(() => {
|
||||
$q.notify({
|
||||
message: 'Copiato negli appunti!',
|
||||
color: 'positive',
|
||||
icon: 'check',
|
||||
});
|
||||
}).catch(err => {
|
||||
console.error('Errore nella copia:', err);
|
||||
$q.notify({
|
||||
message: 'Errore nella copia!',
|
||||
color: 'negative',
|
||||
icon: 'error',
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
onMounted(mount)
|
||||
|
||||
return {
|
||||
@@ -41,6 +173,26 @@ export default defineComponent({
|
||||
querySel,
|
||||
$q,
|
||||
globalStore,
|
||||
inputPrompt,
|
||||
result,
|
||||
isLoading,
|
||||
errorMessage,
|
||||
handleSubmit,
|
||||
querylist,
|
||||
copyToClipboard,
|
||||
max_tokens,
|
||||
tokenList,
|
||||
modelList,
|
||||
tempList,
|
||||
stream,
|
||||
model,
|
||||
contestSysteList,
|
||||
contestsystem,
|
||||
finish_reason,
|
||||
modelLabel,
|
||||
withexplain,
|
||||
outputType,
|
||||
outputTypeList,
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
@@ -1,15 +1,173 @@
|
||||
<template>
|
||||
<div>
|
||||
<q-select
|
||||
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||
outlined
|
||||
v-model="querySel"
|
||||
:options="globalStore.getQueryAI()"
|
||||
:label="t('ai.selectquery') + `:`"
|
||||
emit-value
|
||||
map-options
|
||||
>
|
||||
</q-select>
|
||||
<q-page class="q-pa-md">
|
||||
<div class="column text-center">
|
||||
<div class="row justify-center">
|
||||
<q-select
|
||||
v-if="queryList"
|
||||
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||
outlined
|
||||
v-model="querySel"
|
||||
:options="queryList"
|
||||
:label="t('queryai.selectquery') + `:`"
|
||||
emit-value
|
||||
style="min-width: 200px"
|
||||
map-options
|
||||
option-value="_id"
|
||||
option-label="descr"
|
||||
>
|
||||
</q-select>
|
||||
|
||||
<q-select
|
||||
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||
outlined
|
||||
v-model="model"
|
||||
:options="modelList"
|
||||
style="min-width: 200px"
|
||||
:label="t('queryai.model') + `:`"
|
||||
emit-value
|
||||
map-options
|
||||
option-value="value"
|
||||
option-label="label"
|
||||
>
|
||||
</q-select>
|
||||
<q-select
|
||||
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||
outlined
|
||||
v-model="contestsystem"
|
||||
:options="contestSysteList"
|
||||
style="min-width: 200px"
|
||||
:label="t('queryai.contestsystem') + `:`"
|
||||
emit-value
|
||||
map-options
|
||||
option-value="value"
|
||||
option-label="label"
|
||||
>
|
||||
</q-select>
|
||||
<q-select
|
||||
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||
outlined
|
||||
v-model="max_tokens"
|
||||
style="min-width: 200px"
|
||||
:options="tokenList"
|
||||
:label="t('queryai.numtoken') + `:`"
|
||||
emit-value
|
||||
map-options
|
||||
option-value="value"
|
||||
option-label="label"
|
||||
>
|
||||
</q-select>
|
||||
<q-select
|
||||
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||
outlined
|
||||
v-model="temp"
|
||||
style="min-width: 200px"
|
||||
:options="tempList"
|
||||
:label="t('queryai.temp') + `:`"
|
||||
emit-value
|
||||
map-options
|
||||
option-value="value"
|
||||
option-label="label"
|
||||
>
|
||||
</q-select>
|
||||
<q-select
|
||||
:behavior="$q.platform.is.ios === true ? 'dialog' : 'menu'"
|
||||
outlined
|
||||
v-model="outputType"
|
||||
style="min-width: 200px"
|
||||
:options="outputTypeList"
|
||||
:label="t('queryai.numtoken') + `:`"
|
||||
emit-value
|
||||
map-options
|
||||
option-value="value"
|
||||
option-label="label"
|
||||
>
|
||||
</q-select>
|
||||
</div>
|
||||
<div class="row justify-center">
|
||||
<q-toggle
|
||||
label="Stream"
|
||||
v-model="stream"
|
||||
color="green"
|
||||
icon="fas fa-stream"
|
||||
keep-color
|
||||
>
|
||||
</q-toggle>
|
||||
<q-toggle
|
||||
:label="t('queryai.withexplain')"
|
||||
v-model="withexplain"
|
||||
color="green"
|
||||
icon="fas fa-comment"
|
||||
keep-color
|
||||
>
|
||||
</q-toggle>
|
||||
</div>
|
||||
<q-separator></q-separator>
|
||||
</div>
|
||||
|
||||
<div class="q-mt-md q-gutter-y-md">
|
||||
<q-form @submit.prevent="handleSubmit">
|
||||
<q-input
|
||||
v-model="inputPrompt"
|
||||
filled
|
||||
autogrow
|
||||
type="textarea"
|
||||
label="Inserisci la tua richiesta"
|
||||
hint="Scrivi qui il tuo prompt"
|
||||
class="q-mb-md"
|
||||
autofocus
|
||||
/>
|
||||
|
||||
<div class="text-center">
|
||||
<q-btn
|
||||
:label="`Invia a ` + modelLabel"
|
||||
type="submit"
|
||||
color="primary"
|
||||
:loading="isLoading"
|
||||
icon="send"
|
||||
/>
|
||||
</div>
|
||||
</q-form>
|
||||
|
||||
MARKDOWN:
|
||||
<q-markdown :content="`L'altezza \( h \) di un triangolo isoscele con base 10 è \( h = \sqrt{l^2 - 25} \), dove \( l \) è la lunghezza dei lati congruenti.`" />
|
||||
|
||||
<q-card v-if="result" class="q-mt-md">
|
||||
<q-card-section>
|
||||
<div class="text-h6 row items-center justify-between">
|
||||
<span>Risposta</span>
|
||||
<q-btn
|
||||
flat
|
||||
round
|
||||
dense
|
||||
icon="content_copy"
|
||||
@click="copyToClipboard"
|
||||
v-tooltip="'Copia negli appunti'"
|
||||
/>
|
||||
</div>
|
||||
|
||||
<q-markdown :content="result" />
|
||||
<q-scroll-area style="height: 300px">
|
||||
<pre class="response-content">{{ result }}</pre>
|
||||
</q-scroll-area>
|
||||
<pre class="response-reason">Esito: {{ finish_reason }}</pre>
|
||||
</q-card-section>
|
||||
</q-card>
|
||||
|
||||
<q-banner
|
||||
v-if="errorMessage"
|
||||
class="q-mt-md bg-negative text-white"
|
||||
rounded
|
||||
>
|
||||
{{ errorMessage }}
|
||||
</q-banner>
|
||||
|
||||
<q-inner-loading :showing="isLoading">
|
||||
<q-spinner-gears size="50px" color="primary" />
|
||||
<div class="q-mt-sm">Elaborazione richiesta...</div>
|
||||
</q-inner-loading>
|
||||
</div>
|
||||
</q-page>
|
||||
</div>
|
||||
</template>
|
||||
<script lang="ts" src="./CAITools.ts">
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
const msg_website_it = {
|
||||
ws: {
|
||||
sitename: 'Riso',
|
||||
siteshortname: 'RISO',
|
||||
description: 'Siamo la Rete Italiana di Scambio Orizzontale, abbiamo creato questa piattaforma per metterla al servizio di chi vuole riscoprire il valore della condivisione e della cooperazione. Valori semplici e profondi che ci aiutano a ritrovare il Senso della Vita, perduto in questa società consumista, e riporti quei Sani Pricìpi Naturali ed Umani di Fratellanza che intere popolazioni antiche conoscevano bene.',
|
||||
keywords: 'riso, piattaforma di scambio, rete italiana scambio orizzontale, riso app, riso piattaforma, scambio e baratto, momenta RIS',
|
||||
sitename: 'Gruppo Macro',
|
||||
siteshortname: 'Gruppo Macro',
|
||||
description: '',
|
||||
keywords: '',
|
||||
},
|
||||
hours: {
|
||||
descr: 'Descrizione',
|
||||
@@ -16,29 +16,20 @@ const msg_website_it = {
|
||||
pages: {
|
||||
home: 'Home',
|
||||
profile: 'Profilo',
|
||||
install_site: 'Installa Sito',
|
||||
profile2: 'ProfiloU',
|
||||
mypage2: 'mypage2',
|
||||
myservice2: 'myservice2',
|
||||
myhosps2: 'myhosps2',
|
||||
mygood2: 'mygood2',
|
||||
catalogo: 'Catalogo',
|
||||
fundraising: 'Sostieni il Progetto',
|
||||
notifs: 'Configura le Notifiche',
|
||||
unsubscribe: 'Disiscriviti',
|
||||
unsubscribe_user: 'Disiscriviti User',
|
||||
test: 'Test',
|
||||
projects: 'Progetti',
|
||||
report: 'Report Ore',
|
||||
producer: 'Produttore',
|
||||
orderinfo: 'Ordini Effettuati',
|
||||
products: 'Prodotti',
|
||||
productslist: 'Lista Prodotti',
|
||||
collabora: 'Collabora',
|
||||
storehouses: 'Magazzino',
|
||||
departments: 'Uffici',
|
||||
orders: 'Ordini Ricevuti',
|
||||
orders2: 'Ordini Ricevuti',
|
||||
sharewithus: 'Condividi con Noi',
|
||||
checkout: 'Carrello',
|
||||
payment: 'Pagamenti',
|
||||
regok: 'Registrazione Confermata',
|
||||
presentazione: 'Presentazione',
|
||||
presentazione2: 'Presentazione',
|
||||
@@ -89,9 +80,6 @@ const msg_website_it = {
|
||||
projectsShared: 'Condivisi da me',
|
||||
myprojects: 'Privati',
|
||||
favproj: 'Favoriti',
|
||||
admin_ecommerce: 'ECommerce',
|
||||
ecommerce: 'Prodotti',
|
||||
ecommerce_menu: 'ECommerce1',
|
||||
hours: 'Ore',
|
||||
department: 'Uffici',
|
||||
title: 'Titolo',
|
||||
@@ -121,15 +109,9 @@ const msg_website_it = {
|
||||
only_residenti: 'Solo Residenti',
|
||||
only_consiglio: 'Solo Consiglieri',
|
||||
color: 'Colore',
|
||||
mainMenu: 'Menu Principale',
|
||||
subtitle: 'Sottotitolo',
|
||||
lang: 'Lingua',
|
||||
keywords: 'Parole Chiave',
|
||||
desctiption: 'Descrizione',
|
||||
heightimg: 'Altezza Immagine',
|
||||
},
|
||||
msg: {
|
||||
myAppName: 'Riso',
|
||||
myAppName: 'Più che Buono',
|
||||
myAppDescription: 'Il primo Vero Social Libero, Equo e Solidale, dove Vive Consapevolezza e Aiuto Comunitario. Gratuito',
|
||||
underconstruction: 'App in costruzione...',
|
||||
myDescriz: '',
|
||||
|
||||
@@ -67,39 +67,6 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 12,
|
||||
path: '/goods',
|
||||
materialIcon: 'fas fa-tshirt',
|
||||
name: 'mypages.goods',
|
||||
component: () => import('@/root/goods/goods.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 15,
|
||||
path: '/services',
|
||||
materialIcon: 'fas fa-house-user',
|
||||
name: 'mypages.services',
|
||||
component: () => import('@/root/services/services.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 15,
|
||||
path: '/activities',
|
||||
materialIcon: 'fas fa-house-user',
|
||||
name: 'mypages.activities',
|
||||
component: () => import('@/root/activities/activities.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 15,
|
||||
@@ -111,17 +78,6 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 15,
|
||||
path: '/hosps',
|
||||
materialIcon: 'fas fa-bed',
|
||||
name: 'mypages.hosp',
|
||||
component: () => import('@/root/hosp/hosp.vue'),
|
||||
meta: { requiresAuth: true },
|
||||
inmenu: true,
|
||||
infooter: true,
|
||||
},
|
||||
{
|
||||
active: site.confpages && site.confpages.enableCircuits,
|
||||
order: 16,
|
||||
@@ -134,7 +90,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
infooter: true,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
active: site.confpages && site.confpages.enableEvents,
|
||||
order: 20,
|
||||
path: '/events',
|
||||
materialIcon: 'fas fa-bullhorn',
|
||||
@@ -156,7 +112,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
active: site.confpages && site.confpages.showProfile,
|
||||
order: 120,
|
||||
path: '/myprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
@@ -167,7 +123,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
infooter: true,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
active: site.confpages && site.confpages.showProfile,
|
||||
order: 120,
|
||||
path: '/editprofile',
|
||||
materialIcon: 'fas fa-user',
|
||||
@@ -178,7 +134,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
active: site.confpages && site.confpages.showiscrittiMenu,
|
||||
order: 130,
|
||||
path: '/friends',
|
||||
materialIcon: 'fas fa-user-friends',
|
||||
@@ -209,7 +165,7 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
meta: { requiresAuth: true, newpage: true },
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 137,
|
||||
@@ -273,16 +229,6 @@ function getDynamicPages(site: ISites): IListRoutes[] {
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 150,
|
||||
path: '/sostieniilprogetto',
|
||||
materialIcon: 'fas fa-hand-holding-heart',
|
||||
name: 'pages.fundraising',
|
||||
component: () => import('@src/root/fundraising/fundraising.vue'),
|
||||
inmenu: false,
|
||||
infooter: false,
|
||||
},
|
||||
{
|
||||
active: true,
|
||||
order: 80,
|
||||
|
||||
@@ -6,7 +6,7 @@ import { CMyPage } from '@/components/CMyPage'
|
||||
import { CTitleBanner } from '@/components/CTitleBanner'
|
||||
import { CGridTableRec } from '@/components/CGridTableRec'
|
||||
|
||||
import { colTableCatAI } from '@src/store/Modules/fieldsTable'
|
||||
import { colTableQueryAI } from '@src/store/Modules/fieldsTable'
|
||||
import MixinMetaTags from '@/mixins/mixin-metatags'
|
||||
|
||||
export default defineComponent({
|
||||
@@ -17,7 +17,7 @@ export default defineComponent({
|
||||
const { setmeta } = MixinMetaTags()
|
||||
|
||||
return {
|
||||
colTableCatAI,
|
||||
colTableQueryAI,
|
||||
setmeta,
|
||||
}
|
||||
}
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
<CGridTableRec
|
||||
prop_mytable="queryais"
|
||||
prop_mytitle="Query AI"
|
||||
:prop_mycolumns="colTableCatAI"
|
||||
:prop_mycolumns="colTableQueryAI"
|
||||
prop_colkey="name"
|
||||
nodataLabel="Nessuna Query AI"
|
||||
noresultLabel="Il filtro selezionato non ha trovato nessun risultato">
|
||||
|
||||
@@ -8,7 +8,7 @@ function getRoutesAI(site: ISites) {
|
||||
order: 30,
|
||||
path: '/ai',
|
||||
materialIcon: 'fas fa-book',
|
||||
name: 'pages.aitools',
|
||||
name: 'mypages.aitools',
|
||||
component: () => import('@/views/toolsAI/main/main.vue'),
|
||||
inmenu: true,
|
||||
submenu: true,
|
||||
@@ -23,7 +23,7 @@ function getRoutesAI(site: ISites) {
|
||||
order: 32,
|
||||
path: '/admin/ai/catAI',
|
||||
materialIcon: 'fas fa-file-alt',
|
||||
name: 'pages.catAI',
|
||||
name: 'mypages.catAI',
|
||||
component: () => import('@/rootgen/admin/catAI/catAI.vue'),
|
||||
inmenu: true,
|
||||
submenu: true,
|
||||
@@ -37,7 +37,7 @@ function getRoutesAI(site: ISites) {
|
||||
order: 32,
|
||||
path: '/admin/ai/queryAI',
|
||||
materialIcon: 'fas fa-file-alt',
|
||||
name: 'pages.queryAI',
|
||||
name: 'mypages.queryAI',
|
||||
component: () => import('@/rootgen/admin/queryAI/queryAI.vue'),
|
||||
inmenu: true,
|
||||
submenu: true,
|
||||
@@ -56,7 +56,7 @@ function getRoutesAI(site: ISites) {
|
||||
order: 1402,
|
||||
faIcon: 'fas fa-lemon',
|
||||
materialIcon: 'fas fa-lemon',
|
||||
name: 'pages.toolsAI',
|
||||
name: 'mypages.toolsAI',
|
||||
routes2: routes_ai,
|
||||
inmenu: true,
|
||||
onlyif_logged: true,
|
||||
@@ -70,7 +70,7 @@ function getRoutesAI(site: ISites) {
|
||||
path: '/admin/ai',
|
||||
order: 1420,
|
||||
materialIcon: 'next_week',
|
||||
name: 'pages.admin_ai',
|
||||
name: 'mypages.admin_ai',
|
||||
routes2: routes_admin_ai,
|
||||
inmenu: true,
|
||||
solotitle: true,
|
||||
|
||||
@@ -1241,6 +1241,11 @@ const msg_it = {
|
||||
date_updated: 'Ult. Aggiornamento',
|
||||
},
|
||||
mypages: {
|
||||
catAI: 'Categorie AI',
|
||||
toolsAI: 'Strumenti AI',
|
||||
aitools: 'Ricerca',
|
||||
queryAI: 'Query AI',
|
||||
admin_ai: 'Gestione AI',
|
||||
admin_ecommerce: 'ECommerce',
|
||||
ecommerce: 'Prodotti',
|
||||
ecommerce_menu: 'ECommerce1',
|
||||
@@ -1949,9 +1954,6 @@ const msg_it = {
|
||||
confirmed: 'Confermato',
|
||||
causale: 'Causale',
|
||||
},
|
||||
ai: {
|
||||
selectquery: 'Scegli',
|
||||
},
|
||||
reaction: {
|
||||
mipiace: 'Mi piace',
|
||||
tipiace: 'Ti piace',
|
||||
@@ -2016,6 +2018,20 @@ const msg_it = {
|
||||
collane: 'Collane',
|
||||
idPageAssigned: 'Pagina Assegnata',
|
||||
descr_introduttiva: 'Descrizione Introduttiva',
|
||||
},
|
||||
|
||||
queryai: {
|
||||
descr: 'Descrizione',
|
||||
catAI: 'Categoria',
|
||||
query: 'Query',
|
||||
selectquery: 'Scegli la Query',
|
||||
queryai: 'Chiedi',
|
||||
output_type: 'Tipo di Output',
|
||||
numtoken: 'Numero di Token max',
|
||||
model: 'Modello',
|
||||
contestsystem: 'Contesto',
|
||||
withexplain: 'Con Spiegazione',
|
||||
temperatura: 'Temperatura',
|
||||
}
|
||||
|
||||
},
|
||||
|
||||
@@ -589,16 +589,16 @@ export const colTableCatAI = [
|
||||
]
|
||||
|
||||
export const colTableQueryAI = [
|
||||
AddCol({ name: 'descr', label_trans: 'categories.name' }),
|
||||
AddCol({ name: 'descr', label_trans: 'queryai.descr' }),
|
||||
AddCol({
|
||||
name: 'catAI',
|
||||
label_trans: 'products.category',
|
||||
label_trans: 'queryai.catAI',
|
||||
fieldtype: costanti.FieldType.select,
|
||||
jointable: 'catais',
|
||||
}),
|
||||
AddCol({ name: 'query', label_trans: 'ai.query' }),
|
||||
AddCol({ name: 'ask', label_trans: 'ai.ask' }),
|
||||
AddCol({ name: 'output_type', label_trans: 'ai.output_type' }),
|
||||
AddCol({ name: 'query', label_trans: 'queryai.query' }),
|
||||
AddCol({ name: 'ask', label_trans: 'queryai.ask' }),
|
||||
AddCol({ name: 'output_type', label_trans: 'queryai.output_type' }),
|
||||
AddCol(DeleteRec),
|
||||
AddCol(DuplicateRec),
|
||||
]
|
||||
@@ -1236,6 +1236,17 @@ export const colmyGoods = [
|
||||
inline: true,
|
||||
typeobj: 'radio',
|
||||
}),
|
||||
AddCol({
|
||||
name: 'descr',
|
||||
label_trans: 'proj.shortdescr',
|
||||
fieldtype: costanti.FieldType.string,
|
||||
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
|
||||
noshowlabel: true,
|
||||
maxlength: 120,
|
||||
required: true,
|
||||
sortable: false,
|
||||
numpag_carousel: 3,
|
||||
}),
|
||||
AddCol({
|
||||
name: 'photos',
|
||||
label_trans: 'skill.photos',
|
||||
@@ -1776,14 +1787,6 @@ export const colmyHosp = [
|
||||
sortable: false,
|
||||
}),
|
||||
|
||||
AddCol({
|
||||
name: 'pub_to_share',
|
||||
label_trans: 'skill.pub_to_share',
|
||||
fieldtype: costanti.FieldType.select,
|
||||
jointable: 'pub_to_share',
|
||||
icon: 'fas fa-users',
|
||||
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
|
||||
}),
|
||||
AddCol({
|
||||
name: 'groupname',
|
||||
label_trans: 'proj.gruppo',
|
||||
@@ -1793,17 +1796,6 @@ export const colmyHosp = [
|
||||
link: '/mygrp/groupname',
|
||||
noshowlabel: true,
|
||||
}),
|
||||
AddCol({
|
||||
name: 'idContribType',
|
||||
label_trans: 'contribtype.name',
|
||||
fieldtype: costanti.FieldType.multiselect,
|
||||
jointable: 'contribtypes',
|
||||
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
|
||||
noshowlabel: true,
|
||||
icon: 'fas fa-hand-holding',
|
||||
// icon: 'fas fa-hands-helping',
|
||||
sortable: false,
|
||||
}),
|
||||
AddCol({
|
||||
name: 'descr',
|
||||
label_trans: 'proj.shortdescr',
|
||||
@@ -1821,6 +1813,17 @@ export const colmyHosp = [
|
||||
required: false,
|
||||
sortable: false,
|
||||
}),
|
||||
AddCol({
|
||||
name: 'idContribType',
|
||||
label_trans: 'contribtype.name',
|
||||
fieldtype: costanti.FieldType.multiselect,
|
||||
jointable: 'contribtypes',
|
||||
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
|
||||
noshowlabel: true,
|
||||
icon: 'fas fa-hand-holding',
|
||||
// icon: 'fas fa-hands-helping',
|
||||
sortable: false,
|
||||
}),
|
||||
AddCol({
|
||||
name: 'photos',
|
||||
label_trans: 'skill.photos',
|
||||
@@ -1844,6 +1847,15 @@ export const colmyHosp = [
|
||||
sortable: false,
|
||||
isadvanced_field: true,
|
||||
}),
|
||||
AddCol({
|
||||
name: 'pub_to_share',
|
||||
label_trans: 'skill.pub_to_share',
|
||||
fieldtype: costanti.FieldType.select,
|
||||
jointable: 'pub_to_share',
|
||||
icon: 'fas fa-users',
|
||||
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InPage + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
|
||||
isadvanced_field: true,
|
||||
}),
|
||||
AddCol({
|
||||
name: 'website', label_trans: 'reg.website', fieldtype: costanti.FieldType.link,
|
||||
showWhen: costanti.showWhen.NewRec + costanti.showWhen.InEdit + costanti.showWhen.InView_OnlyifExist,
|
||||
|
||||
@@ -2021,6 +2021,26 @@ export const useGlobalStore = defineStore('GlobalStore', {
|
||||
|
||||
},
|
||||
|
||||
async getQueryDS(prompt: string, options: any) {
|
||||
|
||||
const userStore = useUserStore()
|
||||
|
||||
const paramquery = {
|
||||
locale: tools.getLocale(),
|
||||
username: userStore.my.username,
|
||||
prompt,
|
||||
options,
|
||||
}
|
||||
|
||||
return Api.SendReq('/aitools/ds', 'POST', paramquery)
|
||||
.then((res) => {
|
||||
return res.data
|
||||
}).catch((error) => {
|
||||
return {}
|
||||
})
|
||||
|
||||
},
|
||||
|
||||
getItemDate(num: number, day: number, numdays: number, mystr: string) {
|
||||
let mydate = tools.addDays(tools.getDateNow(), day)
|
||||
let mydateend = tools.addDays(mydate, numdays)
|
||||
|
||||
Reference in New Issue
Block a user