Tawanamohammadi
Create app.py
1b7150a verified
from transformers import AutoModelForCausalLM, AutoTokenizer
import torch
import gradio as gr
# لود مدل و توکنایزر
model_name = "mistralai/Mistral-7B-Instruct-v0.3"
tokenizer = AutoTokenizer.from_pretrained(model_name)
model = AutoModelForCausalLM.from_pretrained(model_name, device_map="cpu", torch_dtype=torch.float32)
# تابع چت برای رابط کاربری
def chat_fn(message, history):
prompt = f"<s>[INST] {message} [/INST]"
inputs = tokenizer(prompt, return_tensors="pt")
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=100,
do_sample=True,
temperature=0.7
)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
return response
# تابع برای API
def api_predict(message):
prompt = f"<s>[INST] {message} [/INST]"
inputs = tokenizer(prompt, return_tensors="pt")
with torch.no_grad():
outputs = model.generate(
**inputs,
max_new_tokens=100,
do_sample=True,
temperature=0.7
)
response = tokenizer.decode(outputs[0], skip_special_tokens=True)
return {"response": response}
# رابط کاربری و API
with gr.Blocks(title="Mistral 7B Chatbot") as demo:
gr.Markdown("# چت‌بات Mistral 7B")
gr.Markdown("این چت‌بات روی Spaces رایگان اجرا می‌شه و API هم داره!")
chatbot = gr.ChatInterface(fn=chat_fn)
gr.Interface(fn=api_predict, inputs="text", outputs="json", title="API Endpoint")
demo.launch(server_name="0.0.0.0", server_port=7860)