anktechsol's picture
Update app.py
526c5bd verified
import gradio as gr
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
# Load Anki-2.5 model
model_name = "anktechsol/anki-2.5"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(
model_name,
torch_dtype=torch.float32,
device_map="auto"
)
def respond(message, history, system_message, max_tokens, temperature, top_p):
"""
Market Intelligence Assistant for Indian Businesses powered by Anki-2.5
Provides insights on Indian market trends, business strategies, and more
"""
# Build prompt manually
prompt = system_message + "\n\n"
# Add history
for msg in history:
if isinstance(msg, dict):
role = msg.get("role", "")
content = msg.get("content", "")
if role == "user":
prompt += f"User: {content}\n"
elif role == "assistant":
prompt += f"Assistant: {content}\n"
elif len(msg) == 2:
prompt += f"User: {msg[0]}\n"
prompt += f"Assistant: {msg[1]}\n"
# Add current message
prompt += f"User: {message}\nAssistant:"
# Generate response
inputs = tokenizer(prompt, return_tensors="pt").to(model.device)
with torch.no_grad():
outputs = model.generate(
inputs["input_ids"],
max_new_tokens=max_tokens,
temperature=temperature,
top_p=top_p,
do_sample=True,
pad_token_id=tokenizer.eos_token_id
)
response = tokenizer.decode(outputs[0][inputs["input_ids"].shape[-1]:], skip_special_tokens=True)
return response
# Create ChatInterface focused on business intelligence
chatbot = gr.ChatInterface(
respond,
title="📈 Indian Market Intelligence - Powered by Anki-2.5",
description="Get market insights, business strategies, and intelligence for the Indian market. Ask about trends, regulations, consumer behavior, and more!",
examples=[
["भारत में ई-कॉमर्स बिजनेस शुरू करने के लिए क्या चाहिए?"],
["What are the key consumer trends in tier 2 Indian cities?"],
["Explain GST compliance for small businesses in India"],
["ভারতীয় বাজারে ডিজিটাল মার্কেটিং এর গুরুত্ব"],
["How can I expand my retail business to rural India?"],
],
additional_inputs=[
gr.Textbox(
value="You are a market intelligence assistant specializing in the Indian market. You provide insights on business trends, consumer behavior, regulations like GST, market entry strategies, and digital transformation. You understand the Indian business landscape including urban, tier-2, and rural markets. Respond in Hindi or English as needed.",
label="System Message"
),
gr.Slider(minimum=50, maximum=1024, value=512, step=1, label="Max Tokens"),
gr.Slider(minimum=0.1, maximum=1.5, 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"),
],
theme=gr.themes.Soft(),
)
if __name__ == "__main__":
chatbot.launch()