Udostępnij za pośrednictwem


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
.pdf 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ż