Delen via


Code-interpreter voor Azure OpenAI-assistenten (preview)

Met code-interpreter kan de Assistants-API Python-code schrijven en uitvoeren in een omgeving voor uitvoering in een sandbox. Als code-interpreter is ingeschakeld, kan uw assistent code iteratief uitvoeren om uitdagendere problemen met code, wiskunde en gegevensanalyse op te lossen. Wanneer uw assistent code schrijft die niet kan worden uitgevoerd, kan deze code worden herhaald door verschillende code te wijzigen en uit te voeren totdat de uitvoering van de code is geslaagd.

Belangrijk

Code interpreter heeft extra kosten naast de kosten op basis van tokens voor Azure OpenAI-gebruik. Als uw assistent code-interpreter tegelijk aanroept in twee verschillende threads, worden er twee code-interpretersessies gemaakt. Elke sessie is standaard één uur actief.

Notitie

  • Bestanden zoeken kan maximaal 10.000 bestanden per assistent opnemen - 500 keer meer dan voorheen. Het is snel, ondersteunt parallelle query's via zoekopdrachten met meerdere threads en biedt uitgebreide herrankering en herschrijven van query's.
    • Vectoropslag is een nieuw object in de API. Zodra een bestand is toegevoegd aan een vectoropslag, wordt het automatisch geparseerd, gesegmenteerd en ingesloten, zodat het kan worden doorzocht. Vectoropslag kunnen worden gebruikt voor assistenten en threads, waardoor bestandsbeheer en facturering worden vereenvoudigd.
  • We hebben ondersteuning toegevoegd voor de tool_choice parameter die kan worden gebruikt om het gebruik van een specifiek hulpprogramma (zoals het zoeken van bestanden, code-interpreter of een functie) in een bepaalde uitvoering af te dwingen.

Ondersteuning voor code-interpreters

Ondersteunde modellen

De pagina modellen bevat de meest recente informatie over regio's/modellen waar assistenten en code-interpreters worden ondersteund.

We raden u aan assistenten te gebruiken met de nieuwste modellen om te profiteren van de nieuwe functies, grotere contextvensters en meer actuele trainingsgegevens.

API-versies

  • 2024-02-15-preview
  • 2024-05-01-preview

Ondersteunde bestandstypen

File format MIME-type
c. tekst/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
.pdf toepassing/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 tekst/x-tex
.txt text/plain
.Css text/css
.jpeg image/jpeg
.jpg image/jpeg
.js text/javascript
.gif image/gif
.png image/png
.teer application/x-tar
.Ts toepassing/typescript
.xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.xml application/xml of "text/xml"
.zip toepassing/zip

Api-verwijzing voor het uploaden van bestanden

Assistenten gebruiken dezelfde API voor het uploaden van bestanden als het afstemmen van bestanden. Bij het uploaden van een bestand moet u een geschikte waarde opgeven voor de doelparameter.

Code-interpreter inschakelen

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"}]
)

Bestand uploaden voor 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]}}
)

Bestand doorgeven aan een afzonderlijke thread

Naast het toegankelijk maken van bestanden op assistentniveau, kunt u bestanden doorgeven zodat ze alleen toegankelijk zijn voor een bepaalde thread.

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" 
    }
  ]
)

Bestanden downloaden die zijn gegenereerd door code-interpreter

Bestanden die door code-interpreter worden gegenereerd, zijn te vinden in de antwoorden van assistentberichten

 {
      "id": "msg_oJbUanImBRpRran5HSa4Duy4",
      "assistant_id": "asst_eHwhP4Xnad0bZdJrjHO2hfB4",
      "content": [
        {
          "image_file": {
            "file_id": "assistant-1YGVTvNzc2JXajI5JU9F0HMD"
          },
          "type": "image_file"
        },
        # ...
 }

U kunt deze gegenereerde bestanden downloaden door de bestanden door te geven aan de bestands-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)

Zie ook