feat(ai): implement AI models management and configuration in admin panel
This commit is contained in:
@@ -0,0 +1,69 @@
|
||||
import { Controller, Get } from '@nestjs/common';
|
||||
import { Public } from '../auth/decorators/public.decorator';
|
||||
import { AI_CATEGORIZATION_MODEL } from './ai.service';
|
||||
import { RECEIPT_IMPORT_MODEL } from '../receipt-import/receipt-import.service';
|
||||
|
||||
export interface AiModelInfo {
|
||||
id: string;
|
||||
name: string;
|
||||
description: string;
|
||||
model: string;
|
||||
path: string;
|
||||
trigger: string;
|
||||
access: string;
|
||||
}
|
||||
|
||||
@Controller('ai')
|
||||
export class AiController {
|
||||
@Get('models')
|
||||
@Public()
|
||||
getModels(): AiModelInfo[] {
|
||||
return [
|
||||
{
|
||||
id: 'receipt-pdf',
|
||||
name: 'Kvittoimport — PDF-tolkning',
|
||||
description: 'Extraherar varunamn, mängd och pris ur PDF-kvitton via textanalys.',
|
||||
model: RECEIPT_IMPORT_MODEL,
|
||||
path: '/import',
|
||||
trigger: 'Vid uppladdning av PDF-kvitto',
|
||||
access: 'Alla inloggade',
|
||||
},
|
||||
{
|
||||
id: 'receipt-image',
|
||||
name: 'Kvittoimport — Bildtolkning',
|
||||
description: 'Extraherar varunamn, mängd och pris ur kvittofoton via bildanalys.',
|
||||
model: RECEIPT_IMPORT_MODEL,
|
||||
path: '/import',
|
||||
trigger: 'Vid uppladdning av kvittobild (JPEG, PNG, WebP, HEIC)',
|
||||
access: 'Alla inloggade',
|
||||
},
|
||||
{
|
||||
id: 'receipt-category',
|
||||
name: 'Kvittoimport — Kategorisuggestion',
|
||||
description: 'För varor som inte matchas mot befintliga produkter visas ett AI-förslag på kategori som ledtråd.',
|
||||
model: AI_CATEGORIZATION_MODEL,
|
||||
path: '/import',
|
||||
trigger: 'Automatiskt efter kvittotolkning (om inga träffar hittas)',
|
||||
access: 'Premium-användare + Admin',
|
||||
},
|
||||
{
|
||||
id: 'product-suggest',
|
||||
name: 'AI-kategorisering per produkt',
|
||||
description: 'Ger ett AI-förslag på kategori för en enskild produkt med säkerhetsindikation (hög/medel/låg).',
|
||||
model: AI_CATEGORIZATION_MODEL,
|
||||
path: '/admin/products',
|
||||
trigger: 'Manuell — klick på "✨ Fråga AI" i produktlistan',
|
||||
access: 'Admin',
|
||||
},
|
||||
{
|
||||
id: 'product-bulk',
|
||||
name: 'AI-bulk-kategorisering',
|
||||
description: 'Analyserar alla okategoriserade produkter och presenterar förslag i ett bekräftelsemodal.',
|
||||
model: AI_CATEGORIZATION_MODEL,
|
||||
path: '/admin/products',
|
||||
trigger: 'Manuell — knappen "✨ AI-kategorisera okategoriserade"',
|
||||
access: 'Admin',
|
||||
},
|
||||
];
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user