Magien i CluedIn

https://youtu.be/WrVayWXPUOo?si=XIUybRa5jS6w0Bmk

IPython, kommandoshellen bag Jupyter notebooks, tilbyder en fantastisk funktion kaldet magics. Kort sagt kan du springe Python-kode over og bruge en mere kommandolinje-lignende syntaks.

Denne tilgang kan forenkle mange gentagne opgaver, herunder arbejde med CluedIn Python SDK. I denne artikel vil jeg introducere dig til CluedIn Magic -- pakken der lader dig arbejde med CluedIn API med minimal kode.

CluedIn Magic afhænger af CluedIn Python SDK, så du behøver kun at installere en enkelt pakke for at få dem begge:

%pip install cluedin-magic

Når man arbejder med produkter som Microsoft Fabric, Synapse Analytics, Databricks osv., forudinstallerer jeg normalt pakkerne i et environment, så man ikke behøver at køre linjen ovenfor.

Nu kan vi indlæse CluedIn Magic ved at kalde %load_ext magic:

%load_ext cluedin_magic

Herefter kan du kalde %cluedin magic. Hvis du gør det uden parametre eller med forkerte parametre, giver den en kort hjælpetekst:

Available commands: get-context, search
Usage:
%cluedin get-context --jwt <jwt>
%cluedin search --context <context> --query <query> [--limit <limit>]

Hent CluedIn-kontekst

Når du arbejder med CluedIn API, har du brug for en kontekst -- et domæne, organisationsnavn, e-mail, adgangskode eller API token. Hvad nu hvis jeg fortæller dig, at du bare skal bruge et API token, og så løser CluedIn Magic automagisk resten? Lad os prøve!

Først skal du bare bruge et API token — det kan du hente fra Administration -> API Tokens i CluedIn.

I eksemplet herunder gemmer jeg det i en environment-variabel og kan derefter hente det ind i en variabel:

access_token = %env ACCESS_TOKEN
ctx = %cluedin get-context --jwt $access_token

Giv det nu bare til CluedIn Magic, og du får en fungerende CluedIn-kontekst:

ctx = %cluedin get-context --jwt eyJhbGci...5Odvpr1g

Du kan nu bruge denne kontekst med CluedIn Python SDK eller CluedIn Magic.

Søgning

Sig du vil indlæse alle /Infrastructure/User-entiteter — angiv en kontekst og en forespørgsel, og få en pandas DataFrame med dine data:

%cluedin search --context ctx --query +entityType:/Infrastructure/User
notebook

Du kan få et udsnit ved at angive en grænse, hvis du har millioner af entiteter. I det næste eksempel henter jeg ti entiteter ud af alle entiteter i systemet:

%cluedin search --context ctx --query * --limit 10

I det næste eksempel henter jeg ti poster af typen /IMDb/Name, hvor vocabulary key-propertyen imdb.name.birthYear ikke er lig med \\N:

%cluedin search --context ctx --query +entityType:/IMDb/Name -properties.imdb.name.birthYear:"\\\\N" --limit 10

Du kan også gemme resultaterne i en variabel og bruge den som en almindelig pandas DataFrame:

pd = %cluedin search --context ctx --query +entityType:/IMDb/Name +properties.imdb.name.birthYear:1981
pd.head()