Azure OpenAI Assistants-Codeinterpreter (Vorschau)
Der Codeinterpreter ermöglicht es der Assistants-API, Python-Code in einer Sandbox-Ausführungsumgebung zu schreiben und auszuführen. Mit aktiviertem Codeinterpreter kann Ihr Assistent Code iterativ ausführen, um anspruchsvolle Code-, mathematische und Datenanalyseprobleme zu lösen. Wenn Ihr Assistent Code schreibt, der nicht ausgeführt werden kann, kann er diesen Code durchlaufen, indem er anderen Code ändert und ausführt, bis die Codeausführung gelingt.
Wichtig
Für den Codeinterpreter fallen zusätzliche Gebühren an, die über die tokenbasierten Gebühren für die Azure OpenAI-Nutzung hinausgehen. Wenn Ihr Assistent den Codeinterpreter gleichzeitig in zwei verschiedenen Threads aufruft, werden zwei Codeinterpretersitzungen erstellt. Jede Sitzung ist standardmäßig für eine Stunde aktiv.
Hinweis
- Die Dateisuche kann bis zu 10.000 Dateien pro Assistent erfassen – 500 mal mehr als bisher. Sie ist schnell, unterstützt parallele Abfragen durch Multithreadsuchvorgänge und beinhaltet verbesserte Funktionen für Neusortierung und das Umschreiben von Abfragen.
- Der Vektorspeicher ist ein neues Objekt in der API. Sobald eine Datei einem Vektorspeicher hinzugefügt wurde, wird sie automatisch geparst, aufgeteilt und eingebettet, damit sie durchsucht werden kann. Vektorspeicher können über Assistenten und Threads hinweg verwendet werden und vereinfachen so die Dateiverwaltung und Abrechnung.
- Wir haben Unterstützung für den Parameter
tool_choice
hinzugefügt. Dieser kann verwendet werden, um die Nutzung eines bestimmten Tools (z. B. Dateisuche, Codeinterpreter oder eine Funktion) in einer bestimmten Ausführung zu erzwingen.
Codeinterpreter-Support
Unterstützte Modelle
Die Modellseite enthält die aktuellsten Informationen zu Regionen/Modellen, in denen Assistants und Codeinterpreter unterstützt werden.
Es wird empfohlen, Assistenten mit den neuesten Modellen zu verwenden, um die neuen Features sowie die größeren Kontextfenster und aktuellere Trainingsdaten zu nutzen.
API-Versionen
2024-02-15-preview
2024-05-01-preview
Unterstützte Dateitypen
Dateiformat | MIME-Typ |
---|---|
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 oder „text/xml“ |
.zip | application/zip |
API-Referenz zum Hochladen von Dateien
Assistenten verwenden für den Datei-Upload die gleiche API wie für die Feinabstimmung. Wenn Sie eine Datei hochladen, müssen Sie einen geeigneten Wert für den Parameter purpose angeben.
Aktivieren des Codeinterpreters
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"}]
)
Hochladen von Dateien für den Codeinterpreter
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]}}
)
Übergeben einer Datei an einen einzelnen Thread
Sie können Dateien nicht nur auf Assistants-Ebene zugänglich machen, sondern sie auch so übergeben, dass sie nur für einen bestimmten Thread zugänglich sind.
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"
}
]
)
Herunterladen von vom Codeinterpreter generierten Dateien
Dateien, die vom Codeinterpreter generiert werden, finden Sie in den Antworten des Assistenten auf Nachrichten.
{
"id": "msg_oJbUanImBRpRran5HSa4Duy4",
"assistant_id": "asst_eHwhP4Xnad0bZdJrjHO2hfB4",
"content": [
{
"image_file": {
"file_id": "assistant-1YGVTvNzc2JXajI5JU9F0HMD"
},
"type": "image_file"
},
# ...
}
Sie können diese generierten Dateien herunterladen, indem Sie die Dateien an die Datei-API übergeben:
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)
Siehe auch
- API-Referenz zum Hochladen von Dateien
- API-Referenz für Assistenten
- Erfahren Sie mehr über die Verwendung von Assistants mit unserer Schrittanleitung für Assistants.
- Beispiele zur Azure OpenAI Assistants-API