Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Используйте эту статью, чтобы узнать, как работать с использованием компьютера в Azure OpenAI. Использование компьютеров — это специализированное средство искусственного интеллекта, которое использует специализированную модель, которая может выполнять задачи, взаимодействуя с компьютерными системами и приложениями через свои UIs. С помощью компьютера можно создать агент, который может обрабатывать сложные задачи и принимать решения, интерпретируя визуальные элементы и выполняя действия на основе содержимого на экране.
Использование компьютера предоставляет следующие возможности:
- Автономная навигация: например, открывает приложения, нажимает кнопки, заполняет формы и перемещает многостраничные рабочие процессы.
- Динамическая адаптация: интерпретирует изменения пользовательского интерфейса и корректирует действия соответствующим образом.
- Выполнение задачи между приложениями: работает в веб-приложениях и классических приложениях.
- Интерфейс естественного языка: пользователи могут описать задачу на простом языке, а модель использования компьютера определяет правильное взаимодействие пользовательского интерфейса для выполнения.
Запрос на доступ
Для доступа к computer-use-preview
модели требуется регистрация и доступ будет предоставлен на основе критериев соответствия корпорации Майкрософт. Клиентам, имеющим доступ к другим моделям ограниченного доступа, по-прежнему потребуется запросить доступ к этой модели.
Request access: computer-use-preview limited access model application
Once access has been granted, you will need to create a deployment for the model.
Региональная поддержка
Использование компьютера доступно в следующих регионах:
eastus2
swedencentral
southindia
Отправка вызова API в модель использования компьютера с помощью API ответов
The Computer Use tool is accessed through the responses API. Средство работает в непрерывном цикле, который отправляет такие действия, как ввод текста или выполнение щелчка. Код выполняет эти действия на компьютере и отправляет снимки экрана результата в модель.
Таким образом, код имитирует действия человека с помощью компьютерного интерфейса, а модель использует снимки экрана, чтобы понять состояние среды и предложить следующие действия.
В следующих примерах показан базовый вызов API.
Примечание.
Требуется ресурс Azure OpenAI с развертыванием computer-use-preview
модели в поддерживаемом регионе.
Чтобы отправить запросы, необходимо установить следующие пакеты Python.
pip install openai
pip install azure-identity
import os
from azure.identity import DefaultAzureCredential, get_bearer_token_provider
from openai import AzureOpenAI
#from openai import OpenAI
token_provider = get_bearer_token_provider(DefaultAzureCredential(), "https://cognitiveservices.azure.com/.default")
client = AzureOpenAI(
azure_ad_token_provider=token_provider,
azure_endpoint=os.environ["AZURE_OPENAI_ENDPOINT"],
api_version="2025-03-01-preview"
)
response = client.responses.create(
model="computer-use-preview", # set this to your model deployment name
tools=[{
"type": "computer_use_preview",
"display_width": 1024,
"display_height": 768,
"environment": "browser" # other possible values: "mac", "windows", "ubuntu"
}],
input=[
{
"role": "user",
"content": "Check the latest AI news on bing.com."
}
],
truncation="auto"
)
print(response.output)
Выходные данные
[
ResponseComputerToolCall(
id='cu_67d841873c1081908bfc88b90a8555e0',
action=ActionScreenshot(type='screenshot'),
call_id='call_wwEnfFDqQr1Z4Edk62Fyo7Nh',
pending_safety_checks=[],
status='completed',
type='computer_call'
)
]
После отправки первоначального запроса API выполняется цикл, в котором указанное действие выполняется в коде приложения, отправляя снимок экрана с каждым поворотом, чтобы модель может оценить обновленное состояние среды.
## response.output is the previous response from the model
computer_calls = [item for item in response.output if item.type == "computer_call"]
if not computer_calls:
print("No computer call found. Output from model:")
for item in response.output:
print(item)
computer_call = computer_calls[0]
last_call_id = computer_call.call_id
action = computer_call.action
# Your application would now perform the action suggested by the model
# And create a screenshot of the updated state of the environment before sending another response
response_2 = client.responses.create(
model="computer-use-preview",
previous_response_id=response.id,
tools=[{
"type": "computer_use_preview",
"display_width": 1024,
"display_height": 768,
"environment": "browser" # other possible values: "mac", "windows", "ubuntu"
}],
input=[
{
"call_id": last_call_id,
"type": "computer_call_output",
"output": {
"type": "input_image",
# Image should be in base64
"image_url": f"data:image/png;base64,{<base64_string>}"
}
}
],
truncation="auto"
)
Общие сведения об интеграции с использованием компьютера
При работе с средством "Использование компьютера" обычно выполняется следующее, чтобы интегрировать его в приложение.
- Send a request to the model that includes a call to the computer use tool, and the display size and environment. Вы также можете включить снимок экрана начального состояния среды в первом запросе API.
- Получите ответ от модели. Если ответ содержит
action
элементы, эти элементы содержат предлагаемые действия для достижения прогресса в достижении указанной цели. Например, действие может бытьscreenshot
таким, чтобы модель могла оценить текущее состояние с обновленным снимком экрана илиclick
координатами X/Y, указывающими, где нужно переместить мышь. - Выполните действие с помощью кода приложения в среде компьютера или браузера.
- После выполнения действия зафиксировать обновленное состояние среды в виде снимка экрана.
- Отправьте новый запрос с обновленным состоянием в виде
computer_call_output
и повторите этот цикл, пока модель не перестанет запрашивать действия или вы решили остановиться.
Обработка истории переписки
Параметр можно использовать previous_response_id
для связывания текущего запроса с предыдущим ответом. Этот параметр рекомендуется использовать, если вы не хотите управлять журналом бесед.
Если вы не используете этот параметр, необходимо убедиться, что все элементы, возвращаемые как выходные данные ответа предыдущего запроса, включены в массив входных данных. Это включает в себя аргументы, если они присутствуют.
Проверки безопасности
The API has safety checks to help protect against prompt injection and model mistakes. Эти проверки включают в себя:
- Обнаружение вредоносных инструкций: система оценивает изображение снимка экрана и проверяет, содержит ли он состязательный контент, который может изменить поведение модели.
-
Обнаружение неуместных доменов: система оценивает
current_url
(если предоставлено) и проверяет, считается ли текущий домен соответствующим с учетом журнала бесед. -
Обнаружение конфиденциального домена: система проверяет
current_url
(если указано) и вызывает предупреждение при обнаружении пользователя в конфиденциальном домене.
If one or more of the above checks is triggered, a safety check is raised when the model returns the next computer_call
, with the pending_safety_checks
parameter.
"output": [
{
"type": "reasoning",
"id": "rs_67cb...",
"summary": [
{
"type": "summary_text",
"text": "Exploring 'File' menu option."
}
]
},
{
"type": "computer_call",
"id": "cu_67cb...",
"call_id": "call_nEJ...",
"action": {
"type": "click",
"button": "left",
"x": 135,
"y": 193
},
"pending_safety_checks": [
{
"id": "cu_sc_67cb...",
"code": "malicious_instructions",
"message": "We've detected instructions that may cause your application to perform malicious or unauthorized actions. Please acknowledge this warning if you'd like to proceed."
}
],
"status": "completed"
}
]
You need to pass the safety checks back as acknowledged_safety_checks
in the next request in order to proceed.
"input":[
{
"type": "computer_call_output",
"call_id": "<call_id>",
"acknowledged_safety_checks": [
{
"id": "<safety_check_id>",
"code": "malicious_instructions",
"message": "We've detected instructions that may cause your application to perform malicious or unauthorized actions. Please acknowledge this warning if you'd like to proceed."
}
],
"output": {
"type": "computer_screenshot",
"image_url": "<image_url>"
}
}
],
Safety check handling
In all cases where pending_safety_checks
are returned, actions should be handed over to the end user to confirm proper model behavior and accuracy.
-
malicious_instructions
иirrelevant_domain
: конечные пользователи должны просматривать действия модели и проверять, что модель ведет себя должным образом. -
sensitive_domain
: убедитесь, что конечный пользователь активно отслеживает действия модели на этих сайтах. Точная реализация этого режима наблюдения может отличаться в зависимости от приложения, но потенциальный пример может представлять собой сбор данных о впечатлениях пользователей на сайте, чтобы убедиться, что с приложением происходит активное взаимодействие пользователей.