Antoniskaraolis commited on
Commit
fe6a6d0
·
verified ·
1 Parent(s): 693890a

Update app.py

Browse files
Files changed (1) hide show
  1. app.py +21 -45
app.py CHANGED
@@ -1,46 +1,22 @@
1
- import gradio as gr
2
  import pandas as pd
3
- from sentence_transformers import SentenceTransformer
4
- import chromadb
5
- from transformers import GPT2LMHeadModel, GPT2Tokenizer, TrainingArguments, Trainer
6
- from datasets import Dataset
7
- from torch.cuda.amp import autocast
8
- import torch
9
-
10
- def load_and_process_data(file_info):
11
- if file_info is None:
12
- return None, "Please upload a CSV file."
13
- data = pd.read_csv(file_info, nrows=500, on_bad_lines='skip')
14
- data['message'] = data['message'].apply(lambda x: x.strip() if type(x) == str else '')
15
- return data, "Data loaded and processed successfully."
16
-
17
- def answer_question(model, tokenizer, question):
18
- model.eval()
19
- inputs = tokenizer.encode(question, return_tensors='pt')
20
- outputs = model.generate(inputs, max_length=100, num_return_sequences=1)
21
- return tokenizer.decode(outputs[0], skip_special_tokens=True)
22
-
23
- tokenizer = GPT2Tokenizer.from_pretrained('distilgpt2')
24
- tokenizer.pad_token = tokenizer.eos_token
25
- model = GPT2LMHeadModel.from_pretrained('distilgpt2')
26
-
27
- def setup_gradio_interface():
28
- with gr.Blocks() as demo:
29
- gr.Markdown("### Upload emails.csv and Ask a Question")
30
- with gr.Row():
31
- file_input = gr.File(label="Upload your emails.csv")
32
- submit_file = gr.Button("Load & Process File")
33
- data_output = gr.Textbox(label="File Processing Output")
34
- question_input = gr.Textbox(label="Enter your question:")
35
- answer_output = gr.Textbox(label="Model Answer:")
36
- submit_question = gr.Button("Get Answer")
37
-
38
- submit_file.click(fn=load_and_process_data, inputs=file_input, outputs=[data_output])
39
- submit_question.click(fn=answer_question, inputs=[model, tokenizer, question_input], outputs=answer_output)
40
-
41
- return demo
42
-
43
- demo = setup_gradio_interface()
44
-
45
- if __name__ == "__main__":
46
- demo.launch()
 
 
1
  import pandas as pd
2
+ import gradio as gr
3
+ from transformers import pipeline
4
+
5
+ emails_df = pd.read_csv('emails.csv', nrows=500, on_bad_lines='skip')
6
+ context = " ".join(emails_df['message'].apply(lambda x: x.strip() if isinstance(x, str) else ''))
7
+
8
+ qa_pipeline = pipeline("question-answering")
9
+
10
+ def answer_query(question):
11
+ try:
12
+ result = qa_pipeline(question=question, context=context)
13
+ return result['answer']
14
+ except Exception as e:
15
+ return str(e)
16
+
17
+ iface = gr.Interface(
18
+ fn=answer_query,
19
+ inputs=gr.inputs.Textbox(label="Enter your question:"),
20
+ outputs=gr.outputs.Textbox(label="Answer:")
21
+ )
22
+ iface.launch()