Bhaskar2611's picture
Update app.py
b2ec231 verified
raw
history blame
3.59 kB
# import os
# import gradio as gr
# from huggingface_hub import InferenceClient
# from dotenv import load_dotenv
# # Load environment variables
# load_dotenv()
# HF_TOKEN = os.getenv("HF_TOKEN")
# # Initialize Hugging Face Inference Client
# client = InferenceClient(
# model="mistralai/Mistral-7B-Instruct-v0.3",
# token=HF_TOKEN
# )
# # System prompt for coding assistant
# system_message = (
# "You are a helpful and experienced coding assistant specialized in web development. "
# "Help the user by generating complete and functional code for building websites. "
# "You can provide HTML, CSS, JavaScript, and backend code (like Flask, Node.js, etc.) "
# "based on their requirements."
# )
# # Streaming chatbot logic
# def respond(message, history):
# # Prepare messages with system prompt
# messages = [{"role": "system", "content": system_message}]
# for msg in history:
# messages.append(msg)
# messages.append({"role": "user", "content": message})
# # Stream response from the model
# response = ""
# for chunk in client.chat.completions.create(
# model="mistralai/Mistral-7B-Instruct-v0.3",
# messages=messages,
# max_tokens=1024,
# temperature=0.7,
# top_p=0.95,
# stream=True,
# ):
# token = chunk.choices[0].delta.get("content", "") or ""
# response += token
# yield response
# # Create Gradio interface
# with gr.Blocks() as demo:
# chatbot = gr.Chatbot(type='messages') # Use modern message format
# gr.ChatInterface(fn=respond, chatbot=chatbot, type="messages") # Match format
# # Launch app
# if __name__ == "__main__":
# demo.launch()
import os
import gradio as gr
from huggingface_hub import InferenceClient
from dotenv import load_dotenv
# Load environment variables
load_dotenv()
HF_TOKEN = os.getenv("HF_TOKEN")
# Initialize Hugging Face Inference Client
client = InferenceClient(
model="Qwen/Qwen2.5-Coder-7B-Instruct",
token=HF_TOKEN
)
# System prompt for coding assistant
system_message = (
"You are a helpful and experienced coding assistant specialized in web development. "
"Help the user by generating complete and functional code for building websites. "
"You can provide HTML, CSS, JavaScript, and backend code (like Flask, Node.js, etc.) "
"based on their requirements."
)
# Streaming chatbot logic
def respond(message, history):
# Prepare messages with system prompt
messages = [{"role": "system", "content": system_message}]
for user_msg, assistant_msg in history:
messages.append({"role": "user", "content": user_msg})
messages.append({"role": "assistant", "content": assistant_msg})
messages.append({"role": "user", "content": message})
# Stream response from the model
response = ""
for chunk in client.chat.completions.create(
model="Qwen/Qwen2.5-Coder-7B-Instruct",
messages=messages,
max_tokens=2048,
temperature=0.7,
top_p=0.95,
stream=True,
):
# Safely handle empty choices
if not chunk.choices:
continue
# Safely extract token content
token = chunk.choices[0].delta.content or ""
response += token
yield response
# Create Gradio interface
with gr.Blocks() as demo:
chatbot = gr.Chatbot(type='messages') # Use modern message format
gr.ChatInterface(fn=respond, chatbot=chatbot, type="messages") # Match format
# Launch app
if __name__ == "__main__":
demo.launch()