微软团队,包括 TypeScript 创始人 Anders Heljsberg 在内,推出 TypeChat,旨在解决自然语言界面开发过程中面临的复杂问题。
发布新库的文章中表示,目前的 LLM(大语言模型的英文缩写)默认使用会话式自然语言,即诸如英语一类的人类交流时使用的语言。而解析自然语言是一项极其困难的任务。
TypeChat 基于 TypeScript 类型。TypeChat 库可以为 LLM(大语言模型)人工智能(如 OpenAI 的 ChatGPT)构建提示,要求LLM以符合类型的方式返回数据。如果回复未能通过验证,TypeChat会尝试通过进一步的交互进行修复。最终TypeChat 会对交互进行总结,以便在采取任何行动前进行确认。数据将以 JSON 格式传输,文档指出,由于“许多语言模型都擅长生成 JSON”。
微软团队提供的示例包括用户输入的情感分析、咖啡馆或餐厅的订餐、日历安排、数学计算以及在 Spotify 上播放音乐。
据称好处是准确性更高、编程更容易上手,另外,由于类型限制了人工智能的响应,因此安全性也更高一些。
OpenAI 几周前曾推出“新的Chat Completions API 中函数调用功能”。函数调用功能使得开发人员能够“在调用模型时通过 JSON 模式描述函数”,还可以令 LLM 输出一些带参数的 JSON 去调用这些函数。TypeChat 的想法并无不同,因为这意味着 LLM 的输出可以与开发人员的代码进行整合。
这样一来 TypeChat会不会是多余的呢?这个问题有人已经在 TypeChat 的 GitHub 仓库上提出过。但毫无疑问一部分的答案是,TypeChat旨在与任何 LLM 配合使用,而不仅仅是配合 OpenAI使用。尽管目前团队提供的所有示例都是在 OpenAI 或 Azure OpenAI 端点上运行,但考虑到微软与 OpenAI 的密切关系,这也就不足为奇了。
开发者的反应各不相同,有的说“迫不及待想试试 ”,也有的说“LLM就是专门生成自然语言输出,为什么我们要从这样的输出获取结构化输出呢?”另外其实已经有很多其他项目也是在解决同样的问题,尤其是微软自己的 Guidance 项目。
不过,TypeChat 的吸引力在于,数百万的开发者已经颇为熟悉TypeScript,而且TypeChat背后的团队包括 Hejlsberg 以及 TypeScript 高级项目经理 Daniel Rosenwasser、技术研究员 Steve Lucco 等资深人士。
真正的问题或许在于,到目前为止该项目带着浓厚的微软和 OpenAI 色彩,这可能会有碍于TypeChat团队希望的被厂商中立采用。