Использование средства code_interpreter
Tip
Дополнительные сведения см. на вкладке "Текст и изображения ".
Средство code_interpreter предоставляет модель среды выполнения Python, в которой она может создавать и запускать код Python.
Что такое инструмент code_interpreter?
Средство code_interpreter позволяет создавать модели искусственного интеллекта для динамического написания и запуска кода Python во время беседы. Вместо того чтобы просто обсуждать код или алгоритмы, модель может протестировать логику, обрабатывать данные и возвращать фактические результаты из кода. Это преобразует модель из мыслителя в исполнителя.
К ключевым функциям относятся:
- Динамическое выполнение Python: модель записывает и запускает код Python в изолированной среде.
- Обработка файлов: отправка, обработка и скачивание файлов (CSV, JSON, изображения и т. д.)
- Анализ данных: выполнение вычислений, статистический анализ и преобразования данных на лету
- Обратная связь в режиме реального времени: модель видит результаты выполнения кода и может выполнять итерацию или устранять ошибки.
- Сложное решение проблем: решение математических задач, имитаций и головоломк логики с помощью исполняемого кода
Распространенные варианты использования
| Вариант использования | Пример |
|---|---|
| Анализ данных | Анализ CSV-файла и создание сводной статистики |
| Математика и физика | Решение разностных уравнений или имитация сценариев физики |
| Преобразование файлов | Преобразование между форматами данных (JSON CSV ↔ и т. д.) |
| Прототипирование | Тестирование алгоритмов и идей до формальной реализации |
Простой пример
Вот как использовать code_interpreter с API ответов OpenAI:
from openai import OpenAI
client = OpenAI(
base_url={openai_endpoint},
api_key={auth_key_or_token}
)
# Get response using the code_interpreter tool
response = client.responses.create(
model={model_deployment},
instructions="You are an AI assistant that provides information. Use the python tool to run code for math problems.",
input="What is the square root of 16?",
tools=[{"type": "code_interpreter",
"container": {"type": "auto"}}]
)
print(response.output_text)
Выходные данные этого кода похожи на следующее:
The square root of 16 is 4.
Более важно, что проверка сведений объекта ответа , возвращаемого моделью, показывает, что результат вычисляется и возвращается в модель с помощью динамического созданного кода Python, как показано ниже:
import math
# Calculate the square root of 16
square_root = math.sqrt(16)
square_root
Как работает средство code_interpreter
Общий процесс использования средства code_interpreter:
- Вы отправляете запрос: включите code_interpreter в массив инструментов.
- Модель анализирует задачу: модель определяет, требуется ли выполнение кода.
- Модель создает код: модель записывает код Python для выполнения задачи.
- Код выполняется: код работает в изолированной среде с доступом к общим библиотекам (например, pandas, numpy и math).
- Результаты возвращаются: модель получает выходные данные и включает ее в свой ответ.
Лучшие практики
- Будьте конкретными. Опишите формат данных и ожидаемые выходные данные четко. Во многих моделях используется средство Python для идентификации средства code_interpreter, поэтому используйте этот язык в инструкциях.
- Предоставление контекста: включение соответствующих знаний о домене в запросы
- Проверка результатов: всегда просматривайте код, созданный ИИ, для правильности перед использованием в рабочей среде
- Мониторинг затрат: выполнение кода добавляет маркеры; Сложные операции могут использовать больше ресурсов
- Использование библиотек: стандартные пакеты, такие как pandas, numpy и matplotlib, предварительно установлены
- Обработка ошибок: модель может видеть ошибки и пытаться исправить их автоматически.
Ограничения, о которые следует знать
- Выполнение выполняется в изолированной среде без доступа к внешней сети
- Некоторые библиотеки могут быть недоступны; сообщите модели, если стандартная библиотека не работает.
- Ограничения времени ожидания применяются к длительным операциям
- Код выполняется в условиях ограничений памяти — для обработки больших наборов данных может потребоваться использование потоковой передачи или разбиения на части.