이 제품은 선택한 Datadog 사이트에서 지원되지 않습니다. ().

개요

전통적인 애플리케이션과 마찬가지로, LLM 애플리케이션은 여러 마이크로서비스에 걸쳐 있을 수 있습니다. Agent Observability를 사용하면 이러한 서비스 중 하나가 LLM 프록시 또는 게이트웨이인 경우, 전체 엔드투엔드 추적 내에서 LLM 호출을 추적하여 서비스 전반의 전체 요청 경로를 캡처할 수 있습니다.

프록시 또는 게이트웨이 서비스에 대해 Agent Observability 활성화

여러 ML 애플리케이션이 사용하는 프록시 또는 게이트웨이 서비스에 Agent Observability를 활성화하려면 ML 애플리케이션 이름을 지정하지 않고 구성할 수 있습니다. 대신 서비스 이름을 설정하세요. 이를 통해 Agent Observability 내에서 해당 프록시 또는 게이트웨이 서비스에 특정한 스팬을 필터링할 수 있습니다.

# proxy.py
from ddtrace.llmobs import LLMObs

LLMObs.enable(service="chat-proxy")

# proxy-specific logic, including guardrails, sensitive data scans, and the LLM call
// proxy.js
const tracer = require('dd-trace').init({
  llmobs: true,
  service: "chat-proxy"
});
const llmobs = tracer.llmobs;

// proxy-specific logic, including guardrails, sensitive data scans, and the LLM call

LLM 프록시 또는 게이트웨이로 요청을 보내는 ML 애플리케이션을 오케스트레이션하는 서비스가 있는 경우, ML 애플리케이션 이름으로 Agent Observability를 활성화하세요.

# application.py
from ddtrace.llmobs import LLMObs
LLMObs.enable(ml_app="my-ml-app")

import requests

if __name__ == "__main__":
    with LLMObs.workflow(name="run-chat"):
      # other application-specific logic - (such as RAG steps and parsing)

      response = requests.post("http://localhost:8080/chat", json={
        # data to pass to the proxy service
      })


      # other application-specific logic handling the response
// application.js
const tracer = require('dd-trace').init({
  llmobs: {
    mlApp: 'my-ml-app'
  }
});
const llmobs = tracer.llmobs;

const axios = require('axios');

async function main () {
  llmobs.trace({ name: 'run-chat', kind: 'workflow' }, async () => {
    // other application-specific logic - (such as RAG steps and parsing)

    // wrap the proxy call in a task span
    const response = await axios.post('http://localhost:8080/chat', {
      // data to pass to the proxy service
    });

    // other application-specific logic handling the response
  });
}

main();

LLM 애플리케이션이 프록시 또는 게이트웨이 서비스에 요청을 보내면, Agent Observability SDK가 원래 LLM 애플리케이션의 ML 애플리케이션 이름을 자동으로 전파합니다. 프록시 또는 게이트웨이 서비스에 지정된 ML 애플리케이션 이름보다 전파된 ML 애플리케이션 이름이 우선합니다.

LLM 게이트웨이 및 프록시 서비스 관찰

프록시 또는 게이트웨이 서비스에 대한 모든 요청

프록시 서비스에 대한 모든 요청을 최상위 스팬으로 보려면 프록시 서비스 엔드포인트의 진입점을 workflow 스팬으로 래핑하세요.

# proxy.py
from ddtrace.llmobs import LLMObs

LLMObs.enable(service="chat-proxy")

@app.route('/chat')
def chat():
    with LLMObs.workflow(name="chat-proxy-entrypoint"):
        # proxy-specific logic, including guardrails, sensitive data scans, and the LLM call
// proxy.js
const tracer = require('dd-trace').init({
  llmobs: true,
  service: "chat-proxy"
});
const llmobs = tracer.llmobs;

app.post('/chat', async (req, res) => {
  await llmobs.trace({ name: 'chat-proxy-entrypoint', kind: 'workflow' }, async () => {
    // proxy-specific logic, including guardrails, sensitive data scans, and the LLM call
    res.send("Hello, world!");
  });
});

그러면 프록시 서비스에 대한 모든 요청을 LLM 트레이스 보기 내에서 최상위 스팬으로 볼 수 있습니다.

  1. LLM 트레이스 페이지에서 왼쪽 상단 드롭다운에서 All Applications를 선택하세요.
  2. 오른쪽 상단 드롭다운에서 All Spans 보기로 전환하세요.
  3. service 태그와 워크플로 이름으로 목록을 필터링하세요.
서비스 및 워크플로 이름 태그가 있는 모든 ML 애플리케이션의 모든 스팬 조회하기

트레이스 보기 왼쪽의 패싯을 사용하여 워크플로 Span Name을 필터링할 수도 있습니다.

트레이스 보기 왼쪽의 패싯에서 워크플로 스팬 이름 선택하기

프록시 또는 게이트웨이 서비스 내에서 이루어진 모든 LLM 호출

프록시 또는 게이트웨이 서비스 내에서 이루어진 LLM 호출만 모니터링하려면 추적 보기에서 llm 스팬으로 필터링하세요.

서비스 태그와 LLM 스팬 종류를 사용하여 모든 ML 애플리케이션의 모든 스팬 조회하기

트레이스 보기 왼쪽의 Span Kind 패싯으로도 필터링할 수 있습니다.

트레이스 보기 왼쪽에서 LLM 스팬 종류 패싯 선택하기

두 가지 필터링 프로세스(프록시 서비스에 대한 최상위 호출 및 프록시 또는 게이트웨이 서비스 내에서 이루어진 LLM 호출)를 모두 특정 ML 애플리케이션에 적용하여 프록시 또는 게이트웨이 서비스와의 상호 작용을 조회할 수 있습니다.

  1. 왼쪽 상단 드롭다운에서 관심 있는 ML 애플리케이션을 선택하세요.
  2. ML 애플리케이션에 대한 모든 추적을 보려면 오른쪽 상단 드롭다운에서 All Spans 보기에서 Traces 보기로 전환하세요.
  3. ML 애플리케이션에 대한 추적 시계열을 보려면 오른쪽 상단의 드롭다운에서 All Spans 필터로 다시 전환한 다음 ‘Visualize as’ 옆에서 Timeseries을 선택하세요.
All Span 필터를 유지하면서 트레이스 보기 옵션 중 목록 보기에서 시계열 보기로 전환하기

프록시 또는 게이트웨이 서비스에 호출을 수행하는 LLM 애플리케이션의 엔드투엔드 사용량 관찰

프록시 또는 게이트웨이 서비스에 호출을 수행하는 LLM 애플리케이션의 전체 엔드투엔드 사용량을 관찰하려면 해당 ML 애플리케이션 이름으로 추적을 필터링할 수 있습니다.

  1. LLM 추적 보기의 왼쪽 상단 드롭다운에서 관심 있는 ML 애플리케이션 이름을 선택하세요.
  2. 오른쪽 상단 드롭다운에서 Traces 보기로 전환하세요.