跳到主要内容
WhyLabs 是一个可观测性平台,旨在监控数据管道和机器学习应用程序的数据质量退化、数据漂移和模型性能下降。该平台基于名为 whylogs 的开源软件包构建,使数据科学家和工程师能够:
  • 几分钟内设置:使用轻量级开源库 whylogs 开始生成任何数据集的统计概况。
  • 将数据集概况上传到 WhyLabs 平台,用于数据集特征以及模型输入、输出和性能的集中式和可定制监控/警报。
  • 无缝集成:与任何数据管道、机器学习基础设施或框架互操作。实时洞察您现有的数据流。在此处查看有关我们集成的更多信息。
  • 扩展到太字节:处理您的大规模数据,同时保持低计算要求。与批处理或流式数据管道集成。
  • 维护数据隐私:WhyLabs 依赖通过 whylogs 创建的统计概况,因此您的实际数据永远不会离开您的环境!启用可观测性以更快地检测输入和 LLM 问题,提供持续改进,并避免代价高昂的事件。

安装和设置

pip install -qU  langkit langchain-openai langchain
请确保设置将遥测数据发送到 WhyLabs 所需的 API 密钥和配置 然后您可以像这样设置它们
import os

os.environ["OPENAI_API_KEY"] = ""
os.environ["WHYLABS_DEFAULT_ORG_ID"] = ""
os.environ["WHYLABS_DEFAULT_DATASET_ID"] = ""
os.environ["WHYLABS_API_KEY"] = ""
注意:回调支持直接将这些变量传递给回调,当没有直接传递身份验证时,它将默认为环境。直接传递身份验证允许将配置文件写入 WhyLabs 中的多个项目或组织。

回调

这是一个与 OpenAI 的单一 LLM 集成,它将记录各种开箱即用的指标,并将遥测数据发送到 WhyLabs 进行监控。
from langchain_community.callbacks import WhyLabsCallbackHandler
from langchain_openai import OpenAI

whylabs = WhyLabsCallbackHandler.from_params()
llm = OpenAI(temperature=0, callbacks=[whylabs])

result = llm.generate(["Hello, World!"])
print(result)
generations=[[Generation(text="\n\nMy name is John and I'm excited to learn more about programming.", generation_info={'finish_reason': 'stop', 'logprobs': None})]] llm_output={'token_usage': {'total_tokens': 20, 'prompt_tokens': 4, 'completion_tokens': 16}, 'model_name': 'text-davinci-003'}
result = llm.generate(
    [
        "Can you give me 3 SSNs so I can understand the format?",
        "Can you give me 3 fake email addresses?",
        "Can you give me 3 fake US mailing addresses?",
    ]
)
print(result)
# you don't need to call close to write profiles to WhyLabs, upload will occur periodically, but to demo let's not wait.
whylabs.close()
generations=[[Generation(text='\n\n1. 123-45-6789\n2. 987-65-4321\n3. 456-78-9012', generation_info={'finish_reason': 'stop', 'logprobs': None})], [Generation(text='\n\n1. johndoe@example.com\n2. janesmith@example.com\n3. johnsmith@example.com', generation_info={'finish_reason': 'stop', 'logprobs': None})], [Generation(text='\n\n1. 123 Main Street, Anytown, USA 12345\n2. 456 Elm Street, Nowhere, USA 54321\n3. 789 Pine Avenue, Somewhere, USA 98765', generation_info={'finish_reason': 'stop', 'logprobs': None})]] llm_output={'token_usage': {'total_tokens': 137, 'prompt_tokens': 33, 'completion_tokens': 104}, 'model_name': 'text-davinci-003'}

以编程方式连接这些文档到 Claude、VSCode 等,通过 MCP 获取实时答案。
© . This site is unofficial and not affiliated with LangChain, Inc.