第 38 页 / 共 100 页 / 飞书修订版 8

3.Tool functions

此文档由 学习AI的1000天 翻译制作(抖音,B站,YouTube)

邮箱: szqshan@gmail.com | 微信: szqshan
网址: www.xueai.org

==================================================

EbTjbRRHkoIoagxTJv0c0VIanMb.bin

在使用Claude构建AI应用时,你经常需要为其提供访问实时信息或执行操作的能力。这就是工具函数发挥作用的地方——它们是Claude在需要额外数据来帮助用户时可以调用的Python函数。

image1.png

上图展示了我们将要实现的三个基本工具:获取当前日期/时间、为日期添加持续时间,以及设置提醒。让我们从第一个开始。

什么是工具函数?

工具函数是一个普通的Python函数,当Claude决定需要额外信息来帮助用户时会自动执行。例如,如果有人问"现在几点了?",Claude会调用你的日期/时间工具来获取当前时间。

image2.png

这里是一个天气工具函数的示例。注意它如何验证输入并提供清晰的错误消息——这些都是重要的最佳实践。

工具函数的最佳实践

编写工具函数时,请遵循以下准则:

  • 使用描述性名称:你的函数名和参数名都应该清楚地表明其用途
  • 验证输入:检查必需参数是否为空或无效,并在出现问题时抛出错误
  • 提供有意义的错误消息: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