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

関数インターフェース

関数インターフェースは、関数の作者がカスタムロジックをネイティブFoundry機能と統合し、消費アプリケーションと関数の間で契約を定義する強力な方法を提供します。

関数インターフェースは、アプリケーションやユーザーが関数とどのようにやり取りするかを定義します。これには、関数の入力、出力、およびエラーが含まれます。言い換えれば、関数インターフェースは関数のシグネチャを説明しますが、関数インターフェース自体は関数ではありません。関数インターフェースは関数によって実装されるように設計されています。

いくつかのFoundryアプリケーションは、既知の入力、出力、およびエラーを考慮してインターフェースを実装する関数を実行する際に、特殊な動作を提供するために関数インターフェースを使用します。ユーザーは特定の関数インターフェースの独自の実装を提供することができ、Foundryはこの特殊な動作を提供し続けることができます。特定の関数インターフェースに依存するFoundry内のアプリケーションは、そのインターフェースを実装するすべての関数を発見することができます。

たとえば、AIP Logicは関数インターフェースに依存して、ユーザーが独自のLLMをLogic関数に持ち込むことを可能にします。具体的には、AIP LogicのUse LLMボードでは、ユーザーがPalantirが提供するLLMまたは登録済みLLMを選択できます。登録済みモデルは、Foundryが提供する関数インターフェースを実装したユーザーが作成した関数です。たとえば、チャット完了関数インターフェースです。これにより、AIP Logicはチャット完了の実装として明示的に定義された関数を発見し、一般的なLLMのシグネチャを持ち、AIP Logicが適切に処理できるエラーを返すことができます。将来的には、ユーザー提供のチャット完了の実装は、Pipeline Builder、AIP Agent Studio、Model Catalogなどのプラットフォームの他の部分でも使用できるようになります。

関数インターフェースを使用してLLMを登録する方法を学ぶ

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

以下のリストは、現在Palantirが提供する関数インターフェースを含んでいます:

ChatCompletion

説明: 

  • マルチターンおよびマルチユーザーのテキスト会話履歴に基づいて文脈に関連するテキスト応答を生成する関数。
  • 会話のユースケースに最適です。

Foundry統合: 

  • AIP Logicの_Use 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

各パラメーターの入力名は、特定の入力位置において関数インターフェースで定義された入力名と一致する必要があります。リンティングが示すように、各入力名が関数インターフェースで宣言された位置ごとに正確に同じであることを確認してください。

一般的なエラー: 入力名が一致しない。

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

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

一般的なエラー: 必須入力が含まれていない。

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

コンパイラは、実装する関数がインターフェースで定義された関数と互換性がないとして拒否する場合があります。その場合、実装する関数が関数インターフェースで定義された関数と互換性があることを確認してください。各タイプの構造が関数インターフェースで定義されたタイプと比較して一致するかを確認してください。

一般的なエラー: 関数がインターフェースと互換性がない。