Spaces:
Runtime error
Runtime error
File size: 2,921 Bytes
a380611 f7a02b6 453dbcd a380611 7abc31a d863fc7 f7a02b6 15e2bf5 453dbcd 8adb407 0aeece4 7abc31a 8adb407 453dbcd 8adb407 453dbcd 7abc31a d863fc7 f7a02b6 553aebf 5f278b8 f7a02b6 553aebf f7a02b6 d92408a 453dbcd 0aeece4 f7a02b6 5f278b8 0aeece4 f7a02b6 7f8eac7 7abc31a f7a02b6 d92408a 453dbcd d92408a cc82464 0a278b8 cc2590a 3fb3843 f7a02b6 0a278b8 cc2590a |
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 |
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)
model_input = gr.inputs.Dropdown(
label="Select OpenAI model",
choices=["davinci", "curie", "babbage"],
default="davinci",
)
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",
)
mode_input = gr.inputs.Dropdown(
label="Select chatbot mode",
choices=["OpenAI", "Hugging Face"],
default="OpenAI",
)
message_input = gr.inputs.Textbox(label="Enter your message here")
output = gr.outputs.Textbox(label="Bot response")
# Define the chat window
chat_window = []
def chatbot(chat_window, message, mode, model, hf_model, api_key):
if message == "/clear":
chat_window.clear()
return "Chat history cleared."
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
chat_interface = gr.Interface(
fn=chatbot,
inputs=[
message_input,
mode_input,
model_input,
hf_model_input,
api_key_input,
gr.inputs.Button(label="Send"),
gr.inputs.Button(label="Clear Chat History")
],
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,
)
# Launch the page
chat_interface.launch() |