raceDog / model.py
hiba787's picture
Update model.py
6ec80ce verified
from transformers import pipeline
from PIL import Image
# Charger le modèle de classification
model = pipeline("image-classification", model="facebook/deit-base-distilled-patch16-224", device=0)
def predict(image: Image.Image):
image = image.convert("RGB").resize((224, 224))
predictions = model(image)
label = predictions[0]['label']
confidence = predictions[0]['score']
return label, confidence
def get_advice(label: str, lang: str = "fr") -> str:
print(f"Label détecté : {label} | Langue : {lang}")
# Dictionnaire bilingue
advice_dict = {
"Golden Retriever": {
"fr": "Tempérament : Doux, amical, sociable\nTaille moyenne : 55 à 60 cm\nActivité : Élevé, aime courir et nager\nEspérance de vie : 10 à 12 ans",
"en": "Temperament: Gentle, friendly, social\nAverage size: 55 to 60 cm\nActivity: High, loves running and swimming\nLifespan: 10 to 12 years"
},
"Labrador Retriever": {
"fr": "Tempérament : Amical, intelligent, joueur\nTaille moyenne : 55 à 62 cm\nActivité : Très élevé, adore les longues balades\nEspérance de vie : 12 à 14 ans",
"en": "Temperament: Friendly, smart, playful\nAverage size: 55 to 62 cm\nActivity: Very high, loves long walks\nLifespan: 12 to 14 years"
},
"German Shepherd": {
"fr": "Tempérament : Loyal, protecteur, courageux\nTaille moyenne : 60 à 65 cm\nActivité : Très actif, besoin d'entraînement régulier\nEspérance de vie : 9 à 13 ans",
"en": "Temperament: Loyal, protective, brave\nAverage size: 60 to 65 cm\nActivity: Very active, needs regular training\nLifespan: 9 to 13 years"
},
"Bulldog": {
"fr": "Tempérament : Calme, affectueux, têtu\nTaille moyenne : 35 à 40 cm\nActivité : Faible, préfère les petites promenades\nEspérance de vie : 8 à 10 ans",
"en": "Temperament: Calm, affectionate, stubborn\nAverage size: 35 to 40 cm\nActivity: Low, prefers short walks\nLifespan: 8 to 10 years"
},
"Beagle": {
"fr": "Tempérament : Curieux, joyeux, gentil\nTaille moyenne : 33 à 41 cm\nActivité : Élevé, adore explorer\nEspérance de vie : 12 à 15 ans",
"en": "Temperament: Curious, cheerful, kind\nAverage size: 33 to 41 cm\nActivity: High, loves to explore\nLifespan: 12 to 15 years"
},
"Eskimo dog, husky": {
"fr": "Tempérament : Indépendant, énergique, loyal\nTaille moyenne : 50 à 60 cm\nActivité : Très élevé, aime courir et tirer des traîneaux\nEspérance de vie : 12 à 15 ans",
"en": "Temperament: Independent, energetic, loyal\nAverage size: 50 to 60 cm\nActivity: Very high, loves running and pulling sleds\nLifespan: 12 to 15 years"
},
"Maltese dog, Maltese terrier, Maltese": {
"fr": "Tempérament : Joyeux, sociable, affectueux\nTaille moyenne : 23 à 30 cm\nActivité : Modéré, aime jouer et se promener\nEspérance de vie : 14 à 16 ans",
"en": "Temperament: Joyful, social, affectionate\nAverage size: 23 to 30 cm\nActivity: Moderate, loves playing and walking\nLifespan: 14 to 16 years"
},
"Bichon Frisé": {
"fr": "Tempérament : Joyeux, sociable, affectueux\nTaille moyenne : 23 à 30 cm\nActivité : Modéré, aime jouer et se promener\nEspérance de vie : 14 à 16 ans",
"en": "Temperament: Joyful, social, affectionate\nAverage size: 23 to 30 cm\nActivity: Moderate, loves playing and walking\nLifespan: 14 to 16 years"
},
"bull mastiff": {
"fr": "Tempérament : Calme, courageux, fidèle\nTaille moyenne : 61 à 68 cm\nActivité : Moyenne, aime les courtes promenades\nEspérance de vie : 8 à 10 ans",
"en": "Temperament: Calm, brave, loyal\nAverage size: 61 to 68 cm\nActivity: Medium, enjoys short walks\nLifespan: 8 to 10 years"
},
"basenji": {
"fr": "Tempérament : Indépendant, alerte, affectueux\nTaille moyenne : 40 à 43 cm\nActivité : Élevée, aime courir et jouer\nEspérance de vie : 12 à 16 ans",
"en": "Temperament: Independent, alert, affectionate\nAverage size: 40 to 43 cm\nActivity: High, loves running and playing\nLifespan: 12 to 16 years"
}
}
breed_info = advice_dict.get(label, {})
return breed_info.get(lang, "")