Syntaxe šablony výzvy k sémantickému jádru
Jazyk šablon pro sémantické jádro představuje jednoduchý způsob, jak definovat a skládat funkce AI pomocí prostého textu. Můžete ho použít k vytváření výzev v přirozeném jazyce, generování odpovědí, extrahování informací, vyvolání dalších výzev nebo provedení jakékoli jiné úlohy, které lze vyjádřit textem.
Jazyk podporuje tři základní funkce, které umožňují 1) zahrnovat proměnné, 2) volání externích funkcí a 3) předávání parametrů funkcím.
Nemusíte psát žádný kód ani importovat žádné externí knihovny, stačí použít složené závorky {{...}}
k vložení výrazů do výzev.
Sémantické jádro analyzuje vaši šablonu a spustí logiku za ní.
Díky tomu můžete snadno integrovat AI do svých aplikací s minimálním úsilím a maximální flexibilitou.
Spropitné
Pokud potřebujete další možnosti, podporujeme také: Handlebars a Liquid šablonové motory, které umožňují používat smyčky, podmíněné výrazy a další pokročilé funkce.
Proměnné
Pokud chcete do výzvy zahrnout hodnotu proměnné, použijte syntaxi {{$variableName}}
.
Pokud máte například proměnnou s názvem name
, která obsahuje jméno uživatele, můžete napsat:
Hello {{$name}}, welcome to Semantic Kernel!
Tím se vytvoří pozdrav s uživatelským jménem.
Mezery se ignorují, takže pokud zjistíte, že je čitelnější, můžete také zapisovat:
Hello {{ $name }}, welcome to Semantic Kernel!
Volání funkcí
Pokud chcete volat externí funkci a vložit výsledek do výzvy, použijte syntaxi {{namespace.functionName}}
.
Pokud máte například funkci s názvem weather.getForecast
, která vrací předpověď počasí pro dané místo, můžete napsat:
The weather today is {{weather.getForecast}}.
Tím se vytvoří věta s předpověďmi počasí pro výchozí umístění uložené v proměnné input
.
Proměnná input
je automaticky nastavena jádrem při vyvolání funkce.
Výše uvedený kód je například ekvivalentní:
The weather today is {{weather.getForecast $input}}.
Parametry funkce
K volání externí funkce a předání parametru použijte {{namespace.functionName $varName}}
a {{namespace.functionName "value"}}
syntaxi.
Pokud například chcete funkci předpovědi počasí předat jiný vstup, můžete napsat:
The weather today in {{$city}} is {{weather.getForecast $city}}.
The weather today in Schio is {{weather.getForecast "Schio"}}.
Vytvoří se dvě věty s předpověďmi počasí pro dvě různá místa, přičemž město uložené v proměnné city
a "Schio" hodnotu umístění pevně zakódovanou v šabloně výzvy.
Poznámky ke speciálním znakům
Sémantické šablony funkcí jsou textové soubory, takže není nutné zpracovávat speciální znaky, jako jsou nové řádky a tabulátory. Existují však dva případy, které vyžadují speciální syntaxi:
- Zahrnutí dvojitých složených závorek do šablon výzev
- Předání pevně zakódovaných hodnot funkcím, které obsahují uvozovky
Výzvy vyžadující dvojité složené závorky
Dvojité složené závorky mají specifické využití, používají se k vkládání proměnných, hodnot a funkcí do šablon.
Pokud potřebujete do výzev zahrnout sekvence {{
a }}
, které by mohly aktivovat speciální logiku vykreslování, je nejlepším řešením použít řetězcové hodnoty uzavřené v uvozovkách, jako jsou {{ "{{" }}
a {{ "}}" }}
Například:
{{ "{{" }} and {{ "}}" }} are special SK sequences.
se zobrazí na:
{{ and }} are special SK sequences.
Hodnoty, které zahrnují uvozovky a escapování
Hodnoty mohou být uzavřeny pomocí jednoduchých uvozovek a dvojitých uvozovek.
Pokud se chcete vyhnout nutnosti speciální syntaxe, při práci s hodnotou, která obsahuje jednoduché uvozovky, doporučujeme hodnotu obalit dvojitými uvozovkami. Podobně při použití hodnoty, která obsahuje dvojité uvozovky, obklopte hodnotu jednoduchými uvozovkami.
Například:
...text... {{ functionName "one 'quoted' word" }} ...text...
...text... {{ functionName 'one "quoted" word' }} ...text...
V případech, kdy hodnota obsahuje jednoduché i dvojité uvozovky, budete potřebovat escaping, pomocí speciální «\
» symbol.
Při použití dvojitých uvozovek kolem hodnoty použijte «\"
» zahrnout dvojitou uvozovku do hodnoty:
... {{ "quotes' \"escaping\" example" }} ...
a podobně, když chcete použít jednoduché uvozovky, použijte «\'
» k zahrnutí jedné uvozovky do hodnoty:
... {{ 'quotes\' "escaping" example' }} ...
Obojí je vykresleno na:
... quotes' "escaping" example ...
Všimněte si, že pro konzistenci se sekvence «\'
» a «\"
» vždy vykreslují na «'
» a «"
», i když nemusí být vyžadováno escapování.
Například:
... {{ 'no need to \"escape" ' }} ...
odpovídá:
... {{ 'no need to "escape" ' }} ...
a oba se zobrazují na:
... no need to "escape" ...
Pokud potřebujete zapsat zpětné lomítko před uvozovkou, protože «\
» je speciální znak, budete muset také použít únikový znak a použít speciální sekvence «\\\'
» a «\\\"
».
Například:
{{ 'two special chars \\\' here' }}
se vykreslí na:
two special chars \' here
Podobně jako jednoduché a dvojité uvozovky nemusí být symbol «\
» vždy eskapován. Pro konzistenci to však může být vynecháno, i když to není vyžadováno.
Například:
... {{ 'c:\\documents\\ai' }} ...
odpovídá:
... {{ 'c:\documents\ai' }} ...
a oba se vykreslí jako:
... c:\documents\ai ...
A konečně, zpětné lomítka mají zvláštní význam pouze tehdy, když se používá před «'
», «"
» a «\
».
Ve všech ostatních případech nemá zpětné lomítko žádný vliv a zobrazuje se tak, jak je. Například:
{{ "nothing special about these sequences: \0 \n \t \r \foo" }}
se vykreslí na:
nothing special about these sequences: \0 \n \t \r \foo
Další kroky
Sémantické jádro podporuje kromě vlastního integrovaného formátu i další oblíbené formáty šablon. V dalších částech se podíváme na dodatečné formáty, Handlebars a šablony Liquid.