Itinai.com two developers coding side by side in a minimalist 9e46852c 56ad 43df b8ce 5a8451c13b63 2

Отслеживание ответов агентов OpenAI с помощью MLflow для бизнеса

Itinai.com two developers coding side by side in a minimalist 9e46852c 56ad 43df b8ce 5a8451c13b63 2

Введение в MLflow и его возможности

В современном мире автоматизации бизнеса с помощью искусственного интеллекта, управление и отслеживание взаимодействий агентов становится критически важным. MLflow — это открытая платформа, которая помогает в управлении и отслеживании экспериментов машинного обучения. Интеграция MLflow с OpenAI Agents SDK позволяет автоматически фиксировать все взаимодействия агентов, что значительно упрощает процесс отладки и анализа производительности.

Зачем нужно отслеживание ответов агентов OpenAI?

Когда вы работаете с многоагентными системами, важно понимать, как каждый агент взаимодействует с пользователем и с другими агентами. Tracing OpenAI Agent Responses using MLFlow позволяет вам:

  • Логировать все взаимодействия и API вызовы;
  • Фиксировать использование инструментов, входные и выходные сообщения;
  • Отслеживать выполнение для отладки и анализа производительности.

Это особенно полезно, когда разные агенты работают совместно или динамически вызывают функции друг друга.

Практическое применение: Пример многоагентной системы

Рассмотрим пример, где мы создаем многоагентного помощника, который может обрабатывать запросы пользователей по программированию и кулинарии. Для этого мы используем MLflow для автоматического отслеживания взаимодействий.

Настройка зависимостей

pip install openai-agents mlflow pydantic pydotenv

Не забудьте получить ключ API OpenAI и создать файл .env с вашим ключом.

Код многоагентной системы

import mlflow, asyncio
from agents import Agent, Runner
import os
from dotenv import load_dotenv
load_dotenv()

mlflow.openai.autolog()
mlflow.set_tracking_uri("./mlruns")
mlflow.set_experiment("Agent-Coding-Cooking")

coding_agent = Agent(name="Coding agent", instructions="You only answer coding questions.")
cooking_agent = Agent(name="Cooking agent", instructions="You only answer cooking questions.")

triage_agent = Agent(
    name="Triage agent",
    instructions="If the request is about code, handoff to coding_agent; if about cooking, handoff to cooking_agent.",
    handoffs=[coding_agent, cooking_agent],
)

async def main():
    res = await Runner.run(triage_agent, input="How do I boil pasta al dente?")
    print(res.final_output)

if __name__ == "__main__":
    asyncio.run(main())

Просмотр интерфейса MLflow

Чтобы открыть интерфейс MLflow и просмотреть все зафиксированные взаимодействия агентов, выполните команду:

mlflow ui

Это запустит сервер отслеживания MLflow, и вы сможете увидеть поток взаимодействий, что поможет в отладке и оптимизации рабочих процессов агентов.

Пример с защитными механизмами

Теперь рассмотрим пример, где мы реализуем защитный механизм для агента поддержки клиентов. Этот агент будет блокировать запросы, связанные с медицинскими вопросами.

Код с защитным механизмом

import mlflow, asyncio
from pydantic import BaseModel
from agents import (
    Agent, Runner,
    GuardrailFunctionOutput, InputGuardrailTripwireTriggered,
    input_guardrail, RunContextWrapper)

from dotenv import load_dotenv
load_dotenv()

mlflow.openai.autolog()
mlflow.set_tracking_uri("./mlruns")
mlflow.set_experiment("Agent-Guardrails")

class MedicalSymptoms(BaseModel):
    medical_symptoms: bool
    reasoning: str

guardrail_agent = Agent(
    name="Guardrail check",
    instructions="Check if the user is asking you for medical symptoms.",
    output_type=MedicalSymptoms,
)

@input_guardrail
async def medical_guardrail(ctx: RunContextWrapper[None], agent: Agent, input):
    result = await Runner.run(guardrail_agent, input, context=ctx.context)
    return GuardrailFunctionOutput(
        output_info=result.final_output,
        tripwire_triggered=result.final_output.medical_symptoms,
    )

agent = Agent(
    name="Customer support agent",
    instructions="You are a customer support agent. You help customers with their questions.",
    input_guardrails=[medical_guardrail],
)

async def main():
    try:
        await Runner.run(agent, "Should I take aspirin if I'm having a headache?")
        print("Guardrail didn't trip - this is unexpected")
    except InputGuardrailTripwireTriggered:
        print("Medical guardrail tripped")

if __name__ == "__main__":
    asyncio.run(main())

Просмотр интерфейса MLflow для защитных механизмов

Запустите команду mlflow ui в новом терминале, чтобы увидеть все зафиксированные взаимодействия. В этом примере, когда агент получает вопрос о медицинских симптомах, защитный механизм срабатывает, и вы можете увидеть, как это было зафиксировано в интерфейсе MLflow.

Заключение

В этой статье мы рассмотрели, как отслеживать ответы агентов OpenAI с помощью MLflow, продемонстрировав как многоагентную систему, так и реализацию защитных механизмов. Используя возможности MLflow, разработчики могут повысить надежность и безопасность своих AI-приложений.

Часто задаваемые вопросы (FAQ)

1. Как MLflow помогает в отслеживании взаимодействий агентов?

MLflow автоматически фиксирует все API вызовы и взаимодействия, что упрощает отладку и анализ.

2. Какие библиотеки необходимы для работы с MLflow и OpenAI Agents?

Вам понадобятся библиотеки openai-agents, mlflow, pydantic и pydotenv.

3. Как настроить защитные механизмы для агентов?

Вы можете использовать input_guardrail для проверки входящих запросов и блокировки нежелательных.

4. Как просмотреть зафиксированные данные в MLflow?

Запустите команду mlflow ui в терминале, чтобы открыть интерфейс отслеживания.

5. Какие ошибки часто возникают при работе с MLflow?

Частые ошибки включают неправильную настройку окружения и отсутствие необходимых библиотек.

6. Какие лайфхаки можно использовать при работе с MLflow?

Регулярно проверяйте логи и используйте экспериментальные названия, чтобы легко идентифицировать разные сценарии.

Запустите свой ИИ проект бесплатно

ИИ-агенты искусственный интеллект онлайн для бизнеса

Лучший ИИ онлайн