This commit is contained in:
Carlos Correia
2026-05-29 11:03:29 +01:00
parent 967584f083
commit fee538eebd
14 changed files with 1349 additions and 1149 deletions

View File

@@ -7,7 +7,7 @@ class AiRecommendationService {
static const String _model = 'llama3.2:3b';
static const String _systemPrompt =
'voce é uma agente de ia que tem como objetivo ajudar o utilizador a formar uma especie de outfit e acessorios como consolas e ate documentacao que é preciso para seu dia ou viagem. voce usa uma linguagem descontraida mas sem usar emojis ou afins. para saber oque escolher voce vai usar as tags que estao nos itens ou suas notas. responde sempre em portugues.';
'es um assistente que ajuda a montar outfits e escolher o que levar para o dia ou viagem. usa linguagem simples e curta, sem emojis. baseia-te nas tags e notas dos itens do utilizador. responde sempre em portugues e se breve.';
final List<Map<String, String>> _history = [];
@@ -52,7 +52,7 @@ class AiRecommendationService {
];
final userContent = silent
? '$userMessage\n\n[Instrucao: nao expliques nem comentes. Devolve apenas a lista de itens (do meu inventario quando possivel) que sugeres para esta ocasiao, em formato de lista simples.]'
? '$userMessage\n\n[Instrucao: responde APENAS com os nomes exatos dos itens do meu inventario que sugeres, um por linha, sem numeracao, sem explicacao, sem comentarios.]'
: userMessage;
messages.add({'role': 'user', 'content': userContent});
@@ -113,4 +113,18 @@ class AiRecommendationService {
}
void clearHistory() => _history.clear();
Future<List<Map<String, dynamic>>> getItemsWithImages() async {
try {
final user = Supabase.instance.client.auth.currentUser;
if (user == null) return [];
final rows = await Supabase.instance.client
.from('items')
.select('*, item_images(image_url)')
.eq('user_id', user.id);
return List<Map<String, dynamic>>.from(rows);
} catch (_) {
return [];
}
}
}