Поделиться через


Интерпретатор кода Помощников По Azure OpenAI (предварительная версия)

Интерпретатор кода позволяет API Помощника создавать и запускать код Python в изолированной среде выполнения. С включенным интерпретатором кода Помощник может выполнять код в итеративном режиме для решения более сложных проблем с кодом, математикой и анализом данных. Когда помощник записывает код, который не выполняется, он может итерировать этот код, изменив и выполнив другой код до тех пор, пока выполнение кода не будет выполнено.

Внимание

Интерпретатор кода требует дополнительных расходов за использование токенов Azure OpenAI. Если помощник одновременно вызывает интерпретатор кода в двух разных потоках, создаются два сеанса интерпретатора кода. Каждый сеанс активен по умолчанию в течение одного часа.

Примечание.

  • Поиск по файлам может получать до 10 000 файлов на помощника — 500 раз больше, чем раньше. Это быстрый процесс, который поддерживает параллельные многопоточные поисковые запросы, а также функции расширенного повторного ранжирования и перезаписи запросов.
    • Векторное хранилище — это новый объект в API. После добавления файла в векторное хранилище он автоматически анализируется, делится на блоки и кодируется в векторном представлении, чтобы подготовить к поиску по содержимому. Векторные хранилища можно использовать между разными помощниками и потоками, упрощая управление файлами и выставление счетов.
  • Мы добавили поддержку tool_choice параметра, который можно использовать для принудительного использования определенного средства (например, поиска файлов, интерпретатора кода или функции) в определенном запуске.

Поддержка интерпретатора кода

Поддерживаемые модели

Страница моделей содержит самые актуальные сведения о регионах и моделях, где поддерживаются помощники и интерпретатор кода.

Мы рекомендуем использовать помощники с последними моделями, чтобы воспользоваться новыми функциями, большими окнами контекста и более актуальными данными обучения.

Версии API

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

Поддерживаемые типы файлов

File format Тип 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 application/pdf
.php text/x-php
PPTX application/vnd.openxmlformats-officedocument.presentationml.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
.дёготь application/x-tar
.ts application/typescript
XLSX application/vnd.openxmlformats-officedocument.spreadsheetml.sheet
XML application/xml или text/xml
.zip application/zip

Справочник по API отправки файлов

Помощники используют тот же 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")
    )

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

Отправка файла для интерпретатора кода

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

Передача файла в отдельный поток

Помимо того, что файлы доступны на уровне помощников, вы можете передавать файлы, чтобы они были доступны только для определенного потока.

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

Скачивание файлов, созданных интерпретатором кода

Файлы, созданные интерпретатором кода, можно найти в ответах на сообщения помощника

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

Эти созданные файлы можно скачать, передав файлы в 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)

См. также