Spaces:
Build error
Build error
| 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() | |