Funkcje AI: Przekształcanie danych na dużą skalę za pomocą LLM

Funkcje AI w Microsoft Fabric stosują jednowierszowe transformacje obsługiwane przez modele LLM do dużych ramek danych pandas lub PySpark za pomocą jednego wiersza kodu df.ai.<function_name>(). Działają przy wysokim poziomie współbieżności, wykonując setki asynchronicznych wywołań inferencyjnych przy jednoczesnym zachowaniu izolacji treści na poziomie poszczególnych wierszy. Takie podejście pozwala wzbogacać, klasyfikować, podsumowywać i szybko wyodrębniać dane z nieustrukturyzowanego tekstu i dokumentów na dużą skalę.

Skorzystaj z tej tabeli, aby przejść do przykładów w tym przeglądzie lub w szczegółowej dokumentacji pandas i PySpark.

Function Description Szczegółowa dokumentacja
ai.analyze_sentiment Wykrywanie stanu emocjonalnego tekstu wejściowego. Przykład. pandas, PySpark
ai.classify Kategoryzuj tekst wejściowy zgodnie z etykietami. Przykład. pandas, PySpark
ai.embed Generuj osadzanie wektorów dla tekstu wejściowego. Przykład. pandas, PySpark
ai.extract Wyodrębnij pola, takie jak lokalizacje, nazwy lub jednostki niestandardowe. Przykład. pandas, PySpark
ai.fix_grammar Poprawna pisownia, gramatyka i interpunkcja. Przykład. pandas, PySpark
ai.generate_response Generuj odpowiedzi na podstawie instrukcji. Przykład. pandas, PySpark
ai.similarity Porównaj znaczenie tekstu z jedną wartością lub inną kolumną. Przykład. pandas, PySpark
ai.summarize Podsumuj tekst, pliki lub dane w wierszach. Przykład. pandas, PySpark
ai.translate Tłumaczenie tekstu wejściowego na inny język. Przykład. pandas, PySpark

Można używać funkcji AI w notesach korzystających z pandas lub PySpark, w zapytaniach SQL oraz w usłudze Dataflow Gen2. Fabric obsługuje konfigurację punktu końcowego dla wbudowanego modelu.

Korzystanie z funkcji sztucznej inteligencji w środowiskach Fabric

Funkcje sztucznej inteligencji są dostępne w wielu środowiskach Fabric:

  • Notatniki: Użyj interfejsów API pandas i PySpark, aby wzbogacać ramki danych w przepływach pracy z zakresu analizy danych i inżynierii danych.
  • Magazyn i punkt końcowy analizy SQL: Użyj funkcji AI w magazynie lub punkcie końcowym analizy SQL, aby wywoływać funkcje w stylu SQL, takie jak ai_summarize, ai_classify i ai_generate_response, bezpośrednio w zapytaniach T-SQL.
  • Dataflow Gen2: Użyj Fabric AI Prompt w Dataflow Gen2, aby dodać kolumny generowane przez sztuczną inteligencję w Power Query.
  • Kod T-SQL – Wywołaj funkcje AI poprzez wykorzystanie skryptów T-SQL lub notatników, procedur, funkcji lub aplikacji zewnętrznych wykonujących kod T-SQL w Fabric Data Warehouse, SQL Endpoints for Lakehouse lub mirrored databases. Ta metoda pozwala analitykom i deweloperom osadzać możliwości AI bezpośrednio w potokach danych i zapytaniach opartych na SQL, czyniąc ją dostępną bez konieczności przełączania się na środowisko notebooka.

Korzystanie z wielomodalnych funkcji sztucznej inteligencji

Funkcje wielomodalnej sztucznej inteligencji przetwarzają obrazy, pliki PDF i pliki tekstowe oprócz wartości tekstowych. Służy do podsumowywania plików PDF, klasyfikowania obrazów, wyodrębniania pól dokumentów lub generowania odpowiedzi uziemionych w zawartości pliku.

Obsługiwane typy plików to JPG/JPEG, PNG, static GIF, WebP, PDF, MD, TXT, CSV, TSV, JSON, XML, PY i inne pliki tekstowe. Ustaw column_type="path" w pandas lub input_col_type lub col_types w PySpark. Przykłady można znaleźć w temacie Use multimodal input with AI Functions (Używanie danych wejściowych wielomodalnych za pomocą funkcji sztucznej inteligencji).

Prerequisites

Note

  • Funkcje sztucznej inteligencji są obsługiwane w Fabric Runtime 1.3 i nowszych.
  • Funkcje AI [pandas, PySpark, Dataflow Gen2 i Datawarehouse SQL] są domyślnie ustawione na gpt-5-mini, przy czym reasoning_effort jest ustawione na low. Ten model ma okno kontekstowe o wielkości 400 000 tokenów i maksymalnie 128 000 tokenów wyjściowych. Aby uzyskać informacje o limitach i szybkościach modelu, zobacz tabelę modeli językowych.
  • Funkcje sztucznej inteligencji nie rejestrują ani nie przechowują monitów użytkownika, danych wejściowych ani danych wyjściowych.

Modele i dostawcy

Funkcje sztucznej inteligencji domyślnie używają wbudowanego punktu końcowego Fabric. Możesz również skonfigurować funkcje AI bibliotek pandas i PySpark tak, aby korzystały z dowolnego modelu LLM obsługującego interfejs API chat_completions lub responses, w tym:

  • Modele Azure OpenAI.
  • modele Microsoft Foundry, takie jak Qwen, Kimi, Grok, LLaMA, Mistral i inne.

Aby uzyskać informacje o opcjach konfiguracji, zobacz Dostosowywanie funkcji sztucznej inteligencji za pomocą biblioteki pandas i Dostosowywanie funkcji sztucznej inteligencji za pomocą rozwiązania PySpark.

Konfigurowanie funkcji sztucznej inteligencji

Funkcje sztucznej inteligencji obsługują biblioteki pandas w środowiskach uruchomieniowych Python i PySpark oraz PySpark w środowisku uruchomieniowym PySpark. Zainstaluj tylko pakiety wymagane przez środowisko uruchomieniowe.

Instalowanie zależności

Runtime Zależności
pandas (środowisko wykonawcze Python) Zainstaluj pliki wheel synapseml_internal i synapseml_core. Zainstaluj openai wersję 1.99.5 lub nowszą tylko wtedy, gdy potrzebujesz natywnego zachowania klienta zestawu SDK lub przykładów formatu odpowiedzi Pydantic.
pandas (Fabric Runtime 2.0 z PySpark 4.1 i Python 3.13) Tymczasowo zainstaluj nest_asyncio. Zainstaluj openai wersję 1.99.5 lub nowszą tylko wtedy, gdy potrzebujesz natywnego zachowania klienta zestawu SDK lub przykładów formatu odpowiedzi Pydantic.
pandas (inne środowiska uruchomieniowe PySpark) W przypadku większości użycia nie jest wymagana instalacja. Zainstaluj openai wersję 1.99.5 lub nowszą tylko wtedy, gdy potrzebujesz natywnego zachowania klienta zestawu SDK lub przykładów formatu odpowiedzi Pydantic.
PySpark (środowisko uruchomieniowe PySpark) Instalacja nie jest wymagana.
T-SQL (środowisko uruchomieniowe punktu końcowego SQL Analytics i Data Warehouse) Instalacja nie jest wymagana.

Note

  • Instalacja nest_asyncio to tymczasowa poprawka kompatybilności dla Pandas AI Functions w Fabric Runtime 2.0. Ten wymóg zostanie usunięty w przyszłej aktualizacji.
  • Funkcje PySpark AI nie wymagają żadnych dodatkowych kroków instalacyjnych w środowiskach uruchomieniowych Fabric Spark.

Pandas (Fabric Runtime 2.0)

Fabric Runtime 2.0, oparty na Python 3.13 i PySpark 4.1, nie zawiera natywnie tego nest_asyncio pakietu. Aby używać funkcji AI biblioteki pandas w tym środowisku uruchomieniowym, zainstaluj nest_asyncio jako tymczasową poprawkę zgodności. Ten wymóg zostanie usunięty w przyszłych aktualizacjach, ponieważ funkcje AI pandas mogą korzystać z nowszego pakietu nest_asyncio2, który jest wstępnie zainstalowany w środowisku Fabric Runtime 2.0.

# Temporary compatibility patch for Fabric Runtime 2.0.
%pip install -q nest_asyncio 2>/dev/null

# Optional: install openai version 1.99.5 or later for SDK-native client behavior.
%pip install -q openai 2>/dev/null

pandas (inne środowiska uruchomieniowe PySpark)

# Optional: install openai version 1.99.5 or later for SDK-native client behavior.
%pip install -q openai 2>/dev/null

Pandas (środowisko wykonawcze Python)

# Install latest versions of AI Functions library whl
!wget -q https://aka.ms/fabric-aifunctions-whl -O synapseml_internal-latest-py3-none-any.whl
!wget -q https://aka.ms/fabric-synapseml-core-whl -O synapseml_core-latest-py3-none-any.whl

# openai version 1.99.5 or later is included for SDK-native client behavior.
# To keep the environment lightweight, remove "openai" from the install command.
%pip install -q openai synapseml_internal-latest-py3-none-any.whl synapseml_core-latest-py3-none-any.whl

Importowanie wymaganych bibliotek

Zaimportuj bibliotekę usługi AI Functions dla środowiska uruchomieniowego.

# Required imports
import synapse.ml.aifunc as aifunc
import pandas as pd

Używanie funkcji pomocnika dla plików i schematów

Funkcje sztucznej inteligencji obejmują pomocników dla wielomodalnych przepływów pracy:

  • aifunc.load: Importowanie plików z folderu do ustrukturyzowanej tabeli. Możesz podać monit lub schemat.
  • aifunc.list_file_paths: Wyliczanie adresów URL i ścieżek plików z folderu do użycia jako danych wejściowych dla dowolnej funkcji sztucznej inteligencji.
  • ai.infer_schema: Wywnioskuj schemat ekstrakcji na podstawie zawartości pliku na potrzeby ai.extract.

Przykłady można znaleźć w temacie Use multimodal input with AI Functions (Używanie danych wejściowych wielomodalnych za pomocą funkcji sztucznej inteligencji).

Stosowanie funkcji sztucznej inteligencji

Poniższe przykłady przedstawiają podstawowe funkcje AI dla pandas i PySpark. Funkcje AI w PySpark są uruchamiane jako rozproszone transformacje Spark w klastrach Fabric Spark.

Note

Większość funkcji AI obsługuje ścieżki plików z użyciem column_type="path" w pandas lub input_col_type/col_types="path" w PySpark. Przykłady można znaleźć w temacie Use multimodal input with AI Functions (Używanie danych wejściowych wielomodalnych za pomocą funkcji sztucznej inteligencji).

Tip

Domyślnym modelem Python jest gpt-5-mini z reasoning_effort="low". Aby zmienić modele lub dostosować ustawienia, zobacz konfiguracja biblioteki pandas lub konfiguracja PySpark.

ai.analyze_sentiment: Wykrywanie tonacji

Funkcja ai.analyze_sentiment oznacza każde dane wejściowe jako dodatnie, ujemne, mieszane lub neutralne. Możesz również podać etykiety niestandardowe.

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

df = pd.DataFrame([
        "The cleaning spray permanently stained my beautiful kitchen counter. Never again!",
        "I used this sunscreen on my vacation to Florida, and I didn't get burned at all. Would recommend.",
        "I'm torn about this speaker system. The sound was high quality, though it didn't connect to my roommate's phone.",
        "The umbrella is OK, I guess."
    ], columns=["reviews"])

df["sentiment"] = df["reviews"].ai.analyze_sentiment()
display(df)

Zrzut ekranu przedstawiający ramkę danych z kolumnami

ai.classify: Kategoryzowanie tekstu

Funkcja ai.classify kategoryzuje tekst wejściowy przy użyciu wprowadzonych etykiet.

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

df = pd.DataFrame([
        "This duvet, lovingly hand-crafted from all-natural fabric, is perfect for a good night's sleep.",
        "Tired of friends judging your baking? With these handy-dandy measuring cups, you'll create culinary delights.",
        "Enjoy this *BRAND NEW CAR!* A compact SUV perfect for the professional commuter!"
    ], columns=["descriptions"])

df["category"] = df['descriptions'].ai.classify("kitchen", "bedroom", "garage", "other")
display(df)

Zrzut ekranu przedstawiający ramkę danych z kolumnami

ai.embed: Generowanie osadzeń wektorowych

Funkcja ai.embed konwertuje tekst na wektory liczbowe, które przechwytują znaczenie semantyczne. Użyj osadzań na potrzeby wyszukiwania podobieństwa, pobierania i uczenia maszynowego.

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

df = pd.DataFrame([
        "This duvet, lovingly hand-crafted from all-natural fabric, is perfect for a good night's sleep.",
        "Tired of friends judging your baking? With these handy-dandy measuring cups, you'll create culinary delights.",
        "Enjoy this *BRAND NEW CAR!* A compact SUV perfect for the professional commuter!"
    ], columns=["descriptions"])
    
df["embed"] = df["descriptions"].ai.embed()
display(df)

Zrzut ekranu przedstawiający ramkę danych z kolumnami

ai.extract: Wyodrębnij encje

Funkcja ai.extract wyodrębnia pola, takie jak nazwy, lokalizacje lub jednostki niestandardowe z tekstu wejściowego.

Etykiety ustrukturyzowane

Użyj ExtractLabel, gdy potrzebujesz ekstrakcji z określeniem typu. Obsługuje on konstrukcje schematu JSON, takie jak pola typizowane, wyliczenia, tablice, obiekty zagnieżdżone, wartości dopuszczane do wartości null, wymagane właściwości i additionalProperties=false. Aby zapoznać się z przykładami, zobacz pandas lub PySpark.

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

df = pd.DataFrame([
        "MJ Lee lives in Tucson, AZ, and works as a software engineer for Microsoft.",
        "Kris Turner, a nurse at NYU Langone, is a resident of Jersey City, New Jersey."
    ], columns=["descriptions"])

df_entities = df["descriptions"].ai.extract("name", "profession", "city")
display(df_entities)

Zrzut ekranu przedstawiający nową ramkę danych z kolumnami

ai.fix_grammar: naprawianie gramatyki

Funkcja ai.fix_grammar poprawia pisownię, gramatykę i interpunkcję.

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

df = pd.DataFrame([
        "There are an error here.",
        "She and me go weigh back. We used to hang out every weeks.",
        "The big picture are right, but you're details is all wrong."
    ], columns=["text"])

df["corrections"] = df["text"].ai.fix_grammar()
display(df)

Zrzut ekranu przedstawiający ramkę danych z kolumną

ai.generate_response: stosowanie niestandardowych monitów użytkownika

Funkcja ai.generate_response tworzy niestandardowy tekst na podstawie danych monitu i wiersza.

Parametry opcjonalne

Użyj response_format polecenia , jeśli potrzebujesz danych wyjściowych ze strukturą, w tym obiektów JSON, schematu JSON lub modeli Pydantic. Aby zapoznać się z przykładami, zobacz pandas lub PySpark.

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

df = pd.DataFrame([
        ("Scarves"),
        ("Snow pants"),
        ("Ski goggles")
    ], columns=["product"])

df["response"] = df.ai.generate_response("Write a short, punchy email subject line for a winter sale.")
display(df)

Zrzut ekranu przedstawiający ramkę danych z kolumnami 'produkt' i 'odpowiedź'. Kolumna 'odpowiedź' zawiera chwytliwą linię tematu dla produktu.

ai.similarity: Oblicz podobieństwo

Funkcja ai.similarity porównuje każdą wartość wejściową z jedną wartością odwołania lub wartością w innej kolumnie. Wyniki wahają się od -1 oznaczającego przeciwne znaczenie do 1 oznaczającego identyczne znaczenie.

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

df = pd.DataFrame([ 
        ("Bill Gates", "Technology"), 
        ("Satya Nadella", "Healthcare"), 
        ("Joan of Arc", "Agriculture") 
    ], columns=["names", "industries"])
    
df["similarity"] = df["names"].ai.similarity(df["industries"])
display(df)

Zrzut ekranu przedstawiający ramkę danych z kolumnami

ai.summarize: Podsumowywanie tekstu

Funkcja ai.summarize podsumowuje tekst, zawartość pliku, jedną kolumnę lub wszystkie kolumny w każdym wierszu.

Dostosowywanie podsumowań za pomocą instrukcji

Służy instructions do kontrolowania tonu, długości, odbiorców lub fokusu. Aby zapoznać się z przykładami, zobacz pandas lub PySpark.

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

df= pd.DataFrame([
        ("Microsoft Teams", "2017",
        """
        The ultimate messaging app for your organization—a workspace for real-time 
        collaboration and communication, meetings, file and app sharing, and even the 
        occasional emoji! All in one place, all in the open, all accessible to everyone.
        """),
        ("Microsoft Fabric", "2023",
        """
        An enterprise-ready, end-to-end analytics platform that unifies data movement, 
        data processing, ingestion, transformation, and report building into a seamless, 
        user-friendly SaaS experience. Transform raw data into actionable insights.
        """)
    ], columns=["product", "release_year", "description"])

df["summaries"] = df["description"].ai.summarize()
display(df)

Zrzut ekranu przedstawiający ramkę danych. Kolumna

ai.translate: Tłumaczenie tekstu

Funkcja ai.translate tłumaczy tekst na inny język.

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

df = pd.DataFrame([
        "Hello! How are you doing today?", 
        "Tell me what you'd like to know, and I'll do my best to help.", 
        "The only thing we have to fear is fear itself."
    ], columns=["text"])

df["translations"] = df["text"].ai.translate("spanish")
display(df)

Zrzut ekranu przedstawiający ramkę danych z kolumnami

Łącz funkcje AI PySpark

Funkcje AI w PySpark zwracają obiekty DataFrame, które zachowują akcesor df.ai powiązany ze schematem wynikowym. Przekształcenia łańcuchowe bez materializowania pośrednich ramek danych.

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

output = (
    df
    .ai.summarize(input_col="review_text", output_col="summary")
    .ai.classify(
        labels=["service", "cleanliness", "location", "other"],
        input_col="summary",
        output_col="category",
    )
)
display(output)

Wyświetlanie statystyk użycia za pomocą ai.stats

Użyj ai.stats w serii lub ramce danych wygenerowanej przez sztuczną inteligencję, aby sprawdzić użycie i metryki wykonywania.

ai.stats zwraca ramkę danych ze statystykami, takimi jak:

  • num_successful: liczba wierszy przetworzonych pomyślnie przez funkcję sztucznej inteligencji.
  • num_exceptions: liczba wierszy, dla których wystąpił wyjątek podczas wykonania. Te wiersze są reprezentowane jako instancje aifunc.ExceptionResult.
  • num_unevaluated: liczba wierszy, które nie zostały przetworzone, ponieważ wcześniejszy wyjątek uniemożliwił kontynuowanie oceny. Te wiersze są reprezentowane jako instancje aifunc.NotEvaluatedResult.
  • num_harmful: liczba wierszy zablokowanych przez filtr zawartości openAI Azure. Te wiersze są reprezentowane jako instancje aifunc.FilterResult.
  • cached_tokens: Łączna liczba buforowanych tokenów wejściowych.
  • input_tokens: Łączna liczba tokenów wejściowych używanych do wywołania funkcji sztucznej inteligencji.
  • output_tokens: Łączna liczba tokenów wyjściowych wygenerowanych przez model.
  • reasoning_tokens: Łączna liczba tokenów rozumowania używanych przez modele rozumowania.
  • model: nazwa wdrożenia modelu używana na potrzeby wywołania funkcji sztucznej inteligencji.

Dane wyjściowe mogą wyglądać następująco:

num_successful num_exceptions num_unevaluated num_harmful cached_tokens input_tokens output_tokens tokeny_rozumowania client_type input_types model
2 0 0 0 0 555 4 0 fabric_llm_endpoint {"text": 2} gpt-5-mini

Tip

Użyj ai.stats, aby śledzić wykorzystanie, wzorce błędów i zużycie tokenów.

Wiersze, które osiągnęły limit pojemności, są wyświetlane jako instancje aifunc.CapacityExceededResult. W przepływach pracy w bibliotece pandas użyj aifunc.split_results, aby oddzielić pomyślne dane wyjściowe od braku wyników, dzięki czemu będzie można sprawdzić wiersze objęte ograniczeniem pojemności i ponowić próbę, gdy pojemność będzie dostępna lub problem z limitem zostanie rozwiązany.

Przejrzystość kosztów

Funkcje AI w pandas mogą podczas działania wyświetlać liczbę tokenów i szacowane zużycie jednostek pojemności przy użyciu progress_bar_mode="stats". W PySpark użyj df.ai.stats na wynikowej ramce DataFrame.

Aplikacja Fabric Capacity Metrics raportuje zużycie wywołań modelu jako operację AI Functions. Aby uzyskać szczegółowe informacje, zobacz Rozliczenia dla funkcji sztucznej inteligencji.

Ocenianie i przyspieszanie

Użyj notesów startowych usługi AI Functions , aby uzyskać kompleksowe przykłady bibliotek pandas i PySpark. Użyj notatników Eval funkcji SI, aby ocenić jakość danych wyjściowych przed wdrożeniem produkcyjnym.