UI에서 실험 필터링하기
UI에서 실험 필터링하기
LangSmith를 사용하면 피드백 점수와 메타데이터로 이전 실험을 필터링해서 관심 있는 실험만 쉽게 찾을 수 있어요.
출처: 문서
본문
배경: 실험에 메타데이터 추가하기
SDK에서 실험을 실행할 때 메타데이터를 첨부하면 UI에서 필터링하기가 더 쉬워져요. 실험을 실행할 때 어떤 축으로 드릴다운하고 싶은지 안다면 이 방식이 유용합니다.
아래 예시에서는 사용된 모델, 모델 공급자, 그리고 알려진 프롬프트 ID에 대한 메타데이터를 실험에 첨부하겠습니다:
models = {
"openai-gpt-5.5": ChatOpenAI(model="gpt-5.5", temperature=0),
"openai-gpt-5.4-mini": ChatOpenAI(model="gpt-5.4-mini", temperature=0),
"anthropic-claude-sonnet-4-6": ChatAnthropic(temperature=0, model_name="claude-sonnet-4-6")
}
prompts = {
"singleminded": "always answer questions with the word banana.",
"fruitminded": "always discuss fruit in your answers.",
"basic": "you are a chatbot."
}
def answer_evaluator(run, example) -> dict:
llm = ChatOpenAI(model="gpt-5.5", temperature=0)
answer_grader = hub.pull("langchain-ai/rag-answer-vs-reference") | llm
score = answer_grader.invoke(
{
"question": example.inputs["question"],
"correct_answer": example.outputs["answer"],
"student_answer": run.outputs,
}
)
return {"key": "correctness", "score": score["Score"]}
dataset_name = "Filterable Dataset"
for model_type, model in models.items():
for prompt_type, prompt in prompts.items():
def predict(example):
return model.invoke(
[("system", prompt), ("user", example["question"])]
)
model_provider = model_type.split("-")[0]
model_name = model_type[len(model_provider) + 1:]
evaluate(
predict,
data=dataset_name,
evaluators=[answer_evaluator],
# 여기에 메타데이터를 추가하세요!!
metadata={
"model_provider": model_provider,
"model_name": model_name,
"prompt_id": prompt_type
}
)
UI에서 실험 필터링하기
UI에서는 기본적으로 실행된 모든 실험이 표시됩니다.
만약 예를 들어 openai 모델을 선호한다면, 먼저 openai 모델 내에서만 점수를 쉽게 필터링해서 볼 수 있어요.
필터를 쌓을 수도 있어서, correctness(정확성)에서 낮은 점수를 걸러내어 관련된 실험만 비교할 수 있습니다.
마지막으로, 필터를 지우고 초기화할 수도 있어요. 예를 들어 singleminded 프롬프트에 확실한 승자가 있다면, 필터링 설정을 변경해 다른 모델 공급자의 모델도 그것과 잘 작동하는지 확인할 수 있습니다.
더 알아보기 (Learn more)
- 이 문서들을 사용하기 — MCP를 통해 Claude, VSCode 등에 연결하여 실시간 답변을 받아 보세요.
- GitHub에서 이 페이지 편집 또는 이슈 등록