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


Интерпретатор кода Помощников По 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"}],
  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)

См. также