# 내부 동작 의사 코드 (실제 구현은 더 복잡)
original_create = openai.ChatCompletion.create
def patched_create(*args, **kwargs):
with mlflow.start_span(name="ChatCompletion", span_type="LLM") as span:
span.set_inputs({"messages": kwargs.get("messages")})
result = original_create(*args, **kwargs)
span.set_outputs({"response": result.choices[0].message.content})
span.set_attributes({
"token_usage.input": result.usage.prompt_tokens,
"token_usage.output": result.usage.completion_tokens,
"model": kwargs.get("model")
})
return result
openai.ChatCompletion.create = patched_create