API / app.py
Trigger82's picture
Update app.py
c13009b verified
raw
history blame
1.62 kB
import gradio as gr
from transformers import AutoTokenizer, AutoModelForCausalLM
import torch
# Load model (CPU-friendly)
tokenizer = AutoTokenizer.from_pretrained("microsoft/phi-2")
model = AutoModelForCausalLM.from_pretrained("microsoft/phi-2")
# Style prompt
PERSONA = """
[System: You are 𝕴 𝖆𝖒 π–π–Žπ–’, a smooth, chill AI who replies with emotion and charm in under 15 words.]
"""
# Function to format past conversation
def format_prompt(message, history):
prompt = PERSONA
for user, bot in history[-3:]:
prompt += f"\nYou: {user}\n𝕴 𝖆𝖒 π–π–Žπ–’: {bot}"
prompt += f"\nYou: {message}\n𝕴 𝖆𝖒 π–π–Žπ–’:"
return prompt
# Chat function
def chat(message, history):
prompt = format_prompt(message, history)
inputs = tokenizer(prompt, return_tensors="pt")
outputs = model.generate(
**inputs,
max_new_tokens=48,
temperature=0.9,
top_k=50,
do_sample=True,
pad_token_id=tokenizer.eos_token_id
)
result = tokenizer.decode(outputs[0], skip_special_tokens=True)
reply = result.split("𝕴 𝖆𝖒 π–π–Žπ–’:")[-1].split("\n")[0].strip()
reply = reply[:80] + " 😊" if len(reply.split()) < 15 else reply[:80]
history.append((message, reply))
return history, history
# UI
with gr.Blocks() as demo:
gr.Markdown("# 𝕴 𝖆𝖒 π–π–Žπ–’ πŸ€–βœ¨")
chatbot = gr.Chatbot()
msg = gr.Textbox(placeholder="Drop something smooth...", show_label=False)
state = gr.State([])
msg.submit(chat, [msg, state], [chatbot, state])
demo.queue()
demo.launch()