Spaces:
Sleeping
Sleeping
File size: 2,785 Bytes
66ff3e9 8658e51 b944409 991d86a 2a864c8 66ff3e9 991d86a 2a23908 c1a4bd7 991d86a 33d5d58 305a1a4 e2cb2fa 4cb67db 4394f5b 4cb67db 33d5d58 4cb67db e2cb2fa 4cb67db 33d5d58 4cb67db 33d5d58 e2cb2fa 33d5d58 b3c9596 e2cb2fa a3e401d e2cb2fa a3e401d e2cb2fa 1ce6b5d b3c9596 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 |
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",
"nousresearch/hermes-3-llama-3.1-405b:free",
"mistralai/mistral-7b-instruct:free",
"microsoft/phi-3-medium-128k-instruct:free",
"liquid/lfm-40b:free"
]
def generate_text(input_text, selected_model, history):
if history is None:
history = "" # Initialize history if it's None
# Call the API to get the model response
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": selected_model, # Use selected model
"messages": [{"role": "user", "content": input_text}],
"top_p": 1,
"temperature": 1,
"frequency_penalty": 0,
"presence_penalty": 0,
"repetition_penalty": 1,
"top_k": 0,
})
)
# Handle errors
if response.status_code != 200:
return f"Error: {response.status_code}, {response.text}", history
# Parse and generate the response
try:
response_json = response.json()
generated_response = response_json.get("choices", [{}])[0].get("message", {}).get("content", "No content returned.")
except json.JSONDecodeError:
generated_response = "Error: Unable to parse response."
# Append the new conversation to the history
history += f"User: {input_text}\nModel: {selected_model}\nResponse: {generated_response}\n\n"
return generated_response, history
# Create Gradio interface with a dropdown for model selection
iface = gr.Interface(
fn=generate_text,
inputs=[
gr.Textbox(lines=2, label="Input Text", placeholder="Enter your query here"),
gr.Dropdown(choices=MODEL_OPTIONS, label="Select Model", value=MODEL_OPTIONS[0]),
gr.State() # This is where we maintain the history state (input)
],
outputs=[
gr.Textbox(label="Response", placeholder="Response will be shown here"),
gr.Textbox(label="History", placeholder="Interaction history will be shown here", lines=10, interactive=False),
gr.State() # History needs to be output as well
],
title="Chat with OpenRouter Models"
)
iface.launch()
|