TypeChat
TypeChat 是一个使使用类型构建自然语言接口变得简单的库。
构建自然语言接口传统上一直是困难的。这些应用程序通常依赖于复杂的决策树来确定意图并收集所需的输入来采取行动。大型语言模型(LLM)通过使我们能够从用户那里获取自然语言输入并匹配意图,使这一过程变得更加简单。这也带来了一些挑战,包括需要约束模型的回复以保证安全、对模型的响应进行结构化以便进一步处理,并确保模型的回复是有效的。提示工程旨在解决这些问题,但随着提示长度的增加,学习曲线陡峭且脆弱性增加。
TypeChat 用 schema engineering 替代了 prompt engineering。
只需定义表示您的自然语言应用程序中支持的意图的类型。可以是一个用于分类情感的简单接口,也可以是一个更复杂的示例,比如购物车或音乐应用程序的类型。举例来说,要向架构中添加额外的意图,开发人员可以在区别联合体中添加额外的类型。为了使架构分层,开发人员可以使用“元架构”根据用户输入选择一个或多个子架构。
在定义好类型后,TypeChat 会处理其余部分:
- 使用类型构建对 LLM 的提示。
- 验证 LLM 的响应是否符合架构。如果验证失败,通过进一步的语言模型交互修复不符合的输出。
- 简明扼要地总结实例(不使用 LLM)并确认其符合用户意图。
类型就是您所需要的一切!
入门
为 TypeScript/JavaScript 安装 TypeChat:
npm install typechat
您还可以从源代码中使用 TypeChat:
为了看到 TypeChat 的实际应用,我们建议探索TypeChat 示例项目。您可以在本地计算机上或 GitHub Codespace 中尝试这些项目。
想要了解更多关于 TypeChat 的信息,请访问文档,其中包含更多关于 TypeChat 及如何入门的信息。
Contributing
该项目欢迎贡献和建议。大多数贡献需要您同意一个贡献者许可协议(CLA),声明您有权并确实授予我们使用您的贡献的权利。详情请访问 https://cla.opensource.microsoft.com。
当您提交一个拉取请求时,一个 CLA 机器人会自动判断您是否需要提供 CLA 并适当装饰 PR(例如,状态检查,评论)。只需按照机器人提供的说明操作。您只需在所有使用我们 CLA 的仓库中做一次此操作。
该项目采用了微软开源行为准则。 欲了解更多信息,请参见行为准则FAQ或联系 opencode@microsoft.com 以提出额外的问题或评论。
商标
该项目可能包含项目、产品或服务的商标或标志。微软商标或标志的授权使用必须遵循 Microsoft 的商标及品牌指南 。在修改版本的项目中使用微软商标或标志不得引起混淆或暗示微软的赞助。任何使用第三方商标或标志的行为必须遵循这些第三方的政策。