注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
このページでは TypeScript v1 関数について説明します。TypeScript v2 または Python については、TypeScript v2 および Python 関数での言語モデルを参照してください。オントロジー SDK と設定可能なリソースリクエストを使用するには、TypeScript v2 に移行してください。
Palantir は、関数内で使用できる言語モデルを提供しています。Palantir が提供する LLM の詳細をご覧ください。
Palantir が提供する言語モデルを使用するには、次の条件を満たしていることを確認してください。
言語モデルの使用を開始するには、以下の手順に従って、関数を記述するコードリポジトリに対象のモデルをインポートする必要があります。
Modeling Objectives アプリケーション、または以前に行ったモデルの直接デプロイを通じて作成されたカスタムモデルを表示できるタブもあります。これらのモデルの使用方法の詳細は、モデルに対する関数のドキュメントを参照してください。
インポートするモデルを選択し、選択を確定を選択して、これらのモデルをリポジトリにインポートします。タスクランナーが localDev タスクを実行し、これらのモデルとやり取りするためのコードバインディングを生成します。
言語モデルをインポートした後、サイドバーでモデルを選択すると、そのモデルが提供する機能の詳細を表示できます。また、モデルのインポートやモデルを使用する関数の作成に役立つコードスニペットをコピーできます。
これで、インポートした言語モデルを使用する関数を記述できます。この例では、GPT-4.1 をインポートしたものとします。
まず、次のインポート文をファイルに追加します。
Copied!1 2import { Function, Uses } from "@foundry/functions-api"; import { Gpt41 } from "@foundry/languagemodelservice/models";
各言語モデルでは、厳密に型付けされた入力と出力を持つメソッドが生成され、利用可能になります。たとえば、GPT-4.1 モデルは、モデルとやり取りするための異なる API として createChatCompletion、createChatVisionCompletion、createChatCompletionStreamed を提供します。インポートしたモデルの今後のバージョンでは、機能が増える可能性があります。
Foundry は、公開済みの関数から呼び出すモデルのメソッドを把握する必要があります。ほとんどの呼び出しは静的解析で自動的に検出されます。静的解析で検出されなかった呼び出しがあると、@Uses デコレーターを追加するよう指示する実行時エラーが発生します。このデコレーターは、自動的に検出された使用情報を補完します。以下の例およびモデルの詳細パネルのコードスニペットに示すように、デコレーターの queries キーにモデルのメソッドを宣言します。
次の例では、提供されている GPT-4.1 モデルを使用して、ユーザーが入力したテキストまたは画像に対して簡単な感情分析を実行します。この関数は、テキストを「Good」、「Bad」、または「Uncertain」に分類します。
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57const SYSTEM_PROMPT = "Provide an estimation of the sentiment the text the user has provided. \ You may respond with either Good, Bad, or Uncertain. Only choose Good or Bad if you are overwhelmingly \ sure that the text is either good or bad. If the text is neutral, or you are unable to determine, choose Uncertain."; export class MyFunctions { @Function() @Uses({ queries: [Gpt41.createChatCompletion] }) public async llmFunction_createChatCompletion(userPrompt: string): Promise<string | undefined> { const response = await Gpt41.createChatCompletion({ messages: [ { role: "SYSTEM", content: SYSTEM_PROMPT, }, { role: "USER", content: userPrompt, }, ], params: { temperature: 0, }, }); return response.type === "ok" ? response.value.completion : "error"; } @Function() @Uses({ queries: [Gpt41.createChatVisionCompletion] }) public async llmFunction_createChatVisionCompletion( userPrompt: string, pngBase64String: string, ): Promise<string | undefined> { const response = await Gpt41.createChatVisionCompletion({ messages: [ { role: "USER", content: [ { type: "text", text: userPrompt }, { type: "genericMedia", genericMedia: { mimeType: "IMAGE_PNG", // Base64 エンコードされた PNG 文字列 content: pngBase64String, }, }, ], }, ], params: { temperature: 0, }, }); return response.type === "ok" ? response.value.completion : "error"; } }
この関数は、プラットフォーム全体で使用できます。
@Uses デコレーターは、インポートしたモデルにも適用されます。これらの呼び出しは、たとえば @Uses({ queries: [Gpt41.createChatCompletion] }) のように、queries に宣言します。
Palantir は、生成言語モデルに加えて、埋め込みの生成に使用できるモデルも提供しています。簡単な例を以下に示します。
Copied!1 2 3 4 5 6@Function() @Uses({ queries: [Textembedding3large.createEmbeddings] }) public async llmFunction_embeddings(inputs: string[]): Promise<Double[][]> { const response = await Textembedding3large.createEmbeddings({ inputs }); return response.type === "ok" ? response.value.embeddings : [[]]; }
これは、主にセマンティック検索のワークフローを実行するために使用されます。
関数で使用できる更新版の言語モデルは、ビジョンやストリーミングのサポート強化など、より高度な機能を提供します。最新の AIP の機能を活用するために、リポジトリをアップグレードすることを強く推奨します。レガシー言語モデルをインポートしていない新しいリポジトリから開始する場合は、以下の手順を省略できます。
次の手順を実行すると、コードの構文が更新されるため、コードリポジトリでコンパイルエラーが発生します。コードを更新するには、更新された各モデルのサイドバーにあるコードスニペットを参照してください。
一部のモデルにはレート制限が適用され、一定期間内に渡せるトークン数が制限される場合があります。この制限は、関数に適用される標準的な制限と併せて適用されます。
注:AIP 機能の利用可否は変更される可能性があり、顧客によって異なる場合があります。