트랙 엔드포인트 데코레이터
트랙 엔드포인트 데코레이터 (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: 트레이스 분류를 위한 태그 리스트 또는 dictcapture_request: 요청 데이터 캡처 여부 (기본: True)capture_response: 응답 데이터 캡처 여부 (기본: True)