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()