微软的TypeChat是什么?能做什么?
2023-07-25

背景

微软前些日子开源了一个叫TypeChat的库,地址是microsoft/TypeChat: TypeChat is a library that makes it easy to build natural language interfaces using types. (github.com)

以下翻译自官方介绍Introducing TypeChat - TypeChat (microsoft.github.io)

当前的LLMs默认使用会话式自然语言,就像人类使用的英语一样进行交流。解析自然语言是一项非常困难的任务,无论你如何用规则来指导,比如“以项目符号列表的形式回答”。自然语言可能有结构,但对于典型的软件来说,从原始文本中重建它是困难的。

令人惊讶的是,我们可以要求LLMs以JSON的形式进行回应,而它们通常会给出合理的回答!

作用

那这个库有什么作用,我们该如何使用?

以前我们使用openai这类大模型一般都是倾向于去获得一个答案,帮助我们解决一些问题。现在有了这个库,我们可以以TypeChat作为桥梁,用TypeChat解析自然语言为结构化的数据,然后输入到我们的API或者是用户界面使用。

举个例子:

现在我们有个TODO清单的程序,以往我们创建一个item需要填写待办事件,相关日期等信息。这个api接口长这样:

1
2
3
4
5
6
7
POST /todo/create

request body:
{
"content": "明天下午6:00前完成组件发布",
"datetime": "2023-07-27 18:00:00"
}

我们可能需要做的就是填写事项,然后选择提醒时间,然后前端组织好数据请求接口完成操作。

那这样很不方便啊,更好的方式当然是我用自然语言描述出来,然后可以自动解析出这个接口的schema内容。

那这就是TypeChat做的事情了,比如我定义一个Type:

1
2
3
4
export interface TodoResponse {
content: string;
datetime: string;
}

TypeChat可以根据输入的自然语言解析出符合这个TodoResponse结构的结果。然后我们将这个结果再作用API的输入。这样我们就可以使用自然语言去创建待办。

Demo

我写了一个Demo去展示其作用,不过你得有自己的openai key。OpenAI或者Azure OpenAI都可以。

https://nl2type.colazy.com

https://img.hanjiawei.com/owen/2023/08/03/64cb7848814f1.png

总结

TypeChat有什么用?

他可以将自然语言和API通过任意的大模型连接起来,以便与我们的应用程序配合使用

TypeChat如何使用?

上面我举了一个简单的Todo List的例子,只是草草描述了一下使用逻辑。

具体的使用方式可以看官方的examples:TypeChat/examples at main · microsoft/TypeChat (github.com)

感谢阅读😉😉