セマンティック カーネル プロンプト テンプレートを使用する

完了

セマンティック カーネル プロンプト テンプレート言語は、プレーン テキストを使用して AI 関数を定義および作成する簡単な方法です。 これを使用すると、自然言語プロンプトの作成、応答の生成、情報の抽出、他のプロンプトの呼び出し、テキストで表現できるその他のタスクの実行を行うことができます。 プロンプト テンプレートは、アプリケーションの機能を拡張するための堅牢な再利用可能なプロンプトを作成できるため、価値があります。

この言語を使うと、中かっこ {{...}} を使って、変数を含めたり、外部関数を呼び出したり、パラメーターを関数に渡したりすることができます プロンプトに式を埋め込みます。 セマンティック カーネルはテンプレートを解析し、その背後にあるロジックを実行します。 プロンプト テンプレートを使用すると、複雑なコードを必要とせずに、AI をアプリに簡単に統合できます。

プロンプト テンプレートを作成する

プロンプトで変数を使用するには、 {{$variableName}} 構文を使用します。 スペースは無視されるため、必要に応じて {{ $variableName }} を使用することもできます。 変数 cityを使用するプロンプト テンプレートの例を次に示します。

I'm traveling to {{$city}}. What is the best way to get around and explore the city?

関数を呼び出してプロンプトで結果を使用するには、{{namespace.functionName}} 構文を使用します。 たとえば、関数 weather.getForecastがある場合は、次のように記述できます。

The weather today is {{weather.getForecast}}

変数またはハードコーディングされた値を使用して、関数にパラメーターを渡すこともできます。 たとえば、 weather.getForecast が入力として市区町村名を受け取る場合は、次の例を使用できます。

The weather today in {{$city}} is {{weather.getForecast $city}}.
The weather today in Barcelona is {{weather.getForecast "Barcelona"}}.

プロンプト テンプレートの実行

プロンプトを実行するには、まず、KernelFunctionを使用してプロンプトからkernel.CreateFunctionFromPrompt オブジェクトを作成する必要があります。 その後、任意の変数を含む KernelArguments オブジェクトを作成し、 InvokeAsyncを使用して関数を呼び出すことができます。 カーネル自体またはInvokeAsync オブジェクトでKernelFunctionを呼び出すことができます。 次に例を示します。

string city = "Rome";
var prompt = "I'm visiting {{$city}}. What are some activities I should do today?";

var activitiesFunction = kernel.CreateFunctionFromPrompt(prompt);
var arguments = new KernelArguments { ["city"] = city };

// InvokeAsync on the KernelFunction object
var result = await activitiesFunction.InvokeAsync(kernel, arguments);
Console.WriteLine(result);

// InvokeAsync on the kernel object
result = await kernel.InvokeAsync(activitiesFunction, arguments);
Console.WriteLine(result);
city = "Rome"
prompt = "I'm visiting {{$city}}. What are some activities I should do today?"

activities_function = kernel.create_function_from_prompt(prompt)
arguments = {"city": city}

# Invoke on the KernelFunction object
result = await activities_function.invoke_async(kernel, arguments)
print(result)

# Invoke on the kernel object
result = await kernel.invoke_async(activities_function, arguments)
print(result)

セマンティック カーネル プロンプト テンプレート言語を使用すると、自然言語を使用してアプリに AI 主導の機能を簡単に追加できます。 変数、関数呼び出し、パラメーターのサポートにより、複雑なコードなしで再利用可能で動的なテンプレートを作成できます。 これは、よりスマートで適応性の高いアプリケーションを構築するためのシンプルで強力な方法です。