Bhaskar2611's picture
Update app.py
cc19933 verified
# 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()
# import os
# import gradio as gr
# from dotenv import load_dotenv
# from huggingface_hub import InferenceClient
# # Load environment variables
# load_dotenv()
# HF_TOKEN = os.getenv("HF_TOKEN")
# if not HF_TOKEN:
# raise ValueError("HF_TOKEN is missing.")
# # Initialize client
# client = InferenceClient(
# api_key=HF_TOKEN
# )
# # System prompt
# 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."
# )
# def chat_function(message, history):
# messages = [
# {
# "role": "system",
# "content": system_message
# }
# ]
# history = history or []
# for item in history:
# if isinstance(item, dict):
# role = item.get("role")
# content = item.get("content", "")
# if role in ["user", "assistant"]:
# messages.append({
# "role": role,
# "content": content
# })
# elif isinstance(item, (list, tuple)) and len(item) == 2:
# user_msg, assistant_msg = item
# if user_msg:
# messages.append({
# "role": "user",
# "content": user_msg
# })
# if assistant_msg:
# messages.append({
# "role": "assistant",
# "content": assistant_msg
# })
# messages.append({
# "role": "user",
# "content": message
# })
# try:
# completion = client.chat.completions.create(
# model="Qwen/Qwen2.5-Coder-7B-Instruct:nscale",
# messages=messages,
# max_tokens=2048,
# temperature=0.7,
# top_p=0.95,
# )
# return completion.choices[0].message.content
# except Exception as e:
# return f"Error: {str(e)}"
# # Interface
# demo = gr.ChatInterface(
# fn=chat_function,
# type="messages",
# title="AI Coding Assistant",
# description="A coding assistant powered by Qwen2.5-Coder."
# )
# # Launch
# if __name__ == "__main__":
# demo.launch()
import os
import gradio as gr
from dotenv import load_dotenv
from huggingface_hub import InferenceClient
# Load environment variables
load_dotenv()
HF_TOKEN = os.getenv("HF_TOKEN")
if not HF_TOKEN:
raise ValueError("HF_TOKEN is missing.")
# Initialize client with featherless-ai router
client = InferenceClient(
base_url="https://router.huggingface.co/featherless-ai/v1",
api_key=HF_TOKEN,
)
# System prompt
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."
)
def chat_function(message, history):
messages = [
{
"role": "system",
"content": system_message
}
]
history = history or []
for item in history:
if isinstance(item, dict):
role = item.get("role")
content = item.get("content", "")
if role in ["user", "assistant"]:
messages.append({
"role": role,
"content": content
})
elif isinstance(item, (list, tuple)) and len(item) == 2:
user_msg, assistant_msg = item
if user_msg:
messages.append({
"role": "user",
"content": user_msg
})
if assistant_msg:
messages.append({
"role": "assistant",
"content": assistant_msg
})
messages.append({
"role": "user",
"content": message
})
try:
completion = client.chat.completions.create(
model="Qwen/Qwen2.5-Coder-7B-Instruct",
messages=messages,
max_tokens=2048,
temperature=0.7,
top_p=0.95,
)
return completion.choices[0].message.content
except Exception as e:
return f"Error: {str(e)}"
# Interface
demo = gr.ChatInterface(
fn=chat_function,
type="messages",
title="AI Coding Assistant",
description="A coding assistant powered by Qwen2.5-Coder."
)
if __name__ == "__main__":
demo.launch()