|
import gradio as gr |
|
from openai import OpenAI |
|
import os |
|
|
|
client = OpenAI( |
|
api_key=os.getenv("OPENAI_API_KEY"), |
|
base_url="https://api.chatanywhere.tech/v1" |
|
) |
|
|
|
def respond(user_message, history): |
|
history = history or [] |
|
messages = [{"role": "system", "content": "You are a helpful assistant."}] |
|
for human, ai in history: |
|
messages.append({"role": "user", "content": human}) |
|
messages.append({"role": "assistant", "content": ai}) |
|
messages.append({"role": "user", "content": user_message}) |
|
try: |
|
response = client.chat.completions.create( |
|
model="gpt-3.5-turbo", |
|
messages=messages |
|
) |
|
bot_reply = response.choices[0].message.content |
|
except Exception as e: |
|
bot_reply = f"β Error: {e}" |
|
history.append((user_message, bot_reply)) |
|
return history |
|
|
|
chat = gr.Chatbot( |
|
label="Conversation", |
|
avatar_images=(None, None), |
|
bubble_full_width=False, |
|
height=420, |
|
show_copy_button=True, |
|
render_markdown=True |
|
) |
|
|
|
with gr.Blocks() as demo: |
|
chatbot = chat |
|
msg = gr.Textbox(placeholder="Type your message here...") |
|
msg.submit(respond, [msg, chatbot], chatbot) |
|
|
|
if __name__ == "__main__": |
|
demo.launch() |
|
|