Udostępnij za pośrednictwem


Interpreter kodu asystentów openAI platformy Azure (wersja zapoznawcza)

Uwaga

Usługa agenta usługi Azure AI Foundry jest teraz ogólnie dostępna, co zapewnia więcej narzędzi i lepszych funkcji przedsiębiorstwa. Zalecamy korzystanie z nowej usługi w celu uzyskania najnowszych aktualizacji i ulepszeń funkcji.

Interpreter kodu umożliwia interfejsowi API Asystenta pisanie i uruchamianie kodu w języku Python w piaskownicowym środowisku wykonawczym. 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 1 godzinę z limitem czasu bezczynności 30 minut.

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

  • Rozpoczynanie w 2024-02-15-preview

Typy obsługiwanych plików

Format pliku Typ MIME
.c tekst/x-c
.cpp text/x-c++
.csv aplikacja/csv
.docx application/vnd.openxmlformats-officedocument.wordprocessingml.document
.html tekst/html
.java text/x-java
.json aplikacja/json
.md tekst/markdown
.pdf aplikacja/plik 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 tekst/zwykły
.css tekst/css
.jpeg image/jpeg
.jpg image/jpeg
js text/javascript
.gif obraz/gif
.png image/png
.tar aplikacja/x-tar
.Ts application/typescript
.xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.xml application/xml lub "text/xml"
.zip aplikacja/zip

Specyfikacja interfejsu API przesyłania plików

Asystenci używają tego samego interfejsu API do przekazywania plików w ramach dostrajania. Podczas przekazywania pliku należy określić odpowiednią wartość 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ż