Interpret kódu Pro Azure OpenAI (Preview)

Interpret kódu umožňuje rozhraní API asistentů psát a spouštět kód Pythonu v prostředí spouštění v izolovaném prostoru (sandbox). S povoleným interpretem kódu může váš asistent spouštět iterativní spouštění kódu, aby vyřešil náročnější problémy s kódem, matematikou a analýzou dat. Když pomocník napíše kód, který se nepodaří spustit, může iterovat tento kód úpravou a spuštěním jiného kódu, dokud se spuštění kódu nezdaří.

Důležité

Interpret kódu má další poplatky nad rámec poplatků založených na tokenech za využití Azure OpenAI. Pokud váš asistent volá interpret kódu současně ve dvou různých vláknech, vytvoří se dvě relace interpretu kódu. Každá relace je ve výchozím nastavení aktivní po dobu jedné hodiny.

Poznámka:

  • Hledání souborů může ingestovat až 10 000 souborů na asistenta – 500krát více než dříve. Je to rychlý způsob, podporuje paralelní dotazy prostřednictvím vícevláknového vyhledávání a vylepšeného řazení a přepisování dotazů.
    • Vektorové úložiště je nový objekt v rozhraní API. Jakmile se soubor přidá do úložiště vektorů, automaticky se parsuje, zachytá a vloží a připraví k hledání. Vektorová úložiště se dají používat napříč asistenty a vlákny, což zjednodušuje správu souborů a fakturaci.
  • Přidali jsme podporu parametru tool_choice , který se dá použít k vynucení použití konkrétního nástroje (například vyhledávání souborů, interpret kódu nebo funkce) v určitém spuštění.

Podpora interpreta kódu

Podporované modely

Stránka modelů obsahuje nejaktuálnější informace o oblastech nebo modelech, kde jsou podporováni asistenti a interpret kódu.

Doporučujeme používat asistenty s nejnovějšími modely, abyste mohli využívat nové funkce, větší kontextová okna a aktuální trénovací data.

Verze rozhraní API

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

Podporované typy souborů

File format Typ MIME
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 aplikace/pdf
.php text/x-php
.pptx application/vnd.openxmlformats-officedocument.presentationml.presentation
.py text/x-python
.py text/x-script.python
.rubidium text/x-ruby
.Tex text/x-tex
.txt text/plain
.Css text/css
.jpeg image/jpeg
.jpg image/jpeg
.js text/javascript
.gif image/gif
.png image/png
.dehet application/x-tar
.Ts application/typescript
.xlsx application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.xml application/xml nebo "text/xml"
.zip aplikace/zip

Referenční informace k rozhraní API pro nahrání souborů

Asistenti používají stejné rozhraní API pro nahrávání souborů jako vyladění. Při nahrávání souboru musíte zadat odpovídající hodnotu pro parametr účelu.

Povolit interpret kódu

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

Nahrání souboru pro interpret kódu

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

Předání souboru do jednotlivého vlákna

Kromě zpřístupnění souborů na úrovni Asistenti můžete předat soubory, aby byly přístupné jenom pro určité vlákno.

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

Stažení souborů vygenerovaných interpretem kódu

Soubory vygenerované interpretem kódu najdete v odpovědích na zprávu Pomocníka.

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

Tyto vygenerované soubory si můžete stáhnout předáním souborů do rozhraní API souborů:

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)

Viz také