{"id":1224,"date":"2024-04-27T01:32:10","date_gmt":"2024-04-27T01:32:10","guid":{"rendered":"https:\/\/www.nicekj.com\/?p=1224"},"modified":"2024-04-27T01:32:10","modified_gmt":"2024-04-27T01:32:10","slug":"openaichatgpthanshudiaoyongfunctioncallingshijianjingdongyunjishutuandui","status":"publish","type":"post","link":"https:\/\/www.nicekj.com\/openaichatgpthanshudiaoyongfunctioncallingshijianjingdongyunjishutuandui.html","title":{"rendered":"\u3010OpenAI\u3011ChatGPT\u51fd\u6570\u8c03\u7528\uff08Function Calling\uff09\u5b9e\u8df5 | \u4eac\u4e1c\u4e91\u6280\u672f\u56e2\u961f"},"content":{"rendered":"<p>6\u670813\u65e5OpenAI\u5728Chat Completions API\u4e2d\u6dfb\u52a0\u4e86\u65b0\u7684\u51fd\u6570\u8c03\u7528\uff08Function Calling\uff09\u80fd\u529b\uff0c\u5e2e\u52a9\u5f00\u53d1\u8005\u901a\u8fc7API\u65b9\u5f0f\u5b9e\u73b0\u7c7b\u4f3c\u4e8eChatGPT\u63d2\u4ef6\u7684\u6570\u636e\u4ea4\u4e92\u80fd\u529b\u3002<\/p>\n<p>\u672c\u6587\u5728\u4f5c\u8005\u4e0a\u4e00\u7bc7\u6587\u7ae0\u300a<a href=\"https:\/\/juejin.cn\/post\/7229126088227897400\" target=\"_blank\" title=\"https:\/\/juejin.cn\/post\/7229126088227897400\" rel=\"noopener\">\u79c1\u6709\u6846\u67b6\u4ee3\u7801\u751f\u6210\u5b9e\u8df5<\/a>\u300b\u7684\u57fa\u7840\u4e0a\uff0c\u4f9d\u65e7\u4f7f\u7528\u81ea\u7136\u8bed\u8a00\u4f4e\u4ee3\u7801\u642d\u5efa\u573a\u666f\u4f5c\u4e3a\u6848\u4f8b\uff0c\u5c06\u5d4c\u5165\u5411\u91cf\u641c\u7d22\uff08Embedding\uff09\u83b7\u53d6\u79c1\u6709\u77e5\u8bc6\u5e93\u7684\u65b9\u5f0f\uff0c\u66ff\u6362\u4e3a\u51fd\u6570\u8c03\u7528\u65b9\u5f0f\uff0c\u4ee5\u6211\u4eec\u66f4\u719f\u6089\u7684\u7ed3\u6784\u5316\u6570\u636e\u7ed3\u6784\u3001\u5173\u7cfb\u578b\u6570\u636e\u5e93\u7684\u65b9\u5f0f\u8fdb\u884c\u77e5\u8bc6\u5e93\u7ba1\u7406\u3002\u540c\u65f6\u51fd\u6570\u8c03\u7528\u80fd\u529b\u7684\u7075\u6d3b\u6027\u548c\u53ef\u6269\u5c55\u6027\uff0c\u4e5f\u53ef\u4ee5\u5e2e\u52a9\u7528\u6237\u4f7f\u7528\u81ea\u7136\u8bed\u8a00\u642d\u5efa\u66f4\u52a0\u590d\u6742\u7684\u9875\u9762\u5185\u5bb9\u3001\u8fdb\u884c\u66f4\u4e30\u5bcc\u7684\u4ea4\u4e92\u64cd\u4f5c\u3002<\/p>\n<h2 data-id=\"heading-0\">\u4e00\u3001 \u4ec0\u4e48\u662f\u51fd\u6570\u8c03\u7528<\/h2>\n<p><strong>\u51fd\u6570\u8c03\u7528<\/strong>\uff08Function Calling\uff09\u662fOpenAI\u57286\u670813\u65e5\u53d1\u5e03\u7684\u65b0\u80fd\u529b\u3002\u6839\u636e\u5b98\u65b9\u535a\u5ba2\u63cf\u8ff0\uff0c\u51fd\u6570\u8c03\u7528\u80fd\u529b\u53ef\u4ee5\u8ba9\u6a21\u578b\u8f93\u51fa\u4e00\u4e2a\u8bf7\u6c42\u8c03\u7528\u51fd\u6570\u7684\u6d88\u606f\uff0c\u5176\u4e2d\u5305\u542b\u6240\u9700\u8c03\u7528\u7684\u51fd\u6570\u4fe1\u606f\u3001\u4ee5\u53ca\u8c03\u7528\u51fd\u6570\u65f6\u6240\u643a\u5e26\u7684\u53c2\u6570\u4fe1\u606f\u3002\u8fd9\u662f\u4e00\u79cd\u5c06GPT\u80fd\u529b\u4e0e\u5916\u90e8\u5de5\u5177\/API\u8fde\u63a5\u8d77\u6765\u7684\u65b0\u65b9\u5f0f\u3002<\/p>\n<p>\u652f\u6301\u51fd\u6570\u8c03\u7528\u7684\u65b0\u6a21\u578b\uff0c\u53ef\u4ee5\u6839\u636e\u7528\u6237\u7684\u8f93\u5165\u81ea\u884c\u5224\u65ad\u4f55\u65f6\u9700\u8981\u8c03\u7528\u54ea\u4e9b\u51fd\u6570\uff0c\u5e76\u4e14\u53ef\u4ee5\u6839\u636e\u76ee\u6807\u51fd\u6570\u7684\u63cf\u8ff0\u751f\u6210\u7b26\u5408\u8981\u6c42\u7684\u8bf7\u6c42\u53c2\u6570\u3002<\/p>\n<p>\u5f00\u53d1\u4eba\u5458\u53ef\u4ee5\u4f7f\u7528\u51fd\u6570\u8c03\u7528\u80fd\u529b\uff0c\u901a\u8fc7GPT\u5b9e\u73b0\uff1a<\/p>\n<ul>\n<li>\u5728\u8fdb\u884c\u81ea\u7136\u8bed\u8a00\u4ea4\u6d41\u65f6\uff0c\u901a\u8fc7\u8c03\u7528\u5916\u90e8\u5de5\u5177\u56de\u7b54\u95ee\u9898\uff08\u7c7b\u4f3c\u4e8eChatGPT\u63d2\u4ef6\uff09\uff1b<\/li>\n<li>\u5c06\u81ea\u7136\u8bed\u8a00\u8f6c\u6362\u4e3a\u8c03\u7528API\u65f6\u4f7f\u7528\u7684\u53c2\u6570\uff0c\u6216\u8005\u67e5\u8be2\u6570\u636e\u5e93\u65f6\u4f7f\u7528\u7684\u6761\u4ef6\uff1b<\/li>\n<li>\u4ece\u6587\u672c\u4e2d\u63d0\u53d6\u7ed3\u6784\u5316\u6570\u636e\u3002\u7b49<\/li>\n<\/ul>\n<h2 data-id=\"heading-1\">\u4e8c\u3001 \u5982\u4f55\u4f7f\u7528\u51fd\u6570\u8c03\u7528<\/h2>\n<p>\u51fd\u6570\u8c03\u7528\u80fd\u529b\u53ef\u4ee5\u901a\u8fc7<strong>\u804a\u5929API<\/strong>\uff08Chat Completion\uff09\u4f7f\u7528\u3002\u4e3a\u4e86\u5b9e\u73b0\u51fd\u6570\u8c03\u7528\u80fd\u529b\uff0cOpenAI\u5bf9\u804a\u5929API\u8fdb\u884c\u4e86\u4fee\u6539\uff0c\u589e\u52a0\u4e86\u65b0\u7684\u8bf7\u6c42\u53c2\u6570\u3001\u54cd\u5e94\u7c7b\u578b\u4ee5\u53ca\u6d88\u606f\u89d2\u8272\uff0c\u5e94\u7528\u5f00\u53d1\u8005\u9700\u8981\uff1a<\/p>\n<ol>\n<li>\u5728\u8bf7\u6c42\u53c2\u6570\u4e2d\u5411\u804a\u5929API\u4f20\u9012\u4fe1\u606f\uff0c\u63cf\u8ff0\u5e94\u7528\u6240\u63d0\u4f9b\u7684\u53ef\u8c03\u7528\u51fd\u6570\u7684\u4fe1\u606f\u3002<\/li>\n<li>\u89e3\u6790\u804a\u5929API\u54cd\u5e94\u7684\u6d88\u606f\u7c7b\u578b\uff0c\u82e5\u6a21\u578b\u51b3\u5b9a\u9700\u8981\u8c03\u7528\u51fd\u6570\uff0c\u5219\u6839\u636e\u6a21\u578b\u8fd4\u56de\u7684\u51fd\u6570\u4fe1\u606f\u548c\u51fd\u6570\u4f20\u53c2\u8c03\u7528\u51fd\u6570\uff0c\u5e76\u83b7\u5f97\u8fd4\u56de\u7ed3\u679c\u3002<\/li>\n<li>\u5c06\u51fd\u6570\u8fd4\u56de\u7684\u7ed3\u679c\u6dfb\u52a0\u5230\u6d88\u606f\u5217\u8868\u4e2d\uff0c\u5e76\u518d\u6b21\u8c03\u7528\u804a\u5929API\u3002<\/li>\n<\/ol>\n<h3 data-id=\"heading-2\">1. \u6dfb\u52a0\u8bf7\u6c42\u53c2\u6570\uff0c \u63cf\u8ff0\u6240\u652f\u6301\u7684\u51fd\u6570\u4fe1\u606f<\/h3>\n<p>\u804a\u5929API\u4e2d\u65b0\u589e\u4e86\u4e24\u4e2a\u8bf7\u6c42\u4f53\u53c2\u6570\uff1a<\/p>\n<h4 data-id=\"heading-3\"><code>functions<\/code><\/h4>\n<p>\u5f53\u524d\u5e94\u7528\u53ef\u8c03\u7528\u7684\u51fd\u6570\u7684\u5217\u8868\u3002\u51fd\u6570\u4fe1\u606f\u4e2d\u5305\u542b\u4e86\u51fd\u6570\u7684\u540d\u79f0\u3001\u81ea\u7136\u8bed\u8a00\u63cf\u8ff0\u3001\u4ee5\u53ca\u51fd\u6570\u6240\u652f\u6301\u4f20\u5165\u7684\u53c2\u6570\u4fe1\u606f\u3002<\/p>\n<p><code>functions<\/code>\u53c2\u6570\u7684\u683c\u5f0f\u5982\u4e0b\uff1a<\/p>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">php<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-php code-block-extension-codeShowNum\" lang=\"php\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\">openai.<span class=\"hljs-title function_ invoke__\">createChatCompletion<\/span>({<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">  <span class=\"hljs-attr\">model<\/span>: <span class=\"hljs-string\">\"gpt-3.5-turbo-0613\"<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">  <span class=\"hljs-attr\">messages<\/span>: [<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">    \/\/ ...<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\">  ],<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\">  <span class=\"hljs-attr\">functions<\/span>: [<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"7\">    {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"8\">      <span class=\"hljs-attr\">name<\/span>: <span class=\"hljs-string\">'function_name'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"9\">      <span class=\"hljs-attr\">description<\/span>: <span class=\"hljs-string\">'\u8be5\u51fd\u6570\u6240\u5177\u5907\u80fd\u529b\u7684\u81ea\u7136\u8bed\u8a00\u63cf\u8ff0'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"10\">      <span class=\"hljs-attr\">parameters<\/span>: {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"11\">        <span class=\"hljs-attr\">type<\/span>: <span class=\"hljs-string\">'object'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"12\">        <span class=\"hljs-attr\">properties<\/span>: {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"13\">          <span class=\"hljs-attr\">argument_name<\/span>: {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"14\">            <span class=\"hljs-attr\">type<\/span>: <span class=\"hljs-string\">'string'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"15\">            <span class=\"hljs-attr\">description<\/span>: <span class=\"hljs-string\">'\u8be5\u53c2\u6570\u7684\u81ea\u7136\u8bed\u8a00\u63cf\u8ff0'<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"16\">          },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"17\">          \/\/ ...<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"18\">        },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"19\">        <span class=\"hljs-attr\">required<\/span>: [<span class=\"hljs-string\">'argument_name'<\/span>]<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"20\">      }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"21\">    },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"22\">    \/\/ ...<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"23\">  ]<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"24\">})<\/span>\n<\/code><\/pre>\n<p><code>functions<\/code>\u53c2\u6570\u652f\u6301\u4ee5\u6570\u7ec4\u5f62\u5f0f\u5f55\u5165\u591a\u7ec4\u51fd\u6570\u4fe1\u606f\uff0c\u5176\u4e2d\uff1a<\/p>\n<ul>\n<li>\n<p><code>name<\/code>\uff1a\u51fd\u6570\u540d\u79f0\u3002\u540e\u7eed\u6a21\u578b\u4f1a\u5728\u9700\u8981\u8c03\u7528\u51fd\u6570\u65f6\u8fd4\u56de\u6b64\u540d\u79f0\u3002<\/p>\n<\/li>\n<li>\n<p><code>description<\/code>\uff1a\u51fd\u6570\u529f\u80fd\u63cf\u8ff0\u3002\u6a21\u578b\u901a\u8fc7\u8be5\u63cf\u8ff0\u7406\u89e3\u51fd\u6570\u80fd\u529b\uff0c\u5e76\u5224\u65ad\u662f\u5426\u9700\u8981\u8c03\u7528\u8be5\u51fd\u6570\u3002<\/p>\n<\/li>\n<li>\n<p><code>parameters.properties<\/code>\uff1a\u51fd\u6570\u6240\u9700\u7684\u53c2\u6570\u3002\u4ee5\u5bf9\u8c61\u7684\u5f62\u5f0f\u63cf\u8ff0\u51fd\u6570\u6240\u9700\u7684\u53c2\u6570\uff0c\u5176\u4e2d\u5bf9\u8c61\u7684key\u5373\u4e3a\u53c2\u6570\u540d\u3002<\/p>\n<ul>\n<li><code>type<\/code>\uff1a\u53c2\u6570\u7c7b\u578b\u3002\u652f\u6301<a href=\"https:\/\/link.juejin.cn?target=https%3A%2F%2Fjson-schema.org%2Funderstanding-json-schema%2F\" target=\"_blank\" title=\"https:\/\/json-schema.org\/understanding-json-schema\/\" ref=\"nofollow noopener noreferrer\" rel=\"noopener\">JSON Schema<\/a>\u534f\u8bae\u3002<\/li>\n<li><code>description<\/code>\uff1a\u53c2\u6570\u63cf\u8ff0\u3002<\/li>\n<\/ul>\n<\/li>\n<li>\n<p><code>required<\/code>\uff1a\u5fc5\u586b\u53c2\u6570\u7684\u53c2\u6570\u540d\u5217\u8868\u3002<\/p>\n<\/li>\n<\/ul>\n<h4 data-id=\"heading-4\"><code>function_call<\/code><\/h4>\n<p>\u63a7\u5236\u6a21\u578b\u5e94\u8be5\u5982\u4f55\u54cd\u5e94\u51fd\u6570\u8c03\u6362\u3002\u652f\u6301\u51e0\u79cd\u8f93\u5165\uff1a<\/p>\n<ol>\n<li><code>\"none\"<\/code>\uff1a\u6a21\u578b\u4e0d\u8c03\u7528\u51fd\u6570\uff0c\u76f4\u63a5\u8fd4\u56de\u5185\u5bb9\u3002\u6ca1\u6709\u63d0\u4f9b\u53ef\u8c03\u7528\u51fd\u6570\u65f6\u7684\u9ed8\u8ba4\u503c\u3002<\/li>\n<li><code>\"auto\"<\/code>\uff1a\u6a21\u578b\u6839\u636e\u7528\u6237\u8f93\u5165\u81ea\u884c\u51b3\u5b9a\u662f\u5426\u8c03\u7528\u51fd\u6570\u4ee5\u53ca\u8c03\u7528\u54ea\u4e2a\u51fd\u6570\u3002\u63d0\u4f9b\u53ef\u8c03\u7528\u51fd\u6570\u65f6\u7684\u9ed8\u8ba4\u503c\u3002<\/li>\n<li><code>{\"name\": \"function_name\"}<\/code>\uff1a\u5f3a\u5236\u6a21\u578b\u8c03\u7528\u6307\u5b9a\u7684\u51fd\u6570\u3002<\/li>\n<\/ol>\n<h3 data-id=\"heading-5\">2. \u8bc6\u522b\u54cd\u5e94\u53c2\u6570\uff0c \u63cf\u8ff0\u9700\u8981\u8c03\u7528\u7684\u51fd\u6570\u4fe1\u606f<\/h3>\n<p>\u804a\u5929API\u5728\u54cd\u5e94\u5185\u5bb9\u7684\u53ef\u9009\u9879\uff08<code>choices<\/code>\uff09\u4e2d\u63d0\u4f9b\u4e86\u4e24\u4e2a\u54cd\u5e94\u53c2\u6570\uff1a<\/p>\n<h4 data-id=\"heading-6\"><code>finish_reason<\/code><\/h4>\n<p>\u54cd\u5e94\u5185\u5bb9\u7ed3\u675f\u7684\u539f\u56e0\u3002<\/p>\n<p>\u53ef\u80fd\u7684\u539f\u56e0\u5305\u62ec\uff1a<\/p>\n<ul>\n<li><code>stop<\/code>\uff1a\u5df2\u8fd4\u56de\u5b8c\u6574\u6d88\u606f\u3002<\/li>\n<li><code>length<\/code>\uff1a\u5df2\u8fbe\u5230\u4ee4\u724c\u9650\u5236\u6216\u7531<code>max_tokens<\/code>\u53c2\u6570\u8bbe\u7f6e\u7684\u4e0a\u9650\u3002<\/li>\n<li><code>function_call<\/code>\uff1a\u6a21\u578b\u51b3\u5b9a\u9700\u8981\u8c03\u7528\u4e00\u4e2a\u51fd\u6570\u3002<\/li>\n<li><code>content_filter<\/code>\uff1a\u5185\u5bb9\u89e6\u53d1\u4e86\u62e6\u622a\u7b56\u7565\uff0c\u5ffd\u7565\u8fd4\u56de\u5185\u5bb9\u3002<\/li>\n<li><code>null<\/code>\uff1aAPI\u54cd\u5e94\u4ecd\u5728\u6267\u884c\u3002<\/li>\n<\/ul>\n<p>\u5176\u4e2d\uff0c\u82e5\u8fd4\u56de<code>function_call<\/code>\u5219\u8868\u793a\u6a21\u578b\u9700\u8981\u8c03\u7528\u51fd\u6570\u3002\u6b64\u65f6<code>message<\/code>\u53c2\u6570\u4f1a\u989d\u5916\u8fd4\u56de\u51fd\u6570\u4fe1\u606f\u4ee5\u53ca\u51fd\u6570\u53c2\u6570\u4fe1\u606f\u3002<\/p>\n<h4 data-id=\"heading-7\"><code>message.function_call<\/code><\/h4>\n<p>\u82e5\u54cd\u5e94\u5185\u5bb9\u7ed3\u675f\u7684\u539f\u56e0\u662f\u6a21\u578b\u9700\u8981\u8c03\u7528\u51fd\u6570\uff0c\u5219<code>message<\/code>\u53c2\u6570\u4e2d\u4f1a\u589e\u52a0\u4e00\u4e2a\u7528\u4e8e\u63cf\u8ff0\u51fd\u6570\u4fe1\u606f\u7684<code>function_call<\/code>\u53c2\u6570\uff0c\u5176\u683c\u5f0f\u5982\u4e0b\uff1a<\/p>\n<ul>\n<li><code>name<\/code>\uff1a\u51fd\u6570\u540d\u79f0\u3002<\/li>\n<li><code>arguments<\/code>\uff1a\u51fd\u6570\u53c2\u6570\u4fe1\u606f\u3002JSON\u5b57\u7b26\u4e32\u683c\u5f0f\u3002<\/li>\n<\/ul>\n<h3 data-id=\"heading-8\">3. \u6dfb\u52a0\u5bf9\u8bdd\u89d2\u8272\uff0c \u5411\u6d88\u606f\u5217\u8868\u4e2d\u6dfb\u52a0\u51fd\u6570\u8fd4\u56de\u503c<\/h3>\n<p>\u5728\u51fd\u6570\u6267\u884c\u5b8c\u6210\u540e\uff0c\u53ef\u4ee5\u5c06\u51fd\u6570\u7684\u8fd4\u56de\u5185\u5bb9\u8ffd\u52a0\u5230\u6d88\u606f\u5217\u8868\u4e2d\uff0c\u5e76\u643a\u5e26\u5b8c\u6574\u7684\u6d88\u606f\u5217\u8868\u518d\u6b21\u8bf7\u6c42\u804a\u5929API\uff0c\u4ee5\u83b7\u5f97GPT\u7684\u540e\u7eed\u54cd\u5e94\u3002<\/p>\n<p>\u5728\u6d88\u606f\u5217\u8868\u4e2d\uff0c\u89d2\u8272\u7684\u53ef\u9009\u503c\u9664\u4e86\u539f\u6709\u7684<strong>\u7cfb\u7edf<\/strong>\uff08<code>system<\/code>\uff09\u3001<strong>\u7528\u6237<\/strong>\uff08<code>user<\/code>\uff09\u3001<strong>\u52a9\u7406<\/strong>\uff08<code>assistant<\/code>\uff09\u5916\uff0c\u65b0\u589e\u4e86<strong>\u51fd\u6570<\/strong>\uff08<code>function<\/code>\uff09\u7c7b\u578b\uff0c\u7528\u6765\u6807\u8bc6\u8be5\u6d88\u606f\u65f6\u51fd\u6570\u8c03\u7528\u7684\u8fd4\u56de\u5185\u5bb9\u3002<\/p>\n<blockquote>\n<p>\u6ce8\u610f\uff1a\u5411\u6d88\u606f\u5217\u8868\u4e2d\u8ffd\u52a0\u51fd\u6570\u8c03\u7528\u54cd\u5e94\u6d88\u606f\u524d\uff0c\u8fd8\u9700\u8981\u9996\u5148\u5c06\u4e0a\u4e00\u6b65\u6a21\u578b\u8fd4\u56de\u7684\u6d88\u606f\u8ffd\u52a0\u5230\u6d88\u606f\u5217\u8868\u4e2d\uff0c\u4ee5\u4fdd\u8bc1\u6d88\u606f\u5217\u8868\u4e2d\u7684\u4e0a\u4e0b\u6587\u5b8c\u6574\u3002<\/p>\n<\/blockquote>\n<h3 data-id=\"heading-9\">\u5b8c\u6574\u4f7f\u7528\u4ee3\u7801<\/h3>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">php<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-php code-block-extension-codeShowNum\" lang=\"php\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\"><span class=\"hljs-keyword\">const<\/span> { Configuration, OpenAIApi } = <span class=\"hljs-keyword\">require<\/span>(<span class=\"hljs-string\">\"openai\"<\/span>);<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\"><span class=\"hljs-keyword\">const<\/span> <span class=\"hljs-variable constant_\">openai<\/span> = <span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">OpenAIApi<\/span>(<span class=\"hljs-keyword\">new<\/span> <span class=\"hljs-title class_\">Configuration<\/span>({ <span class=\"hljs-comment\">\/** OpenAI \u914d\u7f6e *\/<\/span> }));<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\"><span class=\"hljs-comment\">\/** \u7cfb\u7edf\u89d2\u8272\u4fe1\u606f **\/<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\"><span class=\"hljs-keyword\">const<\/span> <span class=\"hljs-variable constant_\">systemPrompt<\/span>: <span class=\"hljs-keyword\">string<\/span> = <span class=\"hljs-string\">\"\u7cfb\u7edf\u89d2\u8272prompt\"<\/span>;<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"7\"><span class=\"hljs-comment\">\/** \u652f\u6301\u51fd\u6570\u4fe1\u606f **\/<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"8\"><span class=\"hljs-keyword\">const<\/span> <span class=\"hljs-variable constant_\">functionsPrompt<\/span>: unknow[] = [<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"9\">  {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"10\">    name: <span class=\"hljs-string\">'function_name'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"11\">    description: <span class=\"hljs-string\">'\u51fd\u6570\u529f\u80fd\u7684\u81ea\u7136\u8bed\u8a00\u63cf\u8ff0'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"12\">    parameters: {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"13\">      type: <span class=\"hljs-string\">'object'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"14\">      properties: {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"15\">        argument_name: {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"16\">          type: <span class=\"hljs-string\">'string'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"17\">          description: <span class=\"hljs-string\">'\u8be5\u53c2\u6570\u7684\u81ea\u7136\u8bed\u8a00\u63cf\u8ff0'<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"18\">        },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"19\">        <span class=\"hljs-comment\">\/\/ ...<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"20\">      }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"21\">    }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"22\">  },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"23\">  <span class=\"hljs-comment\">\/\/ ...<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"24\">];<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"25\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"26\"><span class=\"hljs-comment\">\/** \u652f\u6301\u51fd\u6570\u903b\u8f91 **\/<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"27\"><span class=\"hljs-keyword\">const<\/span> <span class=\"hljs-variable constant_\">functionsCalls<\/span>: { [name: <span class=\"hljs-keyword\">string<\/span>]: Function } = {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"28\">  function_name: (args: { argument_name: <span class=\"hljs-keyword\">string<\/span> }) =&gt; {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"29\">    <span class=\"hljs-keyword\">const<\/span> { argument_name } = args;<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"30\">    <span class=\"hljs-comment\">\/\/ ...<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"31\">    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">'\u51fd\u6570\u8c03\u7528\u7ed3\u679c'<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"32\">  },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"33\">  <span class=\"hljs-comment\">\/\/ ...<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"34\">}<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"35\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"36\"><span class=\"hljs-comment\">\/** \u5f00\u59cb\u804a\u5929 **\/<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"37\"><span class=\"hljs-keyword\">const<\/span> <span class=\"hljs-variable constant_\">chat<\/span> = <span class=\"hljs-title function_ invoke__\">async<\/span> (<span class=\"hljs-attr\">userPrompt<\/span>: <span class=\"hljs-keyword\">string<\/span>) =&gt; {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"38\">  <span class=\"hljs-keyword\">const<\/span> <span class=\"hljs-variable constant_\">messages<\/span>: unknow[] = [<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"39\">    { role: <span class=\"hljs-string\">'system'<\/span>, content: systemPrompt },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"40\">    { role: <span class=\"hljs-string\">'user'<\/span>, content: userPrompt }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"41\">  ];<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"42\">  <\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"43\">  let maxCall = <span class=\"hljs-number\">6<\/span>;<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"44\">  <span class=\"hljs-keyword\">while<\/span> (maxCall--) {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"45\">    <span class=\"hljs-keyword\">const<\/span> <span class=\"hljs-variable constant_\">responseData<\/span> = await openai.<span class=\"hljs-title function_ invoke__\">createChatCompletion<\/span>({<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"46\">      <span class=\"hljs-attr\">model<\/span>: <span class=\"hljs-string\">\"gpt-3.5-turbo-0613\"<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"47\">      messages,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"48\">      functions,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"49\">      <span class=\"hljs-attr\">function_call<\/span>: maxCall === <span class=\"hljs-number\">0<\/span> ? <span class=\"hljs-string\">'none'<\/span> : <span class=\"hljs-string\">'auto'<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"50\">    }).<span class=\"hljs-title function_ invoke__\">then<\/span>((response) =&gt; response.data.choices[<span class=\"hljs-number\">0<\/span>]);<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"51\">  <\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"52\">    <span class=\"hljs-keyword\">const<\/span> <span class=\"hljs-variable constant_\">message<\/span> = responseData.message<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"53\">    messages.<span class=\"hljs-title function_ invoke__\">push<\/span>(message)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"54\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"55\">    <span class=\"hljs-keyword\">const<\/span> <span class=\"hljs-variable constant_\">finishReason<\/span> = responseData.finish_reason<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"56\">    <span class=\"hljs-keyword\">if<\/span> (finishReason === <span class=\"hljs-string\">'function_call'<\/span>) {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"57\">      <span class=\"hljs-keyword\">const<\/span> <span class=\"hljs-variable constant_\">functionName<\/span> = message.function_call.name<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"58\">      <span class=\"hljs-keyword\">const<\/span> <span class=\"hljs-variable constant_\">functionCall<\/span> = functionCalls[functionName]<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"59\">      <span class=\"hljs-keyword\">const<\/span> <span class=\"hljs-variable constant_\">functionArguments<\/span> = JSON.<span class=\"hljs-title function_ invoke__\">parse<\/span>(message.function_call.arguments)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"60\">      <span class=\"hljs-keyword\">const<\/span> <span class=\"hljs-variable constant_\">functionResponse<\/span> = await <span class=\"hljs-title function_ invoke__\">functionCall<\/span>(functionArguments)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"61\">      messages.<span class=\"hljs-title function_ invoke__\">push<\/span>({<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"62\">        <span class=\"hljs-attr\">role<\/span>: <span class=\"hljs-string\">'function'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"63\">        <span class=\"hljs-attr\">name<\/span>: functionName,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"64\">        <span class=\"hljs-attr\">content<\/span>: functionResponse<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"65\">      })<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"66\">    } <span class=\"hljs-keyword\">else<\/span> {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"67\">      <span class=\"hljs-keyword\">return<\/span> message.content<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"68\">    }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"69\">  }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"70\">}<\/span>\n<\/code><\/pre>\n<h2 data-id=\"heading-10\">\u4e09\u3001 \u4f4e\u4ee3\u7801\u81ea\u7136\u8bed\u8a00\u642d\u5efa\u6848\u4f8b<\/h2>\n<p>\u5728\u4f5c\u8005\u7684\u4e0a\u4e00\u7bc7\u6587\u7ae0\u4e2d\uff0c\u4f7f\u7528\u5d4c\u5165\u5411\u91cf\u641c\u7d22\u63d0\u4f9b\u7684\u201c\u68c0\u7d22-\u63d0\u95ee\u89e3\u51b3\u65b9\u6848\u201d\u8fdb\u884c\u4f4e\u4ee3\u7801\u79c1\u6709\u534f\u8bae\u7684\u8bbf\u95ee\u3002\u5728\u672c\u6587\u4e2d\uff0c\u5c06\u4f7f\u7528\u51fd\u6570\u8c03\u7528\u65b9\u5f0f\u8fdb\u884c\u66ff\u4ee3\u3002<\/p>\n<p>\u540c\u65f6\uff0c\u57fa\u4e8e\u51fd\u6570\u8c03\u7528\u7684\u80fd\u529b\uff0c\u4e5f\u63a2\u7d22\u4e86\u4e00\u4e9b\u66f4\u52a0\u590d\u6742\u7684\u9875\u9762\u642d\u5efa\u80fd\u529b\u548c\u4f4e\u4ee3\u7801\u5e73\u53f0\u529f\u80fd\u3002<\/p>\n<h3 data-id=\"heading-11\">1. \u79c1\u6709\u534f\u8bae\u8bbf\u95ee<\/h3>\n<p>\u57fa\u4e8e\u6211\u4eec\u7684\u4f4e\u4ee3\u7801\u5e73\u53f0\u79c1\u6709\u534f\u8bae\uff0c\u5728\u8fdb\u884cCMS\u7c7b\u578b\u9875\u9762\u7684\u642d\u5efa\u65f6\uff0c\u6211\u4eec\u5c06\u534f\u8bae\u7684\u77e5\u8bc6\u5212\u5206\u4e3a\u51e0\u4e2a\u5c42\u7ea7\uff0c\u5e76\u5206\u522b\u63d0\u4f9b\u51fd\u6570\u4f9bGPT\u6309\u9700\u8c03\u7528\uff0c\u4ee5\u5b9e\u73b0\u79c1\u6709\u534f\u8bae\u7684\u8bbf\u95ee\u3002<\/p>\n<h4 data-id=\"heading-12\">\u7cfb\u7edf\u63cf\u8ff0\u4fe1\u606f<\/h4>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">ini<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-ini code-block-extension-codeShowNum\" lang=\"ini\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\">const <span class=\"hljs-attr\">systemPropmpt<\/span> = `\u4f7f\u7528CCMS\u534f\u8bae\u7f16\u5199\u9875\u9762\u7684\u914d\u7f6e\u4fe1\u606f\u3002<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">                       CCMS\u534f\u8bae\u6240\u652f\u6301\u7684\u9875\u9762\u7c7b\u578b\u5305\u62ec\uff1a<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">                       - *form*\uff1a\u8868\u5355\u9875<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\">                       - *table*\uff1a\u8868\u683c\u9875<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\">                       - *detail*\uff1a\u8be6\u60c5\u9875`<span class=\"hljs-comment\">;<\/span><\/span>\n<\/code><\/pre>\n<h4 data-id=\"heading-13\">\u51fd\u6570\u4fe1\u606f\u63cf\u8ff0<\/h4>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">css<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-css code-block-extension-codeShowNum\" lang=\"css\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\">const functionsPrompt = <span class=\"hljs-selector-attr\">[  {    name: <span class=\"hljs-string\">'get_elements'<\/span>,    description: <span class=\"hljs-string\">'\u83b7\u53d6CCMS\u534f\u8bae\u5728\u6307\u5b9a\u9875\u9762\u7c7b\u578b\u4e0b\uff0c\u6240\u652f\u6301\u7684\u5143\u7d20\u7c7b\u578b\u3002'<\/span>,    parameters: {      type: <span class=\"hljs-string\">'object'<\/span>,      properties: {        page: {          type: <span class=\"hljs-string\">'array'<\/span>,          description: <span class=\"hljs-string\">'\u9875\u9762\u7c7b\u578b'<\/span>,          items: { type: <span class=\"hljs-string\">'string'<\/span> }        }      }    },    required: [<span class=\"hljs-string\">'page'<\/span>]<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">  },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">  {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">    name: <span class=\"hljs-string\">'get_features'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\">    description: <span class=\"hljs-string\">'\u83b7\u53d6CCMS\u534f\u8bae\u5728\u6307\u5b9a\u5143\u7d20\u7c7b\u578b\u4e0b\uff0c\u6240\u652f\u6301\u7684\u914d\u7f6e\u5316\u7279\u6027\u3002'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\">    parameters: {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"7\">      type: <span class=\"hljs-string\">'object'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"8\">      properties: {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"9\">        element: {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"10\">          type: <span class=\"hljs-string\">'array'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"11\">          description: <span class=\"hljs-string\">'\u5143\u7d20\u7c7b\u578b'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"12\">          items: { type: <span class=\"hljs-string\">'string'<\/span> }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"13\">        }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"14\">      }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"15\">    },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"16\">    required: [<span class=\"hljs-string\">'element'<\/span>]<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"17\">  },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"18\">  {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"19\">    name: <span class=\"hljs-string\">'get_descriptions'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"20\">    description: <span class=\"hljs-string\">'\u83b7\u53d6CCMS\u534f\u8bae\u4e0b\uff0c\u6307\u5b9a\u9875\u9762\u7c7b\u578b\u3001\u5143\u7d20\u7c7b\u578b\u4ee5\u53ca\u914d\u7f6e\u5316\u7279\u6027\u7684\u8be6\u7ec6\u4fe1\u606f\u3002'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"21\">    parameters: {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"22\">      type: <span class=\"hljs-string\">'object'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"23\">      properties: {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"24\">        page: {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"25\">          type: <span class=\"hljs-string\">'array'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"26\">          description: <span class=\"hljs-string\">'\u9875\u9762\u7c7b\u578b'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"27\">          items: { type: <span class=\"hljs-string\">'string'<\/span> }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"28\">        },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"29\">        element: {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"30\">          type: <span class=\"hljs-string\">'array'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"31\">          description: <span class=\"hljs-string\">'\u5143\u7d20\u7c7b\u578b'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"32\">          items: { type: <span class=\"hljs-string\">'string'<\/span> }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"33\">        },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"34\">        feature: {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"35\">          type: <span class=\"hljs-string\">'array'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"36\">          description: <span class=\"hljs-string\">'\u914d\u7f6e\u5316\u7279\u6027'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"37\">          items: { type: <span class=\"hljs-string\">'string'<\/span> }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"38\">        }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"39\">      }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"40\">    }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"41\">  }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"42\">]<\/span>\n<\/code><\/pre>\n<blockquote>\n<p>\u5907\u6ce8\uff1a\u5c3d\u7ba1GPT\u6a21\u578b\u652f\u6301\u51fd\u6570\u7684\u5faa\u73af\u8c03\u7528\uff0c\u4f46\u51fa\u4e8e\u51cf\u5c11API\u8c03\u7528\u9891\u6b21\u548c\u8282\u7701Token\u6d88\u8017\u7684\u76ee\u7684\uff0c\u6211\u4eec\u5efa\u8bae\u5728\u67e5\u8be2\u79c1\u6709\u534f\u8bae\u4fe1\u606f\u7684\u51fd\u6570\u4e2d\uff0c\u4f7f\u7528\u5173\u952e\u8bcd\u6570\u7ec4\u7684\u5f62\u5f0f\u8fdb\u884c\u6279\u91cf\u67e5\u8be2\u3002<\/p>\n<\/blockquote>\n<h4 data-id=\"heading-14\">\u51fd\u6570\u5185\u5bb9<\/h4>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">typescript<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-typescript code-block-extension-codeShowNum\" lang=\"typescript\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\"><span class=\"hljs-keyword\">const<\/span> functionsCalls = {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">  <span class=\"hljs-attr\">get_elements<\/span>: <span class=\"hljs-function\">(<span class=\"hljs-params\">args: { page: <span class=\"hljs-built_in\">string<\/span>[] }<\/span>) =&gt;<\/span> {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">    <span class=\"hljs-keyword\">const<\/span> { page } = args;<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">    <span class=\"hljs-comment\">\/\/ \u8bf7\u81ea\u884c\u5b9e\u73b0\u4fe1\u606f\u67e5\u8be2\uff0c\u4e0b\u5217\u8fd4\u56de\u5185\u5bb9\u4ec5\u4e3a\u793a\u4f8b\u3002<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\">    <span class=\"hljs-keyword\">return<\/span> page.<span class=\"hljs-title function_\">map<\/span>(<span class=\"hljs-function\">(<span class=\"hljs-params\">pageType<\/span>) =&gt;<\/span> {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\">      <span class=\"hljs-keyword\">switch<\/span> (pageType) {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"7\">        <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-string\">'form'<\/span>:<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"8\">          <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">`# **form**\u8868\u5355\u9875\u6240\u652f\u6301\u7684\u5143\u7d20\u7c7b\u578b\u5305\u62ec\uff1a<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"9\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"10\">                  - *form_text*\uff1a\u6587\u672c\u8f93\u5165\u6846<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"11\">                  - *form_number*: \u6570\u503c\u8f93\u5165\u6846`;<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"12\">        <span class=\"hljs-attr\">default<\/span>:<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"13\">          <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">`# **<span class=\"hljs-subst\">${pageType}<\/span>**\u6ca1\u6709\u652f\u6301\u7684\u5143\u7d20\u3002`<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"14\">      }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"15\">    }).<span class=\"hljs-title function_\">join<\/span>(<span class=\"hljs-string\">\"\\n\\n\"<\/span>);<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"16\">  },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"17\">  <span class=\"hljs-attr\">get_features<\/span>: <span class=\"hljs-function\">(<span class=\"hljs-params\">args: { element: <span class=\"hljs-built_in\">string<\/span>[] }<\/span>) =&gt;<\/span> {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"18\">    <span class=\"hljs-keyword\">const<\/span> { element } = args<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"19\">    <span class=\"hljs-comment\">\/\/ \u8bf7\u81ea\u884c\u5b9e\u73b0\u4fe1\u606f\u67e5\u8be2\uff0c\u4e0b\u5217\u8fd4\u56de\u5185\u5bb9\u4ec5\u4e3a\u793a\u4f8b\u3002<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"20\">    <span class=\"hljs-keyword\">return<\/span> element.<span class=\"hljs-title function_\">map<\/span>(<span class=\"hljs-function\">(<span class=\"hljs-params\">elementKey<\/span>) =&gt;<\/span> {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"21\">      <span class=\"hljs-keyword\">const<\/span> [ pageType, elementType ] = elementKey.<span class=\"hljs-title function_\">split<\/span>(<span class=\"hljs-string\">'_'<\/span>);<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"22\">      <span class=\"hljs-keyword\">switch<\/span> (pageType) {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"23\">        <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-string\">'form'<\/span>:<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"24\">          <span class=\"hljs-keyword\">switch<\/span> (elementType) {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"25\">            <span class=\"hljs-keyword\">case<\/span> <span class=\"hljs-string\">'text'<\/span>:<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"26\">              <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">`# **form_text**\uff08\u6587\u672c\u8f93\u5165\u6846\uff09\u6240\u652f\u6301\u7684\u914d\u7f6e\u5316\u7279\u6027\u5305\u62ec\uff1a<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"27\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"28\">                      - *form_text_maxLength*: \u6587\u672c\u6700\u5927\u957f\u5ea6\u9650\u5236<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"29\">                      - *form_text_minLength*: \u6587\u672c\u6700\u5c0f\u957f\u5ea6\u9650\u5236<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"30\">                      - *form_text_regExp*: \u6587\u672c\u6b63\u5219\u8868\u8fbe\u5f0f\u6821\u9a8c`<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"31\">            <span class=\"hljs-attr\">default<\/span>:<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"32\">              <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">`# **<span class=\"hljs-subst\">${elementKey}<\/span>**\u6ca1\u6709\u652f\u6301\u7684\u914d\u7f6e\u5316\u7279\u6027\u3002`<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"33\">          }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"34\">        <span class=\"hljs-attr\">default<\/span>:<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"35\">          <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">`# **<span class=\"hljs-subst\">${elementKey}<\/span>**\u6ca1\u6709\u652f\u6301\u7684\u914d\u7f6e\u5316\u7279\u6027\u3002`<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"36\">      }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"37\">    }).<span class=\"hljs-title function_\">join<\/span>(<span class=\"hljs-string\">\"\\n\\n\"<\/span>);<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"38\">  },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"39\">  <span class=\"hljs-attr\">get_descriptions<\/span>: <span class=\"hljs-function\">(<span class=\"hljs-params\">args: { page: <span class=\"hljs-built_in\">string<\/span>[], element: <span class=\"hljs-built_in\">string<\/span>[], feature: <span class=\"hljs-built_in\">string<\/span>[] }<\/span>) =&gt;<\/span> {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"40\">    <span class=\"hljs-keyword\">const<\/span> {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"41\">      page = [],<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"42\">      element = [],<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"43\">      feature = []<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"44\">    } = args<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"45\">    <span class=\"hljs-comment\">\/\/ \u8bf7\u81ea\u884c\u5b9e\u73b0\u4fe1\u606f\u67e5\u8be2\uff0c\u4e0b\u5217\u8fd4\u56de\u5185\u5bb9\u4ec5\u4e3a\u793a\u4f8b\u3002<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"46\">    <span class=\"hljs-keyword\">return<\/span> [<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"47\">      ...page.<span class=\"hljs-title function_\">map<\/span>(<span class=\"hljs-function\">(<span class=\"hljs-params\">pageType<\/span>) =&gt;<\/span> <span class=\"hljs-string\">`# **<span class=\"hljs-subst\">${pageType}<\/span>**\u7684\u8be6\u7ec6\u63cf\u8ff0\u5982\u4e0b\uff1a...`<\/span>),<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"48\">      ...element.<span class=\"hljs-title function_\">map<\/span>(<span class=\"hljs-function\">(<span class=\"hljs-params\">elementType<\/span>) =&gt;<\/span> <span class=\"hljs-string\">`# **<span class=\"hljs-subst\">${elementType}<\/span>**\u7684\u8be6\u7ec6\u63cf\u8ff0\u5982\u4e0b\uff1a...`<\/span>),<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"49\">      ...feature.<span class=\"hljs-title function_\">map<\/span>(<span class=\"hljs-function\">(<span class=\"hljs-params\">featureType<\/span>) =&gt;<\/span> <span class=\"hljs-string\">`# **<span class=\"hljs-subst\">${featureType}<\/span>**\u7684\u8be6\u7ec6\u63cf\u8ff0\u5982\u4e0b\uff1a...`<\/span>)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"50\">    ].<span class=\"hljs-title function_\">join<\/span>(<span class=\"hljs-string\">\"\\n\\n\"<\/span>)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"51\">  }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"52\">}<\/span>\n<\/code><\/pre>\n<h4 data-id=\"heading-15\">\u8c03\u7528\u793a\u4f8b<\/h4>\n<p>\u4e00\u6b21\u5b8c\u6574\u8c03\u7528\u7684\u6d88\u606f\u5217\u8868\uff1a<\/p>\n<blockquote>\n<p>\u4e3a\u4e86\u4fbf\u4e8e\u9605\u8bfb\uff0c\u5df2\u7ecf\u8c03\u6574\u4e86\u6d88\u606f\u5217\u8868\u4e2d\u6d88\u606f\u5185\u5bb9\u7684\u7f29\u8fdb\u6392\u7248\uff0c\u5e76\u4e14\u5c06\u8868\u793a\u51fd\u6570\u8c03\u7528\u53c2\u6570\u7684JSON\u5b57\u7b26\u4e32\u89e3\u6790\u4e3a\u5bf9\u8c61\u5f62\u5f0f\u3002<\/p>\n<\/blockquote>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">yaml<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-yaml code-block-extension-codeShowNum\" lang=\"yaml\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\">[<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">  <span class=\"hljs-string\">\/\/<\/span> <span class=\"hljs-string\">\u7b2c\u4e00\u6b21\u8bf7\u6c42\u804a\u5929API<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">  { <span class=\"hljs-attr\">role:<\/span> <span class=\"hljs-string\">'system'<\/span>, <\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">    <span class=\"hljs-attr\">content:<\/span> <span class=\"hljs-string\">`\u4f7f\u7528CCMS\u534f\u8bae\u7f16\u5199\u9875\u9762\u7684\u914d\u7f6e\u4fe1\u606f\u3002<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\">              <\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\">              <span class=\"hljs-string\">CCMS\u534f\u8bae\u6240\u652f\u6301\u7684\u9875\u9762\u7c7b\u578b\u5305\u62ec\uff1a<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"7\">              <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-string\">*form*:<\/span> <span class=\"hljs-string\">\u8868\u5355\u9875<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"8\">              <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-string\">*table*:<\/span> <span class=\"hljs-string\">\u8868\u683c\u9875<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"9\">              <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-string\">*detail*:<\/span> <span class=\"hljs-string\">\u8be6\u60c5\u9875`<\/span> },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"10\">  { <span class=\"hljs-attr\">role:<\/span> <span class=\"hljs-string\">'user'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"11\">    <span class=\"hljs-attr\">content:<\/span> <span class=\"hljs-string\">'\u521b\u5efa\u4e00\u4e2a\u8bfe\u7a0b\u62a5\u540d\u9875\u9762'<\/span> },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"12\">  { <span class=\"hljs-attr\">role:<\/span> <span class=\"hljs-string\">'assistant'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"13\">    <span class=\"hljs-attr\">content:<\/span> <span class=\"hljs-literal\">null<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"14\">    <span class=\"hljs-attr\">function_call:<\/span> { <span class=\"hljs-attr\">name:<\/span> <span class=\"hljs-string\">'get_elements'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"15\">                     <span class=\"hljs-attr\">arguments:<\/span> { <span class=\"hljs-attr\">page:<\/span> [<span class=\"hljs-string\">\"form\"<\/span>] } } },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"16\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"17\">  <span class=\"hljs-string\">\/\/<\/span> <span class=\"hljs-string\">\u7b2c\u4e8c\u6b21\u8bf7\u6c42\u804a\u5929API<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"18\">  { <span class=\"hljs-attr\">role:<\/span> <span class=\"hljs-string\">'function'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"19\">    <span class=\"hljs-attr\">name:<\/span> <span class=\"hljs-string\">'get_elements'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"20\">    <span class=\"hljs-attr\">content:<\/span> <span class=\"hljs-string\">`#<\/span> <span class=\"hljs-string\">**form**\u8868\u5355\u9875\u6240\u652f\u6301\u7684\u5143\u7d20\u7c7b\u578b\u5305\u62ec\uff1a<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"21\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"22\">              <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-string\">*form_text*\uff1a\u6587\u672c\u8f93\u5165\u6846<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"23\">              <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-string\">*form_number*:<\/span> <span class=\"hljs-string\">\u6570\u503c\u8f93\u5165\u6846`<\/span> },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"24\">  { <span class=\"hljs-attr\">role:<\/span> <span class=\"hljs-string\">'assistant'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"25\">    <span class=\"hljs-attr\">content:<\/span> <span class=\"hljs-literal\">null<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"26\">    <span class=\"hljs-attr\">function_call:<\/span> { <span class=\"hljs-attr\">name:<\/span> <span class=\"hljs-string\">'get_features'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"27\">                     <span class=\"hljs-attr\">arguments:<\/span> { <span class=\"hljs-attr\">element:<\/span> [<span class=\"hljs-string\">\"form_text\"<\/span>, <span class=\"hljs-string\">\"form_number\"<\/span>] } } },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"28\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"29\">  <span class=\"hljs-string\">\/\/<\/span> <span class=\"hljs-string\">\u7b2c\u4e09\u6b21\u8bf7\u6c42\u804a\u5929API<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"30\">  { <span class=\"hljs-attr\">role:<\/span> <span class=\"hljs-string\">'function'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"31\">    <span class=\"hljs-attr\">name:<\/span> <span class=\"hljs-string\">'get_features'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"32\">    <span class=\"hljs-attr\">content:<\/span> <span class=\"hljs-string\">`#<\/span> <span class=\"hljs-string\">**form_text**\uff08\u6587\u672c\u8f93\u5165\u6846\uff09\u6240\u652f\u6301\u7684\u914d\u7f6e\u5316\u7279\u6027\u5305\u62ec\uff1a<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"33\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"34\">              <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-string\">*form_text_maxLength*:<\/span> <span class=\"hljs-string\">\u6587\u672c\u6700\u5927\u957f\u5ea6\u9650\u5236<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"35\">              <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-string\">*form_text_minLength*:<\/span> <span class=\"hljs-string\">\u6587\u672c\u6700\u5c0f\u957f\u5ea6\u9650\u5236<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"36\">              <span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-string\">*form_text_regExp*:<\/span> <span class=\"hljs-string\">\u6587\u672c\u6b63\u5219\u8868\u8fbe\u5f0f\u6821\u9a8c<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"37\">              <\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"38\">              <span class=\"hljs-comment\"># **form_number**\u6ca1\u6709\u652f\u6301\u7684\u914d\u7f6e\u5316\u7279\u6027\u3002` },<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"39\">  { <span class=\"hljs-attr\">role:<\/span> <span class=\"hljs-string\">'assistant'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"40\">    <span class=\"hljs-attr\">content:<\/span> <span class=\"hljs-literal\">null<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"41\">    <span class=\"hljs-attr\">function_call:<\/span> { <span class=\"hljs-attr\">name:<\/span> <span class=\"hljs-string\">'get_descriptions'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"42\">                     <span class=\"hljs-attr\">arguments:<\/span> { <span class=\"hljs-attr\">page:<\/span> [<span class=\"hljs-string\">\"form\"<\/span>],<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"43\">                                  <span class=\"hljs-attr\">element:<\/span> [<span class=\"hljs-string\">\"form_text\"<\/span>, <span class=\"hljs-string\">\"form_number\"<\/span>],<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"44\">                                  <span class=\"hljs-attr\">feature:<\/span> [<span class=\"hljs-string\">\"form_text_maxLength\"<\/span>, <span class=\"hljs-string\">\"form_text_minLength\"<\/span>, <span class=\"hljs-string\">\"form_text_regExp\"<\/span>] } } },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"45\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"46\">  <span class=\"hljs-string\">\/\/<\/span> <span class=\"hljs-string\">\u7b2c\u56db\u6b21\u8bf7\u6c42\u804a\u5929API<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"47\">  { <span class=\"hljs-attr\">role:<\/span> <span class=\"hljs-string\">'function'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"48\">    <span class=\"hljs-attr\">name:<\/span> <span class=\"hljs-string\">'get_descriptions'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"49\">    <span class=\"hljs-attr\">content:<\/span> <span class=\"hljs-string\">`#<\/span> <span class=\"hljs-string\">**form**\u7684\u8be6\u7ec6\u63cf\u8ff0\u5982\u4e0b\uff1a...<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"50\">              <\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"51\">              <span class=\"hljs-comment\"># **form_text**\u7684\u8be6\u7ec6\u63cf\u8ff0\u5982\u4e0b\uff1a...<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"52\">              <\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"53\">              <span class=\"hljs-comment\"># **form_number**\u7684\u8be6\u7ec6\u63cf\u8ff0\u5982\u4e0b\uff1a...<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"54\">              <\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"55\">              <span class=\"hljs-comment\"># **form_text_maxLength**\u7684\u8be6\u7ec6\u63cf\u8ff0\u5982\u4e0b\uff1a...<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"56\">              <\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"57\">              <span class=\"hljs-comment\"># **form_text_minLength**\u7684\u8be6\u7ec6\u63cf\u8ff0\u5982\u4e0b\uff1a...<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"58\">              <\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"59\">              <span class=\"hljs-comment\"># **form_text_regExp**\u7684\u8be6\u7ec6\u63cf\u8ff0\u5982\u4e0b\uff1a...` },<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"60\">  { <span class=\"hljs-attr\">role:<\/span> <span class=\"hljs-string\">'assistant'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"61\">    <span class=\"hljs-attr\">content:<\/span> <span class=\"hljs-string\">'\u8bfe\u7a0b\u62a5\u540d\u9875\u9762\u7684\u914d\u7f6e\u4fe1\u606f\u5982\u4e0b\uff1a\\n\\n...'<\/span> }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"62\">]<\/span>\n<\/code><\/pre>\n<h3 data-id=\"heading-16\">2. \u9875\u9762\u642d\u5efa\u80fd\u529b\u6269\u5c55\uff1a \u9875\u9762\u4e0a\u4e0b\u6587\u8df3\u8f6c\u573a\u666f<\/h3>\n<p>\u5728\u8fdb\u884c\u4f4e\u4ee3\u7801\u9875\u9762\u642d\u5efa\u65f6\uff0c\u6709\u65f6\u4f1a\u9700\u8981\u5728\u9875\u9762\u914d\u7f6e\u4e2d\u52a0\u5165\u4e00\u4e9b\u4e0a\u4e0b\u6587\u4fe1\u606f\u3002<\/p>\n<p>\u4f8b\u5982\u9700\u8981\u5728\u9875\u9762\u4e2d\u6dfb\u52a0\u4e00\u4e2a\u6309\u94ae\uff0c\u7528\u6237\u70b9\u51fb\u6309\u94ae\u65f6\u8df3\u8f6c\u81f3\u53e6\u4e00\u4e2a\u9875\u9762\u3002\u6b64\u65f6\u6211\u4eec\u53ef\u4ee5\u901a\u8fc7\u4e00\u4e2a\u51fd\u6570\uff0c\u5141\u8bb8\u6a21\u578b\u83b7\u53d6\u76f8\u5173\u7684\u9875\u9762\u5217\u8868\u3002<\/p>\n<blockquote>\n<p>\u5173\u4e8e\u6309\u94ae\u3001\u8df3\u8f6c\u64cd\u4f5c\u7b49\u534f\u8bae\u5185\u5bb9\u53ef\u4ee5\u901a\u8fc7\u4e0a\u4e00\u7ae0\u8282\u4e2d\u7684\u65b9\u6cd5\u83b7\u53d6\uff1a<\/p>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">markdown<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-markdown code-block-extension-codeShowNum\" lang=\"markdown\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\"><span class=\"hljs-section\">## button<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\"> <\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">\u6309\u94ae\u3002<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\">\u652f\u6301\u7684\u914d\u7f6e\u9879\u5305\u62ec\uff1a<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"7\"><span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-emphasis\">*label*<\/span>\uff1a\u6309\u94ae\u6807\u7b7e<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"8\"><span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-emphasis\">*action*<\/span>\uff1a\u64cd\u4f5c\u7c7b\u578b\uff0c\u652f\u6301\uff1a<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"9\"><span class=\"hljs-bullet\">  -<\/span> <span class=\"hljs-emphasis\">*none*<\/span>\uff1a\u65e0\u64cd\u4f5c<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"10\"><span class=\"hljs-bullet\">  -<\/span> <span class=\"hljs-emphasis\">*redirect*<\/span>\uff1a\u9875\u9762\u91cd\u5b9a\u5411<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"11\"><span class=\"hljs-bullet\">-<\/span> <span class=\"hljs-emphasis\">*redirectTo*<\/span>\uff1a\u9875\u9762\u6807\u8bc6<\/span>\n<\/code><\/pre>\n<\/blockquote>\n<h4 data-id=\"heading-17\">\u51fd\u6570\u4fe1\u606f\u63cf\u8ff0<\/h4>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">go<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-go code-block-extension-codeShowNum\" lang=\"go\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\"><span class=\"hljs-keyword\">const<\/span> functionsPrompt = [<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">  <span class=\"hljs-comment\">\/\/ ...<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">  {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">    name: <span class=\"hljs-string\">'get_page_id'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\">    description: <span class=\"hljs-string\">'\u67e5\u8be2\u9875\u9762\u6807\u8bc6\u5217\u8868\u3002\u5176\u4e2d\u5305\u542b\u9875\u9762\u6807\u8bc6\uff08`id`\uff09\u3001\u9875\u9762\u540d\u79f0\uff08`name`\uff09'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\">    parameters: {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"7\">      <span class=\"hljs-keyword\">type<\/span>: <span class=\"hljs-string\">'object'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"8\">      properties: {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"9\">        page: {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"10\">          <span class=\"hljs-keyword\">type<\/span>: <span class=\"hljs-string\">'string'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"11\">          description: <span class=\"hljs-string\">'\u9875\u9762'<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"12\">        }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"13\">      }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"14\">    }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"15\">  }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"16\">]<\/span>\n<\/code><\/pre>\n<h4 data-id=\"heading-18\">\u51fd\u6570\u5185\u5bb9<\/h4>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">php<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-php code-block-extension-codeShowNum\" lang=\"php\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\"><span class=\"hljs-keyword\">const<\/span> <span class=\"hljs-variable constant_\">functionsCalls<\/span> = {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">  <span class=\"hljs-comment\">\/\/ ...<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">  get_page_id: (args: {}) =&gt; {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">    <span class=\"hljs-comment\">\/\/ \u8bf7\u81ea\u884c\u5b9e\u73b0\u4fe1\u606f\u67e5\u8be2\uff0c\u4e0b\u5217\u8fd4\u56de\u5185\u5bb9\u4ec5\u4e3a\u793a\u4f8b\u3002<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\">    <span class=\"hljs-keyword\">return<\/span> JSON.<span class=\"hljs-title function_ invoke__\">stringify<\/span>([<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\">      {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"7\">        <span class=\"hljs-attr\">id<\/span>: <span class=\"hljs-string\">'page_list'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"8\">        <span class=\"hljs-attr\">name<\/span>: <span class=\"hljs-string\">'\u5217\u8868\u9875'<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"9\">      },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"10\">      {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"11\">        <span class=\"hljs-attr\">id<\/span>: <span class=\"hljs-string\">'page_create'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"12\">        <span class=\"hljs-attr\">name<\/span>: <span class=\"hljs-string\">'\u65b0\u589e\u9875'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"13\">        <span class=\"hljs-attr\">description<\/span>: <span class=\"hljs-string\">'\u7528\u4e8e\u65b0\u589e\u5185\u5bb9'<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"14\">      },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"15\">      {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"16\">        <span class=\"hljs-attr\">id<\/span>: <span class=\"hljs-string\">'page_preview'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"17\">        <span class=\"hljs-attr\">name<\/span>: <span class=\"hljs-string\">'\u9884\u89c8\u9875'<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"18\">      }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"19\">    ])<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"20\">  }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"21\">}<\/span>\n<\/code><\/pre>\n<h4 data-id=\"heading-19\">\u8c03\u7528\u793a\u4f8b<\/h4>\n<p>\u4e00\u6b21\u5b8c\u6574\u8c03\u7528\u7684\u6d88\u606f\u5217\u8868\uff1a<\/p>\n<blockquote>\n<p>\u4e3a\u4e86\u4fbf\u4e8e\u9605\u8bfb\uff0c\u5df2\u7ecf\u8c03\u6574\u4e86\u6d88\u606f\u5217\u8868\u4e2d\u6d88\u606f\u5185\u5bb9\u7684\u7f29\u8fdb\u6392\u7248\uff0c\u5e76\u4e14\u5c06GPT\u8fd4\u56de\u7684\u914d\u7f6e\u4fe1\u606f\u548c\u8868\u793a\u51fd\u6570\u8c03\u7528\u53c2\u6570\u7684JSON\u5b57\u7b26\u4e32\u89e3\u6790\u4e3a\u5bf9\u8c61\u5f62\u5f0f\u3002<\/p>\n<\/blockquote>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">bash<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-bash code-block-extension-codeShowNum\" lang=\"bash\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\">[<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">  \/\/ \u5df2\u7701\u7565\u7cfb\u7edf\u89d2\u8272\u4fe1\u606f\u4ee5\u53ca\u79c1\u6709\u534f\u8bae\u8bbf\u95ee\u4fe1\u606f\u3002<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">  \/\/ ...<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">  { role: <span class=\"hljs-string\">'user'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\">    content: <span class=\"hljs-string\">'\u6dfb\u52a0\u4e00\u4e2a\u9884\u89c8\u6309\u94ae\uff0c\u70b9\u51fb\u540e\u8df3\u8f6c\u81f3\u9884\u89c8\u9875\u3002'<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\">  },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"7\">  \/\/ ...<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"8\">  { role: <span class=\"hljs-string\">'assistant'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"9\">    content: { <span class=\"hljs-built_in\">type<\/span>: <span class=\"hljs-string\">\"button\"<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"10\">               label: <span class=\"hljs-string\">\"\u9884\u89c8\"<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"11\">               action: <span class=\"hljs-string\">\"redirect\"<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"12\">               redirectTo: <span class=\"hljs-string\">\"preview\"<\/span> },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"13\">    function_call: { name: <span class=\"hljs-string\">'get_page_id'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"14\">                     arguments: { page: <span class=\"hljs-string\">\"preview\"<\/span> } } },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"15\">  { role: <span class=\"hljs-string\">'function'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"16\">    name: <span class=\"hljs-string\">'get_page_id'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"17\">    content: [ { <span class=\"hljs-built_in\">id<\/span>: <span class=\"hljs-string\">\"page_list\"<\/span>, name: <span class=\"hljs-string\">\"\u5217\u8868\u9875\"<\/span> },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"18\">               { <span class=\"hljs-built_in\">id<\/span>: <span class=\"hljs-string\">\"page_create\"<\/span>, name: <span class=\"hljs-string\">\"\u65b0\u589e\u9875\"<\/span> },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"19\">               { <span class=\"hljs-built_in\">id<\/span>: <span class=\"hljs-string\">\"page_preview\"<\/span>, name: <span class=\"hljs-string\">\"\u9884\u89c8\u9875\"<\/span>} ] },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"20\">  { role: <span class=\"hljs-string\">'assistant'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"21\">    content: { <span class=\"hljs-built_in\">type<\/span>: <span class=\"hljs-string\">\"button\"<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"22\">               label: <span class=\"hljs-string\">\"\u9884\u89c8\"<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"23\">               action: <span class=\"hljs-string\">\"redirect\"<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"24\">               redirectTo: <span class=\"hljs-string\">\"page_preview\"<\/span> }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"25\">]<\/span>\n<\/code><\/pre>\n<h3 data-id=\"heading-20\">3. \u4f4e\u4ee3\u7801\u5e73\u53f0\u80fd\u529b\u6269\u5c55\uff1a \u642d\u5efa\u7a97\u53e3\u53ef\u89c6\u533a\u57df\u8c03\u6574<\/h3>\n<p>\u5728\u8fdb\u884c\u81ea\u7136\u8bed\u8a00\u4f4e\u4ee3\u7801\u642d\u5efa\u65f6\uff0c\u6211\u4eec\u5e0c\u671b\u8ba9\u642d\u5efa\u7a97\u53e3\u7684\u53ef\u89c6\u533a\u57df\u81ea\u52a8\u6eda\u52a8\u5230\u53d1\u751f\u53d8\u5316\u7684\u533a\u57df\uff0c\u6b64\u65f6\u53ef\u4ee5\u901a\u8fc7\u7cfb\u7edf\u89d2\u8272\u8981\u6c42\u5728\u8fdb\u884c\u9875\u9762\u914d\u7f6e\u53d8\u52a8\u65f6\u8c03\u7528\u9875\u9762\u6eda\u52a8\u65b9\u6cd5\uff0c\u81ea\u52a8\u6eda\u52a8\u81f3\u53d1\u751f\u914d\u7f6e\u53d8\u5316\u7684\u5143\u7d20\u4f4d\u7f6e\u3002<\/p>\n<h4 data-id=\"heading-21\">\u7cfb\u7edf\u63cf\u8ff0\u4fe1\u606f<\/h4>\n<p>\u5728\u7cfb\u7edf\u63cf\u8ff0\u4fe1\u606f\u4e2d\u6dfb\u52a0\u76f8\u5173\u63cf\u8ff0\uff1a<\/p>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">go<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-go code-block-extension-codeShowNum\" lang=\"go\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\"><span class=\"hljs-keyword\">const<\/span> systemPropmpt = <span class=\"hljs-string\">`\/\/...<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">                       \u6bcf\u6b21\u5bf9\u9875\u9762\u5185\u5bb9\u8fdb\u884c\u8c03\u6574\u65f6\uff0c\u9700\u8981\u6eda\u52a8\u9875\u9762\u81f3\u76ee\u6807\u5143\u7d20\u4f4d\u7f6e\u3002<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">                       <\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\">                       CCMS\u9875\u9762\u914d\u7f6e\u4fe1\u606f\u4e3a\u4e00\u4e2a\u6570\u7ec4\uff0c\u6bcf\u4e2a\u9875\u9762\u5143\u7d20\u4e3a\u6570\u7ec4\u4e2d\u7684\u4e00\u9879\uff0c\u5982\uff1a<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"7\">                       `<span class=\"hljs-string\">``<\/span>json<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"8\">                       [<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"9\">                         {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"10\">                           <span class=\"hljs-string\">\"id\"<\/span>: <span class=\"hljs-string\">\"input\"<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"11\">                           <span class=\"hljs-string\">\"type\"<\/span>: <span class=\"hljs-string\">\"text\"<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"12\">                           <span class=\"hljs-string\">\"label\"<\/span>: <span class=\"hljs-string\">\"\u6587\u672c\u8f93\u5165\u6846\"<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"13\">                         }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"14\">                       ]<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"15\">                       <span class=\"hljs-string\">``<\/span><span class=\"hljs-string\">`<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"16\">                       <\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"17\">                       \/\/ ...<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"18\">                       `;<\/span>\n<\/code><\/pre>\n<h4 data-id=\"heading-22\">\u51fd\u6570\u4fe1\u606f\u63cf\u8ff0<\/h4>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">go<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-go code-block-extension-codeShowNum\" lang=\"go\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\"><span class=\"hljs-keyword\">const<\/span> functionsPrompt = [<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">  <span class=\"hljs-comment\">\/\/ ...<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">  {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">    name: <span class=\"hljs-string\">'scroll_to'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\">    description: <span class=\"hljs-string\">'\u6eda\u52a8\u9875\u9762\u81f3\u6307\u5b9a\u5143\u7d20\u4f4d\u7f6e'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\">    parameters: {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"7\">      <span class=\"hljs-keyword\">type<\/span>: <span class=\"hljs-string\">'object'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"8\">      properties: {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"9\">        element_id: {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"10\">          <span class=\"hljs-keyword\">type<\/span>: <span class=\"hljs-string\">'string'<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"11\">          description: <span class=\"hljs-string\">'\u6307\u5b9a\u5143\u7d20ID'<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"12\">        }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"13\">      }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"14\">    }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"15\">  }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"16\">]<\/span>\n<\/code><\/pre>\n<h4 data-id=\"heading-23\">\u51fd\u6570\u5185\u5bb9<\/h4>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">typescript<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-typescript code-block-extension-codeShowNum\" lang=\"typescript\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\"><span class=\"hljs-keyword\">const<\/span> functionsCalls = {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">  <span class=\"hljs-comment\">\/\/ ...<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">  <span class=\"hljs-attr\">scroll_id<\/span>: <span class=\"hljs-function\">(<span class=\"hljs-params\">args: { element_id: <span class=\"hljs-built_in\">string<\/span> }<\/span>) =&gt;<\/span> {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">    <span class=\"hljs-keyword\">const<\/span> { element_id } = args<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\">    <span class=\"hljs-comment\">\/\/ \u81ea\u884c\u5b9e\u73b0\u9875\u9762\u6eda\u52a8\u903b\u8f91<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\">    <span class=\"hljs-keyword\">return<\/span> <span class=\"hljs-string\">'\u6eda\u52a8\u5b8c\u6210'<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"7\">  }<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"8\">}<\/span>\n<\/code><\/pre>\n<h2 data-id=\"heading-24\">\u56db\u3001 \u603b\u7ed3<\/h2>\n<p>OpenAI\u63d0\u4f9b\u7684\u51fd\u6570\u8c03\u7528\u529f\u80fd\u4e3a\u4f7f\u7528GPT\u80fd\u529b\u7684\u5e94\u7528\u63d0\u4f9b\u4e86\u66f4\u4e30\u5bcc\u7684\u53ef\u80fd\u6027\u3002\u5e94\u7528\u5f00\u53d1\u8005\u53ef\u4ee5\u901a\u8fc7\u51fd\u6570\u8c03\u7528\u529f\u80fd\uff0c\u8ba9\u7528\u6237\u901a\u8fc7\u81ea\u7136\u8bed\u8a00\u4ea4\u4e92\uff0c\u83b7\u53d6\u5b9e\u65f6\u6570\u636e\u3001\u7ed3\u6784\u5316\u6570\u636e\uff0c\u540c\u65f6\u4e5f\u53ef\u4ee5\u4e0e\u5e94\u7528\u8fdb\u884c\u5404\u7c7b\u4ea4\u4e92\u3002\u672c\u6587\u4e2d\u63cf\u8ff0\u7684\u51e0\u4e2a\u6848\u4f8b\u573a\u666f\u4ec5\u4e3a\u629b\u7816\u5f15\u7389\uff0c\u6b22\u8fce\u5927\u5bb6\u591a\u591a\u8ba8\u8bba\uff0c\u5c1d\u8bd5\u66f4\u591a\u5e94\u7528\u573a\u666f\u3002<\/p>\n<blockquote>\n<p>\u4f5c\u8005\uff1a\u4eac\u4e1c\u96f6\u552e \u725b\u6653\u5149<\/p>\n<p>\u6765\u6e90\uff1a\u4eac\u4e1c\u4e91\u5f00\u53d1\u8005\u793e\u533a<\/p>\n<\/blockquote>\n","protected":false},"excerpt":{"rendered":"<p>6\u670813\u65e5OpenAI\u5728Chat Completions API\u4e2d\u6dfb\u52a0\u4e86\u65b0\u7684\u51fd\u6570\u8c03\u7528\uff08Function Calling\uff09\u80fd\u529b\uff0c\u5e2e\u52a9\u5f00\u53d1\u8005\u901a\u8fc7API\u65b9\u5f0f\u5b9e\u73b0\u7c7b\u4f3c\u4e8eChatGPT\u63d2\u4ef6\u7684\u6570\u636e\u4ea4\u4e92\u80fd\u529b\u3002<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"OpenAI\u51fd\u6570\u8c03\u7528\uff1a\u8d4b\u80fd\u4f4e\u4ee3\u7801\u5f00\u53d1\u65b0\u65b9\u5f0f - \u5948\u65af\u79d1\u6280\u793e\u533a","rank_math_description":"\u672c\u6587\u4ecb\u7ecd OpenAI \u7684\u51fd\u6570\u8c03\u7528\u529f\u80fd\uff0c\u8bb2\u89e3\u5982\u4f55\u901a\u8fc7API\u65b9\u5f0f\u5b9e\u73b0\u7c7b\u4f3cChatGPT\u63d2\u4ef6\u7684\u6570\u636e\u4ea4\u4e92\u80fd\u529b\uff0c\u5e76\u7ed3\u5408\u4f4e\u4ee3\u7801\u5f00\u53d1\u5e73\u53f0\uff0c\u5c55\u793a\u5982\u4f55\u7528\u81ea\u7136\u8bed\u8a00\u642d\u5efa\u66f4\u4e30\u5bcc\u7684\u9875\u9762\u5185\u5bb9\u548c\u4ea4\u4e92\u64cd\u4f5c\u3002","rank_math_focus_keyword":"OpenAI, ChatGPT\u63d2\u4ef6, \u51fd\u6570\u8c03\u7528, \u4f4e\u4ee3\u7801\u5f00\u53d1, \u81ea\u7136\u8bed\u8a00\u5904\u7406","views":"16","footnotes":""},"categories":[3],"tags":[126,127,128,129,136],"collection":[],"class_list":["post-1224","post","type-post","status-publish","format-standard","hentry","category-fenlei2","tag-gpt","tag-ai","tag-128","tag-129","tag-136"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/posts\/1224","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/comments?post=1224"}],"version-history":[{"count":0,"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/posts\/1224\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/media?parent=1224"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/categories?post=1224"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/tags?post=1224"},{"taxonomy":"collection","embeddable":true,"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/collection?post=1224"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}