from langsmith import Client
# 1. 创建和/或选择您的数据集
ls_client = Client()
dataset = ls_client.clone_public_dataset(
"https://smith.langchain.com/public/a63525f9-bdf2-4512-83e3-077dc9417f96/d"
)
# 2. 定义一个评估器
def is_concise(outputs: dict, reference_outputs: dict) -> bool:
return len(outputs["answer"]) < (3 * len(reference_outputs["answer"]))
# 3. 定义您的应用接口
def chatbot(inputs: dict) -> dict:
return {"answer": inputs["question"] + " is a good question. I don't know the answer."}
# 4. 运行评估
experiment = ls_client.evaluate(
chatbot,
data=dataset,
evaluators=[is_concise],
experiment_prefix="my-first-experiment",
# 'upload_results' 是相关参数。
upload_results=False
)
# 5. 在本地分析结果
results = list(experiment)
# 检查 'is_concise' 是否返回了 False。
failed = [r for r in results if not r["evaluation_results"]["results"][0].score]
# 查看失败的输入和输出。
for r in failed:
print(r["example"].inputs)
print(r["run"].outputs)
# 将结果作为 Pandas DataFrame 进行查看。
# 必须已安装 'pandas'。
df = experiment.to_pandas()
df[["inputs.question", "outputs.answer", "reference.answer", "feedback.is_concise"]]