附註
Azure AI Foundry 代理程式服務現已正式推出,可提供更多工具和更佳的企業功能。 建議您針對最新的功能更新和改進使用新的服務。
程式碼解譯器可讓助理 API 在沙箱執行環境中撰寫和執行 Python 程式碼。 啟用程式碼解譯器後,助理可反覆執行程式碼,以解決更具挑戰性的程式碼、數學和資料分析問題。 當您的助理撰寫的程式碼無法執行時,它可以藉由修改並執行不同的程式碼來逐一查看此程式碼,直到程式碼成功執行為止。
重要
程式碼解譯器除了 Azure OpenAI 使用量的權杖費用之外,還有額外的費用。 如果您的助理在兩個不同的對話中同時呼叫 Code Interpreter,則會建立兩個程序碼解譯器會話。 每個會話預設一開始啟用持續 1 小時,閑置逾時為 30 分鐘。
程式碼解譯器支援
支援的模型
模型頁面包含目前有支援助理和程式碼解譯器所在區域/模型的最新資訊。
建議您使用最新模型的助理,以利用新功能、較大的內容視窗,以及最新的訓練數據。
API 版本
- 啟動時間還有
2024-02-15-preview
支援的檔案類型
檔案格式 | MIME 類型 |
---|---|
.c | text/x-c |
.cpp | text/x-c++ |
.csv | application/csv |
.docx | application/vnd.openxmlformats-officedocument.wordprocessingml.document (.docx格式) |
.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 | 文字/純文字 |
.css | text/css |
.jpeg | image/jpeg |
.jpg | image/jpeg |
.js | text/javascript |
.gif | 圖像/GIF |
.png | image/png |
.tar | application/x-tar |
.ts | application/typescript (應用程式/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 參考
- 了解如何使用 Assistants,並參閱我們的 Assistants 使用指南。
- Azure OpenAI Assistants API 範例