注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。

関数インターフェース

関数インターフェースを使用すると、関数の作成者は独自のロジックを Foundry のネイティブ機能と統合できます。また、関数を利用するアプリケーションと関数の間の契約を定義するための強力な手段となります。

関数インターフェースは、アプリケーションやユーザーが関数をどのように利用するかを定義します。これには、関数の入力、出力、エラーが含まれます。つまり、関数インターフェースは関数のシグネチャを記述しますが、それ自体は関数ではありません。関数インターフェースは、関数によって実装されるように設計されています。

一部の Foundry アプリケーションは、関数インターフェースを使用し、既知の入力、出力、エラーに基づいて、そのインターフェースを実装する関数を実行するときに特化した動作を提供します。ユーザーが特定の関数インターフェースの独自実装を用意しても、Foundry はこの特化した動作を引き続き提供できます。特定の関数インターフェースに依存する Foundry 内のアプリケーションは、そのインターフェースを実装するすべての関数を発見できます。

たとえば、AIP Logic は関数インターフェースを利用して、ユーザーが独自の LLM を Logic 関数に組み込めるようにしています。具体的には、AIP Logic の LLM を使用ブロックで、Palantir が提供する LLM または登録済みの LLM を選択できます。登録済みモデルは、Foundry が提供する関数インターフェース(たとえば、チャット補完関数インターフェース)を実装した、ユーザー作成の関数です。これにより、AIP Logic は、チャット補完の実装であると明示的に定義され、汎用 LLM に典型的なシグネチャを持ち、AIP Logic が適切に処理できるエラーを返す関数を発見できます。今後、ユーザーが用意したチャット補完の実装は、Pipeline Builder や Model Catalog など、プラットフォームのほかの部分でも利用できるようになります。

登録済みモデル機能を使用して LLM を登録する方法を確認してください。関数インターフェースを使用するレガシーの方法については、関数インターフェースを使用して LLM を登録する[レガシー]を参照してください。

Palantir が提供する関数インターフェース

次のリストは、Palantir が現在提供している関数インターフェースです。

ChatCompletion

説明: 

  • 複数ターン、複数ユーザーによるテキスト会話の履歴に基づいて、文脈に即したテキストレスポンスを生成する関数です。
  • 対話型のユースケースに最適です。

Foundry との統合: 

  • AIP Logic の LLM を使用 ボード。
  • Pipeline Builder でのサポートは近日中に提供予定です。

ドキュメント: 

データ型のカスタマイズ

柔軟性を高めるため、関数インターフェースを実装するときに、用意されているデータ型だけを使用する必要はありません。場合によっては、独自のカスタム型を作成したいこともあります。関数インターフェースで定義された関数に対応している ↗限り、その関数はコンパイラーに受け入れられ、正常に公開されます。関数インターフェースが、すべてのフィールドが任意である入力データ型を定義している場合、そのデータ型をカスタマイズするときには、共通の任意フィールドを1つ以上共有している必要があります。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 ... interface CustomParams extends GenericCompletionParams { modelSpecificParam?: string } ... // 有効な実装 @ChatCompletion() public async myRegisteredModel( messages: FunctionsGenericChatCompletionRequestMessages, params: CustomParams ): Promise<FunctionsGenericChatCompletionResponse> { ... }

トラブルシューティング

関数インターフェースは、柔軟で、幅広い実装に対応できるように設計されています。ただし、関数インターフェースを実装するときにエラーが発生することがあります。ここでは、実装をカスタマイズするときにこれらのエラーを回避するための、TypeScript 関数に関するヒントを紹介します。

エラー: Function input name does not match the required input name of the function interface at the specific input position

各パラメーターの入力名は、それぞれの入力位置で、関数インターフェースに定義された入力名と一致する必要があります。Linter による解析で示されるとおり、各位置の入力名が、関数インターフェースで宣言された入力名と完全に一致していることを確認してください。

よくあるエラー:入力名が一致しません。

エラー: Function is missing input parameter of the function interface

このエラーは、実装する関数に、関数インターフェースで定義された必須の入力がすべて含まれていない場合に発生します。エラーを解決するには、関数インターフェースで宣言された各入力が、実装する関数に含まれていることを確認してください。

よくあるエラー:必須の入力が含まれていません。

エラー: Type {type1} is not assignable to type {type2}

コンパイラーは、実装する関数がインターフェースで定義された関数に対応していないとして、拒否する場合があります。その場合は、各データ型の構造を関数インターフェースで定義されたデータ型と比較し、実装する関数が、関数インターフェースで定義された関数に対応している ↗ことを確認してください。

よくあるエラー:関数がチャット補完デコレーターに対応していません。