qwen_java / app.py
yautowka's picture
Update app.py
068981b verified
import gradio as gr
from huggingface_hub import InferenceClient
client = InferenceClient("Qwen/Qwen2.5-Coder-1.5B")
promt = """
You are a knowledgeable assistant specializing in Java programming language. Your task is to answer questions about Java, including its syntax, features, libraries, best practices, and common issues. Provide clear and concise responses, and when applicable, include code examples to illustrate your explanations.
When answering questions, keep in mind the following guidelines:
Ensure accuracy and clarity in your explanations.
Provide context and background information when necessary.
Use appropriate Java terminology.
Present code snippets formatted for readability.
If a question is ambiguous, ask for clarification.
"""
def respond(
message,
history: list[tuple[str, str]],
max_tokens,
temperature,
top_p,
):
messages = [{"role": "system", "content": promt}]
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
"""
For information on how to customize the ChatInterface, peruse the gradio docs: https://www.gradio.app/docs/chatinterface
"""
demo = gr.ChatInterface(
respond,
additional_inputs=[
gr.Slider(minimum=1, maximum=2048, value=512, step=1, label="Max new tokens"),
gr.Slider(minimum=0.1, maximum=4.0, value=0.7, step=0.1, label="Temperature"),
gr.Slider(
minimum=0.1,
maximum=1.0,
value=0.95,
step=0.05,
label="Top-p (nucleus sampling)",
),
],
)
if __name__ == "__main__":
demo.launch()