File size: 1,097 Bytes
ea983d7
11569e9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
ea983d7
11569e9
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
import gradio as gr
from transformers import BlenderbotForConditionalGeneration, BlenderbotTokenizer

# Load BlenderBot model and tokenizer
model_name = "facebook/blenderbot-400M-distill"
model = BlenderbotForConditionalGeneration.from_pretrained(model_name)
tokenizer = BlenderbotTokenizer.from_pretrained(model_name)

def respond(message, history):
    # Format history for BlenderBot (requires previous turns)
    chat_history = "\n".join([f"User: {h[0]}\nBot: {h[1]}" for h in history])
    full_text = f"{chat_history}\nUser: {message}\nBot:"
    
    # Tokenize and generate
    inputs = tokenizer([full_text], return_tensors="pt", truncation=True, max_length=512)
    reply_ids = model.generate(**inputs, max_length=200, temperature=0.9)
    response = tokenizer.batch_decode(reply_ids, skip_special_tokens=True)[0]
    
    # Extract only the latest bot response
    return response.split("Bot:")[-1].strip()

# Launch with Gradio
gr.ChatInterface(
    respond,
    title="🤖 Friendly BlenderBot",
    examples=["How are you?", "What's your favorite movie?"],
    theme="soft"
).launch()