File size: 830 Bytes
d296b47
 
7788a9e
7c9ce53
7788a9e
d296b47
 
 
 
 
 
 
 
 
 
7788a9e
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
from smolagents import Tool
from huggingface_hub import InferenceClient
from PIL import Image
import requests
from io import BytesIO

class ImageCaptioningTool(Tool):
    description = "Cet outil génère une légende descriptive pour une image donnée."
    name = "image_captioner"
    inputs = {"image_url": {"type": "string", "description": "URL de l'image à décrire."}}
    output_type = "string"
    model_id = "Salesforce/blip-image-captioning-large"
    client = InferenceClient(model_id)

    def forward(self, image_url):
        response = requests.get(image_url)
        if response.status_code == 200:
            image = Image.open(BytesIO(response.content))
            return self.client.image_to_text(image)
        else:
            return f"Erreur lors du téléchargement de l'image : {response.status_code}"