適用対象:Foundry (クラシック) ポータル。 この記事は、新しい Foundry ポータルでは使用できません。
新しいポータルの詳細を確認します。
メモ
この記事のリンクは、現在表示している Foundry (クラシック) ドキュメントではなく、新しい Microsoft Foundry ドキュメントのコンテンツを開く場合があります。
メモ
Assistants API は廃止されました。 一般に利用可能なMicrosoftファウンドリーエージェントサービスを利用してください。 ワークロードを更新するには、 移行ガイドを参照してください。 詳細については、こちらをご覧ください。
コード インタープリターを使用すると、Assistants API は、セキュリティで保護された実行環境でPythonコードを記述して実行できます。 コード インタープリターを有効にすると、アシスタントはコードを繰り返し実行して、より困難なコード、数学、データ分析の問題を解決できます。 Assistant が実行に失敗するコードを記述すると、コードの実行が成功するまで別のコードを変更して実行することで、このコードを反復処理できます。
重要
コード インタープリターには、Azure OpenAI の使用に対するトークン ベースの料金を超える追加料金があります。 アシスタントが 2 つの異なるスレッドでコード インタープリターを同時に呼び出すと、2 つのコード インタープリター セッションが作成されます。 各セッションは既定で 1 時間アクティブで、アイドル タイムアウトは 30 分です。
コード インタープリターのサポート
サポートされているモデル
モデルページには、アシスタントとコードインタープリターがサポートされているリージョンやモデルに関する最新の情報が含まれています。
最新のモデルでアシスタントを使用して、新機能、より大きなコンテキスト ウィンドウ、より多くの up-to-date トレーニング データを活用することをお勧めします。
API バージョン
-
2024-02-15-previewに開始する
サポートされているファイルの種類
| ファイル形式 | MIME の種類 |
|---|---|
| .c | text/x-c |
| .cpp | text/x-c++ |
| .csv | application/csv |
| .docx | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
| .html | text/html |
| .java | text/x-java |
| .json | application/json |
| .md | text/markdown |
| application/pdf | |
| .php | text/x-php |
| .pptx | application/vnd.openxmlformats-officedocument.presentationml.presentation |
| .py | text/x-python |
| .py | text/x-script.python |
| .rb | text/x-ruby |
| .tex | text/x-tex |
| .txt | text/plain |
| .css | text/css |
| .jpeg | image/jpeg |
| .jpg | image/jpeg |
| .js | text/javascript |
| .gif | image/gif |
| .png | image/png |
| .tar | application/x-tar |
| .ts | application/typescript |
| .xlsx | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
| .xml | application/xml または "text/xml" |
| .zip | application/zip |
ファイル アップロード API リファレンス
アシスタントは、 ファイルのアップロードに同じ API を微調整として使用します。 ファイルをアップロードするときは、 目的のパラメーターに適切な値を指定する必要があります。
コード インタープリターを有効にする
from openai import AzureOpenAI
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-05-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"}]
)
コード インタープリターのファイルをアップロードする
from openai import AzureOpenAI
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-05-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
# Upload a file with an "assistants" purpose
file = client.files.create(
file=open("speech.py", "rb"),
purpose='assistants'
)
# Create an assistant using the file ID
assistant = client.beta.assistants.create(
instructions="You are an AI assistant that can write code to help answer math questions.",
model="gpt-4-1106-preview",
tools=[{"type": "code_interpreter"}],
tool_resources={"code_interpreter":{"file_ids":[file.id]}}
)
個々のスレッドにファイルを渡す
アシスタント レベルでファイルにアクセスできるようにするだけでなく、ファイルを渡して、特定のスレッドにのみアクセスできるようにします。
from openai import AzureOpenAI
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-05-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
thread = client.beta.threads.create(
messages=[
{
"role": "user",
"content": "I need to solve the equation `3x + 11 = 14`. Can you help me?",
"file_ids": ["file.id"] # file id will look like: "assistant-R9uhPxvRKGH3m0x5zBOhMjd2"
}
]
)
コード インタープリターによって生成されたファイルをダウンロードする
コード インタープリターによって生成されたファイルは、アシスタント メッセージの応答にあります
{
"id": "msg_oJbUanImBRpRran5HSa4Duy4",
"assistant_id": "asst_eHwhP4Xnad0bZdJrjHO2hfB4",
"content": [
{
"image_file": {
"file_id": "assistant-1YGVTvNzc2JXajI5JU9F0HMD"
},
"type": "image_file"
},
# ...
}
これらの生成されたファイルは、ファイル API に渡すことによってダウンロードできます。
from openai import AzureOpenAI
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-05-01-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
image_data = client.files.content("assistant-abc123")
image_data_bytes = image_data.read()
with open("./my-image.png", "wb") as file:
file.write(image_data_bytes)
関連項目
- ファイル アップロード API リファレンス
- アシスタントAPIリファレンス
- アシスタントの使い方ガイドでアシスタントを使用 する方法の詳細を確認してください。
- Azure OpenAI Assistants API のサンプル