哲学¶
instructor 重视利用大型语言模型 (LLMs) 的简洁性和灵活性。它提供了一种流线型的结构化输出方法,避免了不必要的依赖或复杂的抽象。让 Zod 来做繁重的工作。
“简洁是一种伟大的美德,但它需要辛勤的劳动才能实现,需要教育才能理解。更糟糕的是:复杂性反而卖得更好。”—— Edsger Dijkstra
通往面向对象编程的桥梁¶
instructor
充当一座桥梁,将基于文本的 LLM 交互转换为熟悉的面向对象格式。它与 Zod 的集成提供了类型提示、运行时验证和强大的 IDE 支持;深受 JS/TS 生态系统中许多人的喜爱和支持。通过将 LLM 视为返回类型化对象的函数,instructor 使语言模型与代码向后兼容,使其既适合日常使用,也足够复杂以应对高级应用。
instructor 之道¶
保持 Typescript 的灵活性和强大功能,没有不必要的限制。
从一个函数和返回类型提示开始——简洁是关键。凭借我之前工作中多年维护大型企业级框架的经验,我了解到构建一个有用框架的目标是最大限度地减少遗憾,无论对于作者还是用户。
- 定义模式
const StructuredData = z.object({})
- 在您的模式上定义验证器和方法。
- 将所有 LLM 逻辑封装到一个函数中
function extract(a): StructuredData {}
- 使用
function compute(data: StructuredData) {}
或调用模式上的方法data.compute()
对您的数据进行类型化计算
就应该这么简单。
我的目标¶
库、文档和博客的目标是帮助您成为更好的 Typescript 程序员,并因此成为更好的 AI 工程师。
- 这个库是我追求简洁性的结果。
- 这个库应该有助于保持您代码库的简洁性。
- 我不会尝试为您编写提示词,
- 我不会尝试创建将来难以调试的间接或抽象
请注意,该库被设计为适应性强且开放,允许您根据特定需求定制和扩展其功能。如果您有任何进一步的问题或想法,请在twitter上联系我
祝好!