Spaces:
Sleeping
Sleeping
import gradio as gr | |
import requests | |
import json | |
import os | |
# Retrieve the OpenRouter API Key from the Space secrets | |
API_KEY = os.getenv("OpenRouter_API_KEY") | |
# Define available models for selection | |
MODEL_OPTIONS = [ | |
"openai/gpt-4o-mini-2024-07-18", | |
"meta-llama/llama-3.1-405b-instruct", | |
"nvidia/llama-3.1-nemotron-70b-instruct", | |
"qwen/qwen-2.5-7b-instruct", | |
"mistralai/mistral-large-2411", | |
"microsoft/phi-3-medium-128k-instruct", | |
"meta-llama/llama-3.1-405b-instruct:free" | |
] | |
def generate_comparisons(input_text, selected_models): | |
results = {} | |
for model in selected_models: | |
response = requests.post( | |
url="https://openrouter.ai/api/v1/chat/completions", | |
headers={ | |
"Authorization": f"Bearer {API_KEY}", | |
"Content-Type": "application/json" | |
}, | |
data=json.dumps({ | |
"model": model, # Use the current model | |
"messages": [{"role": "user", "content": input_text}], | |
"top_p": 1, | |
"temperature": 1, | |
"frequency_penalty": 0, | |
"presence_penalty": 0, | |
"repetition_penalty": 1, | |
"top_k": 0, | |
}) | |
) | |
# Parse the response | |
if response.status_code == 200: | |
try: | |
response_json = response.json() | |
results[model] = response_json.get("choices", [{}])[0].get("message", {}).get("content", "No content returned.") | |
except json.JSONDecodeError: | |
results[model] = "Error: Unable to parse response." | |
else: | |
results[model] = f"Error: {response.status_code}, {response.text}" | |
return results | |
# Create Gradio interface with multiple model selection | |
iface = gr.Interface( | |
fn=generate_comparisons, | |
inputs=[ | |
gr.Textbox(lines=2, label="Input Text", placeholder="Enter your query here"), | |
gr.CheckboxGroup(choices=MODEL_OPTIONS, label="Select Models", value=[MODEL_OPTIONS[0]]) | |
], | |
outputs=gr.JSON(label="Model Comparisons"), | |
title="Compare Outputs from Multiple Models" | |
) | |
iface.launch() | |