Condividi tramite


Interprete del codice degli assistenti OpenAI di Azure (anteprima)

L'interprete del codice consente all'API Assistants di scrivere ed eseguire codice Python in un ambiente di esecuzione in modalità sandbox. Con l'interprete del codice abilitato, l'Assistente può eseguire il codice in modo iterativo per risolvere problemi di codice, matematica e analisi dei dati più complessi. Quando l'Assistente scrive codice che non riesce a essere eseguito, può eseguire l'iterazione su questo codice modificando ed eseguendo codice diverso fino a quando l'esecuzione del codice non riesce.

Importante

L'interprete del codice prevede addebiti aggiuntivi oltre i costi basati su token per l'utilizzo di Azure OpenAI. Se l'Assistente chiama l'interprete del codice contemporaneamente in due thread diversi, vengono create due sessioni dell'interprete di codice. Ogni sessione è attiva per impostazione predefinita per un'ora.

Nota

  • La ricerca di file può inserire fino a 10.000 file per assistente- 500 volte più di prima. È veloce, supporta query parallele tramite ricerche multithread e funzionalità avanzate di reranking e riscrittura delle query.
    • L'archivio vettoriale è un nuovo oggetto nell'API. Dopo l'aggiunta di un file a un archivio vettoriale, l'analisi viene eseguita automaticamente, in blocchi e incorporati, pronta per la ricerca. Gli archivi vettoriali possono essere usati tra assistenti e thread, semplificando la gestione e la fatturazione dei file.
  • È stato aggiunto il supporto per il tool_choice parametro che può essere usato per forzare l'uso di uno strumento specifico (ad esempio la ricerca di file, l'interprete di codice o una funzione) in una determinata esecuzione.

Supporto dell'interprete del codice

Modelli supportati

La pagina dei modelli contiene le informazioni più aggiornate sulle aree/modelli in cui sono supportati assistenti e interpreti di codice.

È consigliabile usare gli assistenti con i modelli più recenti per sfruttare le nuove funzionalità, nonché le finestre di contesto più grandi e i dati di training più aggiornati.

Versioni API

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

Tipi di file supportati

File format Tipo 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 applicazione/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 image/jpeg
JPG image/jpeg
js text/javascript
.gif image/gif
.png image/png
.Tar application/x-tar
.Ts application/typescript
XLSX application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
.xml application/xml o "text/xml"
.zip application/zip

Informazioni di riferimento sulle API per il caricamento di file

Gli assistenti usano la stessa API per il caricamento di file come ottimizzazione. Quando si carica un file è necessario specificare un valore appropriato per il parametro scopo.

Abilitare l'interprete del codice

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

Caricare il file per l'interprete del codice

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"}],
  file_ids=[file.id]
)

Passare un file a un singolo thread

Oltre a rendere i file accessibili a livello di Assistenti, è possibile passare i file in modo che siano accessibili solo a un thread specifico.

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

Scaricare i file generati dall'interprete del codice

I file generati dall'interprete del codice sono disponibili nelle risposte ai messaggi dell'Assistente

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

È possibile scaricare questi file generati passando i file all'API dei file:

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)

Vedi anche