Spaces:
Running
Running
File size: 3,822 Bytes
7b4d2d2 1ce16f9 7b4d2d2 450c82c 5458003 0712223 1ce16f9 7b4d2d2 1ce16f9 7b4d2d2 1ce16f9 7b4d2d2 8486464 7b4d2d2 450c82c 7b4d2d2 1ce16f9 0712223 1ce16f9 0712223 7b4d2d2 8486464 7b4d2d2 5458003 1ce16f9 5458003 7b4d2d2 f5bae26 7b4d2d2 0712223 450c82c 0712223 7b4d2d2 0712223 7b4d2d2 f5bae26 5458003 7b4d2d2 0712223 7b4d2d2 0712223 450c82c 7b4d2d2 |
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 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 |
import gradio as gr
import requests
import json
import os
default_prompt = "The best thing about being a cat is"
def generate_completion(api_key, model, prompt, temperature, repetition_penalty, stop_phrase, max_tokens):
if not api_key:
return "Please enter your OpenRouter API key."
try:
# Prepare the request payload
payload = {
"model": model,
"prompt": prompt,
"temperature": temperature,
"frequency_penalty": repetition_penalty,
"max_tokens": max_tokens,
"provider": {
"require_parameters": True
}
}
# Add stop phrase if provided
if stop_phrase:
payload["stop"] = [stop_phrase]
# Prepare headers
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
# Make the API request
response = requests.post(
"https://openrouter.ai/api/v1/completions",
headers=headers,
json=payload,
timeout=60
)
# Check if request was successful
response.raise_for_status()
# Parse the response
result = response.json()
# Extract the completion text
if "choices" in result and len(result["choices"]) > 0:
return result["choices"][0]["text"].strip()
else:
return "No completion generated."
except requests.exceptions.RequestException as e:
return f"Request error: {str(e)}"
except json.JSONDecodeError as e:
return f"JSON decode error: {str(e)}"
except Exception as e:
return f"An error occurred: {str(e)}"
def append_completion(prompt, completion):
new_prompt = f"{prompt}{completion}".strip()
return new_prompt, "" # Return new prompt and empty completion
def clear_fields():
return "", ""
with gr.Blocks(theme=gr.themes.Soft()) as iface:
gr.Markdown("# Base Model Completion Interface via OpenRouter")
# API Key input at the top
api_key_input = gr.Textbox(
label="OpenRouter API Key",
type="password",
placeholder="Enter your OpenRouter API key"
)
with gr.Row():
with gr.Column(scale=2):
prompt_input = gr.Textbox(label="Prompt", lines=6, value="The best thing about being a cat is")
with gr.Column(scale=1):
model_input = gr.Textbox(
label="Model",
value="meta-llama/llama-3.1-405b",
placeholder="Enter model name"
)
temperature_slider = gr.Slider(minimum=0, maximum=1, value=0.7, step=0.1, label="Temperature")
repetition_penalty_slider = gr.Slider(minimum=0, maximum=2, value=0.1, step=0.1, label="Repetition Penalty")
max_tokens_slider = gr.Slider(minimum=1, maximum=4000, value=250, step=1, label="Max Tokens")
stop_phrase_input = gr.Textbox(label="Stop Phrase", placeholder="Enter stop phrase (optional)")
with gr.Row():
generate_button = gr.Button("Generate Completion")
append_button = gr.Button("Append Completion to Prompt")
clear_button = gr.Button("Clear All Fields")
output_text = gr.Textbox(label="Generated Completion", lines=10)
generate_button.click(
generate_completion,
inputs=[api_key_input, model_input, prompt_input, temperature_slider, repetition_penalty_slider, stop_phrase_input, max_tokens_slider],
outputs=output_text
)
append_button.click(
append_completion,
inputs=[prompt_input, output_text],
outputs=[prompt_input, output_text]
)
clear_button.click(
clear_fields,
outputs=[prompt_input, output_text]
)
iface.launch(share=True)
|