常见问题 (FAQ)
什么是 TypeChat?
TypeChat 使得使用类型构建自然语言界面变得容易。这些类型代表您的应用程序的领域,例如用于表示用户情绪的接口,或音乐应用中用户可以执行的操作的类型。
定义类型后,TypeChat 会通过以下方式处理其余工作:
- 使用类型为大型语言模型 (LLM) 构建提示。
- 验证 LLM 响应是否符合 schema。如果验证失败,则通过进一步的语言模型交互修复不符合的输出。
- 简洁地总结实例(不使用 LLM),并确认其与用户意图一致。
类型就是您所需要的一切!
为什么 TypeChat 很有用?
如果您想为应用程序添加自然语言界面——例如,假设一个咖啡订购应用程序允许您说出您的订单——那么您最终需要将请求转换为精确具体的应用程序可以处理的内容,用于计费、订购等任务。
TypeChat 让您可以利用大型语言模型来完成这项工作,而无需担心如何解析其响应或处理“虚构”项目和任务。这是因为所有内容都必须是根据您的类型验证的结构化 JSON。
使用 TypeChat 有哪些好处?
创建 TypeChat 的目的是提高自然语言界面的安全性。
我们认为 TypeChat 在使用大型语言模型时具有三个主要的关键优势:
- 准确:大型语言模型在将用户意图与限定范围的类型匹配方面做得很好。TypeChat 的验证和修复清理了其余部分!
- 易于上手:不再需要提示工程!类型就是您所需要的一切。您可能已经有了它们。
- 安全:类型约束领域和模型的不确定性。重复实例以确认其与用户意图一致,然后再采取行动。
TypeChat 如何工作?TypeChat 与 TypeScript 有何关系?
TypeChat 使用 TypeScript 类型作为语言模型响应的“规范语言”。发送请求的方法很简单,包括用户的输入、您的类型以及要求模型将用户输入转换为与 TypeScript 类型一致的 JSON 对象的文本。
收到 AI 响应后,TypeChat 在底层使用 TypeScript 编译器 API 根据您提供的类型验证数据。如果验证失败,TypeChat 会向模型发送修复提示,其中包含来自 TypeScript 编译器的诊断信息。这就是 TypeChat 能够保证您的响应正确键入的方式。
TypeChat 的可靠性如何?
TypeChat 非常可靠。事实证明,大型语言模型在受到明确、正式的可能输出描述约束时表现良好。它们接受的训练越多,性能也越好。TypeScript 是世界上最流行的编程语言的类型系统,JSON 是最流行的编程语言的交换格式。因此,模型对两者都非常熟悉,从而提高了准确性。TypeChat 有意创建紧凑的提示,TypeScript 比等效的 JSON Schema 可以简洁多达 5 倍。大多数情况下,模型对 TypeChat 的提示响应良好,并返回一个有效的实例。TypeChat 添加了验证,并且(如果失败)使用来自 TypeScript 编译器的诊断信息进行自修复逻辑,以从模型获取有效响应。最后,TypeChat 让用户参与最终的意图确认,作为最终的安全机制。
TypeChat 支持哪些语言?
目前 TypeChat 仅为 TypeScript 和 JavaScript 开发。有兴趣支持其他语言的开发人员可以在 GitHub Discussions 的 TypeChat 仓库中参与讨论。