文章目录
- 1 回调函数
- 1.1 普通函数调用(你主动去敲门)
- 1.2 回调函数(留下名片前台在特定时刻叫你)
- 1.3 映射到LangChain和LangSmith
- 1.3.1 没有回调时(普通调用)
- 1.3.2 有回调时(LangSmith的零侵入追踪)
- 1.4 回调函数伪代码
- 2 极简版示例
- 2.1 定义监听器接口(制定便签的模板)
- 2.2 模拟LangSmith的监听器(具体的便签内容)
- 2.3 全局监听管理器(智能前台)
- 2.4 业务代码
- 2.5 运行测试
- 2.6 整体代码
- 2.7 总结
- 3 可观测性设计
用Python最基础的设计模式来手写一个极简版的“可观测性框架”。
这个示例展示了三个核心概念:回调接口(Callback)、全局监听器注册和环境变量开关。实现了“零侵入式”的链路追踪。
1 回调函数
回调函数”(Callback Function)听起来是个高大上的专业术语,但其实它的逻辑在生活中非常常见。
用一句话概括:回调函数就是“你把一个函数交给别人,等特定条件触发时,让别人反过来调用你”。
举个例子:去大公司拜访客户。
1.1 普通函数调用(你主动去敲门)
(1)场景:你需要找客户(执行某个功能)拿一份文件。
(2)动作:你亲自走到客户的办公室门前,敲门,进去,等客户把文件给你,你拿着文件离开。
(3)特点:你掌握着绝对的主动权。你必须全程盯着这件事,如果客户不在或者让你等,你就只能干等,什么别的事也干不了。
(4)对应代码:你写了一行代码result = get_file(),程序必须停下来等这个函数执行完,拿到result,才能继续往下走。
1.2 回调函数(留下名片前台在特定时刻叫你)
(1)场景:你同样需要拿文件,但你很忙,不想傻等。
(2)动作:你走到客户办公室,发现客户正在开会(或者你不想亲自盯)。于是你写了一张便签(回调函数),上面写着:“当客户签完字时,请立刻叫我”(触发条件)。你把这张便签交给前台(框架/容器),然后你就可以去沙发上喝咖啡、处理其他邮件了。
(3)触发回调:当客户终于签完字(特定条件满足),前台