Spaces:
Sleeping
Sleeping
| # !pip install gradio | |
| import gradio as gr | |
| from typing import List, Tuple | |
| import numpy as np | |
| import google.generativeai as genai | |
| def reset() -> List: | |
| return [] | |
| def interact_summarization(prompt: str, article: str, temp = 1.0) -> List[Tuple[str, str]]: | |
| ''' | |
| * Arguments | |
| - prompt: the prompt that we use in this section | |
| - article: the article to be summarized | |
| - temp: the temperature parameter of this model. Temperature is used to control the output of the chatbot. The higher the temperature is, the more creative response you will get. | |
| ''' | |
| input = f"{prompt}\n{article}" | |
| response = model.generate_content( | |
| input, | |
| generation_config=genai.types.GenerationConfig(temperature=temp), | |
| safety_settings=[ | |
| {"category": "HARM_CATEGORY_HARASSMENT","threshold": "BLOCK_NONE",}, | |
| {"category": "HARM_CATEGORY_HATE_SPEECH","threshold": "BLOCK_NONE",}, | |
| {"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","threshold": "BLOCK_NONE",}, | |
| {"category": "HARM_CATEGORY_DANGEROUS_CONTENT","threshold": "BLOCK_NONE",}, | |
| ] | |
| ) | |
| return [(input, response.text)] | |
| def interact(chatbot: List[Tuple[str, str]], user_input: str) -> List[Tuple[str, str]]: | |
| responses = ["You are right", "HaHa", "I don't know"] | |
| response = np.random.choice(responses, 1)[0] | |
| chatbot.append((user_input, response)) | |
| return chatbot | |
| if __name__ == '__main__': | |
| GOOGLE_API_KEY="AIzaSyB3pzEEQcMhqmJeIhfkOVebH7C4dm_4yTc" | |
| genai.configure(api_key=GOOGLE_API_KEY) | |
| model = genai.GenerativeModel('gemini-pro') | |
| with gr.Blocks() as demo: | |
| gr.Markdown(f"# Gradio Tutorial") | |
| chatbot = gr.Chatbot() | |
| prompt_textbox = gr.Textbox(label="Prompt", value='Please summarize the following article', visible=True) | |
| input_textbox = gr.Textbox(label="Input", value = "") | |
| with gr.Column(): | |
| gr.Markdown("# Temperature\n Temperature is used to control the output of the chatbot. The higher the temperature is, the more creative response you will get.") | |
| temperature_slider = gr.Slider(0.0, 1.0, 0.7, step = 0.1, label="Temperature") | |
| with gr.Row(): | |
| sent_button = gr.Button(value="Send") | |
| reset_button = gr.Button(value="Reset") | |
| sent_button.click(interact_summarization, inputs=[prompt_textbox, input_textbox, temperature_slider], outputs=[chatbot]) | |
| reset_button.click(reset, outputs=[chatbot]) | |
| demo.launch(debug = True) |