코드에서 애플리케이션을 평가하려면 애플리케이션을 실행할 수 있는 방법이 필요합니다. evaluate() 함수를 사용할 때(Python/TypeScript) 타겟 함수 인자를 전달하여 이를 수행합니다. 이 함수는 데이터셋 Example의 입력을 받아 애플리케이션 출력을 dict로 반환하는 함수입니다. 이 함수 내에서 원하는 방식으로 애플리케이션을 호출할 수 있습니다. 또한 원하는 방식으로 출력을 포맷할 수 있습니다. 중요한 점은 정의한 모든 평가자 함수가 타겟 함수에서 반환하는 출력 형식과 호환되어야 한다는 것입니다.
from langsmith import wrappersfrom openai import OpenAI# 선택적으로 OpenAI 클라이언트를 래핑하여# 모든 모델 호출을 자동으로 추적할 수 있습니다.oai_client = wrappers.wrap_openai(OpenAI())def target(inputs: dict) -> dict: # 이 코드는 데이터셋에 'messages' 키가 있다고 가정합니다. # 데이터셋 스키마에 맞게 업데이트할 수 있습니다. messages = inputs["messages"] response = oai_client.chat.completions.create( messages=messages, model="gpt-4o-mini", ) return {"answer": response.choices[0].message.content}
from my_agent import agent # 이 함수를 평가하게 됩니다.def target(inputs: dict) -> dict: # 이 코드는 데이터셋에 `messages` 키가 있다고 가정합니다 messages = inputs["messages"] # `invoke`를 에이전트를 호출하는데 사용하는 메서드로 교체하세요 response = agent.invoke({"messages": messages}) # 이 코드는 에이전트 출력이 올바른 형식이라고 가정합니다 return response
데이터셋에 정의된 입력을 받아들이고 평가자에서 사용하려는 출력 형식을 반환하는 LangGraph/LangChain 에이전트가 있다면, 해당 객체를 타겟으로 직접 전달할 수 있습니다:
Copy
from my_agent import agentfrom langsmith import Clientclient = Client()client.evaluate(agent, ...)