Utiliser une entrée multimodale avec AI Functions (préversion)

Important

Cette fonctionnalité est en version préliminaire.

Les fonctions IA appliquent, en une ligne, des transformations alimentées par des LLM à des DataFrames pandas ou PySpark volumineux, avec un haut niveau de concurrence par défaut. Avec une entrée modale, vous pouvez également traiter des images, des fichiers PDF et des fichiers texte pour classifier des documents, synthétiser des fichiers PDF, extraire des informations à partir d’images, etc.

Utilisez ce tableau pour accéder rapidement à des exemples multimodaux et à la documentation détaillée.

Function Description Documentation détaillée
ai.analyze_sentiment Détecter les sentiments dans les fichiers. Exemple. pandas, PySpark
ai.classify Classifiez les fichiers à l’aide de vos étiquettes. Exemple. pandas, PySpark
ai.extract Extrayez des champs à partir de fichiers. Exemple. pandas, PySpark
ai.fix_grammar Corriger l’orthographe, la grammaire et la ponctuation dans les fichiers. Exemple. pandas, PySpark
ai.generate_response Générez des réponses ancrées dans le contenu du fichier. Exemple. pandas, PySpark
ai.summarize Résumez le contenu du fichier. Exemple. pandas, PySpark
ai.translate Traduire le contenu du fichier. Exemple. pandas, PySpark
aifunc.load Chargez des fichiers à partir d’un dossier dans une table structurée. Exemple. Syntaxe et paramètres
aifunc.list_file_paths Obtenir les chemins d’accès aux fichiers à partir d’un dossier. Exemple. Syntaxe et paramètres
ai.infer_schema Déduire un schéma d’extraction à partir du contenu du fichier. Exemple. Syntaxe et paramètres

Types de fichiers pris en charge

Les fonctions IA modales prennent en charge les types de fichiers suivants :

  • Images : jpg, jpeg, png, gif statique, webp
  • Documents : pdf
  • Fichiers texte : md, txt, csv, tsv, json, xml, py et autres fichiers texte

Note

  • Les appels multimodaux avec des entrées sous forme de chemins de fichiers fonctionnent avec l’API responses, qui est utilisée par défaut. Ne définissez pas api_type sur chat_completions pour les champs de chemin de fichier.
  • Les formats de fichiers Office (tels que .docx, .pptxet .xlsx) ne sont actuellement pas pris en charge.
  • Vous pouvez convertir des fichiers .docx et .pptx en fichiers PDF et .xlsx en CSV avant de les utiliser avec des fonctions IA modales.
  • Chaque fichier d’entrée est limité à 50 Mo de taille.

Protocoles d’URL pris en charge

Les entrées modales sont des chaînes qui utilisent l’un des protocoles d’URL suivants :

  • chemins d’accès aux fichiers locaux
  • http(s)
  • wasbs
  • abfs(s)

Prerequisites

Les fonctions IA modales partagent les mêmes prérequis que les fonctions IA basées sur du texte. Pour obtenir la liste complète, consultez Conditions préalables.

Configurer vos fichiers

Organisez vos fichiers dans un dossier qui peut être référencé par un chemin d’accès ou une chaîne de style glob.

Conseil / Astuce

Utilisez les notebooks de démarrage AI Functions pour des exemples complets d’AI Functions qui utilisent toutes les fonctionnalités d’AI Functions. Les blocs-notes de démarrage incluent un bloc-notes pour pandas et un bloc-notes pour PySpark.

Exemple

Vous pouvez stocker des fichiers dans un Lakehouse attaché à votre bloc-notes.

folder_path = "/lakehouse/default/Files"

Charger vos fichiers

Pour utiliser AI Functions avec une entrée multimodale, vous pouvez soit charger le contenu des fichiers dans une table structurée, soit faire référence directement aux chemins d’accès des fichiers dans votre DataFrame. Les exemples suivants montrent les deux approches.

Charger des fichiers dans une table

Utilisez la aifunc.load fonction pour lire des fichiers à partir d’un dossier et générer une table structurée. La fonction peut déduire la structure du tableau par elle-même, ou vous pouvez fournir une indication pour guider l’extraction, ou un schéma pour assurer une structure cohérente. Cette approche est utile lorsque vous souhaitez que l’IA extraye des informations spécifiques des fichiers et la présente dans un format structuré.

df, schema = aifunc.load(folder_path)
# or
df, schema = aifunc.load(folder_path, prompt="Give me candidate's name and the most recent company they worked for.")
display(df)

Charger des chemins de fichier dans une colonne

Vous pouvez également utiliser aifunc.list_file_paths pour obtenir la liste des chemins d’accès aux fichiers à partir d’un dossier et les charger dans une colonne DataFrame. Cette approche est utile lorsque vous souhaitez exécuter ai Functions sur chaque fichier.

Note

La plupart des fonctions multimodales acceptent des chemins de fichiers avec column_type="path" dans pandas ou input_col_type/col_types="path" dans PySpark.

file_path_series = aifunc.list_file_paths(folder_path)
df = pd.DataFrame({"file_path": file_path_series}).reset_index(drop=True)
display(df)

Important

Lorsque vos chemins de fichier sont stockés sous forme d’URL de chaîne dans une colonne DataFrame, vous devez indiquer explicitement à la fonction IA de traiter les valeurs comme des chemins de fichier plutôt que du texte brut.

Pour les fonctions IA de niveau série (fonctionnant sur une seule colonne), définissez le column_type paramètre :

df["result"] = df["file_path"].ai.analyze_sentiment(column_type="path")

Pour les fonctions IA au niveau dataFrame (fonctionnant sur plusieurs colonnes), utilisez le column_type_dict paramètre :

df["result"] = df.ai.generate_response(
    prompt="Describe the content.",
    column_type_dict={"file_path": "path"},
)

Note

Si vous utilisez aifunc.list_file_paths() pour créer votre colonne de chemin d’accès de fichier, les objets retournés yarl.URL sont automatiquement détectés en tant que chemins de fichier. Vous devez uniquement spécifier column_type="path" quand votre colonne contient des URL de chaîne simple.

Nouvelles fonctions multimodales

aifunc.load: Importer des fichiers dans une table

La aifunc.load fonction lit tous les fichiers à partir d’un chemin d’accès au dossier et génère une table structurée à partir de son contenu. Vous pouvez éventuellement fournir une instruction pour guider l’extraction ou un schéma pour assurer une structure cohérente.

Syntaxe

df, schema = aifunc.load(folder_path, prompt=None, schema=None)

Paramètres

Nom Description
folder_path (Obligatoire) Chemin de chaîne vers un dossier ou un modèle de type glob correspondant aux fichiers.
prompt (Facultatif) Chaîne qui guide le processus de génération de table. Utilisez-le pour spécifier les champs à extraire des fichiers.
schema (Facultatif) Objet de schéma (retourné par un appel précédent load ) qui définit la structure de table. Lorsqu’elle est fournie, la fonction utilise directement ce schéma.

Retours

Un tuple de (DataFrame, schema). Le DataFrame contient les données structurées extraites des fichiers. Le schéma peut être réutilisé dans les appels suivants load pour obtenir des résultats cohérents.

Exemple

# This code uses AI. Always review output for mistakes.

# Basic load – let the AI infer the table structure
df, schema = aifunc.load(folder_path)
display(df)
# This code uses AI. Always review output for mistakes.

# Guided load – provide a prompt to specify what to extract
guided_df, guided_schema = aifunc.load(
    folder_path,
    prompt="Give me candidate's name and the most recent company they worked for.",
)
display(guided_df)

aifunc.list_file_paths : Répertorier les fichiers

La aifunc.list_file_paths fonction extrait tous les chemins d’accès de fichiers valides à partir d’un dossier spécifié. Vous pouvez utiliser les chemins d’accès de fichier retournés comme entrée pour n’importe quelle fonction d’IA multimodale. La fonction prend également en charge les modèles de style glob.

Syntaxe

file_path_series = aifunc.list_file_paths(folder_path)

Paramètres

Nom Description
folder_path (Obligatoire) Chemin de chaîne vers un dossier ou un modèle de type glob correspondant aux fichiers.

Retours

Une série pandas d’objets, indexée par leur représentation sous forme de yarl.URL chaîne. Ces yarl.URL objets sont automatiquement traités comme des chemins d’accès de fichiers par AI Functions. Vous n’avez donc pas besoin de spécifier column_type="path".

Exemple

# This code uses AI. Always review output for mistakes.

file_path_series = aifunc.list_file_paths(folder_path)
custom_df = pd.DataFrame({"file_path": file_path_series}).reset_index(drop=True)
display(custom_df)

ai.infer_schema : déduire le schéma à partir de fichiers

La ai.infer_schema fonction déduit un schéma commun à partir du contenu du fichier. Le schéma déduit est représenté sous la forme d'une liste d'objets aifunc.ExtractLabel que vous pouvez passer directement à ai.extract pour l'extraction de données structurées.

Syntaxe

schema = df["file_path"].ai.infer_schema(column_type="path")

Paramètres

Nom Description
prompt (Facultatif) Chaîne pour guider l’inférence de schéma. Si elle n’est pas fournie, la fonction déduit le schéma du contenu du fichier seul.
n_samples (Facultatif) Entier spécifiant le nombre d’éléments à échantillonner pour l’inférence. La valeur par défaut est 3.
column_type (Facultatif) Définissez "path" pour traiter les valeurs de la colonne comme des chemins d'accès de fichier.

Retours

Liste d’objets aifunc.ExtractLabel qui décrivent le schéma déduit. Vous pouvez transmettre cette liste à ai.extract pour extraire des données structurées à partir de fichiers.

Exemple

# This code uses AI. Always review output for mistakes.

# Infer a schema from file contents
schema = df["file_path"].ai.infer_schema(column_type="path")
for label in schema:
    print(label)

# Use the inferred schema with ai.extract
extracted_df = df["file_path"].ai.extract(*schema, column_type="path")
display(extracted_df)

Utiliser la saisie multimodale avec des fonctions d’IA existantes

Les exemples suivants montrent comment utiliser une entrée modale avec chacune des fonctions IA prises en charge.

ai.analyze_sentiment : détecter les sentiments à partir de fichiers

Pour obtenir des paramètres complets, consultez pandas ou PySpark.

# This code uses AI. Always review output for mistakes.

animal_urls = [
    "<image-url-golden-retriever>",  # Replace with URL to an image of a golden retriever
    "<image-url-giant-panda>",  # Replace with URL to an image of a giant panda
    "<image-url-bald-eagle>",  # Replace with URL to an image of a bald eagle
]
animal_df = pd.DataFrame({"file_path": animal_urls})

animal_df["sentiment"] = animal_df["file_path"].ai.analyze_sentiment(column_type="path")
display(animal_df)

ai.class : Classifier les fichiers

Pour obtenir des paramètres complets, consultez pandas ou PySpark.

# This code uses AI. Always review output for mistakes.

custom_df["highest_degree"] = custom_df["file_path"].ai.classify(
    "Master", "PhD", "Bachelor", "Other",
    column_type="path",
)
display(custom_df)

ai.extract : Extraire des entités à partir de fichiers

Pour obtenir des paramètres complets, consultez pandas ou PySpark.

# This code uses AI. Always review output for mistakes.

extracted = custom_df["file_path"].ai.extract(
    aifunc.ExtractLabel(
        "name",
        description="The full name of the candidate, first letter capitalized.",
        max_items=1,
    ),
    "companies_worked_for",
    aifunc.ExtractLabel(
        "year_of_experience",
        description="The total years of professional work experience the candidate has, excluding internships.",
        type="integer",
        max_items=1,
    ),
    column_type="path",
)
display(extracted)

ai.fix_grammar : Corriger la grammaire dans les fichiers

Pour obtenir des paramètres complets, consultez pandas ou PySpark.

# This code uses AI. Always review output for mistakes.

custom_df["corrections"] = custom_df["file_path"].ai.fix_grammar(column_type="path")
display(custom_df)

ai.generate_response : Appliquer des invites personnalisées aux fichiers

Pour obtenir des paramètres complets, consultez pandas ou PySpark.

# This code uses AI. Always review output for mistakes.

# Series-level: generate a response from each file
animal_df["animal_name"] = animal_df["file_path"].ai.generate_response(
    prompt="What type of animal is in this image? Give me only the animal's common name.",
    column_type="path",
)
display(animal_df)
# This code uses AI. Always review output for mistakes.

# DataFrame-level: use all columns as context
animal_df["description"] = animal_df.ai.generate_response(
    prompt="Describe this animal's natural habitat and one interesting fact about it.",
    column_type_dict={"file_path": "path"},
)
display(animal_df)

ai.summarize : Synthétiser les fichiers

Pour obtenir des paramètres complets, consultez pandas ou PySpark.

# This code uses AI. Always review output for mistakes.

# Summarize file content from a single column
custom_df["summary"] = custom_df["file_path"].ai.summarize(
    instructions="Summarize this file in one sentence for a support analyst.",
    column_type="path",
)
display(custom_df)

Vous pouvez résumer des valeurs sur toutes les colonnes d’un DataFrame en omettant la colonne d’entrée et en spécifiant des colonnes de chemin d’accès de fichier avec column_type_dict (pandas) ou col_types (PySpark) :

# This code uses AI. Always review output for mistakes.

custom_df["summary"] = custom_df.ai.summarize(
    column_type_dict={"file_path": "path"},
)
display(custom_df)

ai.translate : Traduire des fichiers

Pour obtenir des paramètres complets, consultez pandas ou PySpark.

# This code uses AI. Always review output for mistakes.

custom_df["chinese_version"] = custom_df["file_path"].ai.translate(
    "Chinese",
    column_type="path",
)
display(custom_df)

Évaluer la qualité de sortie

Utilisez les carnets d’évaluation AI Functions pour des flux de travail structurés qui utilisent un LLM comme juge afin d’évaluer des sorties multimodales et de calculer des métriques telles que l’exactitude, la précision, le rappel, le score F1, la cohérence, la constance et la pertinence. Vous pouvez utiliser ces flux de travail pour valider la qualité de la classification, de l’extraction, du résumé et d’autres résultats de fonction IA avant de passer en production.

Surveiller l’utilisation des coûts et de la capacité

Utilisez billing for AI Functions pour comprendre les coûts, l’utilisation du runtime et la surveillance de la capacité.