Fructose:将LLM调用转化为强类型函数
fructose 项目地址: https://gitcode.com/gh_mirrors/fr/fructose
项目介绍
Fructose 是一个 Python 包,旨在为大型语言模型(LLM)调用创建一个可靠且强类型的接口。通过简单的 @ai
装饰器,您可以将任何类型注解的函数转化为一个由 LLM 驱动的函数调用。Fructose 的设计理念是轻量级和语法糖,使得开发者可以像调用普通函数一样调用 LLM 功能,而无需担心复杂的实现细节。
项目技术分析
Fructose 的核心技术在于其强大的类型系统支持和灵活的装饰器机制。通过 @ai
装饰器,Fructose 能够自动解析函数的参数和返回类型,并生成相应的 LLM 提示。此外,Fructose 支持多种数据类型,包括基本类型(如 str
、bool
、int
、float
)、复合类型(如 list
、dict
、tuple
、Enum
、Optional
)以及复杂的 @dataclass
类型。
Fructose 还支持本地函数调用,允许 @ai
函数调用其他本地 Python 函数,甚至是其他 @ai
函数。这种设计使得 Fructose 在处理复杂任务时更加灵活和强大。
项目及技术应用场景
Fructose 的应用场景非常广泛,特别是在需要强类型输出的场景中。以下是一些典型的应用场景:
- 游戏开发:在游戏开发中,Fructose 可以帮助生成创意但强类型的响应,例如生成游戏角色的属性或故事情节。
- 数据生成:在数据科学领域,Fructose 可以用于生成模拟数据,帮助数据科学家进行模型训练和测试。
- 自动化任务:在自动化任务中,Fructose 可以用于生成复杂的文本输出,例如自动生成报告或文档。
项目特点
- 强类型支持:Fructose 支持多种数据类型,包括基本类型、复合类型和复杂类型,确保输出的类型安全。
- 本地函数调用:Fructose 允许
@ai
函数调用本地 Python 函数,增强了其灵活性和功能性。 - 自定义提示模板:Fructose 支持自定义提示模板,使用 Jinja 模板语言,使得开发者可以根据需求定制提示内容。
- 轻量级设计:Fructose 的设计理念是轻量级和语法糖,使得开发者可以轻松上手,无需复杂的配置。
总结
Fructose 是一个强大的工具,它将 LLM 调用转化为强类型函数,使得开发者可以像调用普通函数一样使用 LLM 功能。无论是在游戏开发、数据生成还是自动化任务中,Fructose 都能提供强大的支持。如果您正在寻找一个简单易用且功能强大的 LLM 工具,Fructose 绝对值得一试。
注意:Fructose 目前处于维护暂停状态,如果您需要一个更活跃维护的包,可以考虑 Instructor 或 Marvin。如果您喜欢 Fructose 并希望继续使用,欢迎 fork 项目或申请成为维护者。