Ana2012 commited on
Commit
0b7ca99
·
verified ·
1 Parent(s): 66201b1

Update app/agent.py

Browse files
Files changed (1) hide show
  1. app/agent.py +49 -46
app/agent.py CHANGED
@@ -1,6 +1,8 @@
1
- from .search import SearchEngine
2
-
3
-
 
 
4
  class ShoppingAgent:
5
  def __init__(self):
6
  self.search_engine = SearchEngine()
@@ -10,47 +12,48 @@ class ShoppingAgent:
10
  return self.search_engine.runtime_info()
11
 
12
  def montar_resposta(self, query, resultados):
13
- if not resultados:
14
- return f'Não encontrei produtos relevantes para "{query}".'
15
-
16
- nomes = [item["product_name"] for item in resultados[:3]]
17
-
18
- if len(nomes) == 1:
19
- return f'Encontrei um produto relevante para "{query}": {nomes[0]}.'
20
-
21
- if len(nomes) == 2:
22
- return f'Encontrei produtos relevantes para "{query}", com destaque para {nomes[0]} e {nomes[1]}.'
23
-
24
- return (
25
- f'Encontrei produtos relevantes para "{query}", com destaque para '
26
- f'{nomes[0]}, {nomes[1]} e {nomes[2]}.'
27
- )
28
-
29
- def verificar_resposta(self, resposta, resultados):
30
- if not resultados:
31
- return resposta
32
-
33
- nomes_resultados = [item["product_name"] for item in resultados]
34
- resposta_limpa = resposta.lower()
35
-
36
- mencoes_validas = any(nome.lower() in resposta_limpa for nome in nomes_resultados)
37
-
38
- if mencoes_validas:
39
- return resposta
40
-
41
- top1 = resultados[0]["product_name"]
42
- return f"{resposta} O item mais relevante encontrado foi {top1}."
43
-
44
- def responder(self, query, top_k=5):
45
- busca = self.search_engine.buscar(query, top_k=top_k)
46
- resultados = busca["resultados"]
47
-
48
- resposta_inicial = self.montar_resposta(query, resultados)
49
- resposta_final = self.verificar_resposta(resposta_inicial, resultados)
50
-
51
- return {
52
- "query": query,
53
- "categoria_inferida": busca["categoria_inferida"],
54
- "answer": resposta_final,
55
- "products": resultados,
 
56
  }
 
1
+ import uuid
2
+
3
+ from .search import SearchEngine
4
+
5
+
6
  class ShoppingAgent:
7
  def __init__(self):
8
  self.search_engine = SearchEngine()
 
12
  return self.search_engine.runtime_info()
13
 
14
  def montar_resposta(self, query, resultados):
15
+ if not resultados:
16
+ return f'Não encontrei produtos relevantes para "{query}".'
17
+
18
+ nomes = [item["product_name"] for item in resultados[:3]]
19
+
20
+ if len(nomes) == 1:
21
+ return f'Encontrei um produto relevante para "{query}": {nomes[0]}.'
22
+
23
+ if len(nomes) == 2:
24
+ return f'Encontrei produtos relevantes para "{query}", com destaque para {nomes[0]} e {nomes[1]}.'
25
+
26
+ return (
27
+ f'Encontrei produtos relevantes para "{query}", com destaque para '
28
+ f'{nomes[0]}, {nomes[1]} e {nomes[2]}.'
29
+ )
30
+
31
+ def verificar_resposta(self, resposta, resultados):
32
+ if not resultados:
33
+ return resposta
34
+
35
+ nomes_resultados = [item["product_name"] for item in resultados]
36
+ resposta_limpa = resposta.lower()
37
+
38
+ mencoes_validas = any(nome.lower() in resposta_limpa for nome in nomes_resultados)
39
+
40
+ if mencoes_validas:
41
+ return resposta
42
+
43
+ top1 = resultados[0]["product_name"]
44
+ return f"{resposta} O item mais relevante encontrado foi {top1}."
45
+
46
+ def responder(self, query, top_k=5):
47
+ busca = self.search_engine.buscar(query, top_k=top_k)
48
+ resultados = busca["resultados"]
49
+
50
+ resposta_inicial = self.montar_resposta(query, resultados)
51
+ resposta_final = self.verificar_resposta(resposta_inicial, resultados)
52
+
53
+ return {
54
+ "query": query,
55
+ "search_id": str(uuid.uuid4()),
56
+ "categoria_inferida": busca["categoria_inferida"],
57
+ "answer": resposta_final,
58
+ "products": resultados,
59
  }