Dela via


Kodtolkare för Azure OpenAI-assistenter (förhandsversion)

Med kodtolkaren kan assistent-API:et skriva och köra Python-kod i en miljö med begränsat läge. När kodtolkaren är aktiverad kan assistenten köra kod iterativt för att lösa mer utmanande problem med kod-, matematik- och dataanalys. När assistenten skriver kod som inte kan köras kan den iterera på den här koden genom att ändra och köra annan kod tills kodkörningen lyckas.

Viktigt!

Kodtolken har ytterligare avgifter utöver de tokenbaserade avgifterna för Azure OpenAI-användning. Om assistenten anropar kodtolkaren samtidigt i två olika trådar skapas två kodtolkarsessioner. Varje session är aktiv som standard i en timme.

Kommentar

  • Filsökning kan mata in upp till 10 000 filer per assistent – 500 gånger mer än tidigare. Den är snabb, stöder parallella frågor via sökningar med flera trådar och funktioner för förbättrad omrankning och omskrivning av frågor.
    • Vector Store är ett nytt objekt i API:et. När en fil har lagts till i ett vektorlager parsas den automatiskt, segmenteras och bäddas in och görs redo att sökas igenom. Vektorlager kan användas mellan assistenter och trådar, vilket förenklar filhantering och fakturering.
  • Vi har lagt till stöd för parametern tool_choice som kan användas för att tvinga fram användningen av ett specifikt verktyg (till exempel filsökning, kodtolkare eller en funktion) i en viss körning.

Stöd för kodtolkare

Modeller som stöds

Sidan modeller innehåller den senaste informationen om regioner/modeller där assistenter och kodtolkare stöds.

Vi rekommenderar att du använder assistenter med de senaste modellerna för att dra nytta av de nya funktionerna, större kontextfönster och mer aktuella träningsdata.

API-versioner

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

Filtyper som stöds

File format 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
.pdf program/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 mallar/jpeg
.jpg mallar/jpeg
.js text/javascript
.gif bild/gif
.png image/png
.tjära application/x-tar
.Ts application/typescript
.xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.xml application/xml eller "text/xml"
.zip program/zip

Api-referens för filuppladdning

Assistenter använder samma API för filuppladdning som finjustering. När du laddar upp en fil måste du ange ett lämpligt värde för parametern purpose.

Aktivera kodtolkare

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

Ladda upp fil för kodtolkare

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

Skicka filen till en enskild tråd

Förutom att göra filer tillgängliga på assistentnivå kan du skicka filer så att de endast är tillgängliga för en viss tråd.

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

Ladda ned filer som genereras av kodtolkare

Filer som genereras av kodtolkaren finns i assistentens meddelandesvar

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

Du kan ladda ned dessa genererade filer genom att skicka filerna till fil-API:et:

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)

Se även