Azure OpenAI アシスタント コード インタープリター (プレビュー)
コード インタープリターを使うと、Assistants API はサンドボックス実行環境で Python コードを記述して実行できます。 コード インタープリターを有効にすると、アシスタントはコードを繰り返し実行して、より困難なコード、数学、データ分析の問題を解決できます。 アシスタントは、記述したコードの実行が失敗したら、コードの変更と変更したコードの実行を、コードの実行が成功するまで繰り返すことができます。
重要
コード インタープリターを使うと、Azure OpenAI の使用に対するトークン ベースの料金の他に、追加料金が発生します。 アシスタントが 2 つの異なるスレッドでコード インタープリターを同時に呼び出すと、2 つのコード インタープリター セッションが作成されます。 既定では、各セッションは 1 時間アクティブです。
Note
- ファイル検索では、アシスタントあたり最大 10,000 個のファイルを取り込むことができます。これは以前の 500 倍以上の量です。 これは高速で、マルチスレッド検索を通して並列クエリをサポートしており、強化された再ランク付けとクエリの書き換えを特徴としています。
- ベクトル ストアは、API 内の新しいオブジェクトです。 ファイルがベクトル ストアに追加されると、自動的にそのファイルの解析、チャンク、埋め込みが行われ、検索の準備が整います。 ベクトル ストアは、複数のアシスタントとスレッドにわたって使用できるため、ファイル管理と課金が単純化されます。
- 特定の実行において特定のツール (ファイル検索、コード インタープリター、関数など) の使用を強制するために使用できる
tool_choice
パラメーターのサポートが追加されました。
コード インタープリターのサポート
サポートされているモデル
モデルのページには、アシスタントとコード インタープリターがサポートされているリージョンとモデルに関する最新情報が含まれています。
新しい機能、より大きなコンテキスト ウィンドウ、最新のトレーニング データを利用するために、最新のモデルでアシスタントを使用することをお勧めします。
API のバージョン
2024-02-15-preview
2024-05-01-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 をファイル アップロードに使用します。 ファイルをアップロードする際には、purpose パラメーターに適切な値を指定する必要があります。
コード インタープリターを有効にする
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"
},
# ...
}
これらの生成されたファイルは、ファイルを files 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 リファレンス
- Assistants API リファレンス
- Assistants を使用する方法の詳細については、Assistants の攻略ガイドを参照してください。
- Azure OpenAI Assistants API のサンプル