Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Note
Этот документ относится к порталу Microsoft Foundry (классическая модель). Сведения о непрерывной оценке с помощью портала Microsoft Foundry (new) см. в разделе "Настройка непрерывной оценки".
Important
Элементы, обозначенные в этой статье как (предварительная версия), сейчас предлагаются в общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания, и мы не рекомендуем ее для рабочих нагрузок. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Для получения дополнительной информации см. Дополнительные условия использования для предварительных версий Microsoft Azure.
Непрерывная оценка для агентов обеспечивает почти мгновенную наблюдаемость и мониторинг для приложения искусственного интеллекта. После включения эта функция постоянно оценивает взаимодействие агента с заданной скоростью выборки, чтобы предоставить аналитические сведения о качестве, безопасности и производительности с метриками, которые отображаются на панели мониторинга наблюдения Foundry. С помощью непрерывной оценки вы сможете выявлять и устранять проблемы на ранних этапах, оптимизировать производительность агента и поддерживать безопасность. Оценки также подключены к трассировкам. для включения подробной отладки и анализа первопричин.
Prerequisites
Note
Для этой функции необходимо использовать проект Foundry . Центральный проект не поддерживается. Узнайте , как определить, какой тип проекта у вас. и Создание проекта Foundry. Чтобы перенести проект на основе концентратора в проект Foundry, см. статью "Миграция с концентратора на проекты Foundry".
- Агент, созданный в проекте
- Ресурс Azure Monitor Application Insights
Действия по подключению Application Insights
-
Войдите в Microsoft Foundry. Убедитесь, что переключатель New Foundry отключен. Эти действия относятся к Foundry (классическая).
Выберите "Мониторинг" в меню слева и перейдите в Application Analytics.
Подключите ресурс Application Insights к проекту.
Настройка непрерывных вычислений с помощью клиентской библиотеки Azure AI Projects
pip install azure-ai-projects azure-identity
Запуск агента
import os, json
from azure.ai.projects import AIProjectClient
from azure.identity import DefaultAzureCredential
project_client = AIProjectClient(
credential=DefaultAzureCredential(), endpoint=os.environ["PROJECT_ENDPOINT"]
)
agent = project_client.agents.create_agent(
model=os.environ["MODEL_DEPLOYMENT_NAME"],
name="my-assistant",
instructions="You are a helpful assistant",
tools=file_search_tool.definitions,
tool_resources=file_search_tool.resources,
)
# Create thread and process user message
thread = project_client.agents.threads.create()
project_client.agents.messages.create(thread_id=thread.id, role="user", content="Hello, what Contoso products do you know?")
run = project_client.agents.runs.create_and_process(thread_id=thread.id, agent_id=agent.id)
# Handle run status
if run.status == "failed":
print(f"Run failed: {run.last_error}")
# Print thread messages
for message in project_client.agents.messages.list(thread_id=thread.id).text_messages:
print(message)
Выбор оценщиков
Затем необходимо определить набор оценивателей, которые вы хотите выполнять постоянно. Дополнительные сведения о поддерживаемых оценщиках см. Что такое оценщики?
from azure.ai.projects.models import EvaluatorIds
evaluators={
"Relevance": {"Id": EvaluatorIds.Relevance.value},
"Fluency": {"Id": EvaluatorIds.Fluency.value},
"Coherence": {"Id": EvaluatorIds.Coherence.value},
},
Оценивайте запуск вашего агента непрерывно путем создания AgentEvaluationRequest
project_client.evaluation.create_agent_evaluation(
AgentEvaluationRequest(
thread=thread.id,
run=run.id,
evaluators=evaluators,
appInsightsConnectionString = project_client.telemetry.get_application_insights_connection_string(),
)
)
Получение результата оценки с помощью Application Insights
from azure.core.exceptions import HttpResponseError
from azure.identity import DefaultAzureCredential
from azure.monitor.query import LogsQueryClient, LogsQueryStatus
import pandas as pd
credential = DefaultAzureCredential()
client = LogsQueryClient(credential)
query = f"""
traces
| where message == "gen_ai.evaluation.result"
| where customDimensions["gen_ai.thread.run.id"] == "{run.id}"
"""
try:
response = client.query_workspace(os.environ["LOGS_WORKSPACE_ID"], query, timespan=timedelta(days=1))
if response.status == LogsQueryStatus.SUCCESS:
data = response.tables
else:
# LogsQueryPartialResult - handle error here
error = response.partial_error
data = response.partial_data
print(error)
for table in data:
df = pd.DataFrame(data=table.rows, columns=table.columns)
key_value = df.to_dict(orient="records")
pprint(key_value)
except HttpResponseError as err:
print("something fatal happened")
print(err)
Сбор объяснений по поводу результатов оценки
Эксперты, использующие искусственный интеллект, применяют цепочку рассуждений, чтобы создать объяснение для оценки в вашем результате оценки. Чтобы сделать это, установите значение False для параметра redact_score_properties в объекте AgentEvaluationRedactionConfiguration и передайте его в запросе.
Это помогает понять причину оценки для каждой метрики.
Note
Объяснения причин могут содержать упоминания конфиденциальной информации в зависимости от содержания беседы.
from azure.ai.projects.models import AgentEvaluationRedactionConfiguration
project_client.evaluation.create_agent_evaluation(
AgentEvaluationRequest(
thread=thread.id,
run=run.id,
evaluators=evaluators,
redaction_configuration=AgentEvaluationRedactionConfiguration(
redact_score_properties=False,
),
app_insights_connection_string=app_insights_connection_string,
)
)
Настройка конфигурации выборки
Вы можете настроить конфигурацию выборки, определив AgentEvaluationSamplingConfiguration и указав предпочтительный процент выборки и максимальные запросы в час в пределах системного ограничения в 1000/час.
from azure.ai.projects.models
sampling_config = AgentEvaluationSamplingConfiguration (
name = agent.id,
samplingPercent = 100, # Percentage of sampling per hour (0-100)
maxRequestRate = 250, # Maximum request rate per hour (0-1000)
)
project_client.evaluation.create_agent_evaluation(
AgentEvaluationRequest(
thread=thread.id,
run=run.id,
evaluators=evaluators,
samplingConfiguration = sampling_config,
appInsightsConnectionString = project_client.telemetry.get_application_insights_connection_string(),
)
)
Note
Если несколько приложений ИИ отправляют данные непрерывной оценки в один ресурс Application Insights, рекомендуется использовать имя службы для дифференцировки данных приложения. Дополнительные сведения см. в Azure AI Tracing.
Просмотр результатов непрерывной оценки
После развертывания приложения в рабочей среде с непрерывной настройкой оценки можно отслеживать качество и безопасность агента с помощью Foundry и Azure Monitor.