트랙 엔드포인트 데코레이터

트랙 엔드포인트 데코레이터 (Track Endpoint Decorator)

@track_endpoint 데코레이터로 Flask 애플리케이션의 HTTP 엔드포인트를 추적하는 방법을 소개해요. 자동 요청/응답 모니터링과 커스터마이즈 옵션을 알아볼게요.

출처: 문서

본문

개요 (Overview)

@track_endpoint 데코레이터는 Flask 애플리케이션에 자동 요청/응답 모니터링과 함께 HTTP 엔드포인트 추적을 제공합니다. Flask와 원활하게 동작하도록 설계되었으며, 기본 @trace 데코레이터의 기능을 확장합니다.

OpenAI와 함께하는 빠른 예제 (Quick Example with OpenAI)

OpenAI를 사용해 텍스트를 생성하는 간단한 Flask 엔드포인트입니다.

from flask import Flask, request
from openai import OpenAI
import agentops

# Initialize AgentOps
agentops.init(
    api_key="your-api-key",
    auto_start_session=False,  # Required for endpoint tracing
)

app = Flask(__name__)
client = OpenAI()

@app.route("/api/generate", methods=["POST"])
@agentops.track_endpoint(
    name="generate_text",
    tags=["ai", "openai"]
)
def generate_text():
    """Generate text using OpenAI"""
    data = request.get_json()
    prompt = data.get("prompt", "Hello!")
    
    # OpenAI call is automatically traced
    response = client.chat.completions.create(
        model="gpt-4",
        messages=[{"role": "user", "content": prompt}],
        max_tokens=150
    )
    
    return {
        "text": response.choices[0].message.content,
        "usage": {
            "total_tokens": response.usage.total_tokens
        }
    }

if __name__ == "__main__":
    app.run(debug=True)

데코레이터는 자동으로 다음을 캡처합니다.

  • HTTP 요청 데이터 (메서드, URL, 헤더, 본문)
  • HTTP 응답 데이터 (상태 코드, 헤더, 본문)
  • OpenAI API 호출과 그 결과
  • 요청 처리 중 발생하는 모든 오류

다음과 같은 파라미터로 추적을 커스터마이즈할 수 있어요.

  • name: 트레이스의 커스텀 이름
  • tags: 트레이스 분류를 위한 태그 리스트 또는 dict
  • capture_request: 요청 데이터 캡처 여부 (기본: True)
  • capture_response: 응답 데이터 캡처 여부 (기본: True)

더 알아보기 (Learn more)