如何使用 GPT 的函数调用来执行复杂的顺序任务?

How to use GPT's function calling for complex sequential tasks?

提问人:Chandrahas 提问时间:11/14/2023 最后编辑:marc_sChandrahas 更新时间:11/15/2023 访问量:38

问:

我正在做一个项目,用户可以向聊天机器人询问有关其电子邮件的任何问题,并获得答案。我一直在尝试使用 GPT 在语义搜索的帮助下使用 RAG(检索增强生成)模型来实现这一点。但是,我注意到我开发的原始聊天机器人可以回答诸如“我是否收到来自X的电子邮件”或“我是否有任何付款”之类的问题,但经常检索很久以前的电子邮件。问题是,当我将问题修改为“我在过去一周是否收到来自 X 的电子邮件?”时,它无法检索正确的电子邮件,因为即使我在查询中提供了当前日期,我使用的嵌入也无法理解“过去一周”。为了解决这个问题和其他一些问题,我想实现一个双层系统,我将所有电子邮件放在一个 SQL 数据库中,其中包含它们的 message-id、to、from 等,从数据库中选择相关的电子邮件,然后对这些电子邮件运行语义搜索以提供最终答案。

现在,我的想法是定义两个函数:一个用于生成 SQL 查询并从数据库中检索电子邮件,另一个用于运行语义搜索。我想将这些作为函数输入到 GPT 模块,并让它决定何时调用任一函数。

例如,如果问题是“过去一周我收到了多少封电子邮件?”,那么它所要做的就是运行 SQL 函数。如果问题是“我的信用卡被批准了吗?”,它只需要运行语义搜索。但是,对于“总结过去一周所有重要邮件”等复杂查询,首先需要运行 SQL 函数,然后对“重要”进行语义搜索,并进行汇总。我不确定 GPT 如何将其分解为“过去一周从 SQL 数据库中检索电子邮件”和“运行语义搜索以查找重要电子邮件”。

我尝试使用聊天 gpt 运行测试运行,并提示“如果您无法根据表中给定的列及其描述回答问题,请返回整个表”,看看它是否可以确定何时运行 SQL 查询以及何时不运行。但结果并不好。我想,当所有这些都被整合在一起时,这将更加困难,它必须弄清楚它需要按顺序做事。任何帮助都是值得赞赏的。

SQL 信息检索 大型语言模型 GPT-3 GPT-4

评论


答: 暂无答案