Spaces:
Runtime error
Runtime error
import gradio as gr | |
import requests | |
import subprocess | |
import time | |
import os | |
# Start the Ollama server and wait for it to output the URL | |
subprocess.Popen(['bash', 'run_ollama.sh']) | |
ollama_url_file = 'ollama_url.txt' | |
# Wait for the server URL file to be created | |
while not os.path.exists(ollama_url_file): | |
time.sleep(1) | |
# Read the URL from the file | |
with open(ollama_url_file, 'r') as file: | |
OLLAMA_URL = file.read().strip() | |
console_output = [] | |
def call_ollama_api(prompt): | |
try: | |
response = requests.post( | |
f'{OLLAMA_URL}/generate', | |
json={"prompt": prompt} | |
) | |
response.raise_for_status() # Raise an exception for HTTP errors | |
result = response.json() | |
output = result.get('text', '') | |
console_output.append(f"Prompt: {prompt}\nResponse: {output}") | |
return output | |
except requests.exceptions.RequestException as e: | |
error_message = f"Error: {e}" | |
console_output.append(error_message) | |
return error_message | |
def chat(prompt): | |
output = call_ollama_api(prompt) | |
return output | |
def show_console_output(): | |
return "\n\n".join(console_output) | |
iface = gr.Interface( | |
fn=chat, | |
inputs="text", | |
outputs="text", | |
title="Ollama Chat", | |
description="Chat with Ollama API and see the responses." | |
) | |
console_iface = gr.Interface( | |
fn=show_console_output, | |
inputs=None, | |
outputs="text", | |
title="Console Output", | |
description="See the console outputs here." | |
) | |
# Launch a tabbed interface | |
gr.TabbedInterface([iface, console_iface], ["Chat", "Console"]).launch() |