3.Tool functions
此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)
邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org
==================================================
在使用Claude构建AI应用时,你经常需要为其提供访问实时信息或执行操作的能力。这就是工具函数发挥作用的地方——它们是Claude在需要额外数据来帮助用户时可以调用的Python函数。

上图展示了我们将要实现的三个基本工具:获取当前日期/时间、为日期添加持续时间,以及设置提醒。让我们从第一个开始。
什么是工具函数?
工具函数是一个普通的Python函数,当Claude决定需要额外信息来帮助用户时会自动执行。例如,如果有人问"现在几点了?",Claude会调用你的日期/时间工具来获取当前时间。

这里是一个天气工具函数的示例。注意它如何验证输入并提供清晰的错误消息——这些都是重要的最佳实践。
工具函数的最佳实践
编写工具函数时,请遵循以下准则:
- 使用描述性名称:你的函数名和参数名都应该清楚地表明其用途
- 验证输入:检查必需参数是否为空或无效,并在出现问题时抛出错误
- 提供有意义的错误消息:Claude可以看到错误消息,可能会使用修正后的参数重试函数调用
验证特别重要,因为Claude会从错误中学习。如果你抛出一个清晰的错误信息,比如"Location cannot be empty",Claude可能会尝试使用正确的位置值再次调用该函数。
构建你的第一个工具函数
让我们创建一个获取当前日期和时间的函数。这个函数将接受一个日期格式参数,这样Claude就可以请求不同格式的时间:
def get_current_datetime(date_format="%Y-%m-%d %H:%M:%S"):
if not date_format:
raise ValueError("date_format cannot be empty")
return datetime.now().strftime(date_format)
这个函数使用Python的datetime模块来获取当前时间,并根据提供的格式字符串进行格式化。默认格式为年-月-日 时:分:秒。
你可以用不同的格式来测试它:
# 默认格式:"2024-01-15 14:30:25"
get_current_datetime()
# 仅显示小时和分钟:"14:30"
get_current_datetime("%H:%M")
验证检查确保Claude不能为日期格式传递空字符串。虽然这种特定错误不太可能发生,但它展示了验证输入并提供有用错误消息的模式,Claude可以从中学习。
Next Steps
创建函数只是第一步。接下来,您需要编写一个JSON模式来向Claude描述该函数,然后将其集成到您的聊天系统中。这种工具函数方法为Claude提供了强大的功能,同时保持代码的组织性和可维护性。
==================================================
此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)
邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org