mushfiqur / app.py
MD Musfiqure Rahim
Update app.py
edfdcd4 verified
Raw
History Blame Contribute Delete
4.78 kB
#!/usr/bin/env python3
"""
Gradient.com এ Lychee-GPT-9B চালানোর জন্য script
Gradient Notebook এ এটা run করুন
"""
import torch
from transformers import AutoTokenizer, AutoModelForCausalLM
import gradio as gr
import os
print("🚀 Installing dependencies...")
os.system("pip install -q torch transformers gradio accelerate safetensors")
print("📥 Loading Lychee-GPT-9B model...")
print("⏱️ এটা 5-10 মিনিট লাগতে পারে...")
MODEL_ID = "deepreinforce-ai/Ornith-1.0-9B"
try:
# Load tokenizer
tokenizer = AutoTokenizer.from_pretrained(
MODEL_ID,
trust_remote_code=True
)
# Load model
model = AutoModelForCausalLM.from_pretrained(
MODEL_ID,
torch_dtype=torch.float32,
device_map="auto", # Gradient automatically optimizes
trust_remote_code=True,
)
model.eval()
print("✅ Model loaded successfully!")
except Exception as e:
print(f"❌ Error loading model: {e}")
model = None
tokenizer = None
def generate_text(prompt, max_length=256, temperature=0.7, top_p=0.9):
"""Generate text using Lychee-GPT-9B"""
if model is None or tokenizer is None:
return "❌ Model failed to load"
try:
inputs = tokenizer(prompt, return_tensors="pt")
with torch.no_grad():
output = model.generate(
inputs["input_ids"],
max_new_tokens=int(max_length),
temperature=float(temperature),
top_p=float(top_p),
do_sample=True,
pad_token_id=tokenizer.eos_token_id,
)
response = tokenizer.decode(output[0], skip_special_tokens=True)
if prompt in response:
response = response.replace(prompt, "", 1).strip()
return response if response else "No response generated"
except Exception as e:
return f"❌ Error: {str(e)}"
# Create Gradio interface
print("\n🎨 Creating Gradio interface...")
with gr.Blocks(title="Lychee-GPT-9B", theme=gr.themes.Soft()) as demo:
gr.Markdown("""
# 🎉 Lychee-GPT-9B Demo
আপনার নিজস্ব LLM Model - Gradient এ চলছে!
⏱️ **প্রথম response একটু slow হতে পারে (model warming up)**
""")
with gr.Row():
with gr.Column(scale=1):
prompt = gr.Textbox(
label="প্রশ্ন/Prompt",
placeholder="কিছু লিখুন...",
lines=4,
info="আপনার প্রশ্ন বা prompt দিন"
)
with gr.Row():
max_len = gr.Slider(
label="Max Length",
minimum=10,
maximum=512,
value=256,
step=10,
)
with gr.Row():
temp = gr.Slider(
label="Temperature",
minimum=0.0,
maximum=1.0,
value=0.7,
step=0.1,
)
top_p = gr.Slider(
label="Top P",
minimum=0.0,
maximum=1.0,
value=0.9,
step=0.05,
)
submit_btn = gr.Button("🚀 Generate", variant="primary", size="lg")
with gr.Column(scale=1):
output = gr.Textbox(
label="Response",
lines=10,
interactive=False,
)
# Examples
gr.Examples(
examples=[
["বাংলা ভাষা সম্পর্কে বলুন"],
["পাইথন প্রোগ্রামিং কি?"],
["একটি সংক্ষিপ্ত গল্প বলুন"],
["কৃত্রিম বুদ্ধিমত্তা কি?"],
],
inputs=prompt,
label="উদাহরণ প্রশ্ন"
)
# Connect button
submit_btn.click(
fn=generate_text,
inputs=[prompt, max_len, temp, top_p],
outputs=output,
)
# Allow Enter key
prompt.submit(
fn=generate_text,
inputs=[prompt, max_len, temp, top_p],
outputs=output,
)
print("\n🌐 Launching Gradio interface...")
print("=" * 50)
print("Space URL will appear below 👇")
print("=" * 50)
# Launch
demo.launch(
server_name="0.0.0.0",
server_port=7860,
share=True,
show_error=True,
)