laptop-webui / app.py
teragron's picture
Update app.py
13ad0ff verified
import gradio as gr
import requests
import os
# Load API settings from environment variables
OPENWEBUI_URL = os.getenv("OPENWEBUI_URL")
OPENWEBUI_API_KEY = os.getenv("OPENWEBUI_API_KEY")
MODEL_NAME = os.getenv("MODEL_NAME", "phi3:latest") # Default to "phi3:latest" if not set
# Function to send messages to OpenWebUI
def chat_with_model(message, history):
if not OPENWEBUI_URL or not OPENWEBUI_API_KEY:
return history + [("System", "Error: Missing API credentials. Please set environment variables.")]
headers = {
"Authorization": f"Bearer {OPENWEBUI_API_KEY}",
"Content-Type": "application/json"
}
payload = {
"model": MODEL_NAME,
"messages": [{"role": "user", "content": message}]
}
response = requests.post(OPENWEBUI_URL, json=payload, headers=headers)
if response.status_code == 200:
bot_reply = response.json().get("choices", [{}])[0].get("message", {}).get("content", "No response.")
else:
bot_reply = f"Error: {response.text}"
history.append((message, bot_reply))
return history
# Gradio UI
with gr.Blocks() as demo:
gr.Markdown("## Chat with Ollama via OpenWebUI")
chatbot = gr.Chatbot()
msg = gr.Textbox(label="Your Message")
submit = gr.Button("Send")
submit.click(chat_with_model, inputs=[msg, chatbot], outputs=chatbot)
demo.launch()