|
from transformers import pipeline |
|
from PIL import Image |
|
|
|
|
|
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}") |
|
|
|
|
|
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, "") |
|
|
|
|