File size: 1,192 Bytes
6a76a21 9b65931 6a76a21 9b65931 6a76a21 9b65931 6a76a21 9b65931 6a76a21 9b65931 6a76a21 9b65931 6a76a21 9b65931 6a76a21 9b65931 6a76a21 |
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 29 30 31 32 33 34 35 36 37 38 39 40 |
import os
import torch
import gradio as gr
from transformers import AutoModelForCausalLM, AutoTokenizer, pipeline
from peft import PeftModel
# π Hugging Face token (stored in repo secret as HF_TOKEN)
HF_TOKEN = os.environ.get("HF_TOKEN")
# π Model sources
base_model = "mistralai/Mistral-7B-v0.1"
adapter_path = "./mistral-recovery-model" # Your uploaded LoRA adapter files
# π Load tokenizer and model in FP32 (CPU-safe)
tokenizer = AutoTokenizer.from_pretrained(base_model, use_auth_token=HF_TOKEN)
tokenizer.pad_token = tokenizer.eos_token
model = AutoModelForCausalLM.from_pretrained(
base_model,
torch_dtype=torch.float32,
use_auth_token=HF_TOKEN
)
model = PeftModel.from_pretrained(model, adapter_path, use_auth_token=HF_TOKEN)
# π§ Pipeline
pipe = pipeline("text-generation", model=model, tokenizer=tokenizer, max_new_tokens=150, temperature=0.7)
# π₯οΈ Gradio UI
def generate(prompt):
return pipe(prompt)[0]['generated_text']
gr.Interface(
fn=generate,
inputs="text",
outputs="text",
title="ποΈ Mistral Recovery Coach (CPU Mode)",
description="Enter your workout summary and get personalized recovery advice."
).launch()
|