Spaces:
Sleeping
Sleeping
File size: 2,786 Bytes
038f313 7570a52 c5a20a4 038f313 db00df1 c6bdd15 7570a52 038f313 27c8b8d 7570a52 0f1304a 544cdb6 a00ad13 038f313 0f1304a 27c8b8d 19532c8 27c8b8d 19532c8 7570a52 19532c8 7570a52 19532c8 7570a52 0ef95ea ca486cf a8fc89d 7570a52 f572bef 7570a52 f572bef 7570a52 0f1304a 7570a52 5aff883 7570a52 769901b 77298b9 db8b55b 132703b |
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 |
import gradio as gr
import requests
import os
ACCESS_TOKEN = os.getenv("HF_TOKEN")
API_URL = "https://api-inference.huggingface.co/v1/chat/completions"
HEADERS = {"Authorization": f"Bearer {ACCESS_TOKEN}"}
def respond(
message,
history,
system_message,
max_tokens,
temperature,
top_p,
frequency_penalty,
seed,
custom_model
):
if seed == -1:
seed = None
messages = [{"role": "system", "content": system_message}]
for val in history:
if val[0]:
messages.append({"role": "user", "content": val[0]})
if val[1]:
messages.append({"role": "assistant", "content": val[1]})
messages.append({"role": "user", "content": message})
model_to_use = custom_model.strip() if custom_model.strip() else "meta-llama/Llama-3.2-3B-Instruct"
payload = {
"model": model_to_use,
"messages": messages,
"max_tokens": max_tokens,
"temperature": temperature,
"top_p": top_p,
"frequency_penalty": frequency_penalty,
"seed": seed,
}
response = requests.post(API_URL, headers=HEADERS, json=payload)
if response.status_code == 200:
return response.json()["choices"][0]["message"]["content"]
else:
return "Error: " + response.text
chatbot = gr.Chatbot(height=600, show_copy_button=True, placeholder="ChatGPT is initializing...", likeable=True, layout="panel")
system_message_box = gr.Textbox(value="System message here", label="System Message")
max_tokens_slider = gr.Slider(1024, 2048, value=1024, step=100, label="Max Tokens")
temperature_slider = gr.Slider(0.1, 1.0, value=0.7, step=0.1, label="Temperature")
top_p_slider = gr.Slider(0.1, 1.0, value=0.95, step=0.05, label="Top-P")
frequency_penalty_slider = gr.Slider(-2.0, 2.0, value=0.0, step=0.1, label="Frequency Penalty")
seed_slider = gr.Slider(-1, 65535, value=-1, step=1, label="Seed (-1 for random)")
custom_model_box = gr.Textbox(value="meta-llama/Llama-3.2-3B-Instruct", label="Custom Model")
voice_input = gr.Microphone(label="Speak your message")
with gr.Blocks() as demo:
gr.Markdown("# AI Chatbot with Voice Input")
chatbot.render()
with gr.Row():
system_message_box.render()
max_tokens_slider.render()
temperature_slider.render()
top_p_slider.render()
with gr.Row():
frequency_penalty_slider.render()
seed_slider.render()
custom_model_box.render()
voice_input.render()
voice_input.change(respond, inputs=[voice_input, chatbot, system_message_box, max_tokens_slider, temperature_slider, top_p_slider, frequency_penalty_slider, seed_slider, custom_model_box], outputs=chatbot)
if __name__ == "__main__":
demo.launch()
|