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

TypeScript v2 および Python 関数での言語モデル

Palantir は、関数内で使用できる言語モデルを提供しています。Palantir が提供する LLM について詳しくはこちら。

前提条件

Palantir が提供する言語モデルを使用するには、次の条件を満たしていることを確認してください。

言語モデルをインポートする

言語モデルの使用を開始するには、次の手順に従って、使用するモデルを関数のコードリポジトリにインポートする必要があります。

  1. リソースのインポートパネルでプラットフォーム SDK タブを開きます。

TypeScript v2 リポジトリでプラットフォーム SDK のリソースにアクセスするためのタブ。

  1. 新しい言語モデルをインポートするには、右上の追加 > モデルを選択します。ウィンドウが開き、利用可能な Palantir 提供のモデルおよび登録済みモデルを表示できます。

TypeScript v2 リポジトリのモデルインポートダイアログ。

  1. インポートするモデルを選択し、選択を確定を選択します。設定ダイアログが開き、選択した各モデルのエイリアスを設定できます。編集するにはエイリアスの近くにあるペンアイコンを選択します。デフォルトを保持することもできます。

各モデルにはエイリアスが必要です。エイリアスはリポジトリ内で一意でなければなりません。

インポートするモデルを選択した後にモデルのエイリアスを設定します。

  1. インポートしたモデルが、リソースのインポートサイドパネルのプラットフォーム SDK タブに表示されます。エイリアスの横にあるペンアイコンを選択すると、任意のエイリアスをインラインで編集できます。

モデルのエイリアスをインラインで設定します。

プラットフォーム SDK タブでは、カスタムエイリアスも定義できます。カスタムエイリアスには、インストール担当者が Marketplace でのインストール時にカスタマイズできる設定パラメーター、機能フラグ、または環境固有の設定が格納されます。

言語モデルを使用する関数を記述する

TypeScript v2 および Python 関数の言語モデルは、プロキシエンドポイントを使用してモデルとやり取りします。次の例では、OpenAI チャット補完プロキシエンドポイントを使用します。ドキュメントのサイドパネルからほかのプロバイダーを選択できます。

次の例の openai などのサードパーティーライブラリは、プリインストールされていません。左側のサイドパネルのライブラリセクションからインストールします。

インポートした言語モデルを関数で使用するには、まず必要なユーティリティをインポートします。

Copied!
1 2 3 4 import { PlatformClient } from "@osdk/client"; import OpenAI from "openai"; import { Aliases } from "@osdk/functions"; import { getFoundryToken, getOpenAiBaseUrl, createFetch } from "@osdk/language-models";
Copied!
1 2 3 4 5 6 7 8 from openai import OpenAI from functions.api import function from functions.aliases import model from foundry_sdk.v2.language_models import ( get_openai_base_url, get_foundry_token, get_http_client, )

設定したモデルのエイリアスと、インポートしたユーティリティを使用して、モデルを直接呼び出します。この方法は TypeScript v1 のワークフローよりもシンプルで、リソース識別子をハードコードする必要性を減らします。

Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 export default async function callOpenAi(client: PlatformClient, prompt: string): Promise<string> { const oaiClient = new OpenAI({ apiKey: await getFoundryToken(client), baseURL: getOpenAiBaseUrl(client), fetch: createFetch(client), }); const completion = await oaiClient.chat.completions.create({ model: Aliases.model("{MY_ALIAS}").rid, messages: [ { role: 'user', content: prompt }, ], max_completion_tokens: 200, }); return completion.choices[0]?.message.content ?? ""; }
Copied!
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 @function def get_chat_completion(prompt: str) -> str: client = OpenAI( api_key=get_foundry_token(preview=True), base_url=get_openai_base_url(preview=True), http_client=get_http_client(preview=True), ) completion = client.chat.completions.create( model=model("{MY_ALIAS}").rid, messages=[ { "role": "user", "content": prompt, }, ], ) return str(completion.choices[0].message.content)