Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Замечание
Эта функция сейчас доступна в общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания и не рекомендуется для использования в рабочей среде. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в разделе Supplemental Terms of Use for Microsoft Azure Previews.
Когда агент голосовой связи вызывает внешние средства или занимает некоторое время для создания ответа, пользователи испытывают молчание. Промежуточные ответы перекрывают эти периоды ожидания короткими устными сообщениями, поддерживая беседу в естественном русле, пока работа происходит в фоновом режиме.
Voice Live предоставляет конфигурацию сеанса interim_response для автоматического создания этих соединительных сообщений. Эта функция поддерживает режим агента (служба агента Foundry) и режим модели.
Замечание
В режиме модели промежуточные ответы поддерживаются только текстовыми LLM в каскадном режиме вместе с azure-speech выходными данными голоса. Звуковые модели в режиме реального времени не поддерживают промежуточные ответы.
Voice Live предлагает два промежуточных режима отклика:
- Промежуточный ответ с поддержкой LLM(
llm_interim_response): использует упрощенный LLM для динамического создания текста с поддержкой контекста. Лучше всего подходит для адаптивных, естественно звучащих ответов. -
Статический промежуточный ответ (
static_interim_response): случайным образом выбирается из предопределенного списка предоставленных текстов. Лучше всего подходит для детерминированного или фирменного обмена сообщениями.
Оба режима могут активироваться следующими способами:
| Триггер | Description |
|---|---|
latency |
Возникает, когда задержка отклика превышает настраиваемое пороговое значение (по умолчанию: 2000 мс). |
tool |
Срабатывает при выполнении вызова инструмента. |
Триггеры используют логику OR — любой соответствующий триггер активирует промежуточный ответ.
Предпосылки
Перед началом работы выполните следующие действия:
- Выполните краткое руководство: Создание агента голосовой связи в реальном времени или краткое руководство: Начало работы с Voice Live.
- Рабочая настройка голосовой трансляции.
- Рабочий цикл событий, обрабатывающий события Голосовой трансляции.
Это важно
Для промежуточных ответов требуется azure-ai-voicelive >= 1.0.0b5 и версия API 2026-01-01-preview. Установите пакет SDK предварительной версии с помощью:
pip install azure-ai-voicelive --pre
Этот пакет SDK в настоящее время находится в предварительной версии. Функции и API могут изменяться до общедоступной доступности.
Это важно
Для промежуточных ответов требуется Azure.AI.VoiceLive >= 1.1.0-beta.3 и версия API 2026-01-01-preview. Установите пакет SDK предварительной версии с помощью:
dotnet add package Azure.AI.VoiceLive --prerelease
Этот пакет SDK в настоящее время находится в предварительной версии. Функции и API могут изменяться до общедоступной доступности.
Это важно
Для промежуточных ответов требуется azure-ai-voicelive >= 1.0.0-beta.5 и версия API 2026-01-01-preview. Добавьте зависимость с помощью:
<dependency>
<groupId>com.azure</groupId>
<artifactId>azure-ai-voicelive</artifactId>
<version>1.0.0-beta.5</version>
</dependency>
Этот пакет SDK в настоящее время находится в предварительной версии. Функции и API могут изменяться до общедоступной доступности.
Это важно
Для промежуточных ответов требуется @azure/ai-voicelive >= 1.0.0-beta.3 и версия API 2026-01-01-preview. Установите пакет SDK предварительной версии с помощью:
npm install @azure/ai-voicelive@1.0.0-beta.3
Этот пакет SDK в настоящее время находится в предварительной версии. Функции и API могут изменяться до общедоступной доступности.
Настройка промежуточных ответов, созданных с помощью LLM
Промежуточные ответы, созданные LLM, используют легковесную упрощенную модель (по умолчанию: gpt-4.1-mini) для создания контекстно-зависимого текста. Вы можете настроить инструкции и лимиты токенов.
Параметры конфигурации
| Параметр | Тип | Description |
|---|---|---|
type |
струна | Это должно быть llm_interim_response (или эквивалентное перечисление SDK). |
triggers |
массив | Список триггеров: latency, toolили оба. По умолчанию: ["latency"]. |
latency_threshold_ms |
целое число | Миллисекунда до срабатывания триггера задержки. Значение по умолчанию: 2000. Минимум: 0. |
model |
струна | Модель для создания промежуточного текста. По умолчанию: gpt-4.1-mini. |
instructions |
струна | Настраиваемый запрос на промежуточный ответ LLM. |
max_completion_tokens |
целое число | Максимальные токены для созданного ответа. Значение по умолчанию: 50. Минимум: 1. |
Конфигурация пакета SDK
from azure.ai.voicelive.models import (
LlmInterimResponseConfig,
InterimResponseTrigger,
RequestSession,
)
interim_response_config = LlmInterimResponseConfig(
triggers=[InterimResponseTrigger.TOOL, InterimResponseTrigger.LATENCY],
latency_threshold_ms=200,
instructions="Create friendly interim responses indicating wait time "
"due to ongoing processing, if any. Do not include in "
"all responses!"
)
session_config = RequestSession(
interim_response=interim_response_config,
# ... other session options
)
await connection.session.update(session=session_config)
Конфигурация пакета SDK
var interimConfig = new LlmInterimResponseConfig
{
Instructions = "Create friendly interim responses indicating "
+ "wait time due to ongoing processing, if any. "
+ "Do not include in all responses!",
};
interimConfig.Triggers.Add(InterimResponseTrigger.Tool);
interimConfig.Triggers.Add(InterimResponseTrigger.Latency);
interimConfig.LatencyThresholdMs = 200;
var options = new VoiceLiveSessionOptions
{
InterimResponse = BinaryData.FromObjectAsJson(interimConfig),
// ... other session options
};
await session.ConfigureSessionAsync(options, cancellationToken);
Конфигурация пакета SDK
LlmInterimResponseConfig interimResponseConfig = new LlmInterimResponseConfig()
.setTriggers(Arrays.asList(
InterimResponseTrigger.TOOL,
InterimResponseTrigger.LATENCY))
.setLatencyThresholdMs(200)
.setInstructions("Create friendly interim responses indicating "
+ "wait time due to ongoing processing, if any. "
+ "Do not include in all responses!");
VoiceLiveSessionOptions sessionOptions = new VoiceLiveSessionOptions()
.setInterimResponse(BinaryData.fromObject(interimResponseConfig));
// ... other session options
session.sendEvent(new ClientEventSessionUpdate(sessionOptions)).block();
Конфигурация пакета SDK
await session.updateSession({
interimResponse: {
type: "llm_interim_response",
triggers: ["tool", "latency"],
latencyThresholdInMs: 200,
instructions:
"Create friendly interim responses indicating wait time " +
"due to ongoing processing, if any. " +
"Do not include in all responses!",
},
// ... other session options
});
Настройка статических промежуточных ответов
Статические промежуточные ответы выбираются случайным образом из предопределенного списка текстов при каждом срабатывании триггера. Этот подход обеспечивает полный контроль над тем, что агент говорит во время ожидания.
Параметры конфигурации
| Параметр | Тип | Description |
|---|---|---|
type |
струна | Это должно быть static_interim_response (или эквивалентное перечисление SDK). |
triggers |
массив | Список триггеров: latency, toolили оба. По умолчанию: ["latency"]. |
latency_threshold_ms |
целое число | Миллисекунда до срабатывания триггера задержки. Значение по умолчанию: 2000. Минимум: 0. |
texts |
массив | Список вариантов промежуточного текста для случайного выбора. |
Необработанная конфигурация JSON
Статические промежуточные ответы можно отправлять в виде необработанной session.update команды:
import json
static_config = {
"type": "session.update",
"session": {
"interim_response": {
"type": "static_interim_response",
"triggers": ["tool", "latency"],
"latency_threshold_ms": 1500,
"texts": [
"Let me look that up for you.",
"One moment while I check on that.",
"Just a second, I'm working on it."
]
}
}
}
await connection.send(json.dumps(static_config))
Конфигурация пакета SDK
var staticConfig = new StaticInterimResponseConfig();
staticConfig.Texts.Add("Let me look that up for you.");
staticConfig.Texts.Add("One moment while I check on that.");
staticConfig.Texts.Add("Just a second, I'm working on it.");
staticConfig.Triggers.Add(InterimResponseTrigger.Tool);
staticConfig.Triggers.Add(InterimResponseTrigger.Latency);
staticConfig.LatencyThresholdMs = 1500;
var options = new VoiceLiveSessionOptions
{
InterimResponse = BinaryData.FromObjectAsJson(staticConfig),
// ... other session options
};
await session.ConfigureSessionAsync(options, cancellationToken);
Необработанная конфигурация JSON
String staticConfig = """
{
"type": "session.update",
"session": {
"interim_response": {
"type": "static_interim_response",
"triggers": ["tool", "latency"],
"latency_threshold_ms": 1500,
"texts": [
"Let me look that up for you.",
"One moment while I check on that.",
"Just a second, I'm working on it."
]
}
}
}
""";
session.sendEvent(BinaryData.fromString(staticConfig)).block();
Необработанная конфигурация JSON
await session.updateSession({
interimResponse: {
type: "static_interim_response",
triggers: ["tool", "latency"],
latencyThresholdInMs: 1500,
texts: [
"Let me look that up for you.",
"One moment while I check on that.",
"Just a second, I'm working on it.",
],
},
});
Выберите правильный подход
| Требование | Сгенерированный LLM | Статический |
|---|---|---|
| Адаптивные ответы с учетом контекста | ✔ | ✖ |
| Детерминированный, прогнозируемый текст | ✖ | ✔ |
| Язык, контролируемый брендом | В зависимости от инструкций | ✔ |
| Разнообразие бесед | ✔ | Ограничено предварительно настроенными текстами |
| Без дополнительных затрат на вывод модели | ✖ | ✔ |
| Минимальная конфигурация | ✔ | Требуется текстовый список |
Дальнейшие шаги
- Дополнительные сведения об использовании API голосовой трансляции
- См. справочник по API голосовой трансляции
- Узнайте , как добавлять упреждающие сообщения
- Узнайте , как обрабатывать прерывания голосовой связи