Interpreter kodu asystentów openAI platformy Azure (wersja zapoznawcza)
Interpreter kodów umożliwia interfejsowi API asystentów pisanie i uruchamianie kodu języka Python w środowisku wykonywania w trybie piaskownicy. Po włączeniu interpretera kodów asystent może uruchamiać kod iteracyjnie, aby rozwiązać trudniejsze problemy z kodem, matematyką i analizą danych. Gdy Asystent zapisuje kod, który nie może uruchomić, może iterować ten kod, modyfikując i uruchamiając inny kod do momentu pomyślnego wykonania kodu.
Ważne
Z interpreterem kodów wiążą się dodatkowe opłaty poza opłatami opartymi na tokenach za użycie usługi Azure OpenAI. Jeśli asystent wywołuje interpretera kodów jednocześnie w dwóch różnych wątkach, tworzone są dwie sesje interpretera kodów. Każda sesja jest domyślnie aktywna przez jedną godzinę.
Uwaga
- Wyszukiwanie plików może pozyskiwać maksymalnie 10 000 plików na asystenta — 500 razy więcej niż wcześniej. Jest szybkie, obsługuje zapytania równoległe za pośrednictwem wyszukiwania wielowątkowego i oferuje ulepszone ponowne klasyfikowanie praz ponowne zapisywanie zapytań.
- Magazyn wektorów to nowy obiekt w interfejsie API. Po dodaniu pliku do magazynu wektorów jest on automatycznie analizowany, fragmentowany i osadzany oraz przygotowywany do wyszukiwania. Magazyny wektorów mogą być używane między asystentami i wątkami, upraszczając zarządzanie plikami i rozliczenia.
- Dodaliśmy obsługę parametru
tool_choice
, który może służyć do wymuszenia użycia określonego narzędzia (takiego jak wyszukiwanie plików, interpreter kodu lub funkcja) w określonym uruchomieniu.
Obsługa interpretera kodu
Obsługiwane modele
Strona modeli zawiera najbardziej aktualne informacje dotyczące regionów/modeli, w których obsługiwane są asystenty i interpreter kodu.
Zalecamy używanie asystentów z najnowszymi modelami, aby korzystać z nowych funkcji, większych okien kontekstowych i bardziej aktualnych danych treningowych.
Wersje interfejsu API
2024-02-15-preview
2024-05-01-preview
Typy obsługiwanych plików
File format | Typ MIME |
---|---|
c. | tekst/x-c |
.Cpp | text/x-c++ |
.csv | aplikacja/csv |
.docx | application/vnd.openxmlformats-officedocument.wordprocessingml.document |
.html, | text/html |
.java | text/x-java |
.json | application/json |
.md | tekst/znaczniki markdown |
application/pdf | |
.php | text/x-php |
.pptx | application/vnd.openxmlformats-officedocument.presentationml.presentation |
.py | text/x-python |
.py | text/x-script.python |
.Rb | tekst/x-ruby |
.Tex | text/x-tex |
txt | text/plain |
.Css | tekst/css |
.jpeg | image/jpeg |
.jpg | image/jpeg |
js | text/javascript |
.gif | obraz/gif |
.png | image/png |
.smoła | aplikacja/x-tar |
.Ts | application/typescript |
.xlsx | application/vnd.openxmlformats-officedocument.spreadsheetml.sheet |
xml | application/xml lub "text/xml" |
.zip | aplikacja/zip |
Dokumentacja interfejsu API przekazywania plików
Asystenci używają tego samego interfejsu API do przekazywania plików jako dostrajania. Podczas przekazywania pliku należy określić odpowiednią wartość dla parametru purpose.
Włączanie interpretera kodu
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"}]
)
Przekazywanie pliku dla interpretera kodu
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]}}
)
Przekazywanie pliku do pojedynczego wątku
Oprócz udostępniania plików na poziomie Asystentów można przekazywać pliki, aby były dostępne tylko dla określonego wątku.
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"
}
]
)
Pobieranie plików generowanych przez interpreter kodu
Pliki generowane przez interpreter kodu można znaleźć w odpowiedziach na komunikaty Asystenta
{
"id": "msg_oJbUanImBRpRran5HSa4Duy4",
"assistant_id": "asst_eHwhP4Xnad0bZdJrjHO2hfB4",
"content": [
{
"image_file": {
"file_id": "assistant-1YGVTvNzc2JXajI5JU9F0HMD"
},
"type": "image_file"
},
# ...
}
Te wygenerowane pliki można pobrać, przekazując pliki do interfejsu API plików:
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)
Zobacz też
- Dokumentacja interfejsu API przekazywania plików
- Dokumentacja interfejsu API asystentów
- Dowiedz się więcej na temat korzystania z asystentów, korzystając z naszego przewodnika z instrukcjami dotyczącymi asystentów.
- Przykłady interfejsu API asystentów openAI platformy Azure