File size: 4,580 Bytes
f5bb7ae
 
 
 
 
 
fea44c9
f5bb7ae
 
 
8bb404f
f5bb7ae
 
 
 
 
 
 
3208af3
f5bb7ae
8bb404f
f5bb7ae
 
 
 
 
 
 
fea44c9
f5bb7ae
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fea44c9
f5bb7ae
 
 
 
 
fea44c9
f5bb7ae
 
fea44c9
f5bb7ae
 
 
 
fea44c9
f5bb7ae
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
fea44c9
f5bb7ae
 
 
 
 
 
 
 
 
 
 
26e150b
f5bb7ae
 
 
 
8bb404f
f5bb7ae
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
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
import os
import csv
import json
import requests
import re as r
import gradio as gr
import pandas as pd
from transformers import pipeline
from huggingface_hub import Repository
from urllib.request import urlopen

HF_TOKEN = os.environ.get("HF_TOKEN")
DATASET_NAME = "huggingface_sentiment_analysis_dataset"
DATASET_REPO_URL = f"https://huggingface.co/datasets/pragnakalp/huggingface_sentiment_analysis_dataset"
DATA_FILENAME = "hf_sentiment_logs.csv"
DATA_FILE = os.path.join("hf_sentiment_logs", DATA_FILENAME)
DATASET_REPO_ID = "pragnakalp/huggingface_sentiment_analysis_dataset"
print("is none?", HF_TOKEN is None)

input_para = "I am happy\nI am sad\nI am not feeling well\nHe is a very good person\nHe is bad person\nI love pineapple\nI hate mangoes"

try:
    hf_hub_download(
        repo_id=DATASET_REPO_ID,
        filename=DATA_FILENAME,
        cache_dir=DATA_DIRNAME,
        force_filename=DATA_FILENAME
    )
    
except:
    print("file not found")

repo = Repository(
    local_dir="hf_sentiment_logs", clone_from=DATASET_REPO_URL, use_auth_token=HF_TOKEN
)

def getIP():
	d = str(urlopen('http://checkip.dyndns.com/')
			.read())

	return r.compile(r'Address: (\d+\.\d+\.\d+\.\d+)').search(d).group(1)

def get_location(ip_addr):
    ip=ip_addr

    req_data={
        "ip":ip,
        "token":"pkml123"
    }
    url = "https://demos.pragnakalp.com/get-ip-location"

    # req_data=json.dumps(req_data)
    # print("req_data",req_data)
    headers = {'Content-Type': 'application/json'}

    response = requests.request("POST", url, headers=headers, data=json.dumps(req_data))
    response = response.json()
    print("response======>>",response)
    return response

def huggingface_result_page(paragraph):
    if paragraph.strip():
        model_base = pipeline('sentiment-analysis')
    
        sen_list = paragraph
        sen_list = sen_list.split('\n')
        sen_list_temp = sen_list[0:]
        results = []
        temp_result_dict = []
    
        for sen in sen_list_temp:
            sen = sen.strip()
    
            if sen:
                cur_result = model_base(sen)[0]
                temp_result_dict.append(sen)
                results.append(cur_result['label'])
    
        result = {
            'Input': sen_list, 'Sentiment': results
        }
        print("LENGTH of results ====> ",str(len(results)))
        print("LENGTH of sen_list ====> ",str(len(temp_result_dict)))
        
        return pd.DataFrame(result)
    else:
        raise gr.Error("Please enter text in inputbox!!!!")

def save_data_and_sendmail(sen_list,results,result,paragraph):
    try:
        print("welcome")
        ip_address = ''

        ip_address= getIP()
        print(ip_address)
        location = get_location(ip_address)
        print(location)
        add_csv = [paragraph,result,ip_address,location]
        with open(DATA_FILE, "a") as f:
            writer = csv.writer(f)
            # write the data
            writer.writerow(add_csv)
            commit_url = repo.push_to_hub()
            print("commit data   :",commit_url)
        
        # url = 'https://pragnakalpdev35.pythonanywhere.com/HF_space_que_gen'
        # # url = 'http://pragnakalpdev33.pythonanywhere.com/HF_space_question_generator'
        # myobj = {'article': article,'total_que': num_que,'gen_que':result,'ip_addr':hostname.get("ip_addr",""),'host':hostname.get("host","")}
        # x = requests.post(url, json = myobj) 
        
        url = 'https://pragnakalpdev33.pythonanywhere.com/HF_space_sentiment'
        myobj = {'para': sen_list,'result':results,'ip_addr':ip_address,"location":location}
        x = requests.post(url, json = myobj) 
        
        return "Successfully save data"
    
    except Exception as e:
        print("error")
        return "Error while sending mail" + str(e)

inputs = gr.Textbox(lines=3, label="Paragraph",value=input_para)
outputs = gr.Dataframe(row_count = (3, "dynamic"), col_count=(2, "fixed"), label="Here is the Result", headers=["Input","Sentiment"],wrap=True)

demo = gr.Interface(
    huggingface_result_page,
    inputs,
    outputs,
    title="Sentiment Analysis",
    css=".gradio-container {background-color: lightgray}",
    article = """<p style='text-align: center;'>Feel free to give us your <a href="https://www.pragnakalp.com/contact/" target="_blank">feedback</a> on this Question Generation using T5 demo.</p>
                                        <p style='text-align: center;'>Developed by: <a href="https://www.pragnakalp.com" target="_blank">Pragnakalp Techlabs</a></p>"""
)

demo.launch()