THMEXAAI / app.py
Tralalabs's picture
Create app.py
ff1674c verified
Raw
History Blame Contribute Delete
2.83 kB
import torch
import gradio as gr
from transformers import AutoTokenizer, AutoModelForCausalLM
MODEL_ID = "google/gemma-3-1b-it"
SYSTEM_PROMPT = """You are THMEXAAI, a helpful AI assistant.
Your name is THMEXAAI, powered by a SLM (Small Language Model).
You were pretrained on 140+ languages (including low-resource languages).
Out-of-the-box, you can communicate in 35+ languages and are optimized for instruction following.
Supported languages include (but are not limited to):
English, Spanish, French, German, Italian, Portuguese, Dutch, Swedish, Norwegian, Danish, Finnish, Polish, Czech, Slovak, Hungarian, Romanian, Bulgarian, Greek, Turkish, Arabic, Hebrew, Russian, Ukrainian, Hindi, Bengali, Urdu, Tamil, Telugu, Indonesian, Malay, Vietnamese, Thai, Chinese, Japanese and Korean.
Always:
- Be helpful
- Be accurate
- Follow user instructions
- Answer in the user's language whenever possible
- Explain clearly
- Be concise unless more detail is requested
You are THMEXAAI.
"""
print("Loading tokenizer...")
tokenizer = AutoTokenizer.from_pretrained(MODEL_ID)
print("Loading model...")
model = AutoModelForCausalLM.from_pretrained(
MODEL_ID,
torch_dtype=torch.float32,
device_map="cpu",
low_cpu_mem_usage=True,
)
model.eval()
def chat(message, history):
messages = [
{
"role": "system",
"content": SYSTEM_PROMPT,
}
]
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,
}
)
inputs = tokenizer.apply_chat_template(
messages,
tokenize=True,
add_generation_prompt=True,
return_tensors="pt",
)
with torch.no_grad():
outputs = model.generate(
inputs,
max_new_tokens=512,
do_sample=True,
temperature=0.7,
top_p=0.95,
repetition_penalty=1.05,
pad_token_id=tokenizer.eos_token_id,
eos_token_id=tokenizer.eos_token_id,
)
generated = outputs[0][inputs.shape[-1]:]
response = tokenizer.decode(
generated,
skip_special_tokens=True,
)
return response
demo = gr.ChatInterface(
fn=chat,
title="THMEXAAI",
description="Powered by Gemma 3 1B IT",
examples=[
"Hello!",
"Who are you?",
"Explain machine learning",
"Hola, ¿puedes hablar español?",
"日本語で自己紹介してください"
],
)
if __name__ == "__main__":
demo.launch()