强类型化的LLM调用:Fructose
fructose项目地址:https://gitcode.com/gh_mirrors/fr/fructose
Fructose是一个Python库,提供了一个可靠的、强类型的接口,将大型语言模型(LLM)的调用封装为普通函数调用。这个轻量级且语法简洁的库,让与LLM交互变得前所未有的简单。
项目介绍
@ai
装饰器是 Fructose 的核心,它可以应用到一个类型注解的函数上,使得每次调用这个函数时,都会自动构造并执行一个LLM任务提示。例如,以下代码会向LLM询问如何描述一组动物:
from fructose import Fructose
ai = Fructose()
@ai
def describe(animals: list[str]) -> str:
"""
Given a list of animals, use one word that'd describe them all.
"""
...
description = describe(["dog", "cat", "parrot", "goldfish"]) # -> "pets" type: str
项目技术分析
Fructose 支持各种类型的参数和返回值,包括基本类型(如字符串、布尔、整数、浮点数)、复合类型(如列表、字典、元组和枚举)以及复杂数据类。它还允许嵌套类型的处理,并提供了自定义提示模板功能。此外,Fructose 还能够调用本地Python函数,甚至其他 @ai
函数,这大大增加了其灵活性和实用性。
应用场景
在多个领域中,Fructose 都能发挥其独特优势。比如,在游戏开发中,可以通过它获取创新而有序的游戏元素,如生物特性、剧情生成等。视频、音频或文本的内容生成也可以利用这一特性。在自动化报告或文档撰写过程中,Fructose 可以生成结构化文本,提高效率。
项目特点
- 易用性:通过简单的装饰器和类型注解,即可实现LLM调用。
- 类型安全:返回的结果严格遵守函数声明的返回类型。
- 强大功能:支持基本类型、复合类型、复杂数据类,还能嵌套调用。
- 灵活性:自定义提示模板和本地函数调用,适应多种场景需求。
注意事项
目前,Fructose 处于维护暂停状态,但仍有两个活跃维护的替代项目可供选择:Instructor 和 Marvin。
安装 Fructose 使用 pip3 install fructose
,并且需要设置OpenAI API Key来运行示例。
结论
尽管Fructose暂时未继续维护,但它提供的强类型化LLM调用理念,简化了与高级语言模型的交互,对于任何寻求高效集成的语言处理任务,都值得尝试。无论是开发者还是研究者,都能从中找到灵感,探索更多可能性。