File size: 2,335 Bytes
723fe48
 
ecd025e
ee38e04
82871f4
ecd025e
 
723fe48
48eef38
723fe48
48eef38
 
 
723fe48
 
 
 
48eef38
 
723fe48
48eef38
723fe48
 
48eef38
82871f4
48eef38
723fe48
48eef38
723fe48
48eef38
723fe48
 
82871f4
723fe48
ba48fb7
 
 
 
 
 
723fe48
48eef38
 
 
723fe48
48eef38
 
723fe48
 
 
48eef38
723fe48
 
 
48eef38
 
 
723fe48
 
48eef38
723fe48
48eef38
 
723fe48
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
import pandas as pd
import gradio as gr
from transformers import AutoTokenizer, AutoModel
#import torch

tokenizer = AutoTokenizer.from_pretrained('juridics/bertimbaulaw-base-portuguese-sts-scale')
model = AutoModel.from_pretrained('juridics/bertimbaulaw-base-portuguese-sts-scale')

# Dados iniciais
data = {
    'Nome': ['Alice', 'Bob', 'Charlie'],
    'Idade': [25, 30, 35],
    'Cidade': ['Nova York', 'Los Angeles', 'Chicago'],
    'Feedback': [None, None, None]
}
df = pd.DataFrame(data)

# Função para adicionar feedback
def add_feedback(nome, feedback):
    global df
    df.loc[df['Nome'] == nome, 'Feedback'] = feedback
    return df

# Função para obter uma resposta do GPT (substituição para chamada real ao GPT)
def get_gpt_response(query):
    # Converte o DataFrame para string CSV
    csv_data = df.to_csv(index=False)
    # Cria contexto com feedback
    context = f"""
    Aqui estão os dados das pessoas incluindo seus nomes, idades, cidades onde moram e feedback:

    {csv_data}
    
    """
    input_ids = tokenizer.encode(query, return_tensors='pt')
    max_length = input_ids.shape[1] + 100
    generated_ids = model.generate(input_ids, max_length=max_length)
    generated_text = tokenizer.decode(generated_ids[0], skip_special_tokens=True)
    return generated_text


def ask_question(pergunta):
    resposta = get_gpt_response(pergunta)
    return resposta

def submit_feedback(nome, feedback):
    updated_df = add_feedback(nome, feedback)
    return updated_df

with gr.Blocks() as demo:
    gr.Markdown("# Sistema de Consulta e Feedback de Dados")

    with gr.Row():
        with gr.Column():
            question_input = gr.Textbox(label="Faça uma Pergunta")
            response_output = gr.Textbox(label="Resposta do GPT", interactive=False)
            ask_button = gr.Button("Perguntar")

        with gr.Column():
            name_input = gr.Textbox(label="Nome para Feedback")
            feedback_input = gr.Textbox(label="Feedback")
            submit_button = gr.Button("Enviar Feedback")
            feedback_df = gr.Dataframe(label="DataFrame Atualizado", interactive=False)
    
    ask_button.click(fn=ask_question, inputs=question_input, outputs=response_output)
    submit_button.click(fn=submit_feedback, inputs=[name_input, feedback_input], outputs=feedback_df)

demo.launch()