理念¶
instructor 珍视在利用大型语言模型 (LLM) 时的简洁和灵活性。它提供了一种简化的结构化输出方法,避免不必要的依赖或复杂的抽象。让 EasyTalk 来完成繁重的工作。
“简洁是一种伟大的美德,但实现它需要辛勤工作,而欣赏它需要教育。更糟糕的是:复杂性卖得更好。” — Edsger Dijkstra
通往面向对象编程的桥梁¶
instructor
充当一座桥梁,将基于文本的 LLM 交互转换为熟悉的面向对象格式。它与 EasyTalk 的集成提供了类型提示和运行时验证。通过将 LLM 视为返回类型化对象的方法,instructor 使语言模型向后兼容代码,使其适用于日常使用,同时又足够复杂以满足高级应用的需求。
instructor
的禅意¶
在不施加不必要限制的情况下,保持 Ruby 的灵活性和强大能力。
从方法和返回类型提示开始——简洁是关键。凭借我在前一份工作中多年维护大型企业级框架的经验,我学到构建一个有用框架的目标是最小化遗憾,无论是对作者还是对用户。
- 定义模式
- 在你的模式上定义属性和方法。
- 将所有 LLM 逻辑封装到一个函数中
def extract(a)
- 使用
def compute(data: StructuredData)
定义针对数据的类型化计算,或调用模式上的方法data.compute()
就应该如此简单。
我的目标¶
该库、文档和博客的目标是帮助你成为一名更好的 Ruby 程序员,从而成为一名更好的 AI 工程师。
- 该库是我追求简洁的成果。
- 该库应有助于保持代码库的简洁性。
- 我不会尝试为你编写提示词,
- 我不会尝试创建将来难以调试的间接或抽象层
请注意,该库被设计为具有适应性和开放性,允许你根据特定需求自定义和扩展其功能。如果你有任何进一步的问题或想法,可以在twitter上联系我
干杯!