Delphi程序和大模型交互之二
关于前面的 《Delphi程序和大模型交互》
我只是测试了 AI 能否理解并且能否创建 SOAP 的调用协议对应的 XML;我是在AI的浏览器聊天页面里面测试的,AI 的输出是聊天文本,我复制粘贴到我的 Delphi 代码里面去执行的。如果要完整的自动化跑,应该是调用 AI 的 API。但我目前没有调用 API 的免费账户,就没有做这个工作。哪天搞到个账号再试试能否完全自动化地跑起来,不需要人肉在中间复制粘贴文本来回传。
大概流程
-
告诉AI这里是 SOAP 调用,给它 SOAP 调用的 WSDL,让它分析里面有几个函数或者方法。然后告诉它某个函数比如我的例子里面的 XPlusY 函数,是执行加法的函数。
-
我告诉它我要调用 XPlusY 函数,X 是多少,Y 是多少,这里是自然语言;以下是我输入给 AI 的自然语言请求:
调用 XPlusY 函数
现在你需要作为一个 WebService 客户端,调用服务器提供的 XPlusY 函数,你必须生成调用 XPlusY 函数的完整的符合SOAP协议的XML给服务器端。
调用 XPlusY 函数的两个参数分别是:X=12; Y=22;
请深入思考后输出符合规范的XML
-
AI 创建一个调用 XPlusY 函数的 XML,里面的 X和Y的参数它也按照我的自然语言提出的需求构造好了。
-
如果我的代理程序是接的 API,则程序可以自动拿到 AI 输出的 XML,然后我的程序使用 IdHTTP 把这个 XML Post 给我的 WebService 程序,这个是 Delphi 写的。
-
我的 WebService 程序执行了 XPlusY 这个函数,并返回结果给我的代理程序;我的代理程序(也就是包含 IdHTTP 并且接了 AI 的 API 的程序)收到函数调用的返回(返回也是 XML 字符串),把这个 XML 字符串丢给 AI;
-
AI 拿到这个 XML 字符串,它自己会根据 SOAP 协议标准分析其内容,从里面获得函数的返回值。我的例子代码里面,是 34. 以下是 AI 一大堆分析 XML 的输出文本里面我摘取出来的 AI 输出:
元素内容为 34,即计算结果(12 + 22 = 34)。
假设的应用场景
假设我用自然语言问 AI 现在深圳的气温是多少。AI 的训练数据肯定是以前的,没有今天的深圳气温数据。但如果我事先写好一堆提示词,告诉 AI 使用 SOAP 去调用哪个函数,把这一堆提示词和"现在深圳气温是多少?"这句自然语言一起发给AI,则AI会创建 SOAP 调用的 XML 输出给我的程序,我的程序就会执行对应的函数,我在这个函数里面去调用天气预报的接口API(可能是个 HTTP 调用),然后把从天气预报API里面拿到的数据返回给AI,AI 按照SOAP协议自动分析返回的 SOAP 调用结果的 XML 字符串,从里面找出真正天气数据,然后用自然语言告诉我现在的气温是多少。