Assistants API (プレビュー) リファレンス
Note
- ファイル検索では、アシスタントあたり最大 10,000 個のファイルを取り込むことができます。これは以前の 500 倍以上の量です。 これは高速で、マルチスレッド検索を通して並列クエリをサポートしており、強化された再ランク付けとクエリの書き換えを特徴としています。
- ベクトル ストアは、API 内の新しいオブジェクトです。 ファイルがベクトル ストアに追加されると、自動的にそのファイルの解析、チャンク、埋め込みが行われ、検索の準備が整います。 ベクトル ストアは、複数のアシスタントとスレッドにわたって使用できるため、ファイル管理と課金が単純化されます。
- 特定の実行において特定のツール (ファイル検索、コード インタープリター、関数など) の使用を強制するために使用できる
tool_choice
パラメーターのサポートが追加されました。
この記事では、新しい Assistants API (プレビュー) に関する Python と REST のリファレンス ドキュメントを提供します。 さらに詳しい手順については、概要ガイドに関する記事をご覧ください。
アシスタントを作成する
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants?api-version=2024-05-01-preview
モデルと指示を使ってアシスタントを作成します。
要求本文
名前 | タイプ | Required | 説明 |
---|---|---|---|
モデル | string | 必須 | 使用するモデルのモデル デプロイ名。 |
name | 文字列または null 値 | 省略可能 | アシスタントの名前。 最大長は 256 文字です。 |
description | 文字列または null 値 | 省略可能 | アシスタントの説明。 最大長は 512 文字です。 |
instructions | 文字列または null 値 | 省略可能 | アシスタントが使うシステムの指示。 最大長は 256,000 文字です。 |
tools | 配列 | 省略可能 | 既定値は [] です。 アシスタントで有効になっているツールのリスト。 アシスタントごとに最大 128 個のツールを使用できます。 現在、tools で指定できる種類は code_interpreter または function です。 function の説明には、最大 1,024 文字を使用できます。 |
metadata | map | 省略可能 | オブジェクトにアタッチできる 16 個のキーと値のペアのセット。 これは、オブジェクトに関する追加情報を構造化された形式で格納する場合に役立ちます。 キーの最大長は 64 文字、値の最大長は 512 文字です。 |
温度 | 数値または null | 省略可能 | デフォルト値は 1 です。 使うサンプリング温度 (0 から 2) を決定します。 0.8 のような大きい値にすると、出力はよりランダムになり、0.2 のような小さい値にすると、出力はより集中的および決定論的になります。 |
top_p | 数値または null | 省略可能 | デフォルト値は 1 です。 温度によるサンプリングに代わる核サンプリングと呼ばれるもので、モデルは top_p の確率質量を持つトークンの結果を考慮します。 したがって、0.1 は、上位 10% の確率質量を含むトークンのみが考慮されることを意味します。 一般的に、これと temperature の両方ではなく、いずれかを変更することをお勧めします。 |
応答形式 | 文字列またはオブジェクト | 省略可能 | モデルから出力する必要がある形式を指定します。 GPT-4 Turbo と gpt-3.5-turbo-1106 以降のすべての GPT-3.5 Turbo モデルと互換性があります。 このパラメーターを { "type": "json_object" } に設定すると、JSON モードが有効になります。これにより、モデルが生成するメッセージが有効な JSON であることが保証されます。 重要な点として、JSON モードを使う場合、システムまたはユーザー メッセージを使って、ユーザー自身が JSON を生成することをモデルに指示する必要もあります。 この指示がないと、トークンの上限に達するまで、モデルはいつまでも空白のストリームを生成する可能性があります。その結果、実行時間が長く、一見 "スタック" しているように見える要求が発生します。 さらに、finish_reason="length" を使うと、メッセージの内容が部分的に切り取られる可能性があります。これは、世代が max_tokens を超えたか、会話がコンテキストの最大長を超えたことを示します。 |
tool_resources | オブジェクト | 省略可能 | アシスタントのツールによって使用されるリソースのセット。 リソースは、ツールの種類に固有です。 たとえば、code_interpreter ツールにはファイル ID の一覧が必要ですが、file_search ツールにはベクター ストア ID の一覧が必要です。 |
返品
アシスタント オブジェクト。
アシスタント作成要求の例
from openai import AzureOpenAI
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-08-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
assistant = client.beta.assistants.create(
instructions="You are an AI assistant that can write code to help answer math questions",
model="<REPLACE WITH MODEL DEPLOYMENT NAME>", # replace with model deployment name.
tools=[{"type": "code_interpreter"}]
)
アシスタントのリストを取得する
GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants?api-version=2024-05-01-preview
すべてのアシスタントのリストを返します。
クエリ パラメーター
パラメーター | タイプ | Required | 説明 |
---|---|---|---|
limit |
integer | 省略可能 | 返されるオブジェクトの数の制限。 制限の範囲は 1 から 100 で、既定値は 20 です。 |
order |
string | 省略可能 - 既定値は desc | オブジェクトの created_at タイムスタンプによる並べ替え順序。 昇順の場合は asc、降順の場合は desc。 |
after |
string | 省略可能 | 改ページで使うカーソル。 after は、リスト内での場所を定義するオブジェクト ID です。 たとえば、リスト取得要求を行い、obj_foo で終わる 100 個のオブジェクトを受け取った場合、後続の呼び出しに after=obj_foo を含めて、リストの次のページをフェッチできます。 |
before |
string | 省略可能 | 改ページで使うカーソル。 before は、リスト内での場所を定義するオブジェクト ID です。 たとえば、リスト取得要求を行い、obj_foo で終わる 100 個のオブジェクトを受け取った場合、後続の呼び出しに before=obj_foo を含めて、リストの前のページをフェッチできます。 |
返品
アシスタント オブジェクトのリスト
アシスタント リスト取得の例
from openai import AzureOpenAI
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-08-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
my_assistants = client.beta.assistants.list(
order="desc",
limit="20",
)
print(my_assistants.data)
アシスタントを取得する
GET https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants/{assistant_id}?api-version=2024-08-01-preview
アシスタントを取得します。
パス パラメーター
パラメーター | タイプ | Required | Description |
---|---|---|---|
assistant_id |
string | 必須 | 取得するアシスタントの ID。 |
返品
指定された ID と一致するアシスタント オブジェクト。
アシスタント取得の例
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-08-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
my_assistant = client.beta.assistants.retrieve("asst_abc123")
print(my_assistant)
アシスタントを変更する
POST https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants/{assistant_id}?api-version=2024-08-01-preview
アシスタントを変更します。
パス パラメーター
パラメーター | タイプ | Required | 説明 |
---|---|---|---|
assistant_id | string | 必須 | ファイルが属しているアシスタントの ID。 |
要求本文
パラメーター | タイプ | Required | 説明 |
---|---|---|---|
model |
省略可能 | 使用するモデルのモデル デプロイ名。 | |
name |
文字列または null 値 | 省略可能 | アシスタントの名前。 最大長は 256 文字です。 |
description |
文字列または null 値 | 省略可能 | アシスタントの説明。 最大長は 512 文字です。 |
instructions |
文字列または null 値 | 省略可能 | アシスタントが使うシステムの指示。 最大長は 32,768 文字です。 |
tools |
配列 | 省略可能 | 既定値は [] です。 アシスタントで有効になっているツールのリスト。 アシスタントごとに最大 128 個のツールを使用できます。 tools で指定できる種類は code_interpreter または function です。 function の説明には、最大 1,024 文字を使用できます。 |
metadata |
map | 省略可能 | オブジェクトにアタッチできる 16 個のキーと値のペアのセット。 これは、オブジェクトに関する追加情報を構造化された形式で格納する場合に役立ちます。 キーの最大長は 64 文字、値の最大長は 512 文字です。 |
temperature |
数値または null | 省略可能 | デフォルト値は 1 です。 使うサンプリング温度 (0 から 2) を決定します。 0.8 のような大きい値にすると、出力はよりランダムになり、0.2 のような小さい値にすると、出力はより集中的および決定論的になります。 |
top_p |
数値または null | 省略可能 | デフォルト値は 1 です。 温度によるサンプリングに代わる核サンプリングと呼ばれるもので、モデルは top_p の確率質量を持つトークンの結果を考慮します。 したがって、0.1 は、上位 10% の確率質量を含むトークンのみが考慮されることを意味します。 一般的に、これと temperature の両方ではなく、いずれかを変更することをお勧めします。 |
response_format |
文字列またはオブジェクト | 省略可能 | モデルから出力する必要がある形式を指定します。 GPT-4 Turbo と gpt-3.5-turbo-1106 以降のすべての GPT-3.5 Turbo モデルと互換性があります。 このパラメーターを { "type": "json_object" } に設定すると、JSON モードが有効になります。これにより、モデルが生成するメッセージが有効な JSON であることが保証されます。 重要な点として、JSON モードを使う場合、システムまたはユーザー メッセージを使って、ユーザー自身が JSON を生成することをモデルに指示する必要もあります。 この指示がないと、トークンの上限に達するまで、モデルはいつまでも空白のストリームを生成する可能性があります。その結果、実行時間が長く、一見 "スタック" しているように見える要求が発生します。 さらに、finish_reason="length" を使うと、メッセージの内容が部分的に切り取られる可能性があります。これは、世代が max_tokens を超えたか、会話がコンテキストの最大長を超えたことを示します。 |
tool_resources |
オブジェクト | 省略可能 | アシスタントのツールによって使用されるリソースのセット。 リソースは、ツールの種類に固有です。 たとえば、code_interpreter ツールにはファイル ID の一覧が必要ですが、file_search ツールにはベクター ストア ID の一覧が必要です。 |
返品
変更されたアシスタント オブジェクト。
アシスタント変更の例
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-08-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
my_updated_assistant = client.beta.assistants.update(
"asst_abc123",
instructions="You are an HR bot, and you have access to files to answer employee questions about company policies. Always respond with info from either of the files.",
name="HR Helper",
tools=[{"type": "code-interpreter"}],
model="gpt-4", #model = model deployment name
)
print(my_updated_assistant)
アシスタントを削除する
DELETE https://YOUR_RESOURCE_NAME.openai.azure.com/openai/assistants/{assistant_id}?api-version=2024-08-01-preview
アシスタントを削除します。
パス パラメーター
パラメーター | タイプ | Required | Description |
---|---|---|---|
assistant_id |
string | 必須 | ファイルが属しているアシスタントの ID。 |
返品
削除の状態。
アシスタント削除の例
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-08-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
response = client.beta.assistants.delete("asst_abc123")
print(response)
ファイル アップロード API リファレンス
アシスタントは、微調整と同じ API をファイル アップロードに使用します。 ファイルをアップロードするときは、purpose パラメーターに適切な値を指定する必要があります。
アシスタント オブジェクト
フィールド | タイプ | 説明 |
---|---|---|
id |
string | API エンドポイントで参照できる識別子。 |
object |
string | オブジェクトの種類。これは常に assistant です。 |
created_at |
integer | アシスタントが作成されたときの Unix タイムスタンプ (秒単位)。 |
name |
文字列または null 値 | アシスタントの名前。 最大長は 256 文字です。 |
description |
文字列または null 値 | アシスタントの説明。 最大長は 512 文字です。 |
model |
string | 使用するモデル デプロイ名の名前。 |
instructions |
文字列または null 値 | アシスタントが使うシステムの指示。 最大長は 32,768 文字です。 |
tools |
配列 | アシスタントで有効になっているツールのリスト。 アシスタントごとに最大 128 個のツールを使用できます。 tools で指定できる種類は code_interpreter または function です。 function の説明には、最大 1,024 文字を使用できます。 |
metadata |
map | オブジェクトにアタッチできる 16 個のキーと値のペアのセット。 これは、オブジェクトに関する追加情報を構造化された形式で格納する場合に役立ちます。 キーの最大長は 64 文字、値の最大長は 512 文字です。 |
temperature |
数値または null | デフォルト値は 1 です。 使うサンプリング温度 (0 から 2) を決定します。 0.8 のような大きい値にすると、出力はよりランダムになり、0.2 のような小さい値にすると、出力はより集中的および決定論的になります。 |
top_p |
数値または null | デフォルト値は 1 です。 温度によるサンプリングに代わる核サンプリングと呼ばれるもので、モデルは top_p の確率質量を持つトークンの結果を考慮します。 したがって、0.1 は、上位 10% の確率質量を含むトークンのみが考慮されることを意味します。 一般的に、これと temperature の両方ではなく、いずれかを変更することをお勧めします。 |
response_format |
文字列またはオブジェクト | モデルから出力する必要がある形式を指定します。 GPT-4 Turbo と gpt-3.5-turbo-1106 以降のすべての GPT-3.5 Turbo モデルと互換性があります。 このパラメーターを { "type": "json_object" } に設定すると、JSON モードが有効になります。これにより、モデルが生成するメッセージが有効な JSON であることが保証されます。 重要な点として、JSON モードを使う場合、システムまたはユーザー メッセージを使って、ユーザー自身が JSON を生成することをモデルに指示する必要もあります。 この指示がないと、トークンの上限に達するまで、モデルはいつまでも空白のストリームを生成する可能性があります。その結果、実行時間が長く、一見 "スタック" しているように見える要求が発生します。 さらに、finish_reason="length" を使うと、メッセージの内容が部分的に切り取られる可能性があります。これは、世代が max_tokens を超えたか、会話がコンテキストの最大長を超えたことを示します。 |
tool_resources |
オブジェクト | アシスタントのツールによって使用されるリソースのセット。 リソースは、ツールの種類に固有です。 たとえば、code_interpreter ツールにはファイル ID の一覧が必要ですが、file_search ツールにはベクター ストア ID の一覧が必要です。 |