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('Welcome to the Chinese NLP Demo! Please select a model tab to interact with:') with gr.Tab("🗣️Chatbot"): gr.Markdown("This is a Chinese chatbot powered by the OpenAI language model. Enter your message below in Chinese and the chatbot will respond.") 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"): gr.Markdown("This is a self-trained fine-tuned model using Chinese BERT for sentiment analysis. Enter a sentence in Chinese in the input box and click the 'proceed' button to get the sentiment analysis result.") inputs = gr.Textbox(placeholder="Type a Chinese sentence here, either positive or negative in sentiment.") outputs = gr.Textbox(label="Sentiment Analysis") proceed_button = gr.Button("Proceed") proceed_button.click(fn=sentiment_analysis, inputs=inputs, outputs=outputs) with gr.Tab("🀄Chinese Translation"): gr.Markdown("Translate an English sentence to Chinese using the OpenAI engine. Enter an English short sentence in the input box and click the 'Translate' button to get the translation result in 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("🔤English Translation"): gr.Markdown("Translate a Chinese sentence to English using the OpenAI engine. Enter a Chinese short sentence in the input box and click the 'Translate' button to get the translation result in 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) gr.Markdown(''' I'm excited to share with you the above Chinese NLP models that I've developed. After searching the internet, I realized that there aren't many Chinese NLP resources available, so I hope that these models can be useful to you. I want to acknowledge that these models are not perfect and there is still room for improvement. Due to resource limitations, there may be some limitations or errors in the models. However, I hope that you will find them useful and that you will be able to contribute to their improvement. ''') demo.launch(inline=False)