hyperbolic / app.py
mgokg's picture
Update app.py
4b29047 verified
import gradio as gr
import requests
import os
from IPython.display import display
from IPython.display import Markdown
api_key = os.environ.get("HYPERBOLIC_API_KEY")
url = "https://api.hyperbolic.xyz/v1/chat/completions"
def hyperbolic(prompt):
try:
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {api_key}"
}
data = {
"messages": [
{
"role": "user",
"content": f"{prompt}"
}
],
"model": "Qwen/Qwen2.5-72B-Instruct",
"max_tokens": 32768,
"temperature": 0.2,
"top_p": 0.9
}
response = requests.post(url, headers=headers, json=data)
response.raise_for_status() # Raise HTTPError for bad responses (4xx or 5xx)
json_response = response.json()
# Extract the response text from the JSON
if 'choices' in json_response and len(json_response['choices']) > 0:
return json_response['choices'][0]['message']['content']
else:
return f"Error: Unexpected response format from Hyperbolic API: {json_response}"
except requests.exceptions.RequestException as e:
return f"Error: Could not connect to Hyperbolic API: {e}"
except (KeyError, TypeError) as e:
return f"Error: Problem parsing Hyperbolic API response: {e}"
except Exception as e:
return f"An unexpected error occurred: {e}"
def chat(message, history):
bot_message = hyperbolic(message)
history.append((message, bot_message))
display(Markdown(bot_message))
return bot_message
return history
if __name__ == '__main__':
if not api_key:
print("Error: HYPERBOLIC_API_KEY environment variable not set. Please set it before running.")
else:
demo = gr.ChatInterface(
fn=chat,
title="Hyperbolic Chatbot",
description="A chatbot powered by the Hyperbolic API.",
chatbot=gr.Chatbot(height=400) # Adjust height as needed
)
demo.launch()