Spaces:
Running
Running
alright its too expensive yall, I gotta pull back a bit
Browse files
app.py
CHANGED
|
@@ -15,8 +15,9 @@ def respond(
|
|
| 15 |
top_p,
|
| 16 |
frequency_penalty,
|
| 17 |
seed,
|
| 18 |
-
provider,
|
| 19 |
-
|
|
|
|
| 20 |
model_search_term,
|
| 21 |
selected_model
|
| 22 |
):
|
|
@@ -25,14 +26,17 @@ def respond(
|
|
| 25 |
print(f"System message: {system_message}")
|
| 26 |
print(f"Max tokens: {max_tokens}, Temperature: {temperature}, Top-P: {top_p}")
|
| 27 |
print(f"Frequency Penalty: {frequency_penalty}, Seed: {seed}")
|
| 28 |
-
print(f"Selected provider: {provider}")
|
| 29 |
-
print(f"
|
|
|
|
| 30 |
print(f"Model search term: {model_search_term}")
|
| 31 |
print(f"Selected model from radio: {selected_model}")
|
| 32 |
|
| 33 |
-
#
|
| 34 |
-
|
| 35 |
-
|
|
|
|
|
|
|
| 36 |
print(f"Hugging Face Inference Client initialized with {provider} provider.")
|
| 37 |
|
| 38 |
# Convert seed to None if -1 (meaning random)
|
|
@@ -105,6 +109,13 @@ def respond(
|
|
| 105 |
|
| 106 |
print("Completed response generation.")
|
| 107 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 108 |
# GRADIO UI
|
| 109 |
|
| 110 |
chatbot = gr.Chatbot(height=600, show_copy_button=True, placeholder="Select a model and begin chatting", layout="panel")
|
|
@@ -169,6 +180,15 @@ provider_radio = gr.Radio(
|
|
| 169 |
info="[View all models here](https://huggingface.co/models?inference_provider=all&pipeline_tag=text-generation&sort=trending)"
|
| 170 |
)
|
| 171 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 172 |
# Custom model box
|
| 173 |
custom_model_box = gr.Textbox(
|
| 174 |
value="",
|
|
@@ -246,8 +266,9 @@ demo = gr.ChatInterface(
|
|
| 246 |
top_p_slider,
|
| 247 |
frequency_penalty_slider,
|
| 248 |
seed_slider,
|
| 249 |
-
provider_radio, # Provider selection
|
| 250 |
-
|
|
|
|
| 251 |
model_search_box, # Model search box
|
| 252 |
featured_model_radio # Featured model radio
|
| 253 |
],
|
|
@@ -273,9 +294,25 @@ with demo:
|
|
| 273 |
outputs=custom_model_box
|
| 274 |
)
|
| 275 |
print("Featured model radio button change event linked.")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 276 |
|
| 277 |
print("Gradio interface initialized.")
|
| 278 |
|
| 279 |
if __name__ == "__main__":
|
| 280 |
print("Launching the demo application.")
|
| 281 |
-
demo.launch(show_api=True)
|
|
|
|
| 15 |
top_p,
|
| 16 |
frequency_penalty,
|
| 17 |
seed,
|
| 18 |
+
provider,
|
| 19 |
+
custom_api_key, # New parameter for BYOK
|
| 20 |
+
custom_model,
|
| 21 |
model_search_term,
|
| 22 |
selected_model
|
| 23 |
):
|
|
|
|
| 26 |
print(f"System message: {system_message}")
|
| 27 |
print(f"Max tokens: {max_tokens}, Temperature: {temperature}, Top-P: {top_p}")
|
| 28 |
print(f"Frequency Penalty: {frequency_penalty}, Seed: {seed}")
|
| 29 |
+
print(f"Selected provider: {provider}")
|
| 30 |
+
print(f"Custom API Key provided: {bool(custom_api_key.strip())}") # Log whether a custom key was provided without printing the key
|
| 31 |
+
print(f"Selected model (custom_model): {custom_model}")
|
| 32 |
print(f"Model search term: {model_search_term}")
|
| 33 |
print(f"Selected model from radio: {selected_model}")
|
| 34 |
|
| 35 |
+
# Determine which token to use - custom API key if provided, otherwise the ACCESS_TOKEN
|
| 36 |
+
token_to_use = custom_api_key if custom_api_key.strip() != "" else ACCESS_TOKEN
|
| 37 |
+
|
| 38 |
+
# Initialize the Inference Client with the provider and appropriate token
|
| 39 |
+
client = InferenceClient(token=token_to_use, provider=provider)
|
| 40 |
print(f"Hugging Face Inference Client initialized with {provider} provider.")
|
| 41 |
|
| 42 |
# Convert seed to None if -1 (meaning random)
|
|
|
|
| 109 |
|
| 110 |
print("Completed response generation.")
|
| 111 |
|
| 112 |
+
# Function to validate provider selection based on BYOK
|
| 113 |
+
def validate_provider(api_key, provider):
|
| 114 |
+
# If no custom API key is provided, only "hf-inference" can be used
|
| 115 |
+
if not api_key.strip() and provider != "hf-inference":
|
| 116 |
+
return gr.update(value="hf-inference")
|
| 117 |
+
return gr.update(value=provider)
|
| 118 |
+
|
| 119 |
# GRADIO UI
|
| 120 |
|
| 121 |
chatbot = gr.Chatbot(height=600, show_copy_button=True, placeholder="Select a model and begin chatting", layout="panel")
|
|
|
|
| 180 |
info="[View all models here](https://huggingface.co/models?inference_provider=all&pipeline_tag=text-generation&sort=trending)"
|
| 181 |
)
|
| 182 |
|
| 183 |
+
# New BYOK textbox - Added for the new feature
|
| 184 |
+
byok_textbox = gr.Textbox(
|
| 185 |
+
value="",
|
| 186 |
+
label="BYOK (Bring Your Own Key)",
|
| 187 |
+
info="Enter a custom Hugging Face API key here. When empty, only 'hf-inference' provider can be used.",
|
| 188 |
+
placeholder="Enter your Hugging Face API token",
|
| 189 |
+
type="password" # Hide the API key for security
|
| 190 |
+
)
|
| 191 |
+
|
| 192 |
# Custom model box
|
| 193 |
custom_model_box = gr.Textbox(
|
| 194 |
value="",
|
|
|
|
| 266 |
top_p_slider,
|
| 267 |
frequency_penalty_slider,
|
| 268 |
seed_slider,
|
| 269 |
+
provider_radio, # Provider selection
|
| 270 |
+
byok_textbox, # New BYOK textbox
|
| 271 |
+
custom_model_box, # Custom Model
|
| 272 |
model_search_box, # Model search box
|
| 273 |
featured_model_radio # Featured model radio
|
| 274 |
],
|
|
|
|
| 294 |
outputs=custom_model_box
|
| 295 |
)
|
| 296 |
print("Featured model radio button change event linked.")
|
| 297 |
+
|
| 298 |
+
# Connect the BYOK textbox to validate provider selection
|
| 299 |
+
byok_textbox.change(
|
| 300 |
+
fn=validate_provider,
|
| 301 |
+
inputs=[byok_textbox, provider_radio],
|
| 302 |
+
outputs=provider_radio
|
| 303 |
+
)
|
| 304 |
+
print("BYOK textbox change event linked.")
|
| 305 |
+
|
| 306 |
+
# Also validate provider when the radio changes to ensure consistency
|
| 307 |
+
provider_radio.change(
|
| 308 |
+
fn=validate_provider,
|
| 309 |
+
inputs=[byok_textbox, provider_radio],
|
| 310 |
+
outputs=provider_radio
|
| 311 |
+
)
|
| 312 |
+
print("Provider radio button change event linked.")
|
| 313 |
|
| 314 |
print("Gradio interface initialized.")
|
| 315 |
|
| 316 |
if __name__ == "__main__":
|
| 317 |
print("Launching the demo application.")
|
| 318 |
+
demo.launch(show_api=True)
|