Spaces:
Runtime error
Runtime error
import openai | |
import transformers | |
import gradio as gr | |
# Set up the OpenAI API client | |
openai.api_key = "YOUR_API_KEY" | |
# Define the chat function for OpenAI API | |
def openai_chat(api_key, model, message): | |
# Check if an API key has been provided | |
if api_key is None: | |
return "Please enter your OpenAI API key and try again." | |
# Set up the OpenAI API request | |
response = openai.Completion.create( | |
engine=model, | |
prompt=message, | |
max_tokens=1024, | |
n=1, | |
stop=None, | |
temperature=0.5, | |
api_key=api_key, | |
) | |
# Extract the bot's response from the API request | |
bot_response = response.choices[0].text.strip() | |
return bot_response | |
# Define the chat function for Hugging Face API | |
def hf_chat(model_name, message): | |
# Load the model and tokenizer | |
model = transformers.pipeline("text-generation", model=model_name) | |
# Generate a response from the model | |
bot_response = model(message, max_length=1024, do_sample=True, temperature=0.7)[0]["generated_text"] | |
return bot_response | |
# Define the Gradio interface for chatbot | |
api_key_input = gr.inputs.Textbox(label="OpenAI API Key", default=None, block="sidebar") | |
model_input = gr.inputs.Dropdown( | |
label="Select OpenAI model", | |
choices=["davinci", "curie", "babbage"], | |
default="davinci", | |
block="sidebar" | |
) | |
hf_model_input = gr.inputs.Dropdown( | |
label="Select Hugging Face model", | |
choices=["microsoft/DialoGPT-large", "Salesforce/codegen-2B-multi", "microsoft/DialoGPT-small"], | |
default="microsoft/DialoGPT-large", | |
block="sidebar" | |
) | |
mode_input = gr.inputs.Dropdown( | |
label="Select chatbot mode", | |
choices=["OpenAI", "Hugging Face"], | |
default="OpenAI", | |
block="sidebar" | |
) | |
message_input = gr.inputs.Textbox(label="Enter your message here", block="input") | |
output = gr.outputs.Textbox(label="Bot response", block="output") | |
# Define the chat window | |
chat_window = [] | |
def chatbot(chat_window, message, mode, model, hf_model, api_key, send_button, clear_button): | |
if clear_button: | |
chat_window.clear() | |
return "Chat history cleared." | |
if send_button: | |
if message: | |
if mode == "Hugging Face": | |
bot_response = hf_chat(hf_model, message) | |
else: | |
bot_response = openai_chat(api_key, model, message) | |
chat_window.append(("User", message)) | |
chat_window.append(("Bot", bot_response)) | |
return "\n".join([f"{name}: {text}" for name, text in chat_window]) | |
# Define the Gradio interface for chatbot | |
send_button = gr.inputs.Button(label="Send") | |
clear_button = gr.inputs.Button(label="Clear Chat History") | |
chat_interface = gr.Interface( | |
fn=chatbot, | |
inputs=[ | |
message_input, | |
mode_input, | |
model_input, | |
hf_model_input, | |
api_key_input, | |
send_button, | |
clear_button | |
], | |
outputs=output, | |
title="Chatbot", | |
description="Enter your message below to chat with an AI", | |
theme="compact", | |
allow_flagging=False, | |
allow_screenshot=False, | |
allow_share=False, | |
layout="vertical" | |
) | |
# Launch the page | |
chat_interface.launch() |