Spaces:
Sleeping
Sleeping
import gradio as gr | |
from huggingface_hub import InferenceClient | |
client = InferenceClient("Qwen/Qwen2.5-Coder-32B-Instruct") | |
def respond( | |
message, | |
history: list[tuple[str, str]], | |
system_message, | |
max_tokens, | |
temperature, | |
top_p, | |
): | |
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}) | |
response = "" | |
for message in client.chat_completion( | |
messages, | |
max_tokens=max_tokens, | |
stream=True, | |
temperature=temperature, | |
top_p=top_p, | |
): | |
token = message.choices[0].delta.content | |
response += token | |
yield response | |
# Custom CSS to change the title color and add a copyright notice | |
opq = """ | |
.gradio-container h1 { | |
color: #40E0D0 !important; | |
} | |
/* Add a footer for the copyright notice */ | |
#custom-footer { | |
position: fixed; | |
bottom: 0; | |
width: 100%; | |
background-color: #f1f1f1; | |
text-align: center; | |
padding: 10px 0; | |
font-size: 14px; | |
color: #333; | |
z-index: 1000; /* Ensure the footer is above other elements */ | |
} | |
""" | |
# HTML for the copyright notice | |
footer_html = """ | |
<div id="custom-footer"> | |
Rxle © 2021-2024. | |
</div> | |
""" | |
with gr.Blocks(css=opq) as demo: | |
gr.Markdown("# Welcome to Rxple Chat Bot") | |
gr.Markdown("Follow us on [Instagram](https://www.instagram.com/khellon_patel_21)") | |
chatbot = gr.Chatbot() | |
message = gr.Textbox(placeholder="Type a message...") | |
submit = gr.Button("Send") | |
with gr.Row(): | |
system_message = gr.Textbox(value="You are a friendly Chatbot.", label="System message") | |
max_tokens = gr.Slider(minimum=1, maximum=2048, value=2048, step=1, label="Max new tokens") | |
temperature = gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature") | |
top_p = gr.Slider(minimum=0.1, maximum=1.0, value=0.95, step=0.05, label="Top-p (nucleus sampling)") | |
gr.HTML(footer_html) # Add the footer HTML here | |
def update_chat(message, history, system_message, max_tokens, temperature, top_p): | |
response = list(respond(message, history, system_message, max_tokens, temperature, top_p)) | |
history.append((message, response[-1])) | |
return history, history | |
submit.click(update_chat, [message, chatbot, system_message, max_tokens, temperature, top_p], [chatbot, chatbot]) | |
message.submit(update_chat, [message, chatbot, system_message, max_tokens, temperature, top_p], [chatbot, chatbot]) | |
if __name__ == "__main__": | |
demo.launch(share=True) |