SiteOn commited on
Commit
c02fa45
·
verified ·
1 Parent(s): 26bcd5a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +46 -35
app.py CHANGED
@@ -1,37 +1,53 @@
1
  import gradio as gr
2
  from huggingface_hub import InferenceClient
3
- import pandas as pd
4
 
5
- # Inicializa o cliente de inferência com o modelo Zephyr-7b-beta
6
  client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
7
 
8
- # Carrega o DataFrame para armazenar o feedback (cria um novo se não existir)
9
- try:
10
- feedback_df = pd.read_csv("feedback.csv")
11
- except FileNotFoundError:
12
- feedback_df = pd.DataFrame(columns=["prompt", "feedback"])
13
-
14
- # Função para gerar a resposta e coletar feedback
15
- def respond(message, history, system_message, max_tokens, temperature, top_p, feedback):
16
- # ... (código original para gerar a resposta)
17
-
18
- # Após a resposta, solicita feedback e armazena
19
- response += "\n Gostaria de fornecer algum feedback sobre a minha análise? Sua opinião é muito importante para melhorar meus resultados."
20
-
21
- if feedback:
22
- new_feedback = {'prompt': message, 'feedback': feedback}
23
- feedback_df = pd.concat([feedback_df, pd.DataFrame([new_feedback])], ignore_index=True)
24
- feedback_df.to_csv("feedback.csv", index=False)
25
-
26
- # Função para analisar o feedback (exemplo básico)
27
- def analyze_feedback():
28
- # Calcula métricas básicas de feedback
29
- word_counts = feedback_df['feedback'].str.split(expand=True).stack().value_counts()
30
- print("Palavras mais frequentes no feedback:", word_counts.head())
31
-
32
- # ... (análises mais complexas podem ser adicionadas aqui, como análise de sentimentos)
33
-
34
- # Configura a interface do Gradio
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
35
  demo = gr.ChatInterface(
36
  respond,
37
  additional_inputs=[
@@ -42,10 +58,5 @@ demo = gr.ChatInterface(
42
  ],
43
  )
44
 
45
- # Botão para analisar o feedback
46
- btn = gr.Button("Analisar Feedback")
47
- btn.click(analyze_feedback, inputs=None, outputs=None)
48
-
49
- # Inicia a interface
50
  if __name__ == "__main__":
51
- demo.launch(share=True)
 
1
  import gradio as gr
2
  from huggingface_hub import InferenceClient
 
3
 
4
+ # Inicializa o cliente de inferência
5
  client = InferenceClient("HuggingFaceH4/zephyr-7b-beta")
6
 
7
+ # Define o prompt para avaliação de artigos conforme E.A.T
8
+ prompt = """
9
+ Por favor, analise o seguinte artigo com base nas diretrizes do Google E.A.T (Expertise, Autoridade, Confiabilidade).
10
+ Avalie o conteúdo nos seguintes aspectos:
11
+
12
+ 1. **Expertise**: O conteúdo é bem escrito e demonstra conhecimento especializado sobre o assunto? Verifique se o artigo inclui informações precisas, bem fundamentadas e atualizadas.
13
+
14
+ 2. **Autoridade**: O autor ou a fonte é confiável e uma autoridade no tópico discutido? Verifique se o artigo menciona fontes confiáveis ou referências que sustentem as informações fornecidas.
15
+
16
+ 3. **Confiabilidade**: O conteúdo inspira confiança? Ele evita exageros, informações sensacionalistas ou imprecisas? Verifique se o artigo é objetivo e fornece evidências para as afirmações feitas.
17
+
18
+ Após a análise, atribua uma nota de 1 a 10 para a qualidade do artigo em relação aos três aspectos mencionados, com uma breve justificativa para cada nota. Também forneça uma nota final de qualidade geral com base nesses critérios.
19
+ """
20
+
21
+ system_message = "Você é um bot assistente especializado em análise de conteúdo de SEO."
22
+
23
+ def respond(message, history, system_message, max_tokens, temperature, top_p):
24
+ messages = [{"role": "system", "content": system_message}]
25
+
26
+ # Adiciona o histórico de conversas
27
+ for user_msg, assistant_msg in history:
28
+ if user_msg:
29
+ messages.append({"role": "user", "content": user_msg})
30
+ if assistant_msg:
31
+ messages.append({"role": "assistant", "content": assistant_msg})
32
+
33
+ # Adiciona a nova mensagem do usuário (o artigo a ser analisado)
34
+ messages.append({"role": "user", "content": prompt + "\n\n" + message})
35
+
36
+ response = ""
37
+
38
+ # Gera a resposta (análise do artigo)
39
+ for msg in client.chat_completion(
40
+ messages,
41
+ max_tokens=max_tokens,
42
+ stream=True,
43
+ temperature=temperature,
44
+ top_p=top_p,
45
+ ):
46
+ token = msg.choices[0].delta.content
47
+ response += token
48
+ yield response
49
+
50
+ # Configura a interface do Gradio
51
  demo = gr.ChatInterface(
52
  respond,
53
  additional_inputs=[
 
58
  ],
59
  )
60
 
 
 
 
 
 
61
  if __name__ == "__main__":
62
+ demo.launch(share=True)