jpbernardo commited on
Commit
8fdf050
·
verified ·
1 Parent(s): f401b6a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +30 -30
app.py CHANGED
@@ -75,8 +75,8 @@ class Retriever:
75
 
76
  # -------------- carregar modelo leve de geração --------------
77
  def carregar_generator():
78
- model_name = "google/flan-t5-small"
79
- # model_name = "tgsc/ult5-pt-small"
80
  device = 0 if torch.cuda.is_available() else -1
81
 
82
  tok = AutoTokenizer.from_pretrained(model_name)
@@ -106,44 +106,44 @@ except Exception as e:
106
 
107
  # -------------- prompt/template --------------
108
 
109
- def montar_prompt(pergunta: str, fontes: List[dict]) -> str:
110
- conteudos = []
111
- for f in fontes:
112
- texto = f["text"][:400]
113
- conteudos.append(f"(p.{f['page']}) {texto}")
114
-
115
- base = "\n\n".join(conteudos)
116
-
117
- # 🔧 ALTERAÇÃO — Prompt sem terminar com "Resposta:"
118
- prompt = (
119
- f"Responda claramente à pergunta usando APENAS o contexto abaixo.\n\n"
120
- f"Contexto:\n{base}\n\n"
121
- f"Pergunta: {pergunta}\n\n"
122
- f"Resposta detalhada:"
123
- )
124
- return prompt
125
-
126
-
127
  # def montar_prompt(pergunta: str, fontes: List[dict]) -> str:
128
  # conteudos = []
129
  # for f in fontes:
130
- # texto = f["text"][:400] # limite
131
  # conteudos.append(f"(p.{f['page']}) {texto}")
132
 
133
  # base = "\n\n".join(conteudos)
134
 
135
- # # 🔧 PROMPT OTIMIZADO PARA ULT5
136
  # prompt = (
137
- # "Você é um assistente que responde perguntas usando APENAS os trechos abaixo.\n"
138
- # "Resuma seu raciocínio e responda de forma objetiva. Não repita trechos do contexto.\n"
139
- # "Quando terminar a resposta, escreva o marcador <FIM>.\n\n"
140
- # f"CONTEXT0:\n{base}\n\n"
141
- # f"PERGUNTA:\n{pergunta}\n\n"
142
- # "RESPOSTA (não copie o contexto; responda de forma curta):"
143
  # )
144
  # return prompt
145
 
146
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
147
 
148
  # PROMPT_PREFIX = (
149
  # "Primeiramente, inicie a resposta sempre com 'Oi, querido!'.\n\n"
@@ -210,8 +210,8 @@ def rag_chat(user_msg, history):
210
  saida = generator(prompt)[0]["generated_text"].strip()
211
 
212
  # # 🔧 cortar no marcador de parada
213
- # if "<FIM>" in saida:
214
- # saida = saida.split("<FIM>")[0].strip()
215
 
216
  # 🔧 ALTERAÇÃO 6 — adicionar "Oi, querido!" apenas na saída (não no prompt)
217
  if not saida.lower().startswith("oi, querido"):
 
75
 
76
  # -------------- carregar modelo leve de geração --------------
77
  def carregar_generator():
78
+ # model_name = "google/flan-t5-small"
79
+ model_name = "tgsc/ult5-pt-small"
80
  device = 0 if torch.cuda.is_available() else -1
81
 
82
  tok = AutoTokenizer.from_pretrained(model_name)
 
106
 
107
  # -------------- prompt/template --------------
108
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
109
  # def montar_prompt(pergunta: str, fontes: List[dict]) -> str:
110
  # conteudos = []
111
  # for f in fontes:
112
+ # texto = f["text"][:400]
113
  # conteudos.append(f"(p.{f['page']}) {texto}")
114
 
115
  # base = "\n\n".join(conteudos)
116
 
117
+ # # 🔧 ALTERAÇÃO Prompt sem terminar com "Resposta:"
118
  # prompt = (
119
+ # f"Responda claramente à pergunta usando APENAS o contexto abaixo.\n\n"
120
+ # f"Contexto:\n{base}\n\n"
121
+ # f"Pergunta: {pergunta}\n\n"
122
+ # f"Resposta detalhada:"
 
 
123
  # )
124
  # return prompt
125
 
126
 
127
+ def montar_prompt(pergunta: str, fontes: List[dict]) -> str:
128
+ conteudos = []
129
+ for f in fontes:
130
+ texto = f["text"][:400] # limite
131
+ conteudos.append(f"(p.{f['page']}) {texto}")
132
+
133
+ base = "\n\n".join(conteudos)
134
+
135
+ # 🔧 PROMPT OTIMIZADO PARA ULT5
136
+ prompt = (
137
+ "Você é um assistente que responde perguntas usando APENAS os trechos abaixo.\n"
138
+ "Resuma seu raciocínio e responda de forma objetiva. Não repita trechos do contexto.\n"
139
+ "Quando terminar a resposta, escreva o marcador <FIM>.\n\n"
140
+ f"CONTEXT0:\n{base}\n\n"
141
+ f"PERGUNTA:\n{pergunta}\n\n"
142
+ "RESPOSTA (não copie o contexto; responda de forma curta):"
143
+ )
144
+ return prompt
145
+
146
+
147
 
148
  # PROMPT_PREFIX = (
149
  # "Primeiramente, inicie a resposta sempre com 'Oi, querido!'.\n\n"
 
210
  saida = generator(prompt)[0]["generated_text"].strip()
211
 
212
  # # 🔧 cortar no marcador de parada
213
+ if "<FIM>" in saida:
214
+ saida = saida.split("<FIM>")[0].strip()
215
 
216
  # 🔧 ALTERAÇÃO 6 — adicionar "Oi, querido!" apenas na saída (não no prompt)
217
  if not saida.lower().startswith("oi, querido"):