Guardrails项目日志与历史记录深度解析

Guardrails项目日志与历史记录深度解析

guardrails guardrails 项目地址: https://gitcode.com/gh_mirrors/gua/guardrails

引言

在开发基于大语言模型(LLM)的应用时,调试和监控模型调用过程至关重要。Guardrails项目提供了完善的日志记录和历史追踪功能,帮助开发者深入了解每次Guard调用的完整生命周期。本文将全面解析Guardrails的日志系统,展示如何有效利用这些功能进行开发和调试。

基础概念

Guardrails中的Guard类会自动记录所有调用历史,这些记录存储在guard.history属性中。每次调用Guard.__call__Guard.parse方法都会生成一个Call日志对象,按执行顺序添加到历史堆栈中。

访问调用历史

基本访问方式

# 创建Guard实例
my_guard = Guard.from_rail(...)

# 进行多次调用
response_1 = my_guard(...)
response_2 = my_guard.parse(...)

# 访问历史记录
print(my_guard.history)  # 显示所有调用记录

查看最新调用详情

使用Rich库可以美观地打印最后一次调用的详细信息:

from rich import print
print(guard.history.last.tree)

Call日志详解

每个Call对象包含了一次完整调用的全生命周期信息。

获取特定调用

first_call = my_guard.history.first  # 获取第一次调用
last_call = my_guard.history.last    # 获取最后一次调用

输入参数查看

print("初始提示词:\n-----")
print(first_call.prompt)
print("提示词参数:\n------------- ")
print(first_call.prompt_params)

输出示例展示了完整的提示模板和实际传入的参数值。

输出结果查看

print("状态: ", first_call.status)  # 调用最终状态
print("验证后的响应:", first_call.validated_output)  # 最终有效输出

资源消耗统计

对于需要优化成本的场景,Call对象提供了详细的token消耗统计:

print("提示token用量: ", first_call.prompt_tokens_consumed)
print("补全token用量: ", first_call.completion_tokens_consumed)
print("总token用量: ", first_call.tokens_consumed)

原始LLM响应追踪

当出现验证失败和重试时,可以查看所有原始LLM响应:

print("LLM原始响应\n-------------")
for response in first_call.raw_outputs:
    print(response)

深入步骤级日志

每个Call包含一个Iteration堆栈,记录调用过程中的每个步骤。

访问特定步骤

first_step = first_call.iterations.first

查看步骤详情

print("第一步LLM响应:\n------------------")
print(first_step.raw_output)

print("\n验证器日志:\n--------------")
for log in first_step.validator_logs:
    print(log.json(indent=2))

验证器日志会详细显示每个字段的验证结果、错误信息和修正建议。

步骤级资源统计

print("本步骤提示token: ", first_step.prompt_tokens_consumed)
print("本步骤补全token: ", first_step.completion_tokens_consumed)
print("本步骤总token: ", first_step.tokens_consumed)

实际应用场景

  1. 调试验证失败:通过查看验证器日志,快速定位不符合要求的字段
  2. 优化提示工程:分析多次调用的prompt和响应,改进提示模板
  3. 成本分析:统计token使用情况,优化调用策略
  4. 质量监控:跟踪验证通过率,评估模型表现

最佳实践

  1. 在开发阶段定期检查guard.history,确保验证逻辑按预期工作
  2. 对生产环境的重要调用保存历史记录,便于后续分析
  3. 结合token统计优化提示设计,降低成本
  4. 利用验证日志改进rail规范,提高验证通过率

Guardrails的日志系统为开发者提供了强大的调试和监控能力,是构建可靠LLM应用的重要工具。通过充分利用这些功能,可以显著提高开发效率和系统可靠性。

guardrails guardrails 项目地址: https://gitcode.com/gh_mirrors/gua/guardrails

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

鲍爽沛David

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值