以“为本公司客户数量最多的城市预约一个可容纳1万人的大会议厅”(简称命令🅿️)为例,要完成这个任务,除了LLM,还需要三个工具:
🇹1️⃣:本公司的客户数据库
🇹2️⃣:搜索引擎,找到合适的会议厅
🇹3️⃣:预约会议厅的接口
接下来,我们看看开发者(简称🇺)如何配合LLM自动完成上述任务:
🇹1️⃣:本公司的客户数据库
🇹2️⃣:搜索引擎,找到合适的会议厅
🇹3️⃣:预约会议厅的接口
接下来,我们看看开发者(简称🇺)如何配合LLM自动完成上述任务:
1️⃣第一步
🇺将命令🅿️告诉LLM,并通知LLM可以使用三个工具(🇹1-🇹3)。
LLM收到命令后,开始思考🅿️。首先,它需要解决的第一个问题是“本公司客户数量最多的城市是哪个”(简称🇶1)。然后,它发现🇹1中有客户数据库。接着,它根据数据库的模式,编写一段SQL查询语句,然后返回给🇺,让🇺执行这个查询
🇺将命令🅿️告诉LLM,并通知LLM可以使用三个工具(🇹1-🇹3)。
LLM收到命令后,开始思考🅿️。首先,它需要解决的第一个问题是“本公司客户数量最多的城市是哪个”(简称🇶1)。然后,它发现🇹1中有客户数据库。接着,它根据数据库的模式,编写一段SQL查询语句,然后返回给🇺,让🇺执行这个查询
2️⃣第二步:
🇺执行这个查询,获得结果,比如“深圳”。
然后,🇺用命令🅿️再次调用LLM,除了告诉LLM有三个工具🇹,还需要告诉LLM:
1. 🇺根据LLM的建议使用了🇹1和SQL
2. 使用🇹1和SQL的查询结果是“深圳”
这就是命令🅿️2。
🇺执行这个查询,获得结果,比如“深圳”。
然后,🇺用命令🅿️再次调用LLM,除了告诉LLM有三个工具🇹,还需要告诉LLM:
1. 🇺根据LLM的建议使用了🇹1和SQL
2. 使用🇹1和SQL的查询结果是“深圳”
这就是命令🅿️2。
3️⃣第三步:
LLM收到命令🅿️2,它还是思考第一个问题🇶1。然后它发现🇹1 + SQL的结果已经得出,是深圳。
然后,它开始考虑第二个问题,“深圳有哪些可以容纳1万人的大会议厅”(🇶2)。这时,它发现了🇹2可以用来搜索。然后它返回给用户🇺,请用“深圳一个1万人的大会议厅”进行搜索。
LLM收到命令🅿️2,它还是思考第一个问题🇶1。然后它发现🇹1 + SQL的结果已经得出,是深圳。
然后,它开始考虑第二个问题,“深圳有哪些可以容纳1万人的大会议厅”(🇶2)。这时,它发现了🇹2可以用来搜索。然后它返回给用户🇺,请用“深圳一个1万人的大会议厅”进行搜索。
4️⃣第四步:
🇺根据LLM的提示使用🇹2搜索“深圳1万人的大会议厅”,并获得结果。然后,🇺再次调用LLM,使用🅿️,并告诉LLM:
1. 🇹1+SQL “本公司客户最多的城市是深圳”,结果是“深圳”
2. 🇹2+查询“深圳一个1万人的大会议厅”,结果是“南山希尔顿”
这就是命令🅿️3。
🇺根据LLM的提示使用🇹2搜索“深圳1万人的大会议厅”,并获得结果。然后,🇺再次调用LLM,使用🅿️,并告诉LLM:
1. 🇹1+SQL “本公司客户最多的城市是深圳”,结果是“深圳”
2. 🇹2+查询“深圳一个1万人的大会议厅”,结果是“南山希尔顿”
这就是命令🅿️3。
5️⃣第五步:
LLM收到命令🅿️3,它再次考虑第一个问题🇶1和第二个问题🇶2,并发现已经有了结果。
然后它思考第三个问题,“如何预约南山希尔顿大会议厅”(🇶3),然后发现🇹3(预约会议厅的接口)可以使用,它返回给🇺,建议使用🇹3预约南山希尔顿大会议厅。
LLM收到命令🅿️3,它再次考虑第一个问题🇶1和第二个问题🇶2,并发现已经有了结果。
然后它思考第三个问题,“如何预约南山希尔顿大会议厅”(🇶3),然后发现🇹3(预约会议厅的接口)可以使用,它返回给🇺,建议使用🇹3预约南山希尔顿大会议厅。
6️⃣第六步
🇺根据LLM的建议,使用🇹3预约了“南山希尔顿1万人的大会议厅”,并获得了预约结果。然后,🇺再次调用LLM,使用🅿️,并告诉LLM更多信息:
1. 🇹1+SQL “本公司客户最多的城市是深圳”,结果是“深圳”
2. 🇹2+查询“深圳1万人的大会议厅”,结果是“南山希尔顿”
3. 🇹3+预约,预约结果
这就是命令🅿️4
🇺根据LLM的建议,使用🇹3预约了“南山希尔顿1万人的大会议厅”,并获得了预约结果。然后,🇺再次调用LLM,使用🅿️,并告诉LLM更多信息:
1. 🇹1+SQL “本公司客户最多的城市是深圳”,结果是“深圳”
2. 🇹2+查询“深圳1万人的大会议厅”,结果是“南山希尔顿”
3. 🇹3+预约,预约结果
这就是命令🅿️4
7️⃣第七步:
LLM收到命令🅿️4,它再次思考第一个问题🇶1,第二个问题🇶2和第三个问题🇶3,发现所有问题都已经得到了解决。
于是,LLM返回一段正常的总结文本给🇺,告诉它:“您公司客户最多的城市是深圳,深圳的南山希尔顿有一个可以容纳1万人的会议厅,已经为您预约了”。
LLM收到命令🅿️4,它再次思考第一个问题🇶1,第二个问题🇶2和第三个问题🇶3,发现所有问题都已经得到了解决。
于是,LLM返回一段正常的总结文本给🇺,告诉它:“您公司客户最多的城市是深圳,深圳的南山希尔顿有一个可以容纳1万人的会议厅,已经为您预约了”。
这样,对于用户来说,一句话就解决了这么复杂的问题。而且我们可以看到,随着过程的进行,命令的长度越来越长。这就是为什么OpenAI发布了能处理16K上下文的模型,让这样的复杂问题得以解决。
如果您对AI有更多兴趣,请加入我们的社区一起学习! discord.gg
如果您对AI有更多兴趣,请加入我们的社区一起学习! discord.gg
Loading suggestions...