File size: 3,645 Bytes
e05abd0
 
 
 
672fa81
edadbff
ffacbee
edadbff
e05abd0
 
 
 
 
 
 
 
 
edadbff
 
 
 
 
 
 
8310927
edadbff
 
 
 
 
 
 
0c6360c
edadbff
 
 
 
8fccea5
 
edadbff
 
 
 
 
 
 
 
 
 
e05abd0
c14ef23
8151f8b
c14ef23
 
 
d88c117
c14ef23
 
 
 
 
 
 
 
8151f8b
 
 
 
3f5673b
8151f8b
 
 
 
 
 
 
 
 
c14ef23
edadbff
e05abd0
5e49ced
 
edadbff
 
 
 
 
6794548
 
 
 
 
8151f8b
 
 
 
 
 
75dfd0c
8151f8b
 
be2d5d0
8fccea5
c14ef23
 
a6eaf64
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
from transformers import BertTokenizerFast,TFBertForSequenceClassification,TextClassificationPipeline
import numpy as np
import tensorflow as tf
import gradio as gr 
import openai
import os

# Sentiment Analysis Pre-Trained Model
model_path = "leadingbridge/sentiment-analysis"
tokenizer = BertTokenizerFast.from_pretrained(model_path)
model = TFBertForSequenceClassification.from_pretrained(model_path, id2label={0: 'negative', 1: 'positive'} )

def sentiment_analysis(text):
  pipe = TextClassificationPipeline(model=model, tokenizer=tokenizer)
  result = pipe(text)
  return result


# Open AI Chatbot Model
openai.api_key = "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"

start_sequence = "\nAI:"
restart_sequence = "\nHuman: "

prompt = "You can discuss any topic with the Chinese Chatbot assistant by typing Chinese in here"

def openai_create(prompt):

    response = openai.Completion.create(
    model="text-davinci-003",
    prompt=prompt,
    temperature=0.9,
    max_tokens=1024,
    top_p=1,
    frequency_penalty=0,
    presence_penalty=0.6,
    stop=[" Human:", " AI:"]
    )

    return response.choices[0].text

def chatgpt_clone(input, history):
    history = history or []
    s = list(sum(history, ()))
    s.append(input)
    inp = ' '.join(s)
    output = openai_create(inp)
    history.append((input, output))
    return history, history


# Open AI Chinese Translation Model
def translate_to_chinese(text_to_translate):
    response = openai.Completion.create(
      model="text-davinci-003",
      prompt=f"Translate this short English sentence into Chinese:\n\n{text_to_translate}\n\n1.",
      temperature=0.3,
      max_tokens=1024,
      top_p=1.0,
      frequency_penalty=0.0,
      presence_penalty=0.0
    )
    return response.choices[0].text.strip()

# Open AI English Translation Model
def translate_to_english(text_to_translate):
    response = openai.Completion.create(
      model="text-davinci-003",
      prompt=f"Translate this short Chinese sentence into English:\n\n{text_to_translate}\n\n1.",
      temperature=0.3,
      max_tokens=1024,
      top_p=1.0,
      frequency_penalty=0.0,
      presence_penalty=0.0
    )
    return response.choices[0].text.strip()


    
# Gradio Output Model
with gr.Blocks() as demo:
    gr.Markdown("Choose the Chinese NLP model you want to use from the tabs")
    with gr.Tab("OpenAI Chatbot"):
        chatbot = gr.Chatbot()
        message = gr.Textbox(placeholder=prompt)
        state = gr.State()
        submit = gr.Button("SEND")
        submit.click(chatgpt_clone, inputs=[message, state], outputs=[chatbot, state])
    with gr.Tab("Sentiment Analysis"):
        inputs = gr.Textbox(placeholder="Enter a Chinese positive or negative sentence here")
        outputs = gr.Textbox(label="Sentiment Analysis")
        proceed_button = gr.Button("proceed")           
        proceed_button.click(fn=sentiment_analysis, inputs=inputs, outputs=outputs)
    with gr.Tab("Translation to Chinese"):
        inputs = gr.Textbox(placeholder="Enter a short English sentence to translate to Chinese here.")
        outputs = gr.Textbox(label="Translation Result")
        proceed_button = gr.Button("Translate")
        proceed_button.click(fn=translate_to_chinese, inputs=inputs, outputs=outputs)
    with gr.Tab("Translation to English"):
        inputs = gr.Textbox(placeholder="Enter a short Chinese sentence to translate to English here.")
        outputs = gr.Textbox(label="Translation Result")
        proceed_button = gr.Button("Translate")
        proceed_button.click(fn=translate_to_english, inputs=inputs, outputs=outputs)



demo.launch(inline=False)