注: 以下の翻訳の正確性は検証されていません。AIPを利用して英語版の原文から機械的に翻訳されたものです。
Foundry API はさまざまな機能を公開しており、関数内で Foundry プラットフォーム SDK ライブラリを使用して活用できます。プラットフォーム SDK を使用すると、管理やガバナンスのワークフロー向けの関数を作成したり、スケジュールやビルドを操作したり、メディアセットにアクセスしたりできます。
TypeScript v1 関数はファーストクラス認証に対応していません。これらのワークフローには Python 関数と TypeScript v2 関数を使用することを推奨します。
Foundry プラットフォーム SDK をインストールするには、コードリポジトリのライブラリサイドパネルに移動し、SDK 名を検索します。Python の場合は foundry-platform-sdk、TypeScript の場合は @osdk/foundry です。
Python の foundry-platform-sdk には Python 3.9 以降が必要です。Python 3.14 への対応は、foundry-platform-sdk バージョン 1.93.0 から開始されます。それより前の SDK バージョンでは、Python 3.14 を使用すると typing モジュールのエラーが返される場合があります。これらのエラーを解消するには、バージョン 1.93.0 以降にアップグレードします。または、Python 3.11、3.12、3.13 を使用します。
関数が Foundry API を操作するには認証が必要です。このプロセスでは、認証済みの「クライアント」をインスタンス化します。このクライアントを通じて、SDK から Foundry API にリクエストを送信できます。TypeScript v2 リポジトリでは、@osdk/client ライブラリが必要です。このライブラリはプリインストールされているはずです。緑色のピンが表示されているかどうかで確認できます。
関数の認証が完了すると、Foundry API を使用できるようになります。以下の例では、Python と TypeScript のそれぞれで言語モデルを呼び出したり、メディアセットにクエリを実行したりする方法を示します。
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 31import { Client, // 関数がオントロジーとやり取りする場合は Client を使用します PlatformClient // 関数がオントロジーとやり取りしない場合は PlatformClient を使用します } from "@osdk/client"; import { Functions } from "@osdk/foundry"; export default async function useLlm( client: PlatformClient, // このパラメーターには、実行時に Foundry によって値が設定されます prompt: string ): Promise<string> { const promptMessage = [ { role: "USER", content: prompt } ]; const result = await Functions.Queries.execute( client, "com.foundry.languagemodelservice.models.gpt41.CreateChatCompletion", { parameters: { messages: promptMessage } }, { preview: true, // 不安定なエンドポイントでのみ必要です。API リファレンスを参照してください } ); return result.value["completion"] as string; }
Copied!1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16from foundry_sdk import FoundryClient @function def media_item_to_base64(media_item_rid: str, media_set_rid: str) -> str: foundry_client = FoundryClient() result = foundry_client.media_sets.MediaSet.read( media_set_rid=media_set_rid, media_item_rid=media_item_rid, preview=True # 不安定なエンドポイントでのみ必要です。API リファレンスを参照してください ) # バイナリストリームを base64 エンコードされた文字列に変換します base64_encoded = base64.b64encode(result).decode('utf-8') return base64_encoded
TypeScript v2 クライアント(実行時に Foundry から関数に渡されます)と、コード内で初期化した Python クライアントには、以下の権限スコープがあります。
api:admin-readapi:functions-readapi:ontologies-readapi:orchestration-readapi:usage:mediasets-readapi:usage:ontologies-write各プラットフォーム API エンドポイントを呼び出すには、特定のスコープが必要です。これらのスコープに関するドキュメントは、API リファレンスで確認できます。
Foundry 関数は、api:usage:datasets-read スコープを使用したデータセットの直接読み取りに対応していません。データセットの読み取りでは権限エラーが返されます。Code Workspaces のライブプレビューでは、ユーザーコンテキストとすべてのスコープで実行されるためコードの実行に成功する場合がありますが、デプロイ済みの関数では権限が制限されているため、実行に失敗する場合があります。