File size: 4,922 Bytes
db40a0b
 
7f470bc
 
 
 
db40a0b
 
 
7f470bc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
db40a0b
 
7f470bc
db40a0b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
df647c5
db40a0b
 
 
7f470bc
df647c5
7f470bc
 
 
 
 
 
 
 
df647c5
7f470bc
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
db40a0b
7f470bc
 
 
db40a0b
7f470bc
db40a0b
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
135
136
137
138
139

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 urllib.request import urlopen
from huggingface_hub import Repository


HF_TOKEN = os.environ.get("HF_TOKEN")
DATASET_NAME = "huggingface_sentiment_analysis_dataset"
DATASET_REPO_URL = f"https://huggingface.co/datasets/pragnakalp/{DATASET_NAME}"
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)))
        save_data_and_sendmail(sen_list,results,result,paragraph)
        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="Huggingface Sentiment Analysis",
    css=".gradio-container {background-color: lightgray}",
    article = """Provide us your feedback on this demo and feel free to contact us at <a href="mailto:letstalk@pragnakalp.com" target="_blank">letstalk@pragnakalp.com</a> 
            if you want to have your own sentiment analysis system. We will be happy to serve you for your sentiment analysis requirement. 
            And don't forget to check out more interesting  <a href="https://www.pragnakalp.com/services/natural-language-processing-services/" target="_blank">NLP services</a>
            we are offering.
            <p style='text-align: center;'>Developed by :<a href="https://www.pragnakalp.com" target="_blank"> Pragnakalp Techlabs</a></p>"""
)

demo.launch()