{"id":110713,"date":"2026-09-29T09:25:29","date_gmt":"2026-09-29T01:25:29","guid":{"rendered":"https:\/\/www.wsisp.com\/helps\/110713.html"},"modified":"2026-09-29T09:25:29","modified_gmt":"2026-09-29T01:25:29","slug":"%e3%80%90langchain%e3%80%91-%e7%ac%ac03%e7%ab%a0%ef%bc%9alangchain%e4%bd%bf%e7%94%a8%e4%b9%8bchains","status":"publish","type":"post","link":"https:\/\/www.wsisp.com\/helps\/110713.html","title":{"rendered":"\u3010LangChain\u3011----\u7b2c03\u7ae0\uff1aLangChain\u4f7f\u7528\u4e4bChains"},"content":{"rendered":"<h3>1&#xff64;Chains\u7684\u57fa\u672c\u4f7f\u7528<\/h3>\n<h4>1.1 Chain\u7684\u57fa\u672c\u6982\u5ff5<\/h4>\n<p>Chain:\u94fe,\u7528\u4e8e\u5c06\u591a\u4e2a\u7ec4\u4ef6(\u63d0\u793a\u6a21\u677f&#xff64;LLM\u6a21\u578b&#xff64;\u8bb0\u5fc6&#xff64;\u5de5\u5177\u7b49)\u8fde\u63a5\u8d77\u6765,\u5f62\u6210\u53ef\u590d\u7528\u7684\u5de5\u4f5c\u6d41,\u5b8c\u6210\u590d\u6742\u7684\u4efb\u52a1&#xff61;<\/p>\n<p>Chain \u7684\u6838\u5fc3\u601d\u60f3\u662f\u901a\u8fc7\u7ec4\u5408\u4e0d\u540c\u7684\u6a21\u5757\u5316\u5355\u5143,\u5b9e\u73b0\u6bd4\u5355\u4e00\u7ec4\u4ef6\u66f4\u5f3a\u5927\u7684\u529f\u80fd&#xff61;\u6bd4\u5982:<\/p>\n<ul>\n<li>\u5c06LLM \u4e0ePrompt Template (\u63d0\u793a\u6a21\u677f)\u7ed3\u5408<\/li>\n<li>\u5c06LLM \u4e0e\u8f93\u51fa\u89e3\u6790\u5668\u7ed3\u5408<\/li>\n<li>\u5c06LLM \u4e0e\u5916\u90e8\u6570\u636e\u7ed3\u5408,\u4f8b\u5982\u7528\u4e8e\u95ee\u7b54<\/li>\n<li>\u5c06LLM \u4e0e\u957f\u671f\u8bb0\u5fc6\u7ed3\u5408,\u4f8b\u5982\u7528\u4e8e\u804a\u5929\u5386\u53f2\u8bb0\u5f55<\/li>\n<li>\u901a\u8fc7\u5c06\u7b2c\u4e00\u4e2aLLM \u7684\u8f93\u51fa\u4f5c\u4e3a\u7b2c\u4e8c\u4e2aLLM \u7684\u8f93\u5165,\u2026,\u5c06\u591a\u4e2aLLM\u6309\u987a\u5e8f\u7ed3\u5408\u5728\u4e00\u8d77<\/li>\n<\/ul>\n<h4>1.2 LCEL \u53ca\u5176\u57fa\u672c\u6784\u6210<\/h4>\n<p>\u4f7f\u7528LCEL,\u53ef\u4ee5\u6784\u9020\u51fa\u7ed3\u6784\u6700\u7b80\u5355\u7684Chain&#xff61;<\/p>\n<p>LangChain\u8868\u8fbe\u5f0f\u8bed\u8a00(LCEL,LangChain Expression Language)\u662f\u4e00\u79cd\u58f0\u660e\u5f0f\u65b9\u6cd5,\u53ef\u4ee5\u8f7b\u677e\u5730 \u5c06\u591a\u4e2a\u7ec4\u4ef6\u94fe\u63a5\u6210 AI \u5de5\u4f5c\u6d41&#xff61;\u5b83\u901a\u8fc7Python\u539f\u751f\u64cd\u4f5c\u7b26(\u5982\u7ba1\u9053\u7b26| )\u5c06\u7ec4\u4ef6\u8fde\u63a5\u6210\u53ef\u6267\u884c\u6d41\u7a0b,\u663e \u8457\u7b80\u5316\u4e86AI\u5e94\u7528\u7684\u5f00\u53d1&#xff61;<\/p>\n<p>LCEL\u7684\u57fa\u672c\u6784\u6210:\u63d0\u793a(Prompt)&#043; \u6a21\u578b(Model)&#043; \u8f93\u51fa\u89e3\u6790\u5668(OutputParser)<\/p>\n<p>\u5373:<\/p>\n<p><span class=\"token comment\"># \u5728\u8fd9\u4e2a\u94fe\u6761\u4e2d,\u7528\u6237\u8f93\u5165\u88ab\u4f20\u9012\u7ed9\u63d0\u793a\u6a21\u677f,\u7136\u540e\u63d0\u793a\u6a21\u677f\u7684\u8f93\u51fa\u88ab\u4f20\u9012\u7ed9\u6a21\u578b,\u7136\u540e\u6a21\u578b\u7684\u8f93\u51fa\u88ab\u4f20<\/span><br \/>\n\u9012\u7ed9\u8f93\u51fa\u89e3\u6790\u5668&#xff61;<br \/>\nchain <span class=\"token operator\">&#061;<\/span> prompt <span class=\"token operator\">|<\/span> model <span class=\"token operator\">|<\/span> output_parser<\/p>\n<p>chain.invoke<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">{<\/span><span class=\"token string\">&#034;input&#034;<\/span><span class=\"token builtin class-name\">:<\/span><span class=\"token string\">&#034;What&#039;s your name?&#034;<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>Prompt:Prompt \u662f\u4e00\u4e2a BasePromptTemplate,\u8fd9\u610f\u5473\u7740\u5b83\u63a5\u53d7\u4e00\u4e2a\u6a21\u677f\u53d8\u91cf\u7684\u5b57\u5178\u5e76\u751f\u6210\u4e00 \u4e2aPromptValue &#xff61;PromptValue \u53ef\u4ee5\u4f20\u9012\u7ed9 LLM(\u5b83\u4ee5\u5b57\u7b26\u4e32\u4f5c\u4e3a\u8f93\u5165)\u6216 ChatModel(\u5b83\u4ee5 \u6d88\u606f\u5e8f\u5217\u4f5c\u4e3a\u8f93\u5165)&#xff61;<\/p>\n<p>Model:\u5c06 PromptValue \u4f20\u9012\u7ed9 model&#xff61;\u5982\u679c\u6211\u4eec\u7684 model \u662f\u4e00\u4e2a ChatModel,\u8fd9\u610f\u5473\u7740\u5b83 \u5c06\u8f93\u51fa\u4e00\u4e2a BaseMessage &#xff61;<\/p>\n<p>OutputParser:\u5c06 model \u7684\u8f93\u51fa\u4f20\u9012\u7ed9 output_parser,\u5b83\u662f\u4e00\u4e2a BaseOutputParser,\u610f\u5473\u7740 \u5b83\u53ef\u4ee5\u63a5\u53d7\u5b57\u7b26\u4e32\u6216 BaseMessage \u4f5c\u4e3a\u8f93\u5165&#xff61;<\/p>\n<p>chain:\u6211\u4eec\u53ef\u4ee5\u4f7f\u7528 | \u8fd0\u7b97\u7b26\u8f7b\u677e\u521b\u5efa\u8fd9\u4e2aChain&#xff61; | \u8fd0\u7b97\u7b26\u5728 LangChain \u4e2d\u7528\u4e8e\u5c06\u4e24\u4e2a \u5143\u7d20\u7ec4\u5408\u5728\u4e00\u8d77&#xff61;<\/p>\n<p>invoke:\u6240\u6709LCEL\u5bf9\u8c61\u90fd\u5b9e\u73b0\u4e86 Runnable \u534f\u8bae,\u4fdd\u8bc1\u4e00\u81f4\u7684\u8c03\u7528\u65b9\u5f0f<br \/>\n(invoke \/ batch \/ stream )<\/p>\n<p>| \u7b26\u53f7\u7c7b\u4f3c\u4e8e shell \u2fa5\u2faf\u7ba1\u9053\u64cd\u4f5c\u7b26,\u5b83\u5c06\u4e0d\u540c\u7684\u7ec4\u4ef6\u94fe\u63a5\u5728\u2f00\u8d77,\u5c06\u524d\u2f00\u4e2a\u7ec4\u4ef6\u7684\u8f93\u51fa\u4f5c\u4e3a\u4e0b\u2f00 \u4e2a\u7ec4\u4ef6\u7684\u8f93\u2f0a,\u8fd9\u5c31\u5f62\u6210\u4e86\u2f00\u4e2a AI \u2f2f\u4f5c\u6d41&#xff61;<\/p>\n<h4>1.3 Runnable<\/h4>\n<p>Runnable\u662fLangChain\u5b9a\u4e49\u7684\u4e00\u4e2a\u62bd\u8c61\u63a5\u53e3(Protocol),\u5b83\u5f3a\u5236\u8981\u6c42\u6240\u6709LCEL\u7ec4\u4ef6\u5b9e\u73b0\u4e00\u7ec4\u6807\u51c6\u65b9 \u6cd5:<\/p>\n<p>class Runnable<span class=\"token punctuation\">(<\/span>Protocol<span class=\"token punctuation\">)<\/span>:<br \/>\ndef invoke<span class=\"token punctuation\">(<\/span>self, input: Any<span class=\"token punctuation\">)<\/span> &#8211;<span class=\"token operator\">&gt;<\/span> Any: <span class=\"token punctuation\">..<\/span>. <span class=\"token comment\"># \u5355\u8f93\u5165\u5355\u8f93\u51fa<\/span><br \/>\ndef batch<span class=\"token punctuation\">(<\/span>self, inputs: List<span class=\"token punctuation\">[<\/span>Any<span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span> &#8211;<span class=\"token operator\">&gt;<\/span> List<span class=\"token punctuation\">[<\/span>Any<span class=\"token punctuation\">]<\/span>: <span class=\"token punctuation\">..<\/span>. <span class=\"token comment\"># \u6279\u91cf\u5904\u7406<\/span><br \/>\ndef stream<span class=\"token punctuation\">(<\/span>self, input: Any<span class=\"token punctuation\">)<\/span> &#8211;<span class=\"token operator\">&gt;<\/span> Iterator<span class=\"token punctuation\">[<\/span>Any<span class=\"token punctuation\">]<\/span>: <span class=\"token punctuation\">..<\/span>. <span class=\"token comment\"># \u6d41\u5f0f\u8f93\u51fa<\/span><br \/>\n<span class=\"token comment\"># \u8fd8\u6709\u5176\u4ed6\u65b9\u6cd5\u5982 ainvoke(\u5f02\u6b65)\u7b49&#8230;<\/span><\/p>\n<p>\u4efb\u4f55\u5b9e\u73b0\u4e86\u8fd9\u4e9b\u65b9\u6cd5\u7684\u5bf9\u8c61\u90fd\u88ab\u89c6\u4e3aLCEL\u517c\u5bb9\u7ec4\u4ef6&#xff61;\u6bd4\u5982:\u804a\u5929\u6a21\u578b&#xff64;\u63d0\u793a\u8bcd\u6a21\u677f&#xff64;\u8f93\u51fa\u89e3\u6790\u5668&#xff64;\u68c0\u7d22 \u5668&#xff64;\u4ee3\u7406(\u667a\u80fd\u4f53)\u7b49&#xff61;<\/p>\n<p>\u6bcf\u4e2a LCEL \u5bf9\u8c61\u90fd\u5b9e\u73b0\u4e86 Runnable \u63a5\u53e3,\u8be5\u63a5\u53e3\u5b9a\u4e49\u4e86\u4e00\u7ec4\u516c\u5171\u7684\u8c03\u7528\u65b9\u6cd5&#xff61;\u8fd9\u4f7f\u5f97 LCEL \u5bf9\u8c61\u94fe\u4e5f \u81ea\u52a8\u652f\u6301\u8fd9\u4e9b\u8c03\u7528\u6210\u4e3a\u53ef\u80fd&#xff61;<\/p>\n<h5>2&#xff64;\u4e3a\u4ec0\u4e48\u9700\u8981\u7edf\u4e00\u8c03\u7528\u65b9\u5f0f?<\/h5>\n<p>\u4f20\u7edf\u95ee\u9898<\/p>\n<p>\u5047\u8bbe\u6ca1\u6709\u7edf\u4e00\u534f\u8bae:<\/p>\n<ul>\n<li>\u63d0\u793a\u8bcd\u6e32\u67d3\u7528 .format()<\/li>\n<li>\u6a21\u578b\u8c03\u7528\u7528 .generate()<\/li>\n<li>\u89e3\u6790\u5668\u89e3\u6790\u7528 .parse()<\/li>\n<li>\u5de5\u5177\u8c03\u7528\u7528 .run()<\/li>\n<\/ul>\n<p>\u4ee3\u7801\u4f1a\u53d8\u6210:<\/p>\n<p>prompt_text <span class=\"token operator\">&#061;<\/span> prompt.format<span class=\"token punctuation\">(<\/span>topic<span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;\u732b&#034;<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token comment\"># \u65b9\u6cd51<\/span><br \/>\nmodel_out <span class=\"token operator\">&#061;<\/span> model.generate<span class=\"token punctuation\">(<\/span>prompt_text<span class=\"token punctuation\">)<\/span> <span class=\"token comment\"># \u65b9\u6cd52<\/span><br \/>\nresult <span class=\"token operator\">&#061;<\/span> parser.parse<span class=\"token punctuation\">(<\/span>model_out <span class=\"token comment\"># \u65b9\u6cd53<\/span><\/p>\n<p>\u75db\u70b9:\u6bcf\u4e2a\u7ec4\u4ef6\u8c03\u7528\u65b9\u5f0f\u4e0d\u540c,\u7ec4\u5408\u65f6\u9700\u8981\u624b\u52a8\u9002\u914d&#xff61;<\/p>\n<h5>3&#xff64;LCEL\u89e3\u51b3\u65b9\u6848<\/h5>\n<p>\u901a\u8fc7 Runnable \u534f\u8bae\u7edf\u4e00:<\/p>\n<p><span class=\"token comment\">#(\u5206\u6b65\u8c03\u7528)<\/span><br \/>\nprompt_text <span class=\"token operator\">&#061;<\/span> prompt.invoke<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">{<\/span><span class=\"token string\">&#034;topic&#034;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token string\">&#034;\u732b&#034;<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token comment\"># \u65b9\u6cd51<\/span><br \/>\nmodel_out <span class=\"token operator\">&#061;<\/span> model.invoke<span class=\"token punctuation\">(<\/span>prompt_text<span class=\"token punctuation\">)<\/span> <span class=\"token comment\"># \u65b9\u6cd52<\/span><br \/>\nresult <span class=\"token operator\">&#061;<\/span> parser.invoke<span class=\"token punctuation\">(<\/span>model_out <span class=\"token comment\"># \u65b9\u6cd53<\/span><\/p>\n<p><span class=\"token comment\">#(LCEL\u7ba1\u9053\u5f0f)<\/span><br \/>\nchain <span class=\"token operator\">&#061;<\/span> prompt <span class=\"token operator\">|<\/span> model <span class=\"token operator\">|<\/span> parser <span class=\"token comment\"># \u7528\u7ba1\u9053\u7b26\u7ec4\u5408<\/span><br \/>\nresult <span class=\"token operator\">&#061;<\/span> chain.invoke<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">{<\/span><span class=\"token string\">&#034;topic&#034;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token string\">&#034;\u732b&#034;<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span> <span class=\"token comment\"># \u6240\u6709\u7ec4\u4ef6\u7edf\u4e00\u7528invoke<\/span><\/p>\n<ul>\n<li>\u4e00\u81f4\u6027:\u65e0\u8bba\u7ec4\u4ef6\u7684\u529f\u80fd\u591a\u590d\u6742(\u6a21\u578b\/\u63d0\u793a\u8bcd\/\u5de5\u5177),\u8c03\u7528\u65b9\u5f0f\u5b8c\u5168\u76f8\u540c<\/li>\n<li>\u7ec4\u5408\u6027:\u7ba1\u9053\u64cd\u4f5c\u7b26 | \u80cc\u540e\u81ea\u52a8\u5904\u7406\u7c7b\u578b\u5339\u914d\u548c\u4e2d\u95f4\u7ed3\u679c\u4f20\u9012<\/li>\n<\/ul>\n<h4>1.4 \u4f7f\u7528\u4e3e\u4f8b<\/h4>\n<p>\u4e3e\u4f8b1:<\/p>\n<p>\u60c5\u51b51:\u6ca1\u6709\u4f7f\u7528chain<\/p>\n<p>from langchain_core.output_parsers <span class=\"token function\">import<\/span> StrOutputParser<br \/>\nfrom langchain_openai <span class=\"token function\">import<\/span> ChatOpenAI<br \/>\nfrom langchain.prompts <span class=\"token function\">import<\/span> PromptTemplate<br \/>\n<span class=\"token function\">import<\/span> os<br \/>\n<span class=\"token function\">import<\/span> dotenv<br \/>\ndotenv.load_dotenv<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>os.environ<span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;OPENAI_API_KEY&#034;<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> os.getenv<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;OPENAI_API_KEY1&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\nos.environ<span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;OPENAI_BASE_URL&#034;<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> os.getenv<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;OPENAI_BASE_URL&#034;<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>chat_model <span class=\"token operator\">&#061;<\/span> ChatOpenAI<span class=\"token punctuation\">(<\/span><br \/>\nmodel <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;gpt-4o-mini&#034;<\/span><\/p>\n<p><span class=\"token punctuation\">)<\/span><\/p>\n<p>prompt_template <span class=\"token operator\">&#061;<\/span> PromptTemplate.from_template<span class=\"token punctuation\">(<\/span><br \/>\ntemplate <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;\u7ed9\u6211\u8bb2\u4e00\u4e2a\u5173\u4e8e{topic}\u8bdd\u9898\u7684\u7b80\u77ed\u7b11\u8bdd&#034;<\/span><\/p>\n<p><span class=\"token punctuation\">)<\/span><br \/>\nparser <span class=\"token operator\">&#061;<\/span> StrOutputParser<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>prompt_value <span class=\"token operator\">&#061;<\/span> prompt_template.invoke<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">{<\/span><span class=\"token string\">&#034;topic&#034;<\/span><span class=\"token builtin class-name\">:<\/span><span class=\"token string\">&#034;\u51b0\u6dc7\u6dcb&#034;<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>result <span class=\"token operator\">&#061;<\/span> chat_model.invoke<span class=\"token punctuation\">(<\/span>prompt_value<span class=\"token punctuation\">)<\/span><\/p>\n<p>out_put <span class=\"token operator\">&#061;<\/span> parser.invoke<span class=\"token punctuation\">(<\/span>result<span class=\"token punctuation\">)<\/span><br \/>\nprint<span class=\"token punctuation\">(<\/span>out_put<span class=\"token punctuation\">)<\/span><br \/>\nprint<span class=\"token punctuation\">(<\/span>type<span class=\"token punctuation\">(<\/span>out_put<span class=\"token punctuation\">))<\/span><\/p>\n<p>\u8f93\u51fa&#xff1a;<\/p>\n<p>\u5f53\u7136\u53ef\u4ee5<span class=\"token operator\">!<\/span>\u8fd9\u662f\u2f00\u4e2a\u5173\u4e8e\u51b0\u6dc7\u6dcb\u7684\u5c0f\u7b11\u8bdd:<br \/>\n\u4e3a\u4ec0\u4e48\u51b0\u6dc7\u6dcb\u603b\u662f\u5f88\u5f00\u2f3c?<br \/>\n\u56e0\u4e3a\u5b83\u603b\u662f\u80fd\u88ab\u201c\u5403\u201d\u5230\u5feb\u4e50\u7684\u5730\u2f45<span class=\"token operator\">!<\/span><br \/>\n<span class=\"token operator\">&lt;<\/span>class <span class=\"token string\">&#039;str&#039;<\/span><span class=\"token operator\">&gt;<\/span><\/p>\n<p>\u60c5\u51b52:\u4f7f\u7528chain:\u5c06\u63d0\u793a\u6a21\u677f&#xff64;\u6a21\u578b&#xff64;\u89e3\u6790\u5668\u94fe\u63a5\u5728\u4e00\u8d77&#xff61;\u4f7f\u7528LCEL\u5c06\u4e0d\u540c\u7684\u7ec4\u4ef6\u7ec4\u5408\u6210\u4e00\u4e2a\u5355\u4e00\u7684 \u94fe\u6761<\/p>\n<p>from dotenv <span class=\"token function\">import<\/span> load_dotenv<br \/>\nfrom langchain_core.output_parsers <span class=\"token function\">import<\/span> StrOutputParser<\/p>\n<p>load_dotenv<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><br \/>\nchat_model <span class=\"token operator\">&#061;<\/span> ChatOpenAI<span class=\"token punctuation\">(<\/span>model<span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;gpt-4o-mini&#034;<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>prompt_template <span class=\"token operator\">&#061;<\/span> PromptTemplate.from_template<span class=\"token punctuation\">(<\/span><br \/>\ntemplate <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;\u7ed9\u6211\u8bb2\u4e00\u4e2a\u5173\u4e8e{topic}\u8bdd\u9898\u7684\u7b80\u77ed\u7b11\u8bdd&#034;<\/span><br \/>\n<span class=\"token punctuation\">)<\/span><\/p>\n<p>parser <span class=\"token operator\">&#061;<\/span> StrOutputParser<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\"># \u6784\u5efa\u94fe\u5f0f\u8c03\u7528(LCEL\u8bed\u6cd5)<\/span><br \/>\nchain <span class=\"token operator\">&#061;<\/span> prompt_template <span class=\"token operator\">|<\/span> chat_model <span class=\"token operator\">|<\/span> parser<br \/>\nout_put <span class=\"token operator\">&#061;<\/span> chain.invoke<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">{<\/span><span class=\"token string\">&#034;topic&#034;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token string\">&#034;ice cream&#034;<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><br \/>\nprint<span class=\"token punctuation\">(<\/span>out_put<span class=\"token punctuation\">)<\/span><br \/>\nprint<span class=\"token punctuation\">(<\/span>type<span class=\"token punctuation\">(<\/span>out_put<span class=\"token punctuation\">))<\/span><\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/09\/20260929012527-6abb138787641.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/><\/p>\n<p>\u8f93\u51fa&#xff1a;<\/p>\n<p>\u4e3a\u4ec0\u4e48\u51b0\u6dc7\u6dcb\u603b\u662f\u5f88\u5feb\u4e50?<br \/>\n\u56e0\u4e3a\u5b83\u77e5\u9053\u2f83\u2f30\u662f\u4e2a\u201c\u751c\u201d\u2ec6\u2f8a<span class=\"token operator\">!<\/span><br \/>\n<span class=\"token operator\">&lt;<\/span>class <span class=\"token string\">&#039;str&#039;<\/span><span class=\"token operator\">&gt;<\/span><\/p>\n<h3>2&#xff64;\u4f20\u7edfChain\u7684\u4f7f\u7528<\/h3>\n<h4>2.1 \u57fa\u7840\u94fe:LLMChain<\/h4>\n<h5>2.1.1 \u4f7f\u7528\u8bf4\u660e<\/h5>\n<p>LCEL\u4e4b\u524d,\u6700\u57fa\u7840\u4e5f\u6700\u5e38\u89c1\u7684\u94fe\u7c7b\u578b\u662fLLMChain&#xff61;<\/p>\n<p>\u8fd9\u4e2a\u94fe\u81f3\u5c11\u5305\u62ec\u4e00\u4e2a\u63d0\u793a\u8bcd\u6a21\u677f(PromptTemplate),\u4e00\u4e2a\u8bed\u8a00\u6a21\u578b(LLM \u6216\u804a\u5929\u6a21\u578b)&#xff61;<\/p>\n<p>\u6ce8\u610f:LLMChain was deprecated in LangChain 0.1.17 and will be removed in 1.0. Use prompt | llm instead&#xff61;<\/p>\n<p>\u7279\u70b9:<\/p>\n<ul>\n<li>\u7528\u4e8e \u5355\u6b21\u95ee\u7b54,\u8f93\u5165\u4e00\u4e2a Prompt,\u8f93\u51fa LLM \u7684\u54cd\u5e94&#xff61;<\/li>\n<li>\u9002\u5408 \u65e0\u4e0a\u4e0b\u6587 \u7684\u7b80\u5355\u4efb\u52a1(\u5982\u7ffb\u8bd1&#xff64;\u6458\u8981&#xff64;\u5206\u7c7b\u7b49)&#xff61;<\/li>\n<li>\u65e0\u8bb0\u5fc6:\u65e0\u6cd5\u81ea\u52a8\u7ef4\u62a4\u804a\u5929\u5386\u53f2<\/li>\n<\/ul>\n<h5>2.1.2 \u4e3b\u8981\u6b65\u9aa4<\/h5>\n<p>1&#xff64;\u914d\u7f6e\u4efb\u52a1\u94fe:\u4f7f\u7528LLMChain\u7c7b\u5c06\u4efb\u52a1\u4e0e\u63d0\u793a\u8bcd\u7ed3\u5408,\u5f62\u6210\u5b8c\u6574\u7684\u4efb\u52a1\u94fe&#xff61;<\/p>\n<p>chain &#061; LLMChain(llm &#061; llm, prompt &#061; prompt_template)<\/p>\n<p>2&#xff64;\u6267\u884c\u4efb\u52a1\u94fe:\u4f7f\u7528invoke()\u7b49\u65b9\u6cd5\u6267\u884c\u4efb\u52a1\u94fe,\u5e76\u83b7\u53d6\u751f\u6210\u7ed3\u679c&#xff61;\u53ef\u4ee5\u6839\u636e\u9700\u8981\u5bf9\u8f93\u51fa\u8fdb\u884c\u5904\u7406\u548c\u5c55 \u793a&#xff61;<\/p>\n<p>result &#061; chain.invoke(&#8230;)<br \/>\nprint(result)<\/p>\n<h5>2.1.3 \u53c2\u6570\u8bf4\u660e<\/h5>\n<table>\n<tr>\u53c2\u6570\u540d\u7c7b\u578b\u9ed8\u8ba4 \u503c\u5fc5 \u586b\u8bf4\u660e<\/tr>\n<tbody>\n<tr>\n<td>llm<\/td>\n<td>Union[Runnable[LanguageModelInput, str], Runnable[LanguageModelInput, BaseMessage]]<\/td>\n<td>&#8211;<\/td>\n<td>\u662f<\/td>\n<td>\u8981\u8c03\u7528\u7684\u8bed\u8a00\u6a21\u578b<\/td>\n<\/tr>\n<tr>\n<td>prompt<\/td>\n<td>BasePromptTemplate<\/td>\n<td>&#8211;<\/td>\n<td>\u662f<\/td>\n<td>\u8981\u4f7f\u7528\u7684\u63d0\u793a\u5bf9\u8c61<\/td>\n<\/tr>\n<tr>\n<td>verbose<\/td>\n<td>bool<\/td>\n<td>False<\/td>\n<td>\u5426<\/td>\n<td>\u4e0b,\u4e00\u4e9b\u4e2d\u95f4\u65e5\u5fd7\u5c06\u88ab\u6253\u5370\u5230\u63a7\u5236 \u53f0&#xff61;\u9ed8\u8ba4\u4f7f\u7528\u5168\u5c40\u8be6\u7ec6\u8bbe\u7f6e,\u53ef\u901a \u8fc7 langchain.globals.get_verbose() \u8bbf\u95ee \u662f\u5426\u4ee5\u8be6\u7ec6\u6a21\u5f0f\u8fd0\u884c &#xff61;\u5728\u8be6\u7ec6\u6a21\u5f0f<\/td>\n<\/tr>\n<tr>\n<td>callback_manager<\/td>\n<td>Optional[BaseCallbackManager]<\/td>\n<td>None<\/td>\n<td>\u5426<\/td>\n<td>\u3010\u5df2\u5f03\u7528\u3011\u8bf7\u6539\u7528callbacks&#xff61;<\/td>\n<\/tr>\n<tr>\n<td>callbacks<\/td>\n<td>Callbacks<\/td>\n<td>None<\/td>\n<td>\u5426<\/td>\n<td>\u53ef\u9009\u7684\u56de\u8c03\u5904\u7406\u5668\u5217\u8868\u6216\u56de\u8c03\u7ba1\u7406 \u5668&#xff61;\u5728\u8c03\u7528\u94fe\u7684\u751f\u547d\u5468\u671f\u4e2d\u7684\u4e0d\u540c \u9636\u6bb5\u88ab\u8c03\u7528,\u4eceon_chain_start\u5f00 \u59cb,\u5230on_chain_end\u6216 on_chain_error\u7ed3\u675f&#xff61;\u81ea\u5b9a\u4e49\u94fe\u53ef \u4ee5\u9009\u62e9\u8c03\u7528\u989d\u5916\u7684\u56de\u8c03\u65b9\u6cd5&#xff61;\u8be6\u89c1 \u56de\u8c03\u6587\u6863<\/td>\n<\/tr>\n<tr>\n<td>llm_kwargs<\/td>\n<td>dict<\/td>\n<td>&#8211;<\/td>\n<td>\u5426<\/td>\n<td>\u8bed\u8a00\u6a21\u578b\u7684\u5173\u952e\u5b57\u53c2\u6570\u5b57\u5178<\/td>\n<\/tr>\n<tr>\n<td>memory<\/td>\n<td>Optional[BaseMemory]<\/td>\n<td>None<\/td>\n<td>\u5426<\/td>\n<td>\u8bb0\u5fc6\u662f\u4e00\u4e2a\u5728\u6bcf\u4e2a\u94fe\u7684\u5f00\u59cb\u548c\u7ed3\u675f \u65f6\u88ab\u8c03\u7528\u7684\u7c7b&#xff61;\u5f00\u59cb\u65f6,\u8bb0\u5fc6\u52a0\u8f7d \u53d8\u91cf\u5e76\u5728\u94fe\u4e2d\u4f20\u9012&#xff61;\u7ed3\u675f\u65f6,\u5b83\u4fdd \u5b58\u4efb\u4f55\u8fd4\u56de\u7684\u53d8\u91cf&#xff61;\u6709\u8bb8\u591a\u4e0d\u540c\u7c7b \u578b\u7684\u5185\u5b58,\u8bf7\u67e5\u770b\u5185\u5b58\u6587\u6863\u83b7\u53d6\u5b8c \u6574\u76ee\u5f55 \u53ef\u9009\u7684\u8bb0\u5fc6\u5bf9\u8c61 &#xff61;\u9ed8\u8ba4\u4e3aNone&#xff61;<\/td>\n<\/tr>\n<tr>\n<td>metadata<\/td>\n<td>Optional[Dict[str, Any]]<\/td>\n<td>None<\/td>\n<td>\u5426<\/td>\n<td>\u4e0e\u94fe\u76f8\u5173\u8054\u7684\u53ef\u9009\u5143\u6570\u636e&#xff61;\u9ed8\u8ba4\u4e3a None&#xff61;\u8fd9\u4e9b\u5143\u6570\u636e\u5c06\u4e0e\u8c03\u7528\u6b64\u94fe \u7684\u6bcf\u6b21\u8c03\u7528\u76f8\u5173\u8054,\u5e76\u4f5c\u4e3a\u53c2\u6570\u4f20 \u9012\u7ed9callbacks\u4e2d\u5b9a\u4e49\u7684\u5904\u7406\u7a0b \u5e8f&#xff61;\u60a8\u53ef\u4ee5\u4f7f\u7528\u8fd9\u4e9b\u6765\u8bc6\u522b\u94fe\u7684\u7279 \u5b9a\u5b9e\u4f8b\u53ca\u5176\u7528\u4f8b<\/td>\n<\/tr>\n<tr>\n<td>output_parser<\/td>\n<td>BaseLLMOutputParser<\/td>\n<td>&#8211;<\/td>\n<td>\u5426<\/td>\n<td>StrOutputParser \u8981\u4f7f\u7528\u7684\u8f93\u51fa\u89e3\u6790\u5668 &#xff61;\u9ed8\u8ba4\u4e3a<\/td>\n<\/tr>\n<tr>\n<td>return_final_only<\/td>\n<td>bool<\/td>\n<td>True<\/td>\n<td>\u5426<\/td>\n<td>\u662f\u5426\u53ea\u8fd4\u56de\u6700\u7ec8\u89e3\u6790\u7ed3\u679c&#xff61;\u9ed8\u8ba4\u4e3a True&#xff61;\u5982\u679c\u4e3aFalse,\u5c06\u8fd4\u56de\u5173\u4e8e \u751f\u6210\u7684\u989d\u5916\u4fe1\u606f&#xff61;<\/td>\n<\/tr>\n<tr>\n<td>tags<\/td>\n<td>Optional[List[str]]<\/td>\n<td>None<\/td>\n<td>\u5426<\/td>\n<td>\u4e0e\u94fe\u76f8\u5173\u8054\u7684\u53ef\u9009\u6807\u7b7e\u5217\u8868&#xff61;\u9ed8\u8ba4 \u4e3aNone&#xff61;\u8fd9\u4e9b\u6807\u7b7e\u5c06\u4e0e\u8c03\u7528\u6b64\u94fe \u7684\u6bcf\u6b21\u8c03\u7528\u76f8\u5173\u8054,\u5e76\u4f5c\u4e3a\u53c2\u6570\u4f20 \u9012\u7ed9callbacks\u4e2d\u5b9a\u4e49\u7684\u5904\u7406\u7a0b \u5e8f&#xff61;\u60a8\u53ef\u4ee5\u4f7f\u7528\u8fd9\u4e9b\u6765\u8bc6\u522b\u94fe\u7684\u7279 \u5b9a\u5b9e\u4f8b\u53ca\u5176\u7528\u4f8b<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>\u4e3e\u4f8b1:<\/p>\n<p>from langchain.chains.llm <span class=\"token function\">import<\/span> LLMChain<br \/>\nfrom langchain_core.prompts <span class=\"token function\">import<\/span> PromptTemplate<br \/>\n<span class=\"token function\">import<\/span> os<br \/>\n<span class=\"token function\">import<\/span> dotenv<br \/>\nfrom langchain_openai <span class=\"token function\">import<\/span> ChatOpenAI<\/p>\n<p>dotenv.load_dotenv<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>os.environ<span class=\"token punctuation\">[<\/span><span class=\"token string\">&#039;OPENAI_API_KEY&#039;<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> os.getenv<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;OPENAI_API_KEY1&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\nos.environ<span class=\"token punctuation\">[<\/span><span class=\"token string\">&#039;OPENAI_BASE_URL&#039;<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> os.getenv<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;OPENAI_BASE_URL&#034;<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\"># 1&#xff64;\u521b\u5efa\u5927\u6a21\u578b\u5b9e\u4f8b<\/span><br \/>\nchat_model <span class=\"token operator\">&#061;<\/span> ChatOpenAI<span class=\"token punctuation\">(<\/span>model<span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;gpt-4o-mini&#034;<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\"># 2&#xff64;\u539f\u59cb\u5b57\u7b26\u4e32\u6a21\u677f<\/span><br \/>\ntemplate <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;\u684c\u4e0a\u6709{number}\u4e2a\u82f9\u679c,\u56db\u4e2a\u6843\u5b50\u548c 3 \u672c\u4e66,\u4e00\u5171\u6709\u51e0\u4e2a\u6c34\u679c?&#034;<\/span><br \/>\nprompt <span class=\"token operator\">&#061;<\/span> PromptTemplate.from_template<span class=\"token punctuation\">(<\/span>template<span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\"># 3&#xff64;\u521b\u5efaLLMChain<\/span><br \/>\nllm_chain <span class=\"token operator\">&#061;<\/span> LLMChain<span class=\"token punctuation\">(<\/span><br \/>\n<span class=\"token assign-left variable\">llm<\/span><span class=\"token operator\">&#061;<\/span>chat_model,<br \/>\n<span class=\"token assign-left variable\">prompt<\/span><span class=\"token operator\">&#061;<\/span>prompt<\/p>\n<p><span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token comment\"># 4&#xff64;\u8c03\u7528LLMChain,\u8fd4\u56de\u7ed3\u679c<\/span><br \/>\nresult <span class=\"token operator\">&#061;<\/span> llm_chain.invoke<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">{<\/span><span class=\"token string\">&#034;number&#034;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token number\">2<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><br \/>\nprint<span class=\"token punctuation\">(<\/span>result<span class=\"token punctuation\">)<\/span><\/p>\n<p>\u8f93\u51fa&#xff1a;<\/p>\n<p><span class=\"token punctuation\">{<\/span><span class=\"token string\">&#039;number&#039;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token number\">2<\/span>, <span class=\"token string\">&#039;text&#039;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token string\">&#039;\u684c\u4e0a\u67092\u4e2a\u82f9\u679c\u548c4\u4e2a\u6843\u2f26,\u603b\u5171\u6709\u2f54\u679c\u7684\u6570\u91cf\u662f:\\\\n\\\\n2(\u82f9\u679c) &#043; 4(\u6843\u2f26) &#061; 6(\u2f54\u679c)\\\\n\\\\n\u6240\u4ee5\u2f00\u5171\u67096\u4e2a\u2f54\u679c&#xff61;&#039;<\/span><span class=\"token punctuation\">}<\/span><\/p>\n<p>\u4e3e\u4f8b2:verbose\u53c2\u6570,\u4f7f\u7528\u4f7f\u7528ChatPromptTemplate&#xff61;<\/p>\n<p><span class=\"token comment\"># 1.\u5bfc\u5165\u76f8\u5173\u5305<\/span><br \/>\nfrom langchain.chains.llm <span class=\"token function\">import<\/span> LLMChain<br \/>\nfrom langchain_core.prompts <span class=\"token function\">import<\/span> ChatPromptTemplate<br \/>\nfrom langchain_openai <span class=\"token function\">import<\/span> ChatOpenAI<br \/>\n<span class=\"token comment\"># 2.\u5b9a\u4e49\u63d0\u793a\u8bcd\u6a21\u7248\u5bf9\u8c61<\/span><br \/>\nchat_template <span class=\"token operator\">&#061;<\/span> ChatPromptTemplate.from_messages<span class=\"token punctuation\">(<\/span><br \/>\n<span class=\"token punctuation\">[<\/span><br \/>\n<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;system&#034;<\/span>,<span class=\"token string\">&#034;\u4f60\u662f\u4e00\u4f4d{area}\u9886\u57df\u5177\u5907\u4e30\u5bcc\u7ecf\u9a8c\u7684\u9ad8\u7aef\u6280\u672f\u4eba\u624d&#034;<\/span><span class=\"token punctuation\">)<\/span>,<br \/>\n<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;human&#034;<\/span>, <span class=\"token string\">&#034;\u7ed9\u6211\u8bb2\u4e00\u4e2a {adjective} \u7b11\u8bdd&#034;<\/span><span class=\"token punctuation\">)<\/span>,<\/p>\n<p><span class=\"token punctuation\">]<\/span><br \/>\n<span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token comment\"># 3.\u5b9a\u4e49\u6a21\u578b<\/span><br \/>\nllm <span class=\"token operator\">&#061;<\/span> ChatOpenAI<span class=\"token punctuation\">(<\/span>model<span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;gpt-4o-mini&#034;<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\"># 4.\u5b9a\u4e49LLMChain<\/span><br \/>\nllm_chain <span class=\"token operator\">&#061;<\/span> LLMChain<span class=\"token punctuation\">(<\/span>llm<span class=\"token operator\">&#061;<\/span>llm, <span class=\"token assign-left variable\">prompt<\/span><span class=\"token operator\">&#061;<\/span>chat_template, <span class=\"token assign-left variable\">verbose<\/span><span class=\"token operator\">&#061;<\/span>True<span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\"># 5.\u8c03\u7528LLMChain<\/span><br \/>\nresponse <span class=\"token operator\">&#061;<\/span> llm_chain.invoke<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">{<\/span><span class=\"token string\">&#034;area&#034;<\/span><span class=\"token builtin class-name\">:<\/span><span class=\"token string\">&#034;\u4e92\u8054\u7f51&#034;<\/span>,<span class=\"token string\">&#034;adjective&#034;<\/span><span class=\"token builtin class-name\">:<\/span><span class=\"token string\">&#034;\u4e0a\u73ed\u7684&#034;<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>print<span class=\"token punctuation\">(<\/span>response<span class=\"token punctuation\">)<\/span><\/p>\n<p>\u8f93\u51fa&#xff1a;<\/p>\n<p><span class=\"token operator\">&gt;<\/span> Entering new LLMChain chain<span class=\"token punctuation\">..<\/span>.<br \/>\nPrompt after formatting:<br \/>\nSystem: \u4f60\u662f\u4e00\u4f4d\u4e92\u8054\u7f51\u9886\u57df\u5177\u5907\u4e30\u5bcc\u7ecf\u9a8c\u7684\u9ad8\u7aef\u6280\u672f\u4eba\u624d<br \/>\nHuman: \u7ed9\u6211\u8bb2\u4e00\u4e2a \u4e0a\u73ed\u7684 \u7b11\u8bdd<\/p>\n<p><span class=\"token operator\">&gt;<\/span> Finished chain.<br \/>\n<span class=\"token punctuation\">{<\/span><span class=\"token string\">&#039;area&#039;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token string\">&#039;\u4e92\u8054\u7f51&#039;<\/span>, <span class=\"token string\">&#039;adjective&#039;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token string\">&#039;\u4e0a\u73ed\u7684&#039;<\/span>, <span class=\"token string\">&#039;text&#039;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token string\">&#039;\u5f53\u7136\u53ef\u4ee5!\u8fd9\u662f\u4e00\u4e2a\u4e0a\u73ed\u7684\u7b11\u8bdd:\\\\n\\\\n\u6709\u4e00\u5929,\u8001\u677f<br \/>\n\u5bf9\u5458\u5de5\u8bf4:\u201c\u4f60\u77e5\u9053\u4e3a\u4ec0\u4e48\u6211\u603b\u662f\u628a\u4f60\u7684\u5de5\u4f5c\u63a8\u8fdf\u5417?\u201d\\\\n\\\\n\u5458\u5de5\u597d\u5947\u5730\u95ee:\u201c\u4e3a\u4ec0\u4e48\u5462?\u201d\\\\n\\\\n<br \/>\n\u8001\u677f\u5fae\u7b11\u7740\u56de\u7b54:\u201c\u56e0\u4e3a\u6211\u60f3\u8ba9\u4f60\u4eec\u7684\u5de5\u4f5c\u4fdd\u6301\u65b0\u9c9c\u611f,\u6bcf\u6b21\u90fd\u7ed9\u4f60\u4eec\u4e00\u4e2a\u65b0\u7684\u622a\u6b62\u65e5\u671f,\u8fd9\u6837\u4f60<br \/>\n\u4eec\u5c31\u80fd\u6709\u66f4\u591a\u7684\u2018\u671f\u5f85\u2019!\u201d\\\\n\\\\n\u5458\u5de5\u65e0\u5948\u5730\u8bf4:\u201c\u90a3\u6211\u5e0c\u671b\u80fd\u628a\u2018\u671f\u5f85\u2019\u6362\u6210\u85aa\u6c34!\u201d\\\\n\\\\n\u5e0c\u671b<br \/>\n\u8fd9\u4e2a\u7b11\u8bdd\u80fd\u8ba9\u4f60\u7b11\u4e00\u7b11!&#039;<\/span><span class=\"token punctuation\">}<\/span><\/p>\n<p>\u8865\u5145\u8bf4\u660e:\u8c03\u7528\u65b9\u6cd5\u9664\u4e86invoke()\u5916,\u8fd8\u6709run()&#xff64;predict()&#xff64;\u5b9e\u4f8b\u65b9\u6cd5\u7b49,\u6548\u679c\u4e0einvoke()\u76f8\u540c,\u8fd9\u91cc \u4e0d\u518d\u4ecb\u7ecd&#xff61;<\/p>\n<h4>2.2 \u987a\u5e8f\u94fe\u4e4b SimpleSequentialChain<\/h4>\n<p>\u987a\u5e8f\u94fe(SequentialChain)\u5141\u8bb8\u5c06\u591a\u4e2a\u94fe\u987a\u5e8f\u8fde\u63a5\u8d77\u6765,\u6bcf\u4e2aChain\u7684\u8f93\u51fa\u4f5c\u4e3a\u4e0b\u4e00\u4e2aChain\u7684\u8f93\u5165, \u5f62\u6210\u7279\u5b9a\u573a\u666f\u7684\u6d41\u6c34\u7ebf(Pipeline)&#xff61;<\/p>\n<p>\u987a\u5e8f\u94fe\u6709\u4e24\u79cd\u7c7b\u578b:<\/p>\n<ul>\n<li>\u5355\u4e2a\u8f93\u5165\/\u8f93\u51fa:\u5bf9\u5e94\u7740 SimpleSequentialChain<\/li>\n<li>\u591a\u4e2a\u8f93\u5165\/\u8f93\u51fa:\u5bf9\u5e94\u7740:SequentialChain<\/li>\n<\/ul>\n<h5>2.2.1 \u8bf4\u660e<\/h5>\n<p>SimpleSequentialChain:\u6700\u7b80\u5355\u7684\u987a\u5e8f\u94fe,\u591a\u4e2a\u94fe\u4e32\u8054\u6267\u884c ,\u6bcf\u4e2a\u6b65\u9aa4\u90fd\u6709\u5355\u4e00\u7684\u8f93\u5165\u548c\u8f93\u51fa,\u4e00 \u4e2a\u6b65\u9aa4\u7684\u8f93\u51fa\u5c31\u662f\u4e0b\u4e00\u4e2a\u6b65\u9aa4\u7684\u8f93\u5165,\u65e0\u9700\u624b\u52a8\u6620\u5c04&#xff61;<br \/>\n<img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/09\/20260929012527-6abb1387a33d1.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/><\/p>\n<h5>2.2.2 \u4f7f\u7528\u4e3e\u4f8b<\/h5>\n<p>\u4e3e\u4f8b1:<\/p>\n<p>from langchain_core.prompts <span class=\"token function\">import<\/span> ChatPromptTemplate<br \/>\nfrom langchain.chains <span class=\"token function\">import<\/span> LLMChain<br \/>\nchainA_template <span class=\"token operator\">&#061;<\/span> ChatPromptTemplate.from_messages<span class=\"token punctuation\">(<\/span><br \/>\n<span class=\"token punctuation\">[<\/span><br \/>\n<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;system&#034;<\/span>, <span class=\"token string\">&#034;\u4f60\u662f\u4e00\u4f4d\u7cbe\u901a\u5404\u9886\u57df\u77e5\u8bc6\u7684\u77e5\u540d\u6559\u6388&#034;<\/span><span class=\"token punctuation\">)<\/span>,<br \/>\n<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;human&#034;<\/span>, <span class=\"token string\">&#034;\u8bf7\u4f60\u5c3d\u53ef\u80fd\u8be6\u7ec6\u7684\u89e3\u91ca\u4e00\u4e0b:{knowledge}&#034;<\/span><span class=\"token punctuation\">)<\/span>,<\/p>\n<p><span class=\"token punctuation\">]<\/span><br \/>\n<span class=\"token punctuation\">)<\/span><\/p>\n<p>chainA_chains <span class=\"token operator\">&#061;<\/span> LLMChain<span class=\"token punctuation\">(<\/span>llm<span class=\"token operator\">&#061;<\/span>llm,<br \/>\n<span class=\"token assign-left variable\">prompt<\/span><span class=\"token operator\">&#061;<\/span>chainA_template,<br \/>\n<span class=\"token assign-left variable\">verbose<\/span><span class=\"token operator\">&#061;<\/span>True<\/p>\n<p><span class=\"token punctuation\">)<\/span><\/p>\n<p>chainA_chains.invoke<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">{<\/span><span class=\"token string\">&#034;knowledge&#034;<\/span><span class=\"token builtin class-name\">:<\/span><span class=\"token string\">&#034;\u4ec0\u4e48\u662fLangChain?&#034;<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token operator\">&gt;<\/span> Entering new LLMChain chain<span class=\"token punctuation\">..<\/span>.<br \/>\n Prompt after formatting:<br \/>\n System: \u4f60\u662f\u4e00\u4f4d\u7cbe\u901a\u5404\u9886\u57df\u77e5\u8bc6\u7684\u77e5\u540d\u6559\u6388<br \/>\n <span class=\"token operator\">&gt;<\/span> Entering new LLMChain chain<span class=\"token punctuation\">..<\/span>.<br \/>\n Prompt after formatting:<br \/>\n System: \u4f60\u662f\u4e00\u4f4d\u7cbe\u901a\u5404\u9886\u57df\u77e5\u8bc6\u7684\u77e5\u540d\u6559\u6388<br \/>\n Human: \u8bf7\u4f60\u5c3d\u53ef\u80fd\u8be6\u7ec6\u7684\u89e3\u91ca\u4e00\u4e0b&#xff1a;\u4ec0\u4e48\u662fLangChain&#xff1f;<\/p>\n<p> <span class=\"token operator\">&gt;<\/span> Finished chain.<\/p>\n<p> <span class=\"token punctuation\">{<\/span><span class=\"token string\">&#039;knowledge&#039;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token string\">&#039;\u4ec0\u4e48\u662fLangChain&#xff1f;&#039;<\/span>,<br \/>\n <span class=\"token string\">&#039;text&#039;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token string\">&#039;LangChain \u662f\u4e00\u4e2a\u5f00\u6e90\u6846\u67b6&#xff0c;\u65e8\u5728\u8bbe\u8ba1\u548c\u6784\u5efa\u57fa\u4e8e\u8bed\u8a00\u6a21\u578b\u7684\u5e94\u7528\u7a0b\u5e8f\u3002\u5177\u4f53\u6765\u8bf4&#xff0c;\u5b83\u4e3a<br \/>\n\u5f00\u53d1\u8005\u63d0\u4f9b\u4e86\u4e00\u7cfb\u5217\u5de5\u5177\u548c\u7ec4\u4ef6&#xff0c;\u4f7f\u4ed6\u4eec\u80fd\u591f\u66f4\u8f7b\u677e\u5730\u521b\u5efa\u590d\u6742\u7684\u8bed\u8a00\u6a21\u578b\u9a71\u52a8\u7684\u5e94\u7528\u7a0b\u5e8f&#xff0c;\u6bd4<br \/>\n\u5982\u804a\u5929\u673a\u5668\u4eba\u3001\u81ea\u52a8\u5185\u5bb9\u751f\u6210\u3001\u4fe1\u606f\u68c0\u7d22\u7cfb\u7edf\u7b49\u3002\\\\n\\\\n### LangChain \u7684\u6838\u5fc3\u7ec4\u6210\u90e8\u5206\\\\n\\\\n1. **<br \/>\n\u8bed\u8a00\u6a21\u578b\u652f\u6301**&#xff1a;\\\\n LangChain \u652f\u6301\u591a\u79cd\u4e0d\u540c\u7684\u8bed\u8a00\u6a21\u578b&#xff0c;\u5982 OpenAI \u7684 GPT \u7cfb\u5217\u3001<br \/>\nHugging Face \u7684 Transformers \u7b49\u3002\u8fd9\u4f7f\u5f97\u5f00\u53d1\u8005\u53ef\u4ee5\u6839\u636e\u9700\u6c42\u9009\u62e9\u6700\u9002\u5408\u7684\u6a21\u578b\u3002\\\\n\\\\n2. **<br \/>\n\u94fe&#xff08;Chains&#xff09;**&#xff1a;\\\\n LangChain \u7684\u4e00\u4e2a\u91cd\u8981\u6982\u5ff5\u662f\u201c\u94fe\u201d&#xff0c;\u5b83\u5141\u8bb8\u5f00\u53d1\u8005\u5c06\u591a\u4e2a\u5904\u7406\u6b65\u9aa4\u4e32\u5728<br \/>\n\u4e00\u8d77&#xff0c;\u4ee5\u5f62\u6210\u4e00\u4e2a\u66f4\u590d\u6742\u7684\u5904\u7406\u6d41\u7a0b\u3002\u4f8b\u5982&#xff0c;\u4e00\u4e2a\u94fe\u53ef\u80fd\u5305\u62ec\u6587\u672c\u7684\u8f93\u5165\u3001\u5229\u7528\u8bed\u8a00\u6a21\u578b\u751f\u6210\u53cd<br \/>\n\u5e94\u3001\u7136\u540e\u8fdb\u4e00\u6b65\u5904\u7406\u751f\u6210\u7684\u6587\u672c\u3002\\\\n\\\\n3. **\u6570\u636e\u52a0\u8f7d&#xff08;Data Loaders&#xff09;**&#xff1a;\\\\n LangChain \u63d0\u4f9b<br \/>\n\u4e86\u4e00\u4e9b\u6570\u636e\u52a0\u8f7d\u5de5\u5177&#xff0c;\u53ef\u4ee5\u4ece\u5404\u79cd\u6570\u636e\u6e90&#xff08;\u5982\u6570\u636e\u5e93\u3001API\u3001\u6587\u4ef6\u7cfb\u7edf\u7b49&#xff09;\u4e2d\u63d0\u53d6\u6570\u636e&#xff0c;\u4ee5\u4fbf\u4e8e\u540e<br \/>\n\u7eed\u5904\u7406\u3002\\\\n\\\\n4. **\u63d0\u793a\u6a21\u677f&#xff08;Prompt Templates&#xff09;**&#xff1a;\\\\n \u63d0\u793a\u6a21\u677f\u662f\u6784\u5efa\u9ad8\u6548\u63d0\u793a\u8bcd<br \/>\n&#xff08;prompts&#xff09;\u7684\u5173\u952e\u5de5\u5177\u3002\u7528\u6237\u53ef\u4ee5\u901a\u8fc7\u5b9a\u4e49\u6a21\u677f\u6765\u63a7\u5236\u8f93\u5165\u7ed9\u8bed\u8a00\u6a21\u578b\u7684\u4fe1\u606f\u683c\u5f0f&#xff0c;\u4ece\u800c\u63d0\u9ad8<br \/>\n\u8f93\u51fa\u7ed3\u679c\u7684\u8d28\u91cf\u548c\u4e00\u81f4\u6027\u3002\\\\n\\\\n5. **\u8bb0\u5fc6&#xff08;Memory&#xff09;**&#xff1a;\\\\n LangChain \u5141\u8bb8\u6a21\u578b\u5728\u591a\u8f6e\u5bf9\u8bdd<br \/>\n\u4e2d\u4fdd\u6301\u4e0a\u4e0b\u6587&#xff0c;\u589e\u5f3a\u4e92\u52a8\u6027\u3002\u8fd9\u901a\u8fc7\u8bb0\u5fc6\u673a\u5236\u5b9e\u73b0&#xff0c;\u4f7f\u5f97\u804a\u5929\u5e94\u7528\u53ef\u4ee5\u8bb0\u4f4f\u7528\u6237\u7684\u5148\u524d\u8f93\u5165\u548c\u72b6<br \/>\n\u6001&#xff0c;\u4ece\u800c\u63d0\u4f9b\u66f4\u5177\u4e2a\u6027\u5316\u7684\u54cd\u5e94\u3002\\\\n\\\\n6. **\u5de5\u5177\u96c6\u6210&#xff08;Tooling&#xff09;**&#xff1a;\\\\n LangChain \u652f\u6301\u5c06\u5916\u90e8<br \/>\n\u5de5\u5177&#xff08;\u5982 API\u3001\u6570\u636e\u5e93\u7b49&#xff09;\u4e0e\u8bed\u8a00\u6a21\u578b\u7ed3\u5408\u4f7f\u7528&#xff0c;\u4f7f\u5f97\u6a21\u578b\u53ef\u4ee5\u5728\u751f\u6210\u6587\u672c\u65f6\u8c03\u7528\u8fd9\u4e9b\u5de5\u5177\u8fdb\u884c\u6570<br \/>\n\u636e\u68c0\u7d22\u6216\u6267\u884c\u64cd\u4f5c&#xff0c;\u4ee5\u589e\u5f3a\u5176\u529f\u80fd\u3002\\\\n\\\\n### LangChain \u7684\u5e94\u7528\u573a\u666f\\\\n\\\\nLangChain \u901a\u5e38\u88ab\u5e94<br \/>\n\u7528\u4e8e\u4ee5\u4e0b\u9886\u57df&#xff1a;\\\\n\\\\n- **\u667a\u80fd\u5ba2\u670d**&#xff1a;\u901a\u8fc7\u4e0e\u7528\u6237\u8fdb\u884c\u81ea\u7136\u8bed\u8a00\u5bf9\u8bdd&#xff0c;\u56de\u7b54\u95ee\u9898\u5e76\u63d0\u4f9b\u5e2e\u52a9\u3002\\\\n-<br \/>\n**\u5185\u5bb9\u751f\u6210**&#xff1a;\u81ea\u52a8\u64b0\u5199\u6587\u7ae0\u3001\u535a\u5ba2\u3001\u793e\u4ea4\u5a92\u4f53\u5e16\u5b50\u7b49\u3002\\\\n- **\u6570\u636e\u5206\u6790**&#xff1a;\u5229\u7528\u81ea\u7136\u8bed\u8a00\u67e5\u8be2\u6570<br \/>\n\u636e\u5e93&#xff0c;\u83b7\u53d6\u6240\u9700\u6570\u636e\u5e76\u751f\u6210\u62a5\u544a\u3002\\\\n- **\u6559\u80b2\u8f85\u52a9**&#xff1a;\u5f00\u53d1\u6559\u80b2\u5de5\u5177&#xff0c;\u63d0\u4f9b\u81ea\u52a8\u8bc4\u4f30\u3001\u7b54\u6848\u751f\u6210\u7b49<br \/>\n\u670d\u52a1\u3002\\\\n- **\u521b\u4f5c\u5de5\u5177**&#xff1a;\u5e2e\u52a9\u4f5c\u5bb6\u548c\u521b\u4f5c\u8005\u5728\u5199\u4f5c\u8fc7\u7a0b\u4e2d\u63d0\u4f9b\u7075\u611f\u548c\u5efa\u8bae\u3002\\\\n\\\\n### \u5f00\u53d1\u8005\u53cb\u597d<br \/>\n\u6027\\\\n\\\\nLangChain \u8bbe\u8ba1\u7684\u4e00\u4e2a\u91cd\u8981\u76ee\u6807\u662f\u6613\u4e8e\u4f7f\u7528\u3002\u8fd9\u610f\u5473\u7740\u5373\u4f7f\u662f\u6ca1\u6709\u6df1\u539a\u7684\u673a\u5668\u5b66\u4e60\u80cc\u666f\u7684<br \/>\n\u5f00\u53d1\u8005\u4e5f\u80fd\u5229\u7528\u8fd9\u4e2a\u6846\u67b6\u6784\u5efa\u5e94\u7528\u7a0b\u5e8f\u3002\u6b64\u5916&#xff0c;LangChain \u8fd8\u63d0\u4f9b\u4e86\u4e30\u5bcc\u7684\u6587\u6863\u3001\u793a\u4f8b\u4ee3\u7801\u548c\u793e<br \/>\n\u533a\u652f\u6301&#xff0c;\u4f7f\u5f00\u53d1\u8005\u80fd\u591f\u8fc5\u901f\u4e0a\u624b\u3002\\\\n\\\\n### \u603b\u7ed3\\\\n\\\\nLangChain \u662f\u4e00\u4e2a\u5f3a\u5927\u7684\u5de5\u5177&#xff0c;\u65e8\u5728\u7b80\u5316\u57fa<br \/>\n\u4e8e\u8bed\u8a00\u6a21\u578b\u7684\u5e94\u7528\u7a0b\u5e8f\u7684\u5f00\u53d1\u8fc7\u7a0b\u3002\u901a\u8fc7\u63d0\u4f9b\u5404\u79cd\u7ec4\u4ef6\u548c\u529f\u80fd&#xff0c;\u5b83\u4f7f\u5f97\u5f00\u53d1\u8005\u80fd\u591f\u4e13\u6ce8\u4e8e\u5e94\u7528\u903b<br \/>\n\u8f91&#xff0c;\u800c\u4e0d\u662f\u5e95\u5c42\u5b9e\u73b0\u7ec6\u8282\u3002\u968f\u7740\u8bed\u8a00\u6a21\u578b\u6280\u672f\u7684\u8fc5\u901f\u53d1\u5c55&#xff0c;LangChain \u5728\u63a8\u52a8\u76f8\u5173\u5e94\u7528\u7684\u666e\u53ca\u548c<br \/>\n\u5e94\u7528\u573a\u666f\u7684\u6269\u5c55\u4e2d&#xff0c;\u53d1\u6325\u4e86\u91cd\u8981\u4f5c\u7528\u3002&#039;<\/span><span class=\"token punctuation\">}<\/span><\/p>\n<p>\u7ee7\u7eed&#xff1a;<\/p>\n<p>from langchain_core.prompts <span class=\"token function\">import<\/span> ChatPromptTemplate<br \/>\nchainB_template <span class=\"token operator\">&#061;<\/span> ChatPromptTemplate.from_messages<span class=\"token punctuation\">(<\/span><br \/>\n<span class=\"token punctuation\">[<\/span><br \/>\n<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;system&#034;<\/span>, <span class=\"token string\">&#034;\u4f60\u975e\u5e38\u5584\u4e8e\u63d0\u53d6\u6587\u672c\u4e2d\u7684\u91cd\u8981\u4fe1\u606f,\u5e76\u505a\u51fa\u7b80\u77ed\u7684\u603b\u7ed3&#034;<\/span><span class=\"token punctuation\">)<\/span>,<br \/>\n<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;human&#034;<\/span>, <span class=\"token string\">&#034;\u8fd9\u662f\u9488\u5bf9\u4e00\u4e2a\u63d0\u95ee\u7684\u5b8c\u6574\u7684\u89e3\u91ca\u8bf4\u660e\u5185\u5bb9:{description}&#034;<\/span><span class=\"token punctuation\">)<\/span>,<br \/>\n<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;human&#034;<\/span>, <span class=\"token string\">&#034;\u8bf7\u4f60\u6839\u636e\u4e0a\u8ff0\u8bf4\u660e,\u5c3d\u53ef\u80fd\u7b80\u77ed\u7684\u8f93\u51fa\u91cd\u8981\u7684\u7ed3\u8bba,\u8bf7\u63a7\u5236\u572820\u4e2a\u5b57\u4ee5\u5185&#034;<\/span><span class=\"token punctuation\">)<\/span>,<\/p>\n<p><span class=\"token punctuation\">]<\/span><br \/>\n<span class=\"token punctuation\">)<\/span><\/p>\n<p>chainB_chains <span class=\"token operator\">&#061;<\/span> LLMChain<span class=\"token punctuation\">(<\/span>llm<span class=\"token operator\">&#061;<\/span>llm,<br \/>\n<span class=\"token assign-left variable\">prompt<\/span><span class=\"token operator\">&#061;<\/span>chainB_template,<\/p>\n<p><span class=\"token assign-left variable\">verbose<\/span><span class=\"token operator\">&#061;<\/span>True<br \/>\n<span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token comment\"># \u5bfc\u5165SimpleSequentialChain<\/span><br \/>\nfrom langchain.chains <span class=\"token function\">import<\/span> SimpleSequentialChain<\/p>\n<p><span class=\"token comment\"># \u5728chains\u53c2\u6570\u4e2d,\u6309\u987a\u5e8f\u4f20\u5165LLMChain A \u548cLLMChain B<\/span><br \/>\nfull_chain <span class=\"token operator\">&#061;<\/span> SimpleSequentialChain<span class=\"token punctuation\">(<\/span>chains<span class=\"token operator\">&#061;<\/span><span class=\"token punctuation\">[<\/span>chainA_chains, chainB_chains<span class=\"token punctuation\">]<\/span>, <span class=\"token assign-left variable\">verbose<\/span><span class=\"token operator\">&#061;<\/span>True<span class=\"token punctuation\">)<\/span><br \/>\nfull_chain.invoke<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">{<\/span><span class=\"token string\">&#034;input&#034;<\/span><span class=\"token builtin class-name\">:<\/span><span class=\"token string\">&#034;\u4ec0\u4e48\u662flangChain?&#034;<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token punctuation\">..<\/span>.<br \/>\n<span class=\"token punctuation\">{<\/span>8input8: <span class=\"token string\">&#039;\u4ec0\u4e48\u662flangChain&#xff1f;&#039;<\/span>, 8output8: 8LangChain\u662f\u6784\u5efaNLP\u5e94\u2f64\u7684\u7075\u6d3b\u6846\u67b6&#xff0c;\u7b80\u5316\u4e0e\u8bed\u2f94\u6a21\u578b\u7684\u4e92\u52a8\u3002&#039;<span class=\"token punctuation\">}<\/span><\/p>\n<p>\u5728\u8fd9\u4e2a\u8fc7\u7a0b\u4e2d,\u56e0\u4e3aSimpleSequentialChain \u5b9a\u4e49\u7684\u662f\u987a\u5e8f\u94fe,\u6240\u4ee5\u5728chains \u53c2\u6570\u4e2d\u4f20\u9012\u7684\u5217\u8868\u8981\u6309\u7167 \u987a\u5e8f\u6765\u8fdb\u884c\u4f20\u5165,\u5373LLMChain A \u8981\u5728LLMChain B\u4e4b\u524d&#xff61;\u540c\u65f6,\u5728\u8c03\u7528\u65f6,\u4e0d\u518d\u4f7f\u7528LLMChain A\u4e2d\u5b9a \u4e49\u7684{knowledge} \u53c2\u6570,\u4e5f\u4e0d\u662fLLMChainB\u4e2d\u5b9a\u4e49\u7684{description} \u53c2\u6570,\u800c\u662f\u8981\u4f7f\u7528 input \u8fdb\u884c\u53d8 \u91cf\u7684\u4f20\u9012&#xff61;<\/p>\n<p>\u6e90\u7801:<\/p>\n<p>class SimpleSequentialChain<span class=\"token punctuation\">(<\/span>Chain<span class=\"token punctuation\">)<\/span>:<br \/>\n<span class=\"token string\">&#034;&#034;<\/span>&#034;Simple chain where the outputs of one step feed directly into next.<span class=\"token string\">&#034;&#034;<\/span>&#034;<\/p>\n<p>chains: List<span class=\"token punctuation\">[<\/span>Chain<span class=\"token punctuation\">]<\/span><br \/>\nstrip_outputs: bool <span class=\"token operator\">&#061;<\/span> False<br \/>\ninput_key: str <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;input&#034;<\/span> <span class=\"token comment\">#: :meta private:<\/span><br \/>\noutput_key: str <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;output&#034;<\/span> <span class=\"token comment\">#: :meta private:<\/span><\/p>\n<p>\u4e3e\u4f8b2:<br \/>\n\u521b\u5efa\u4e86\u4e24\u6761chain,\u5e76\u4e14\u8ba9\u7b2c\u4e00\u6761chain\u7ed9\u5267\u540d\u5199\u5927\u7eb2,\u8f93\u51fa\u8be5\u5267\u540d\u5927\u7eb2,\u4f5c\u4e3a\u7b2c\u4e8c\u6761chain\u7684\u8f93\u5165,\u7136 \u540e\u751f\u6210\u4e00\u4e2a\u5267\u672c\u7684\u5927\u7eb2\u8bc4\u8bba&#xff61;\u6700\u540e\u5229\u7528SimpleSequentialChain\u5373\u53ef\u5c06\u4e24\u4e2achain\u76f4\u63a5\u4e32\u8054\u8d77\u6765&#xff61;<\/p>\n<p><span class=\"token comment\"># 1.\u5bfc\u5165\u76f8\u5173\u5305<\/span><br \/>\nfrom langchain.chains <span class=\"token function\">import<\/span> LLMChain<br \/>\nfrom langchain_core.prompts <span class=\"token function\">import<\/span> PromptTemplate<br \/>\nfrom langchain.chains <span class=\"token function\">import<\/span> SimpleSequentialChain<\/p>\n<p><span class=\"token comment\"># 2.\u521b\u5efa\u5927\u6a21\u578b\u5b9e\u4f8b<\/span><br \/>\nllm <span class=\"token operator\">&#061;<\/span> ChatOpenAI<span class=\"token punctuation\">(<\/span>model<span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;gpt-4o-mini&#034;<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\"># 3.\u5b9a\u4e49\u4e00\u4e2a\u7ed9\u5267\u540d\u5199\u5927\u7eb2\u7684LLMChain<\/span><br \/>\ntemplate1 <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;&#034;<\/span>&#034;\u4f60\u662f\u4e2a\u5267\u4f5c\u5bb6&#xff61;\u7ed9\u5b9a\u5267\u672c\u7684\u6807\u9898,\u4f60\u7684\u5de5\u4f5c\u5c31\u662f\u4e3a\u8fd9\u4e2a\u6807\u9898\u5199\u4e00\u4e2a\u5927\u7eb2&#xff61;<br \/>\nTitle: <span class=\"token punctuation\">{<\/span>title<span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token string\">&#034;&#034;<\/span>&#034;<br \/>\nprompt_template1 <span class=\"token operator\">&#061;<\/span> PromptTemplate<span class=\"token punctuation\">(<\/span>input_variables<span class=\"token operator\">&#061;<\/span><span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;title&#034;<\/span><span class=\"token punctuation\">]<\/span>, <span class=\"token assign-left variable\">template<\/span><span class=\"token operator\">&#061;<\/span>template1<span class=\"token punctuation\">)<\/span><br \/>\nsynopsis_chain <span class=\"token operator\">&#061;<\/span> LLMChain<span class=\"token punctuation\">(<\/span>llm<span class=\"token operator\">&#061;<\/span>llm, <span class=\"token assign-left variable\">prompt<\/span><span class=\"token operator\">&#061;<\/span>prompt_template1<span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\"># 4.\u5b9a\u4e49\u7ed9\u4e00\u4e2a\u5267\u672c\u5927\u7eb2\u5199\u4e00\u7bc7\u8bc4\u8bba\u7684LLMChain<\/span><\/p>\n<p>template2 <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;&#034;<\/span>&#034;\u4f60\u662f\u300a\u7ebd\u7ea6\u65f6\u62a5\u300b\u7684\u5267\u8bc4\u5bb6&#xff61;\u6709\u4e86\u5267\u672c\u7684\u5927\u7eb2,\u4f60\u7684\u5de5\u4f5c\u5c31\u662f\u4e3a\u5267\u672c\u5199\u4e00\u7bc7\u8bc4\u8bba<br \/>\n\u5267\u60c5\u5927\u7eb2:<br \/>\n<span class=\"token punctuation\">{<\/span>synopsis<span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token string\">&#034;&#034;<\/span>&#034;<br \/>\nprompt_template2 <span class=\"token operator\">&#061;<\/span> PromptTemplate<span class=\"token punctuation\">(<\/span>input_variables<span class=\"token operator\">&#061;<\/span><span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;synopsis&#034;<\/span><span class=\"token punctuation\">]<\/span>, <span class=\"token assign-left variable\">template<\/span><span class=\"token operator\">&#061;<\/span>template2<span class=\"token punctuation\">)<\/span><br \/>\nreview_chain <span class=\"token operator\">&#061;<\/span> LLMChain<span class=\"token punctuation\">(<\/span>llm<span class=\"token operator\">&#061;<\/span>llm, <span class=\"token assign-left variable\">prompt<\/span><span class=\"token operator\">&#061;<\/span>prompt_template2<span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\"># 5.\u5b9a\u4e49\u4e00\u4e2a\u5b8c\u6574\u7684\u94fe\u6309\u987a\u5e8f\u8fd0\u884c\u8fd9\u4e24\u6761\u94fe<\/span><br \/>\n<span class=\"token comment\">#(verbose&#061;True:\u6253\u5370\u94fe\u7684\u6267\u884c\u8fc7\u7a0b)<\/span><br \/>\noverall_chain <span class=\"token operator\">&#061;<\/span> SimpleSequentialChain<span class=\"token punctuation\">(<\/span><br \/>\n<span class=\"token assign-left variable\">chains<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token punctuation\">[<\/span>synopsis_chain, review_chain<span class=\"token punctuation\">]<\/span>, <span class=\"token assign-left variable\">verbose<\/span><span class=\"token operator\">&#061;<\/span>True<\/p>\n<p><span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token comment\"># 6.\u8c03\u7528\u5b8c\u6574\u94fe\u987a\u5e8f\u6267\u884c\u8fd9\u4e24\u4e2a\u94fe<\/span><br \/>\nreview <span class=\"token operator\">&#061;<\/span> overall_chain.invoke<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u65e5\u843d\u6d77\u6ee9\u4e0a\u7684\u60b2\u5267&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token comment\"># 7.\u6253\u5370\u7ed3\u679c<\/span><br \/>\nprint<span class=\"token punctuation\">(<\/span>review<span class=\"token punctuation\">)<\/span><\/p>\n<p>\u7ed3\u679c&#xff1a;<\/p>\n<p><span class=\"token operator\">&gt;<\/span> Entering new SimpleSequentialChain chain<span class=\"token punctuation\">..<\/span>.<br \/>\n**\u5267\u672c\u5927\u7eb2&#xff1a;\u65e5\u843d\u6d77\u6ee9\u4e0a\u7684\u60b2\u5267**<br \/>\n**\u7b2c\u4e00\u5e55&#xff1a;\u5b81\u9759\u7684\u65e5\u843d**<br \/>\n&#8211; **\u573a\u666f\u4e00&#xff1a;\u6d77\u6ee9\u7684\u7f8e\u666f**<br \/>\n\u6545\u4e8b\u5f00\u59cb\u4e8e\u4e00\u4e2a\u5b81\u9759\u7684\u6d77\u6ee9&#xff0c;\u9633\u5149\u5728\u6d77\u5e73\u9762\u4e0a\u7f13\u7f13\u4e0b\u6c89&#xff0c;\u6d82\u62b9\u7740\u5929\u7a7a\u6e29\u6696\u7684\u8272\u5f69\u3002\u51e0\u4f4d\u89d2\u8272\u5728\u6b64<br \/>\n\u805a\u96c6&#xff0c;\u5c55\u793a\u51fa\u4ed6\u4eec\u5404\u81ea\u7684\u751f\u6d3b\u548c\u80cc\u666f\u3002\u4e3b\u89d2\u674e\u4f1f\u662f\u4e00\u540d\u5e74\u8f7b\u7684\u6444\u5f71\u5e08&#xff0c;\u6765\u5230\u6d77\u6ee9\u62cd\u6444\u98ce\u666f\u3002\u8fd8\u6709<br \/>\n\u4ed6\u7684\u9752\u6885\u7af9\u9a6c\u5c0f\u96e8&#xff0c;\u4e00\u4e2a\u5bf9\u672a\u6765\u5145\u6ee1\u61a7\u61ac\u7684\u5927\u5b66\u751f\u3002<br \/>\n&#8211; **\u573a\u666f\u4e8c&#xff1a;\u89d2\u8272\u4ecb\u7ecd**<br \/>\n\u4ecb\u7ecd\u5176\u4ed6\u89d2\u8272&#xff0c;\u5982\u5c0f\u96e8\u7684\u7236\u6bcd\u3001\u5f53\u5730\u7684\u6e14\u6c11\u8001\u5f20&#xff0c;\u4ee5\u53ca\u795e\u79d8\u7684\u8fc7\u5ba2\u963f\u4fca\u3002\u968f\u7740\u65e5\u843d\u7684\u4e34\u8fd1&#xff0c;\u89d2\u8272<br \/>\n\u4eec\u4e4b\u95f4\u7684\u4e92\u52a8\u5efa\u7acb\u8d77\u4e86\u4e00\u79cd\u548c\u8c10\u7684\u6c1b\u56f4&#xff0c;\u4f46\u6f5c\u5728\u7684\u7d27\u5f20\u611f\u5f00\u59cb\u663e\u9732\u3002<br \/>\n**\u7b2c\u4e8c\u5e55&#xff1a;\u51b2\u7a81\u7684\u79cd\u5b50**<br \/>\n&#8211; **\u573a\u666f\u4e09&#xff1a;\u610f\u5916\u7684\u76f8\u9047**<br \/>\n\u4e00\u6b21\u5076\u7136\u7684\u673a\u4f1a&#xff0c;\u5c0f\u96e8\u5728\u6d77\u8fb9\u9047\u5230\u4e86\u963f\u4fca&#xff0c;\u4ed6\u662f\u4e00\u4f4d\u9000\u4f0d\u519b\u4eba&#xff0c;\u5185\u5fc3\u627f\u53d7\u7740\u5de8\u5927\u7684\u5fc3\u7406\u521b\u4f24\u3002\u4e24<br \/>\n\u4eba\u5f00\u59cb\u4e92\u52a8&#xff0c;\u963f\u4fca\u5411\u5c0f\u96e8\u503e\u8bc9\u4ed6\u4ece\u519b\u7ecf\u5386\u4e2d\u7684\u60b2\u60e8\u6545\u4e8b\u3002\u8fd9\u4e2a\u6545\u4e8b\u5f15\u53d1\u4e86\u5c0f\u96e8\u5bf9\u81ea\u5df1\u751f\u6d3b\u7684\u601d<br \/>\n\u8003\u3002<br \/>\n&#8211; **\u573a\u666f\u56db&#xff1a;\u5173\u7cfb\u7684\u53d1\u5c55**<br \/>\n\u674e\u4f1f\u5bdf\u89c9\u5230\u5c0f\u96e8\u4e0e\u963f\u4fca\u4e4b\u95f4\u7684\u4eb2\u5bc6\u5173\u7cfb&#xff0c;\u5185\u5fc3\u4e0d\u5b89\u3002\u5728\u4e00\u6b21\u805a\u4f1a\u4e2d&#xff0c;\u4ed6\u9f13\u8d77\u52c7\u6c14\u5411\u5c0f\u96e8\u8868\u767d&#xff0c;\u4f46<br \/>\n\u88ab\u5a49\u62d2&#xff0c;\u8868\u660e\u5c0f\u96e8\u5e0c\u671b\u80fd\u8ffd\u6c42\u81ea\u5df1\u7684\u68a6\u60f3\u800c\u4e0d\u662f\u9677\u5165\u611f\u60c5\u7684\u7f81\u7eca\u3002<br \/>\n&#8211; **\u573a\u666f\u4e94&#xff1a;\u51b2\u7a81\u7684\u5347\u7ea7**<br \/>\n\u963f\u4fca\u7684\u5185\u5fc3\u6323\u624e\u4e0d\u65ad\u52a0\u5267&#xff0c;\u4ed6\u7684\u8fc7\u53bb\u4e0d\u65ad\u56de\u88ad&#xff0c;\u60c5\u7eea\u4e0d\u7a33\u3002\u4e00\u6b21\u9189\u9152\u540e\u7684\u51b2\u7a81\u4e2d&#xff0c;\u4ed6\u5931\u63a7\u5e76\u4e0e\u674e<br \/>\n\u4f1f\u53d1\u751f\u51b2\u7a81&#xff0c;\u63ed\u9732\u51fa\u8fc7\u53bb\u7684\u75db\u82e6\u548c\u672a\u89e3\u7684\u4ec7\u6068\u3002<br \/>\n**\u7b2c\u4e09\u5e55&#xff1a;\u60b2\u5267\u7684\u964d\u4e34**<br \/>\n&#8211; **\u573a\u666f\u516d&#xff1a;\u8f6c\u6298\u70b9**<br \/>\n<span class=\"token number\">26<\/span> \u6d77\u6ee9\u8fb9&#xff0c;\u963f\u4fca\u60c5\u7eea\u5931\u63a7&#xff0c;\u63d0\u5230\u8981\u201c\u4e3a\u81ea\u5df1\u7684\u8fc7\u53bb\u590d\u4ec7\u201d&#xff0c;\u5f15\u53d1\u4e86\u5468\u56f4\u4eba\u5bf9\u4ed6\u5185\u5fc3\u7684\u62c5\u5fe7\u3002\u5c0f\u96e8\u8bd5<br \/>\n\u56fe\u5b89\u629a\u4ed6&#xff0c;\u4f46\u6700\u7ec8\u4e0e\u4ed6\u4ea7\u751f\u4e86\u96be\u4ee5\u8c03\u548c\u7684\u77db\u76fe\u3002<br \/>\n<span class=\"token number\">27<\/span><br \/>\n<span class=\"token number\">28<\/span> &#8211; **\u573a\u666f\u4e03&#xff1a;\u60b2\u5267\u7684\u53d1\u751f**<br \/>\n<span class=\"token number\">29<\/span> \u5728\u4e00\u6b21\u9762\u5bf9\u5916\u6765\u5a01\u80c1\u7684\u51b2\u7a81\u4e2d&#xff0c;\u963f\u4fca\u4e3a\u4e86\u4fdd\u62a4\u5c0f\u96e8\u800c\u548c\u4ed6\u5fc3\u4e2d\u4ec7\u6068\u7684\u5bf9\u8c61\u53d1\u751f\u4e86\u51b2\u7a81&#xff0c;\u7ed3\u679c\u917f\u6210<br \/>\n\u60b2\u5267\u3002\u963f\u4fca\u4e0d\u5e78\u8eab\u4ea1&#xff0c;\u674e\u4f1f\u548c\u5c0f\u96e8\u5219\u88ab\u5377\u5165\u8fd9\u573a\u60b2\u5267\u4e4b\u4e2d&#xff0c;\u9762\u4e34\u5931\u53bb\u548c\u5185\u759a\u3002<br \/>\n<span class=\"token number\">30<\/span><br \/>\n<span class=\"token number\">31<\/span> **\u7b2c\u56db\u5e55&#xff1a;\u91cd\u62fe\u5e0c\u671b**<br \/>\n<span class=\"token number\">32<\/span><br \/>\n<span class=\"token number\">33<\/span> &#8211; **\u573a\u666f\u516b&#xff1a;\u60b2\u4f24\u7684\u6ba1\u846c**<br \/>\n<span class=\"token number\">34<\/span> \u963f\u4fca\u7684\u846c\u793c\u4e0a&#xff0c;\u6240\u6709\u89d2\u8272\u805a\u96c6\u5728\u4e00\u8d77&#xff0c;\u5f7c\u6b64\u95f4\u7684\u60c5\u611f\u53d8\u5f97\u590d\u6742\u3002\u5c0f\u96e8\u548c\u674e\u4f1f\u5728\u60b2\u4f24\u4e2d\u53cd\u601d\u81ea\u5df1\u7684<br \/>\n\u4eba\u751f\u9009\u62e9\u3002\u8001\u5f20\u5bf9\u963f\u4fca\u7684\u8fc7\u53bb\u6709\u4e86\u89e3&#xff0c;\u4ed6\u8bd5\u56fe\u5728\u846c\u793c\u4e0a\u8868\u8fbe\u4eba\u4e0e\u4eba\u4e4b\u95f4\u7684\u8fde\u7ed3\u548c\u7406\u89e3\u3002<br \/>\n<span class=\"token number\">35<\/span><br \/>\n<span class=\"token number\">36<\/span> &#8211; **\u573a\u666f\u4e5d&#xff1a;\u65b0\u7684\u5f00\u59cb**<br \/>\n<span class=\"token number\">37<\/span> \u968f\u7740\u65f6\u95f4\u7684\u63a8\u79fb&#xff0c;\u674e\u4f1f\u548c\u5c0f\u96e8\u51b3\u5b9a\u5171\u540c\u5e2e\u52a9\u90a3\u4e9b\u7ecf\u5386\u5fc3\u7406\u521b\u4f24\u7684\u4eba&#xff0c;\u5229\u7528\u5404\u81ea\u7684\u624d\u80fd\u6765\u4f20\u64ad\u79ef\u6781<br \/>\n\u7684\u8baf\u606f\u3002\u4ed6\u4eec\u5f00\u59cb\u5728\u6d77\u6ee9\u4e0a\u8fdb\u884c\u6444\u5f71\u5c55\u89c8&#xff0c;\u5c06\u963f\u4fca\u7684\u6545\u4e8b\u4f20\u9012\u7ed9\u66f4\u591a\u4eba\u3002<br \/>\n<span class=\"token number\">38<\/span><br \/>\n<span class=\"token number\">39<\/span> &#8211; **\u573a\u666f\u5341&#xff1a;\u5e0c\u671b\u7684\u65e5\u51fa**<br \/>\n<span class=\"token number\">40<\/span> <span class=\"token operator\">&gt;<\/span> Entering new SimpleSequentialChain chain<span class=\"token punctuation\">..<\/span>.<br \/>\n<span class=\"token number\">41<\/span> **\u5267\u672c\u5927\u7eb2&#xff1a;\u65e5\u843d\u6d77\u6ee9\u4e0a\u7684\u60b2\u5267**<br \/>\n<span class=\"token number\">42<\/span><br \/>\n<span class=\"token number\">43<\/span> **\u7b2c\u4e00\u5e55&#xff1a;\u5b81\u9759\u7684\u65e5\u843d**<br \/>\n<span class=\"token number\">44<\/span><br \/>\n<span class=\"token number\">45<\/span> &#8211; **\u573a\u666f\u4e00&#xff1a;\u6d77\u6ee9\u7684\u7f8e\u666f**<br \/>\n<span class=\"token number\">46<\/span> \u6545\u4e8b\u5f00\u59cb\u4e8e\u4e00\u4e2a\u5b81\u9759\u7684\u6d77\u6ee9&#xff0c;\u9633\u5149\u5728\u6d77\u5e73\u9762\u4e0a\u7f13\u7f13\u4e0b\u6c89&#xff0c;\u6d82\u62b9\u7740\u5929\u7a7a\u6e29\u6696\u7684\u8272\u5f69\u3002\u51e0\u4f4d\u89d2\u8272\u5728\u6b64<br \/>\n\u805a\u96c6&#xff0c;\u5c55\u793a\u51fa\u4ed6\u4eec\u5404\u81ea\u7684\u751f\u6d3b\u548c\u80cc\u666f\u3002\u4e3b\u89d2\u674e\u4f1f\u662f\u4e00\u540d\u5e74\u8f7b\u7684\u6444\u5f71\u5e08&#xff0c;\u6765\u5230\u6d77\u6ee9\u62cd\u6444\u98ce\u666f\u3002\u8fd8\u6709<br \/>\n\u4ed6\u7684\u9752\u6885\u7af9\u9a6c\u5c0f\u96e8&#xff0c;\u4e00\u4e2a\u5bf9\u672a\u6765\u5145\u6ee1\u61a7\u61ac\u7684\u5927\u5b66\u751f\u3002<br \/>\n<span class=\"token number\">47<\/span><br \/>\n<span class=\"token number\">48<\/span> &#8211; **\u573a\u666f\u4e8c&#xff1a;\u89d2\u8272\u4ecb\u7ecd**<br \/>\n<span class=\"token number\">49<\/span> \u4ecb\u7ecd\u5176\u4ed6\u89d2\u8272&#xff0c;\u5982\u5c0f\u96e8\u7684\u7236\u6bcd\u3001\u5f53\u5730\u7684\u6e14\u6c11\u8001\u5f20&#xff0c;\u4ee5\u53ca\u795e\u79d8\u7684\u8fc7\u5ba2\u963f\u4fca\u3002\u968f\u7740\u65e5\u843d\u7684\u4e34\u8fd1&#xff0c;\u89d2\u8272<br \/>\n\u4eec\u4e4b\u95f4\u7684\u4e92\u52a8\u5efa\u7acb\u8d77\u4e86\u4e00\u79cd\u548c\u8c10\u7684\u6c1b\u56f4&#xff0c;\u4f46\u6f5c\u5728\u7684\u7d27\u5f20\u611f\u5f00\u59cb\u663e\u9732\u3002<br \/>\n<span class=\"token number\">50<\/span><br \/>\n<span class=\"token number\">51<\/span> **\u7b2c\u4e8c\u5e55&#xff1a;\u51b2\u7a81\u7684\u79cd\u5b50**<br \/>\n<span class=\"token number\">52<\/span><br \/>\n<span class=\"token number\">53<\/span> &#8211; **\u573a\u666f\u4e09&#xff1a;\u610f\u5916\u7684\u76f8\u9047**<br \/>\n<span class=\"token number\">54<\/span> \u4e00\u6b21\u5076\u7136\u7684\u673a\u4f1a&#xff0c;\u5c0f\u96e8\u5728\u6d77\u8fb9\u9047\u5230\u4e86\u963f\u4fca&#xff0c;\u4ed6\u662f\u4e00\u4f4d\u9000\u4f0d\u519b\u4eba&#xff0c;\u5185\u5fc3\u627f\u53d7\u7740\u5de8\u5927\u7684\u5fc3\u7406\u521b\u4f24\u3002\u4e24<br \/>\n\u4eba\u5f00\u59cb\u4e92\u52a8&#xff0c;\u963f\u4fca\u5411\u5c0f\u96e8\u503e\u8bc9\u4ed6\u4ece\u519b\u7ecf\u5386\u4e2d\u7684\u60b2\u60e8\u6545\u4e8b\u3002\u8fd9\u4e2a\u6545\u4e8b\u5f15\u53d1\u4e86\u5c0f\u96e8\u5bf9\u81ea\u5df1\u751f\u6d3b\u7684\u601d<br \/>\n\u8003\u3002<br \/>\n<span class=\"token number\">55<\/span><br \/>\n<span class=\"token number\">56<\/span> &#8211; **\u573a\u666f\u56db&#xff1a;\u5173\u7cfb\u7684\u53d1\u5c55**<br \/>\n<span class=\"token number\">57<\/span> \u674e\u4f1f\u5bdf\u89c9\u5230\u5c0f\u96e8\u4e0e\u963f\u4fca\u4e4b\u95f4\u7684\u4eb2\u5bc6\u5173\u7cfb&#xff0c;\u5185\u5fc3\u4e0d\u5b89\u3002\u5728\u4e00\u6b21\u805a\u4f1a\u4e2d&#xff0c;\u4ed6\u9f13\u8d77\u52c7\u6c14\u5411\u5c0f\u96e8\u8868\u767d&#xff0c;\u4f46<br \/>\n\u88ab\u5a49\u62d2&#xff0c;\u8868\u660e\u5c0f\u96e8\u5e0c\u671b\u80fd\u8ffd\u6c42\u81ea\u5df1\u7684\u68a6\u60f3\u800c\u4e0d\u662f\u9677\u5165\u611f\u60c5\u7684\u7f81\u7eca\u3002<br \/>\n<span class=\"token number\">58<\/span><br \/>\n<span class=\"token number\">59<\/span> &#8211; **\u573a\u666f\u4e94&#xff1a;\u51b2\u7a81\u7684\u5347\u7ea7**<br \/>\n<span class=\"token number\">60<\/span> \u963f\u4fca\u7684\u5185\u5fc3\u6323\u624e\u4e0d\u65ad\u52a0\u5267&#xff0c;\u4ed6\u7684\u8fc7\u53bb\u4e0d\u65ad\u56de\u88ad&#xff0c;\u60c5\u7eea\u4e0d\u7a33\u3002\u4e00\u6b21\u9189\u9152\u540e\u7684\u51b2\u7a81\u4e2d&#xff0c;\u4ed6\u5931\u63a7\u5e76\u4e0e\u674e<br \/>\n\u4f1f\u53d1\u751f\u51b2\u7a81&#xff0c;\u63ed\u9732\u51fa\u8fc7\u53bb\u7684\u75db\u82e6\u548c\u672a\u89e3\u7684\u4ec7\u6068\u3002<br \/>\n<span class=\"token number\">61<\/span><br \/>\n<span class=\"token number\">62<\/span> **\u7b2c\u4e09\u5e55&#xff1a;\u60b2\u5267\u7684\u964d\u4e34**<br \/>\n<span class=\"token number\">63<\/span><br \/>\n<span class=\"token number\">64<\/span> &#8211; **\u573a\u666f\u516d&#xff1a;\u8f6c\u6298\u70b9**<br \/>\n<span class=\"token number\">65<\/span> \u6d77\u6ee9\u8fb9&#xff0c;\u963f\u4fca\u60c5\u7eea\u5931\u63a7&#xff0c;\u63d0\u5230\u8981\u201c\u4e3a\u81ea\u5df1\u7684\u8fc7\u53bb\u590d\u4ec7\u201d&#xff0c;\u5f15\u53d1\u4e86\u5468\u56f4\u4eba\u5bf9\u4ed6\u5185\u5fc3\u7684\u62c5\u5fe7\u3002\u5c0f\u96e8\u8bd5<br \/>\n\u56fe\u5b89\u629a\u4ed6&#xff0c;\u4f46\u6700\u7ec8\u4e0e\u4ed6\u4ea7\u751f\u4e86\u96be\u4ee5\u8c03\u548c\u7684\u77db\u76fe\u3002<br \/>\n&#8211; **\u573a\u666f\u4e03&#xff1a;\u60b2\u5267\u7684\u53d1\u751f**<br \/>\n<span class=\"token number\">68<\/span> \u5728\u4e00\u6b21\u9762\u5bf9\u5916\u6765\u5a01\u80c1\u7684\u51b2\u7a81\u4e2d&#xff0c;\u963f\u4fca\u4e3a\u4e86\u4fdd\u62a4\u5c0f\u96e8\u800c\u548c\u4ed6\u5fc3\u4e2d\u4ec7\u6068\u7684\u5bf9\u8c61\u53d1\u751f\u4e86\u51b2\u7a81&#xff0c;\u7ed3\u679c\u917f\u6210<br \/>\n\u60b2\u5267\u3002\u963f\u4fca\u4e0d\u5e78\u8eab\u4ea1&#xff0c;\u674e\u4f1f\u548c\u5c0f\u96e8\u5219\u88ab\u5377\u5165\u8fd9\u573a\u60b2\u5267\u4e4b\u4e2d&#xff0c;\u9762\u4e34\u5931\u53bb\u548c\u5185\u759a\u3002<br \/>\n<span class=\"token number\">69<\/span><br \/>\n<span class=\"token number\">70<\/span> **\u7b2c\u56db\u5e55&#xff1a;\u91cd\u62fe\u5e0c\u671b**<br \/>\n<span class=\"token number\">71<\/span><br \/>\n<span class=\"token number\">72<\/span> &#8211; **\u573a\u666f\u516b&#xff1a;\u60b2\u4f24\u7684\u6ba1\u846c**<br \/>\n<span class=\"token number\">73<\/span> \u963f\u4fca\u7684\u846c\u793c\u4e0a&#xff0c;\u6240\u6709\u89d2\u8272\u805a\u96c6\u5728\u4e00\u8d77&#xff0c;\u5f7c\u6b64\u95f4\u7684\u60c5\u611f\u53d8\u5f97\u590d\u6742\u3002\u5c0f\u96e8\u548c\u674e\u4f1f\u5728\u60b2\u4f24\u4e2d\u53cd\u601d\u81ea\u5df1\u7684<br \/>\n\u4eba\u751f\u9009\u62e9\u3002\u8001\u5f20\u5bf9\u963f\u4fca\u7684\u8fc7\u53bb\u6709\u4e86\u89e3&#xff0c;\u4ed6\u8bd5\u56fe\u5728\u846c\u793c\u4e0a\u8868\u8fbe\u4eba\u4e0e\u4eba\u4e4b\u95f4\u7684\u8fde\u7ed3\u548c\u7406\u89e3\u3002<br \/>\n<span class=\"token number\">74<\/span><br \/>\n<span class=\"token number\">75<\/span> &#8211; **\u573a\u666f\u4e5d&#xff1a;\u65b0\u7684\u5f00\u59cb**<br \/>\n<span class=\"token number\">76<\/span> \u968f\u7740\u65f6\u95f4\u7684\u63a8\u79fb&#xff0c;\u674e\u4f1f\u548c\u5c0f\u96e8\u51b3\u5b9a\u5171\u540c\u5e2e\u52a9\u90a3\u4e9b\u7ecf\u5386\u5fc3\u7406\u521b\u4f24\u7684\u4eba&#xff0c;\u5229\u7528\u5404\u81ea\u7684\u624d\u80fd\u6765\u4f20\u64ad\u79ef\u6781<br \/>\n\u7684\u8baf\u606f\u3002\u4ed6\u4eec\u5f00\u59cb\u5728\u6d77\u6ee9\u4e0a\u8fdb\u884c\u6444\u5f71\u5c55\u89c8&#xff0c;\u5c06\u963f\u4fca\u7684\u6545\u4e8b\u4f20\u9012\u7ed9\u66f4\u591a\u4eba\u3002<br \/>\n<span class=\"token number\">77<\/span><br \/>\n<span class=\"token number\">78<\/span> &#8211; **\u573a\u666f\u5341&#xff1a;\u5e0c\u671b\u7684\u65e5\u51fa**<br \/>\n<span class=\"token number\">79<\/span> \u5728\u65b0\u7684\u65e5\u51fa\u4e2d&#xff0c;\u674e\u4f1f\u548c\u5c0f\u96e8\u7ad9\u5728\u6d77\u6ee9\u4e0a&#xff0c;\u9762\u5411\u672a\u6765\u3002\u5c3d\u7ba1\u7ecf\u5386\u4e86\u60b2\u5267&#xff0c;\u4ed6\u4eec\u660e\u767d\u751f\u6d3b\u4f9d\u7136\u5145\u6ee1\u5e0c<br \/>\n\u671b&#xff0c;\u5f7c\u6b64\u95f4\u7684\u60c5\u611f\u4e5f\u5728\u4e0d\u5e78\u4e2d\u91cd\u65b0\u5efa\u7acb\u3002\u6545\u4e8b\u5728\u7f8e\u4e3d\u7684\u98ce\u666f\u4e2d\u7ed3\u675f&#xff0c;\u7559\u4e0b\u89c2\u4f17\u5bf9\u751f\u547d\u3001\u53cb\u8c0a\u548c\u5e0c<br \/>\n\u671b\u7684\u6df1\u601d\u3002<br \/>\n<span class=\"token number\">80<\/span> **\u5267\u8bc4&#xff1a;\u65e5\u843d\u6d77\u6ee9\u4e0a\u7684\u60b2\u5267**<br \/>\n<span class=\"token number\">81<\/span><br \/>\n<span class=\"token number\">82<\/span> \u5728\u4e00\u7247\u5b81\u9759\u7684\u6d77\u6ee9\u4e0a&#xff0c;\u9633\u5149\u7f13\u7f13\u4e0b\u6c89&#xff0c;\u5929\u7a7a\u88ab\u6e29\u6696\u7684\u8272\u5f69\u6d78\u67d3&#xff0c;\u8fd9\u662f\u300a\u65e5\u843d\u6d77\u6ee9\u4e0a\u7684\u60b2\u5267\u300b\u7684\u5f00<br \/>\n\u5e55\u573a\u666f\u3002\u5267\u4f5c\u901a\u8fc7\u9c9c\u660e\u7684\u89c6\u89c9\u5bf9\u6bd4\u548c\u6df1\u523b\u7684\u4eba\u7269\u523b\u753b&#xff0c;\u5c55\u73b0\u4e86\u751f\u6d3b\u7684\u7f8e\u4e3d\u4e0e\u60b2\u5267\u4ea4\u7ec7\u3002\u5728\u8fd9\u4e00\u4ee4<br \/>\n\u4eba\u611f\u6168\u7684\u6545\u4e8b\u4e2d&#xff0c;\u6d77\u6ee9\u4e0d\u4ec5\u4ec5\u662f\u80cc\u666f&#xff0c;\u66f4\u662f\u89d2\u8272\u547d\u8fd0\u4ea4\u9519\u3001\u60c5\u611f\u78b0\u649e\u7684\u821e\u53f0\u3002<br \/>\n<span class=\"token number\">83<\/span><br \/>\n<span class=\"token number\">84<\/span> \u6545\u4e8b\u7684\u542f\u52a8\u7531\u51e0\u4f4d\u6027\u683c\u5404\u5f02\u7684\u89d2\u8272\u76f8\u805a\u800c\u6210\u3002\u5e74\u8f7b\u6444\u5f71\u5e08\u674e\u4f1f\u548c\u68a6\u60f3\u7740\u672a\u6765\u7684\u5c0f\u96e8\u4e4b\u95f4\u7684\u9752\u6da9\u60c5<br \/>\n\u611f\u4ee4\u4eba\u550f\u5618&#xff0c;\u800c\u795e\u79d8\u7684\u8fc7\u5ba2\u963f\u4fca\u5219\u6210\u4e3a\u4e86\u6545\u4e8b\u7684\u6697\u6d41\u3002\u963f\u4fca&#xff0c;\u4f5c\u4e3a\u4e00\u540d\u9000\u4f0d\u519b\u4eba&#xff0c;\u4ed6\u8eab\u4e0a\u7684\u4f24\u75db<br \/>\n\u4e0e\u77db\u76fe\u901a\u8fc7\u4ed6\u4e0e\u5c0f\u96e8\u7684\u4e92\u52a8\u5f97\u4ee5\u5c55\u73b0&#xff0c;\u5374\u4e5f\u4e3a\u672c\u5267\u57cb\u4e0b\u4e86\u60b2\u5267\u7684\u79cd\u5b50\u3002<br \/>\n<span class=\"token number\">85<\/span><br \/>\n<span class=\"token number\">86<\/span> \u5267\u4f5c\u7684\u7b2c\u4e8c\u5e55\u901a\u8fc7\u963f\u4fca\u4e0e\u5c0f\u96e8\u7684\u76f8\u9047&#xff0c;\u5f00\u542f\u4e86\u60c5\u611f\u548c\u5185\u5fc3\u51b2\u7a81\u7684\u66f4\u6df1\u5c42\u6b21\u63a2\u8ba8\u3002\u963f\u4fca\u5411\u5c0f\u96e8\u503e\u8bc9<br \/>\n\u4ed6\u5728\u6218\u4e89\u4e2d\u7ecf\u5386\u7684\u5fc3\u7406\u521b\u4f24&#xff0c;\u8fd9\u4e00\u6bb5\u60c5\u611f\u7684\u4ea4\u6d41\u4e0d\u4ec5\u5728\u89d2\u8272\u95f4\u6784\u5efa\u8d77\u4e86\u4e00\u79cd\u8106\u5f31\u7684\u8fde\u7ed3&#xff0c;\u4e5f\u8ba9\u89c2<br \/>\n\u4f17\u610f\u8bc6\u5230&#xff0c;\u4e2a\u4f53\u751f\u6d3b\u4e2d\u7684\u75db\u82e6\u5e38\u5e38\u662f\u5728\u4e0d\u77e5\u4e0d\u89c9\u95f4\u4fb5\u8680\u7740\u5f7c\u6b64\u7684\u5173\u7cfb\u3002\u963f\u4fca\u7684\u6545\u4e8b\u6df1\u6df1\u89e6\u52a8\u4e86\u5c0f<br \/>\n\u96e8&#xff0c;\u540c\u65f6\u4e5f\u5f15\u53d1\u4e86\u674e\u4f1f\u7684\u9690\u5fe7\u2014\u2014\u4ed6\u5bf9\u5c0f\u96e8\u7684\u60c5\u611f\u88ab\u5916\u6765\u7684\u654c\u610f\u5a01\u80c1\u7740&#xff0c;\u4ee4\u89c2\u4f17\u611f\u53d7\u5230\u4e00\u79cd\u65e0\u5f62<br \/>\n\u7684\u7d27\u5f20\u3002<br \/>\n<span class=\"token number\">87<\/span><br \/>\n<span class=\"token number\">88<\/span> \u968f\u7740\u51b2\u7a81\u7684\u9010\u6e10\u5347\u7ea7&#xff0c;\u5267\u4f5c\u6210\u529f\u5730\u5851\u9020\u4e86\u4e00\u79cd\u65e0\u5904\u53ef\u9003\u7684\u7edd\u671b\u611f\u3002\u963f\u4fca\u60c5\u7eea\u7684\u5d29\u6e83&#xff0c;\u4e0d\u4ec5\u662f\u4ed6\u4e2a<br \/>\n\u4eba\u5185\u5fc3\u7684\u60b2\u5267&#xff0c;\u4e5f\u662f\u5bf9\u5468\u56f4\u4eba\u60c5\u611f\u7684\u4e00\u6b21\u51b2\u51fb\u3002\u5728\u9762\u5bf9\u5916\u6765\u5a01\u80c1\u7684\u5173\u952e\u65f6\u523b&#xff0c;\u963f\u4fca\u4e3a\u4e86\u4fdd\u62a4\u5c0f\u96e8<br \/>\n\u800c\u53d1\u751f\u60b2\u5267&#xff0c;\u4e3a\u6545\u4e8b\u5e26\u6765\u4e86\u5f3a\u70c8\u7684\u51b2\u51fb\u529b\u3002\u8fd9\u4e00\u5e55\u4e0d\u4ec5\u4ee4\u4eba\u5fc3\u75db&#xff0c;\u4e5f\u8ba9\u89c2\u4f17\u53cd\u601d\u66b4\u529b\u80cc\u540e\u7684\u4eba\u6027<br \/>\n\u4e0e\u547d\u8fd0\u7684\u65e0\u5e38\u3002<br \/>\n<span class=\"token number\">89<\/span><br \/>\n<span class=\"token number\">90<\/span> \u5728\u7ecf\u5386\u4e86\u5267\u70c8\u7684\u60c5\u611f\u6ce2\u52a8\u540e&#xff0c;\u963f\u4fca\u7684\u846c\u793c\u6210\u4e3a\u6574\u90e8\u5267\u7684\u60c5\u611f\u9ad8\u5cf0&#xff0c;\u6240\u6709\u89d2\u8272\u5728\u6b64\u523b\u805a\u96c6&#xff0c;\u4e92\u76f8\u78b0<br \/>\n\u649e\u51fa\u590d\u6742\u7684\u60c5\u611f\u706b\u82b1\u3002\u5267\u4f5c\u901a\u8fc7\u8001\u5f20\u8fd9\u4e00\u89d2\u8272\u7684\u6df1\u523b\u53d1\u8a00&#xff0c;\u8ba9\u89d2\u8272\u95f4\u7531\u60b2\u4f24\u5f15\u53d1\u7684\u5171\u9e23\u4e0e\u7406\u89e3\u6210<br \/>\n\u4e3a\u60b2\u5267\u7684\u6551\u8d4e\u3002\u5c3d\u7ba1\u4eb2\u5bc6\u7684\u5173\u7cfb\u906d\u53d7\u91cd\u521b&#xff0c;\u4f46\u674e\u4f1f\u548c\u5c0f\u96e8\u4ecd\u7136\u9009\u62e9\u4e86\u7ee7\u7eed\u524d\u884c&#xff0c;\u7528\u884c\u52a8\u7eaa\u5ff5\u963f\u4fca<br \/>\n\u7684\u9057\u5fd7&#xff0c;\u5c06\u8fd9\u573a\u60b2\u5267\u5316\u4e3a\u5e2e\u52a9\u4ed6\u4eba\u7684\u529b\u91cf\u3002<br \/>\n<span class=\"token number\">91<\/span><br \/>\n<span class=\"token number\">92<\/span> \u7ed3\u5c3e\u7684\u65e5\u51fa\u8c61\u5f81\u7740\u5e0c\u671b&#xff0c;\u5c3d\u7ba1\u751f\u6d3b\u4e2d\u5b58\u5728\u7740\u4e0d\u53ef\u9884\u77e5\u7684\u60b2\u5267\u4e0e\u75db\u82e6&#xff0c;\u4f46\u674e\u4f1f\u548c\u5c0f\u96e8\u7684\u575a\u6301\u544a\u8bc9\u6211<br \/>\n\u4eec&#xff1a;\u4eba\u7c7b\u7684\u60c5\u611f\u662f\u5f39\u6027\u7684&#xff0c;\u751f\u6d3b\u6c38\u8fdc\u5145\u6ee1\u5e0c\u671b\u3002\u5728\u8fd9\u7247\u6d77\u6ee9\u4e0a&#xff0c;\u6b8b\u7559\u7684\u5e76\u4e0d\u662f\u7edd\u671b&#xff0c;\u800c\u662f\u5bf9\u751f<br \/>\n\u547d\u3001\u53cb\u8c0a\u4e0e\u7231\u7684\u6df1\u523b\u7406\u89e3\u4e0e\u73cd\u89c6\u3002<br \/>\n<span class=\"token number\">93<\/span><br \/>\n<span class=\"token number\">94<\/span> \u300a\u65e5\u843d\u6d77\u6ee9\u4e0a\u7684\u60b2\u5267\u300b\u901a\u8fc7\u7ec6\u817b\u7684\u60c5\u611f\u63cf\u7ed8\u548c\u5f3a\u70c8\u7684\u89c6\u89c9\u8bed\u8a00&#xff0c;\u4f20\u8fbe\u4e86\u4e00\u4e2a\u91cd\u8981\u7684\u4e3b\u9898&#xff1a;\u5c3d\u7ba1\u751f<br \/>\n\u6d3b\u4e2d\u5145\u6ee1\u4e86\u60b2\u5267\u548c\u6311\u6218&#xff0c;\u4f46\u6700\u7ec8&#xff0c;\u7231\u4e0e\u5e0c\u671b\u5c06\u5f15\u5bfc\u4eba\u4eec\u8d70\u5411\u5149\u660e\u3002\u4f5c\u54c1\u5728\u6df1\u523b\u63a2\u8ba8\u4eba\u7269\u5185\u5fc3\u548c\u793e<br \/>\n\u4f1a\u56f0\u5883\u7684\u540c\u65f6&#xff0c;\u4e5f\u5524\u8d77\u4e86\u89c2\u4f17\u5bf9\u4eba\u6027\u7684\u5173\u6ce8\u4e0e\u601d\u8003&#xff0c;\u6210\u4e3a\u4e86\u4e00\u90e8\u503c\u5f97\u53cd\u590d\u5480\u56bc\u7684\u4f73\u4f5c\u3002<br \/>\n<span class=\"token number\">95<\/span><br \/>\n<span class=\"token number\">96<\/span> <span class=\"token operator\">&gt;<\/span> Finished chain.<br \/>\n<span class=\"token punctuation\">{<\/span><span class=\"token string\">&#039;input&#039;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token string\">&#039;\u65e5\u843d\u6d77\u6ee9\u4e0a\u7684\u60b2\u5267&#039;<\/span>, <span class=\"token string\">&#039;output&#039;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token string\">&#039;**\u5267\u8bc4&#xff1a;\u65e5\u843d\u6d77\u6ee9\u4e0a\u7684\u60b2\u5267**\\\\n\\\\n\u5728\u4e00\u7247\u5b81\u9759\u7684\u6d77\u6ee9\u4e0a&#xff0c;<br \/>\n\u9633\u5149\u7f13\u7f13\u4e0b\u6c89&#xff0c;\u5929\u7a7a\u88ab\u6e29\u6696\u7684\u8272\u5f69\u6d78\u67d3&#xff0c;\u8fd9\u662f\u300a\u65e5\u843d\u6d77\u6ee9\u4e0a\u7684\u60b2\u5267\u300b\u7684\u5f00\u5e55\u573a\u666f\u3002\u5267\u4f5c\u901a\u8fc7\u9c9c\u660e<br \/>\n\u7684\u89c6\u89c9\u5bf9\u6bd4\u548c\u6df1\u523b\u7684\u4eba\u7269\u523b\u753b&#xff0c;\u5c55\u73b0\u4e86\u751f\u6d3b\u7684\u7f8e\u4e3d\u4e0e\u60b2\u5267\u4ea4\u7ec7\u3002\u5728\u8fd9\u4e00\u4ee4\u4eba\u611f\u6168\u7684\u6545\u4e8b\u4e2d&#xff0c;\u6d77\u6ee9<br \/>\n\u4e0d\u4ec5\u4ec5\u662f\u80cc\u666f&#xff0c;\u66f4\u662f\u89d2\u8272\u547d\u8fd0\u4ea4\u9519\u3001\u60c5\u611f\u78b0\u649e\u7684\u821e\u53f0\u3002\\\\n\\\\n\u6545\u4e8b\u7684\u542f\u52a8\u7531\u51e0\u4f4d\u6027\u683c\u5404\u5f02\u7684\u89d2\u8272\u76f8<br \/>\n\u805a\u800c\u6210\u3002\u5e74\u8f7b\u6444\u5f71\u5e08\u674e\u4f1f\u548c\u68a6\u60f3\u7740\u672a\u6765\u7684\u5c0f\u96e8\u4e4b\u95f4\u7684\u9752\u6da9\u60c5\u611f\u4ee4\u4eba\u550f\u5618&#xff0c;\u800c\u795e\u79d8\u7684\u8fc7\u5ba2\u963f\u4fca\u5219\u6210<br \/>\n\u4e3a\u4e86\u6545\u4e8b\u7684\u6697\u6d41\u3002\u963f\u4fca&#xff0c;\u4f5c\u4e3a\u4e00\u540d\u9000\u4f0d\u519b\u4eba&#xff0c;\u4ed6\u8eab\u4e0a\u7684\u4f24\u75db\u4e0e\u77db\u76fe\u901a\u8fc7\u4ed6\u4e0e\u5c0f\u96e8\u7684\u4e92\u52a8\u5f97\u4ee5\u5c55<br \/>\n\u73b0&#xff0c;\u5374\u4e5f\u4e3a\u672c\u5267\u57cb\u4e0b\u4e86\u60b2\u5267\u7684\u79cd\u5b50\u3002\\\\n\\\\n\u5267\u4f5c\u7684\u7b2c\u4e8c\u5e55\u901a\u8fc7\u963f\u4fca\u4e0e\u5c0f\u96e8\u7684\u76f8\u9047&#xff0c;\u5f00\u542f\u4e86\u60c5\u611f\u548c\u5185<br \/>\n\u5fc3\u51b2\u7a81\u7684\u66f4\u6df1\u5c42\u6b21\u63a2\u8ba8\u3002\u963f\u4fca\u5411\u5c0f\u96e8\u503e\u8bc9\u4ed6\u5728\u6218\u4e89\u4e2d\u7ecf\u5386\u7684\u5fc3\u7406\u521b\u4f24&#xff0c;\u8fd9\u4e00\u6bb5\u60c5\u611f\u7684\u4ea4\u6d41\u4e0d\u4ec5\u5728<br \/>\n\u89d2\u8272\u95f4\u6784\u5efa\u8d77\u4e86\u4e00\u79cd\u8106\u5f31\u7684\u8fde\u7ed3&#xff0c;\u4e5f\u8ba9\u89c2\u4f17\u610f\u8bc6\u5230&#xff0c;\u4e2a\u4f53\u751f\u6d3b\u4e2d\u7684\u75db\u82e6\u5e38\u5e38\u662f\u5728\u4e0d\u77e5\u4e0d\u89c9\u95f4\u4fb5\u8680<br \/>\n\u7740\u5f7c\u6b64\u7684\u5173\u7cfb\u3002\u963f\u4fca\u7684\u6545\u4e8b\u6df1\u6df1\u89e6\u52a8\u4e86\u5c0f\u96e8&#xff0c;\u540c\u65f6\u4e5f\u5f15\u53d1\u4e86\u674e\u4f1f\u7684\u9690\u5fe7\u2014\u2014\u4ed6\u5bf9\u5c0f\u96e8\u7684\u60c5\u611f\u88ab\u5916<br \/>\n\u6765\u7684\u654c\u610f\u5a01\u80c1\u7740&#xff0c;\u4ee4\u89c2\u4f17\u611f\u53d7\u5230\u4e00\u79cd\u65e0\u5f62\u7684\u7d27\u5f20\u3002\\\\n\\\\n\u968f\u7740\u51b2\u7a81\u7684\u9010\u6e10\u5347\u7ea7&#xff0c;\u5267\u4f5c\u6210\u529f\u5730\u5851\u9020\u4e86<br \/>\n\u4e00\u79cd\u65e0\u5904\u53ef\u9003\u7684\u7edd\u671b\u611f\u3002\u963f\u4fca\u60c5\u7eea\u7684\u5d29\u6e83&#xff0c;\u4e0d\u4ec5\u662f\u4ed6\u4e2a\u4eba\u5185\u5fc3\u7684\u60b2\u5267&#xff0c;\u4e5f\u662f\u5bf9\u5468\u56f4\u4eba\u60c5\u611f\u7684\u4e00\u6b21<br \/>\n\u51b2\u51fb\u3002\u5728\u9762\u5bf9\u5916\u6765\u5a01\u80c1\u7684\u5173\u952e\u65f6\u523b&#xff0c;\u963f\u4fca\u4e3a\u4e86\u4fdd\u62a4\u5c0f\u96e8\u800c\u53d1\u751f\u60b2\u5267&#xff0c;\u4e3a\u6545\u4e8b\u5e26\u6765\u4e86\u5f3a\u70c8\u7684\u51b2\u51fb<br \/>\n\u529b\u3002\u8fd9\u4e00\u5e55\u4e0d\u4ec5\u4ee4\u4eba\u5fc3\u75db&#xff0c;\u4e5f\u8ba9\u89c2\u4f17\u53cd\u601d\u66b4\u529b\u80cc\u540e\u7684\u4eba\u6027\u4e0e\u547d\u8fd0\u7684\u65e0\u5e38\u3002\\\\n\\\\n\u5728\u7ecf\u5386\u4e86\u5267\u70c8\u7684\u60c5<br \/>\n\u611f\u6ce2\u52a8\u540e&#xff0c;\u963f\u4fca\u7684\u846c\u793c\u6210\u4e3a\u6574\u90e8\u5267\u7684\u60c5\u611f\u9ad8\u5cf0&#xff0c;\u6240\u6709\u89d2\u8272\u5728\u6b64\u523b\u805a\u96c6&#xff0c;\u4e92\u76f8\u78b0\u649e\u51fa\u590d\u6742\u7684\u60c5\u611f\u706b<br \/>\n\u82b1\u3002\u5267\u4f5c\u901a\u8fc7\u8001\u5f20\u8fd9\u4e00\u89d2\u8272\u7684\u6df1\u523b\u53d1\u8a00&#xff0c;\u8ba9\u89d2\u8272\u95f4\u7531\u60b2\u4f24\u5f15\u53d1\u7684\u5171\u9e23\u4e0e\u7406\u89e3\u6210\u4e3a\u60b2\u5267\u7684\u6551\u8d4e\u3002\u5c3d<br \/>\n\u7ba1\u4eb2\u5bc6\u7684\u5173\u7cfb\u906d\u53d7\u91cd\u521b&#xff0c;\u4f46\u674e\u4f1f\u548c\u5c0f\u96e8\u4ecd\u7136\u9009\u62e9\u4e86\u7ee7\u7eed\u524d\u884c&#xff0c;\u7528\u884c\u52a8\u7eaa\u5ff5\u963f\u4fca\u7684\u9057\u5fd7&#xff0c;\u5c06\u8fd9\u573a\u60b2<br \/>\n\u5267\u5316\u4e3a\u5e2e\u52a9\u4ed6\u4eba\u7684\u529b\u91cf\u3002\\\\n\\\\n\u7ed3\u5c3e\u7684\u65e5\u51fa\u8c61\u5f81\u7740\u5e0c\u671b&#xff0c;\u5c3d\u7ba1\u751f\u6d3b\u4e2d\u5b58\u5728\u7740\u4e0d\u53ef\u9884\u77e5\u7684\u60b2\u5267\u4e0e\u75db<br \/>\n\u82e6&#xff0c;\u4f46\u674e\u4f1f\u548c\u5c0f\u96e8\u7684\u575a\u6301\u544a\u8bc9\u6211\u4eec&#xff1a;\u4eba\u7c7b\u7684\u60c5\u611f\u662f\u5f39\u6027\u7684&#xff0c;\u751f\u6d3b\u6c38\u8fdc\u5145\u6ee1\u5e0c\u671b\u3002\u5728\u8fd9\u7247\u6d77\u6ee9\u4e0a&#xff0c;<br \/>\n\u6b8b\u7559\u7684\u5e76\u4e0d\u662f\u7edd\u671b&#xff0c;\u800c\u662f\u5bf9\u751f\u547d\u3001\u53cb\u8c0a\u4e0e\u7231\u7684\u6df1\u523b\u7406\u89e3\u4e0e\u73cd\u89c6\u3002\\\\n\\\\n\u300a\u65e5\u843d\u6d77\u6ee9\u4e0a\u7684\u60b2\u5267\u300b\u901a\u8fc7<br \/>\n\u7ec6\u817b\u7684\u60c5\u611f\u63cf\u7ed8\u548c\u5f3a\u70c8\u7684\u89c6\u89c9\u8bed\u8a00&#xff0c;\u4f20\u8fbe\u4e86\u4e00\u4e2a\u91cd\u8981\u7684\u4e3b\u9898&#xff1a;\u5c3d\u7ba1\u751f\u6d3b\u4e2d\u5145\u6ee1\u4e86\u60b2\u5267\u548c\u6311\u6218&#xff0c;\u4f46<br \/>\n\u6700\u7ec8&#xff0c;\u7231\u4e0e\u5e0c\u671b\u5c06\u5f15\u5bfc\u4eba\u4eec\u8d70\u5411\u5149\u660e\u3002\u4f5c\u54c1\u5728\u6df1\u523b\u63a2\u8ba8\u4eba\u7269\u5185\u5fc3\u548c\u793e\u4f1a\u56f0\u5883\u7684\u540c\u65f6&#xff0c;\u4e5f\u5524\u8d77\u4e86\u89c2<br \/>\n\u4f17\u5bf9\u4eba\u6027\u7684\u5173\u6ce8\u4e0e\u601d\u8003&#xff0c;\u6210\u4e3a\u4e86\u4e00\u90e8\u503c\u5f97\u53cd\u590d\u5480\u56bc\u7684\u4f73\u4f5c\u3002&#039;<\/span><span class=\"token punctuation\">}<\/span><\/p>\n<h4>2.3 \u987a\u5e8f\u94fe\u4e4b SequentialChain<\/h4>\n<h5>2.3.1 \u8bf4\u660e<\/h5>\n<p>SequentialChain&#xff1a;\u66f4\u901a\u7528\u7684\u987a\u5e8f\u94fe&#xff0c;\u5177\u4f53\u6765\u8bf4&#xff1a;<br \/>\n\u591a\u53d8\u91cf\u652f\u6301 &#xff1a;\u5141\u8bb8\u4e0d\u540c\u5b50\u94fe\u6709\u72ec\u7acb\u7684\u8f93\u5165\/\u8f93\u51fa\u53d8\u91cf\u3002<br \/>\n\u7075\u6d3b\u6620\u5c04 &#xff1a;\u9700 \u663e\u5f0f\u5b9a\u4e49 \u53d8\u91cf\u5982\u4f55\u4ece\u4e00\u4e2a\u94fe\u4f20\u9012\u5230\u4e0b\u4e00\u4e2a\u94fe\u3002\u5373\u7cbe\u51c6\u5730\u547d\u540d\u8f93\u5165\u5173\u952e\u5b57\u548c\u8f93\u51fa\u5173\u952e\u5b57&#xff0c;\u6765\u660e\u786e\u94fe\u4e4b\u95f4\u7684\u5173\u7cfb\u3002<br \/>\n\u590d\u6742\u6d41\u7a0b\u63a7\u5236 &#xff1a;\u652f\u6301\u5206\u652f\u3001\u6761\u4ef6\u903b\u8f91&#xff08;\u5206\u522b\u901a\u8fc7 input_variables \u548c output_variables \u914d\u7f6e\u8f93\u5165\u548c\u8f93\u51fa&#xff09;\u3002<br \/>\n<img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/09\/20260929012527-6abb1387dfb40.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/><\/p>\n<h5>2.3.2 \u4f7f\u7528\u4e3e\u4f8b<\/h5>\n<p>\u4e3e\u4f8b1:<\/p>\n<p>from langchain_core.prompts <span class=\"token function\">import<\/span> ChatPromptTemplate<br \/>\nfrom langchain.chains <span class=\"token function\">import<\/span> SequentialChain<br \/>\nfrom langchain_openai <span class=\"token function\">import<\/span> ChatOpenAI<br \/>\nfrom langchain.chains <span class=\"token function\">import<\/span> LLMChain<br \/>\nfrom openai <span class=\"token function\">import<\/span> OpenAI<br \/>\n<span class=\"token function\">import<\/span> os<\/p>\n<p><span class=\"token comment\"># \u521b\u5efa\u5927\u6a21\u578b\u5b9e\u4f8b<\/span><br \/>\nllm <span class=\"token operator\">&#061;<\/span> ChatOpenAI<span class=\"token punctuation\">(<\/span>model<span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;gpt-4o-mini&#034;<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>schainA_template <span class=\"token operator\">&#061;<\/span> ChatPromptTemplate.from_messages<span class=\"token punctuation\">(<\/span><br \/>\n<span class=\"token punctuation\">[<\/span><br \/>\n<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;system&#034;<\/span>, <span class=\"token string\">&#034;\u4f60\u662f\u4e00\u4f4d\u7cbe\u901a\u5404\u9886\u57df\u77e5\u8bc6\u7684\u77e5\u540d\u6559\u6388&#034;<\/span><span class=\"token punctuation\">)<\/span>,<br \/>\n<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;human&#034;<\/span>, <span class=\"token string\">&#034;\u8bf7\u4f60\u5148\u5c3d\u53ef\u80fd\u8be6\u7ec6\u7684\u89e3\u91ca\u4e00\u4e0b:{knowledge},\u5e76\u4e14{action}&#034;<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token punctuation\">]<\/span><br \/>\n<span class=\"token punctuation\">)<\/span><br \/>\nschainA_chains <span class=\"token operator\">&#061;<\/span> LLMChain<span class=\"token punctuation\">(<\/span>llm<span class=\"token operator\">&#061;<\/span>llm,<br \/>\n<span class=\"token assign-left variable\">prompt<\/span><span class=\"token operator\">&#061;<\/span>schainA_template,<br \/>\n<span class=\"token assign-left variable\">verbose<\/span><span class=\"token operator\">&#061;<\/span>True,<br \/>\n<span class=\"token assign-left variable\">output_key<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;schainA_chains_key&#034;<\/span><\/p>\n<p><span class=\"token punctuation\">)<\/span><\/p>\n<p>schainB_template <span class=\"token operator\">&#061;<\/span> ChatPromptTemplate.from_messages<span class=\"token punctuation\">(<\/span><br \/>\n<span class=\"token punctuation\">[<\/span><br \/>\n<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;system&#034;<\/span>, <span class=\"token string\">&#034;\u4f60\u975e\u5e38\u5584\u4e8e\u63d0\u53d6\u6587\u672c\u4e2d\u7684\u91cd\u8981\u4fe1\u606f,\u5e76\u505a\u51fa\u7b80\u77ed\u7684\u603b\u7ed3&#034;<\/span><span class=\"token punctuation\">)<\/span>,<br \/>\n<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;human&#034;<\/span>, <span class=\"token string\">&#034;\u8fd9\u662f\u9488\u5bf9\u4e00\u4e2a\u63d0\u95ee\u5b8c\u6574\u7684\u89e3\u91ca\u8bf4\u660e\u5185\u5bb9:{schainA_chains_key}&#034;<\/span><span class=\"token punctuation\">)<\/span>,<br \/>\n<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;human&#034;<\/span>, <span class=\"token string\">&#034;\u8bf7\u4f60\u6839\u636e\u4e0a\u8ff0\u8bf4\u660e,\u5c3d\u53ef\u80fd\u7b80\u77ed\u7684\u8f93\u51fa\u91cd\u8981\u7684\u7ed3\u8bba,\u8bf7\u63a7\u5236\u5728100\u4e2a\u5b57\u4ee5\u5185&#034;<\/span><span class=\"token punctuation\">)<\/span>,<\/p>\n<p><span class=\"token punctuation\">]<\/span><br \/>\n<span class=\"token punctuation\">)<\/span><br \/>\nschainB_chains <span class=\"token operator\">&#061;<\/span> LLMChain<span class=\"token punctuation\">(<\/span>llm<span class=\"token operator\">&#061;<\/span>llm,<br \/>\n<span class=\"token assign-left variable\">prompt<\/span><span class=\"token operator\">&#061;<\/span>schainB_template,<\/p>\n<p><span class=\"token assign-left variable\">verbose<\/span><span class=\"token operator\">&#061;<\/span>True,<br \/>\n<span class=\"token assign-left variable\">output_key<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#039;schainB_chains_key&#039;<\/span><\/p>\n<p><span class=\"token punctuation\">)<\/span><br \/>\nSeq_chain <span class=\"token operator\">&#061;<\/span> SequentialChain<span class=\"token punctuation\">(<\/span><br \/>\n<span class=\"token assign-left variable\">chains<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token punctuation\">[<\/span>schainA_chains, schainB_chains<span class=\"token punctuation\">]<\/span>,<br \/>\n<span class=\"token assign-left variable\">input_variables<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;knowledge&#034;<\/span>, <span class=\"token string\">&#034;action&#034;<\/span><span class=\"token punctuation\">]<\/span>,<br \/>\n<span class=\"token assign-left variable\">output_variables<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;schainA_chains_key&#034;<\/span>,<span class=\"token string\">&#034;schainB_chains_key&#034;<\/span><span class=\"token punctuation\">]<\/span>,<br \/>\n<span class=\"token assign-left variable\">verbose<\/span><span class=\"token operator\">&#061;<\/span>True<span class=\"token punctuation\">)<\/span><\/p>\n<p>response <span class=\"token operator\">&#061;<\/span> Seq_chain.invoke<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">{<\/span><br \/>\n<span class=\"token string\">&#034;knowledge&#034;<\/span><span class=\"token builtin class-name\">:<\/span><span class=\"token string\">&#034;\u4e2d\u56fd\u8db3\u7403\u4e3a\u4ec0\u4e48\u8e22\u5f97\u70c2&#034;<\/span>,<br \/>\n<span class=\"token string\">&#034;action&#034;<\/span><span class=\"token builtin class-name\">:<\/span><span class=\"token string\">&#034;\u4e3e\u4e00\u4e2a\u5b9e\u9645\u7684\u4f8b\u5b50&#034;<\/span><\/p>\n<p><span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token punctuation\">)<\/span><\/p>\n<p>print<span class=\"token punctuation\">(<\/span>response<span class=\"token punctuation\">)<\/span><\/p>\n<p>\u6253\u5370\u7ed3\u679c&#xff1a;<\/p>\n<p><span class=\"token punctuation\">..<\/span><span class=\"token punctuation\">..<\/span><br \/>\n<span class=\"token operator\">&gt;<\/span> Finished chain.<br \/>\n<span class=\"token operator\">&gt;<\/span> Finished chain.<br \/>\n<span class=\"token punctuation\">{<\/span><span class=\"token string\">&#039;knowledge&#039;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token string\">&#039;\u4e2d\u56fd\u8db3\u7403\u4e3a\u4ec0\u4e48\u8e22\u5f97\u70c2&#039;<\/span>, <span class=\"token string\">&#039;action&#039;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token string\">&#039;\u4e3e\u4e00\u4e2a\u5b9e\u9645\u7684\u4f8b\u5b50&#039;<\/span>, <span class=\"token string\">&#039;schainA_chains_key&#039;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token string\">&#039;\u4e2d\u56fd<br \/>\n\u8db3\u7403\u8e22\u5f97\u70c2\u7684\u539f\u56e0\u662f\u591a\u65b9\u9762\u7684&#xff0c;\u53ef\u4ee5\u4ece\u5386\u53f2\u3001\u6587\u5316\u3001\u7ba1\u7406\u3001\u6559\u80b2\u3001\u7ecf\u6d4e\u7b49\u591a\u4e2a\u89d2\u5ea6\u8fdb\u884c\u5206\u6790\u3002<br \/>\n\\\\n\\\\n### \u4e00\u3001\u5386\u53f2\u4e0e\u6587\u5316\u56e0\u7d20\\\\n\\\\n1. **\u8db3\u7403\u6587\u5316\u8584\u5f31**&#xff1a;\u4e2d\u56fd\u8db3\u7403\u7684\u7fa4\u4f17\u57fa\u7840\u6bd4\u8f83\u8584\u5f31&#xff0c;\u8db3\u7403\u5e76\u6ca1<br \/>\n\u6709\u6210\u4e3a\u4e3b\u6d41\u6587\u5316\u7684\u4e00\u90e8\u5206\u3002\u4e0e\u6b27\u7f8e\u56fd\u5bb6\u76f8\u6bd4&#xff0c;\u8db3\u7403\u5728\u4e2d\u56fd\u7684\u53d7\u6b22\u8fce\u7a0b\u5ea6\u76f8\u5bf9\u8f83\u4f4e&#xff0c;\u7f3a\u4e4f\u7cfb\u7edf\u7684\u63a8\u5e7f<br \/>\n\u548c\u57f9\u517b\u3002\\\\n\\\\n2. **\u5386\u53f2\u79ef\u6028**&#xff1a;\u4e2d\u56fd\u8db3\u7403\u5728\u591a\u6b21\u56fd\u9645\u6bd4\u8d5b\u4e2d\u7684\u8868\u73b0\u4e0d\u4f73&#xff0c;\u5bfc\u81f4\u4e86\u4eba\u4eec\u5bf9\u4e2d\u56fd\u8db3\u7403\u7684<br \/>\n\u5931\u671b\u548c\u6000\u7591\u3002\u8fd9\u79cd\u8d1f\u9762\u60c5\u7eea\u5f71\u54cd\u4e86\u7403\u5458\u7684\u5fc3\u7406\u72b6\u6001\u548c\u7403\u8ff7\u7684\u652f\u6301\u3002\\\\n\\\\n### \u4e8c\u3001\u7ba1\u7406\u4e0e\u4f53\u5236\u95ee\u9898<br \/>\n\\\\n\\\\n1. **\u7ba1\u7406\u6df7\u4e71**&#xff1a;\u4e2d\u56fd\u8db3\u7403\u7684\u7ba1\u7406\u4f53\u7cfb\u4e0d\u591f\u5065\u5168&#xff0c;\u76f8\u5173\u90e8\u95e8\u4e4b\u95f4\u534f\u8c03\u4e0d\u529b&#xff0c;\u5bfc\u81f4\u8d44\u6e90\u7684\u6d6a\u8d39\u548c<br \/>\n\u529f\u5229\u4e3b\u4e49\u7684\u73b0\u8c61\u666e\u904d\u5b58\u5728\u3002\\\\n\\\\n2. **\u8db3\u7403\u4f53\u5236**&#xff1a;\u4e2d\u56fd\u8db3\u7403\u7684\u804c\u4e1a\u8054\u8d5b\u4f53\u5236\u867d\u7136\u5728\u9010\u6e10\u6539\u8fdb&#xff0c;\u4f46\u4f9d<br \/>\n\u65e7\u5b58\u5728\u4e0d\u5408\u7406\u4e4b\u5904&#xff0c;\u4f8b\u5982\u8fc7\u5ea6\u4f9d\u8d56\u5916\u63f4\u3001\u56fd\u5185\u7403\u5458\u7684\u53d1\u5c55\u53d7\u5230\u9650\u5236\u7b49\u3002\u540c\u65f6&#xff0c;\u9752\u8bad\u7cfb\u7edf\u7684\u53d1\u5c55\u6ede<br \/>\n\u540e&#xff0c;\u65e0\u6cd5\u63d0\u4f9b\u8db3\u591f\u9ad8\u6c34\u5e73\u7684\u5e74\u8f7b\u7403\u5458\u3002\\\\n\\\\n### \u4e09\u3001\u6559\u80b2\u4e0e\u57f9\u8bad\u4e0d\u8db3\\\\n\\\\n1. **\u9752\u8bad\u7cfb\u7edf\u4e0d\u5b8c\u5584**&#xff1a;<br \/>\n\u867d\u7136\u5728\u4e00\u4e9b\u5927\u57ce\u5e02\u7684\u4ff1\u4e50\u90e8\u8bbe\u6709\u9752\u8bad\u5b66\u9662&#xff0c;\u4f46\u6574\u4f53\u800c\u8a00\u9752\u8bad\u4f53\u7cfb\u4e0d\u5b8c\u5584&#xff0c;\u7f3a\u4e4f\u7cfb\u7edf\u7684\u3001\u79d1\u5b66\u7684\u57f9\u8bad<br \/>\n\u65b9\u6cd5&#xff0c;\u5bfc\u81f4\u5e74\u8f7b\u7403\u5458\u7684\u57fa\u7840\u6280\u80fd\u548c\u6218\u672f\u610f\u8bc6\u4e0d\u8db3\u3002\\\\n\\\\n2. **\u6559\u7ec3\u6c34\u5e73\u53c2\u5dee\u4e0d\u9f50**&#xff1a;\u8bb8\u591a\u4e2d\u56fd\u8db3\u7403\u6559<br \/>\n\u7ec3\u7684\u4e13\u4e1a\u6c34\u5e73\u548c\u7ecf\u9a8c\u76f8\u6bd4\u4e8e\u56fd\u9645\u6c34\u5e73\u4ecd\u663e\u4e0d\u8db3&#xff0c;\u65e0\u6cd5\u66f4\u597d\u5730\u57f9\u517b\u51fa\u4f18\u79c0\u7403\u5458\u3002\\\\n\\\\n### \u56db\u3001\u7ecf\u6d4e\u56e0<br \/>\n\u7d20\\\\n\\\\n1. **\u8d44\u91d1\u6295\u5165\u4e0d\u5747**&#xff1a;\u867d\u7136\u6709\u4e9b\u4ff1\u4e50\u90e8\u5728\u8d44\u91d1\u4e0a\u6295\u5165\u5de8\u989d&#xff0c;\u4f46\u90e8\u5206\u4ff1\u4e50\u90e8\u4f9d\u65e7\u9762\u4e34\u8d44\u91d1\u77ed\u7f3a<br \/>\n\u7684\u95ee\u9898\u3002\u8d44\u91d1\u7684\u5206\u914d\u4e0d\u5747\u76f4\u63a5\u5f71\u54cd\u4e86\u9752\u8bad\u3001\u540e\u5907\u4eba\u624d\u7684\u57f9\u517b\u3002\\\\n\\\\n2. **\u8fc7\u5ea6\u4f9d\u8d56\u5f15\u63f4**&#xff1a;\u4e0d\u5c11\u4ff1\u4e50<br \/>\n\u90e8\u4e3a\u4e86\u8fc5\u901f\u63d0\u5347\u6218\u6597\u529b&#xff0c;\u8fc7\u4e8e\u4f9d\u8d56\u5f15\u8fdb\u5916\u63f4&#xff0c;\u5bfc\u81f4\u672c\u571f\u7403\u5458\u7684\u6210\u957f\u7a7a\u95f4\u53d7\u5230\u6324\u538b\u3002\\\\n\\\\n### \u5b9e\u9645\u4f8b<br \/>\n\u5b50\\\\n\\\\n\u4e00\u4e2a\u975e\u5e38\u5178\u578b\u7684\u4f8b\u5b50\u662f\u4e2d\u56fd\u7537\u8db3\u57282018\u5e74\u4fc4\u7f57\u65af\u4e16\u754c\u676f\u9884\u9009\u8d5b\u4e2d\u7684\u8868\u73b0\u3002\u4e2d\u56fd\u961f\u5728\u8be5\u8f6e\u9884\u9009<br \/>\n\u8d5b\u4e2d\u9996\u8f6e\u5bf9\u9635\u9a6c\u5c14\u4ee3\u592b&#xff0c;\u6700\u7ec8\u4ee53:0\u80dc\u51fa&#xff0c;\u4f46\u5728\u968f\u540e\u7684\u6bd4\u8d5b\u4e2d\u5374\u4ee50:2\u8f93\u7ed9\u4e86\u4f0a\u6717&#xff0c;0:1\u8f93\u7ed9\u4e86\u53d9\u5229<br \/>\n\u4e9a&#xff0c;\u672a\u80fd\u664b\u7ea7\u3002\u8fd9\u4e9b\u6bd4\u8d5b\u4f53\u73b0\u4e86\u5e9e\u5927\u7684\u8d44\u91d1\u6295\u5165\u5e76\u672a\u80fd\u8f6c\u5316\u4e3a\u5916\u5728\u6210\u7ee9&#xff0c;\u53cd\u800c\u66b4\u9732\u4e86\u7403\u961f\u6218\u672f\u6c34\u5e73<br \/>\n\u4f4e\u4e0b\u3001\u7403\u5458\u4e2a\u4eba\u80fd\u529b\u4e0d\u8db3\u3001\u4ee5\u53ca\u6559\u7ec3\u56e2\u961f\u7684\u51b3\u7b56\u5931\u8bef\u7b49\u95ee\u9898&#xff0c;\u6700\u7ec8\u53ea\u80fd\u518d\u6b21\u65e0\u7f18\u4e16\u754c\u676f\u3002\\\\n\\\\n\u603b<br \/>\n\u4e4b&#xff0c;\u4e2d\u56fd\u8db3\u7403\u8e22\u5f97\u70c2\u662f\u4e00\u4e2a\u590d\u6742\u7684\u7cfb\u7edf\u6027\u95ee\u9898&#xff0c;\u89e3\u51b3\u8fd9\u4e9b\u95ee\u9898\u9700\u8981\u957f\u65f6\u95f4\u7684\u52aa\u529b\u548c\u7efc\u5408\u6cbb\u7406\u3002&#039;<\/span>,<br \/>\n<span class=\"token string\">&#039;schainB_chains_key&#039;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token string\">&#039;\u4e2d\u56fd\u8db3\u7403\u8868\u73b0\u4e0d\u4f73\u7684\u539f\u56e0\u5305\u62ec\u8584\u5f31\u7684\u8db3\u7403\u6587\u5316\u3001\u7ba1\u7406\u6df7\u4e71\u3001\u9752\u8bad\u7cfb\u7edf\u4e0d\u8db3\u53ca<br \/>\n\u7ecf\u6d4e\u95ee\u9898\u3002\u5386\u53f2\u4e0a\u7684\u8d1f\u9762\u60c5\u7eea\u548c\u4f53\u5236\u5185\u7684\u7f3a\u9677\u9650\u5236\u4e86\u7403\u5458\u53d1\u5c55&#xff0c;\u8d44\u91d1\u5206\u914d\u4e0d\u5747\u548c\u8fc7\u5ea6\u4f9d\u8d56\u5916\u63f4\u8fdb\u4e00<br \/>\n\u6b65\u52a0\u5267\u4e86\u8fd9\u4e00\u5c40\u9762\u3002\u89e3\u51b3\u8fd9\u4e9b\u95ee\u9898\u9700\u957f\u65f6\u95f4\u7684\u52aa\u529b\u4e0e\u7efc\u5408\u6cbb\u7406\u3002&#039;<\/span><span class=\"token punctuation\">}<\/span><br \/>\n<span class=\"token number\">1<\/span><\/p>\n<p>\u8fd8\u53ef\u4ee5\u5355\u72ec\u8f93\u51fa<\/p>\n<p>print<span class=\"token punctuation\">(<\/span>response<span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;schainA_chains_key&#034;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><br \/>\nprint<span class=\"token punctuation\">(<\/span>response<span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;schainB_chains_key&#034;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>\u4e3e\u4f8b2:<\/p>\n<p><span class=\"token comment\"># 1.\u5bfc\u5165\u76f8\u5173\u5305<\/span><br \/>\nfrom langchain.chains.llm <span class=\"token function\">import<\/span> LLMChain<br \/>\nfrom langchain_openai <span class=\"token function\">import<\/span> ChatOpenAI<br \/>\nfrom langchain_core.prompts <span class=\"token function\">import<\/span> PromptTemplate<br \/>\nfrom langchain.chains <span class=\"token function\">import<\/span> SequentialChain<\/p>\n<p><span class=\"token comment\"># \u521b\u5efa\u5927\u6a21\u578b\u5b9e\u4f8b<\/span><br \/>\nllm <span class=\"token operator\">&#061;<\/span> ChatOpenAI<span class=\"token punctuation\">(<\/span>model<span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;gpt-4o-mini&#034;<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\"># 2.\u5b9a\u4e49\u4efb\u52a1\u94fe\u4e00<\/span><br \/>\n<span class=\"token comment\">#chain 1 \u4efb\u52a1:\u7ffb\u8bd1\u6210\u4e2d\u6587<\/span><br \/>\nfirst_prompt <span class=\"token operator\">&#061;<\/span> PromptTemplate.from_template<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u628a\u4e0b\u9762\u5185\u5bb9\u7ffb\u8bd1\u6210\u4e2d\u6587:<span class=\"token entity\" title=\"\\\\n\">\\\\n<\/span><span class=\"token entity\" title=\"\\\\n\">\\\\n<\/span>{content}&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\nchain_one <span class=\"token operator\">&#061;<\/span> LLMChain<span class=\"token punctuation\">(<\/span><br \/>\n<span class=\"token assign-left variable\">llm<\/span><span class=\"token operator\">&#061;<\/span>llm,<br \/>\n<span class=\"token assign-left variable\">prompt<\/span><span class=\"token operator\">&#061;<\/span>first_prompt,<br \/>\n<span class=\"token assign-left variable\">verbose<\/span><span class=\"token operator\">&#061;<\/span>True,<br \/>\n<span class=\"token assign-left variable\">output_key<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;Chinese_Review&#034;<\/span>,<\/p>\n<p><span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token comment\"># 3.\u5b9a\u4e49\u4efb\u52a1\u94fe\u4e8c<\/span><br \/>\n<span class=\"token comment\">#chain 2 \u4efb\u52a1:\u5bf9\u7ffb\u8bd1\u540e\u7684\u4e2d\u6587\u8fdb\u884c\u603b\u7ed3\u6458\u8981 input_key\u662f\u4e0a\u4e00\u4e2achain\u7684output_key<\/span><br \/>\nsecond_prompt <span class=\"token operator\">&#061;<\/span> PromptTemplate.from_template<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u7528\u4e00\u53e5\u8bdd\u603b\u7ed3\u4e0b\u9762\u5185\u5bb9:<span class=\"token entity\" title=\"\\\\n\">\\\\n<\/span><span class=\"token entity\" title=\"\\\\n\">\\\\n<\/span>{Chinese_Review}&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\nchain_two <span class=\"token operator\">&#061;<\/span> LLMChain<span class=\"token punctuation\">(<\/span><br \/>\n<span class=\"token assign-left variable\">llm<\/span><span class=\"token operator\">&#061;<\/span>llm,<br \/>\n<span class=\"token assign-left variable\">prompt<\/span><span class=\"token operator\">&#061;<\/span>second_prompt,<br \/>\n<span class=\"token assign-left variable\">verbose<\/span><span class=\"token operator\">&#061;<\/span>True,<br \/>\n<span class=\"token assign-left variable\">output_key<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;Chinese_Summary&#034;<\/span>,<br \/>\n<span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\"># 4.\u5b9a\u4e49\u4efb\u52a1\u94fe\u4e09<\/span><br \/>\n<span class=\"token comment\"># chain 3 \u4efb\u52a1:\u8bc6\u522b\u8bed\u8a00<\/span><br \/>\nthird_prompt <span class=\"token operator\">&#061;<\/span> PromptTemplate.from_template<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u4e0b\u9762\u5185\u5bb9\u662f\u4ec0\u4e48\u8bed\u8a00:<span class=\"token entity\" title=\"\\\\n\">\\\\n<\/span><span class=\"token entity\" title=\"\\\\n\">\\\\n<\/span>{Chinese_Summary}&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\nchain_three <span class=\"token operator\">&#061;<\/span> LLMChain<span class=\"token punctuation\">(<\/span><br \/>\n<span class=\"token assign-left variable\">llm<\/span><span class=\"token operator\">&#061;<\/span>llm,<br \/>\n<span class=\"token assign-left variable\">prompt<\/span><span class=\"token operator\">&#061;<\/span>third_prompt,<br \/>\n<span class=\"token assign-left variable\">verbose<\/span><span class=\"token operator\">&#061;<\/span>True,<br \/>\n<span class=\"token assign-left variable\">output_key<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;Language&#034;<\/span>,<\/p>\n<p><span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token comment\"># 5.\u5b9a\u4e49\u4efb\u52a1\u94fe\u56db<\/span><br \/>\n<span class=\"token comment\">#chain 4 \u4efb\u52a1:\u9488\u5bf9\u6458\u8981\u4f7f\u7528\u6307\u5b9a\u8bed\u8a00\u8fdb\u884c\u8bc4\u8bba input_key\u662f\u4e0a\u4e00\u4e2achain\u7684output_key<\/span><br \/>\nfourth_prompt <span class=\"token operator\">&#061;<\/span> PromptTemplate.from_template<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u8bf7\u4f7f\u7528\u6307\u5b9a\u7684\u8bed\u8a00\u5bf9\u4ee5\u4e0b\u5185\u5bb9\u8fdb\u884c\u8bc4\u8bba:<span class=\"token entity\" title=\"\\\\n\">\\\\n<\/span><span class=\"token entity\" title=\"\\\\n\">\\\\n<\/span>\u5185\u5bb9:{Chinese_Summary}<span class=\"token entity\" title=\"\\\\n\">\\\\n<\/span><span class=\"token entity\" title=\"\\\\n\">\\\\n<\/span>\u8bed\u8a00:{Language}&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\nchain_four <span class=\"token operator\">&#061;<\/span> LLMChain<span class=\"token punctuation\">(<\/span><br \/>\n<span class=\"token assign-left variable\">llm<\/span><span class=\"token operator\">&#061;<\/span>llm,<br \/>\n<span class=\"token assign-left variable\">prompt<\/span><span class=\"token operator\">&#061;<\/span>fourth_prompt,<br \/>\n<span class=\"token assign-left variable\">verbose<\/span><span class=\"token operator\">&#061;<\/span>True,<\/p>\n<p><span class=\"token assign-left variable\">output_key<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;Comment&#034;<\/span>,<br \/>\n<span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\"># 6.\u603b\u94fe<\/span><br \/>\n<span class=\"token comment\">#overall \u4efb\u52a1:\u7ffb\u8bd1\u6210\u4e2d\u6587-&gt;\u5bf9\u7ffb\u8bd1\u540e\u7684\u4e2d\u6587\u8fdb\u884c\u603b\u7ed3\u6458\u8981-&gt;\u667a\u80fd\u8bc6\u522b\u8bed\u8a00-&gt;\u9488\u5bf9\u6458\u8981\u4f7f\u7528\u6307\u5b9a\u8bed\u8a00\u8fdb\u884c\u8bc4\u8bba<\/span><br \/>\noverall_chain <span class=\"token operator\">&#061;<\/span> SequentialChain<span class=\"token punctuation\">(<\/span><br \/>\n<span class=\"token assign-left variable\">chains<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token punctuation\">[<\/span>chain_one, chain_two, chain_three, chain_four<span class=\"token punctuation\">]<\/span>,<br \/>\n<span class=\"token assign-left variable\">verbose<\/span><span class=\"token operator\">&#061;<\/span>True,<br \/>\n<span class=\"token assign-left variable\">input_variables<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;content&#034;<\/span><span class=\"token punctuation\">]<\/span>,<br \/>\n<span class=\"token assign-left variable\">output_variables<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;Chinese_Review&#034;<\/span>, <span class=\"token string\">&#034;Chinese_Summary&#034;<\/span>, <span class=\"token string\">&#034;Language&#034;<\/span>, <span class=\"token string\">&#034;Comment&#034;<\/span><span class=\"token punctuation\">]<\/span>,<\/p>\n<p><span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\">#\u8bfb\u53d6\u6587\u4ef6<\/span><br \/>\ncontent <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;Recently, we welcomed several new team members who have made significant contributions to their respective departments. I would like to recognize Jane Smith (SSN: 04945-5928) for her outstanding performance in customer service. Jane has consistently received positive feedback from our clients. Furthermore, please remember that the open enrollment period for our employee benefits program is fast approaching. Should you have any questions or require assistance, please contact our HR representative, Michael Johnson (phone: 418-4923850, email: michael.johnson&#064;example.com).&#034;<\/span><br \/>\noverall_chain.invoke<span class=\"token punctuation\">(<\/span>content<span class=\"token punctuation\">)<\/span><\/p>\n<p>\u7ed3\u679c&#xff1a;<\/p>\n<p><span class=\"token operator\">&gt;<\/span> Entering new SequentialChain chain<span class=\"token punctuation\">..<\/span>.<br \/>\n<span class=\"token operator\">&gt;<\/span> Entering new LLMChain chain<span class=\"token punctuation\">..<\/span>.<br \/>\nPrompt after formatting:<br \/>\n\u628a\u4e0b\u9762\u5185\u5bb9\u7ffb\u8bd1\u6210\u4e2d\u6587:<br \/>\n<span class=\"token operator\">&gt;<\/span> Entering new SequentialChain chain<span class=\"token punctuation\">..<\/span>.<br \/>\n<span class=\"token operator\">&gt;<\/span> Entering new LLMChain chain<span class=\"token punctuation\">..<\/span>.<br \/>\nPrompt after formatting:<br \/>\n\u628a\u4e0b\u9762\u5185\u5bb9\u7ffb\u8bd1\u6210\u4e2d\u6587:<br \/>\nRecently, we welcomed several new team members <span class=\"token function\">who<\/span> have made significant<br \/>\ncontributions to their respective departments. I would like to recognize Jane Smith<br \/>\n<span class=\"token punctuation\">(<\/span>SSN: 049-45-5928<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">for<\/span> her outstanding performance <span class=\"token keyword\">in<\/span> customer service. Jane has<br \/>\nconsistently received positive feedback from our clients. Furthermore, please remember<br \/>\nthat the <span class=\"token function\">open<\/span> enrollment period <span class=\"token keyword\">for<\/span> our employee benefits program is fast approaching.<br \/>\nShould you have any questions or require assistance, please contact our HR<br \/>\nrepresentative, Michael Johnson <span class=\"token punctuation\">(<\/span>phone: <span class=\"token number\">418<\/span>-492-3850, email:<br \/>\nmichael.johnson&#064;example.com<span class=\"token punctuation\">)<\/span>.<br \/>\n<span class=\"token operator\">&gt;<\/span> Finished chain.<br \/>\n<span class=\"token operator\">&gt;<\/span> Entering new LLMChain chain<span class=\"token punctuation\">..<\/span>.<br \/>\nPrompt after formatting:<br \/>\n\u7528\u4e00\u53e5\u8bdd\u603b\u7ed3\u4e0b\u9762\u5185\u5bb9:<br \/>\n<span class=\"token operator\">&gt;<\/span> Entering new SequentialChain chain<span class=\"token punctuation\">..<\/span>.<br \/>\n<span class=\"token operator\">&gt;<\/span> Entering new LLMChain chain<span class=\"token punctuation\">..<\/span>.<br \/>\nPrompt after formatting:<br \/>\n\u628a\u4e0b\u9762\u5185\u5bb9\u7ffb\u8bd1\u6210\u4e2d\u6587:<br \/>\n<span class=\"token number\">1<\/span><br \/>\n<span class=\"token number\">2<\/span><br \/>\n<span class=\"token number\">3<\/span><br \/>\n<span class=\"token number\">4<\/span><br \/>\n<span class=\"token number\">5<\/span><br \/>\n<span class=\"token number\">6<\/span><br \/>\n<span class=\"token number\">7<\/span><br \/>\n<span class=\"token number\">8<\/span><br \/>\n<span class=\"token number\">9<\/span><br \/>\n<span class=\"token number\">10<\/span><br \/>\n<span class=\"token number\">11<\/span><br \/>\n<span class=\"token number\">12<\/span><br \/>\n<span class=\"token number\">13<\/span><br \/>\n<span class=\"token number\">14<\/span><br \/>\n<span class=\"token number\">15<\/span><br \/>\n<span class=\"token number\">16<\/span><br \/>\n<span class=\"token number\">17<\/span><br \/>\n<span class=\"token number\">18<\/span><br \/>\n<span class=\"token number\">19<\/span><br \/>\n<span class=\"token number\">20<\/span><br \/>\n<span class=\"token number\">21<\/span><br \/>\n<span class=\"token number\">22<\/span><br \/>\n<span class=\"token number\">23<\/span><br \/>\n<span class=\"token number\">24<\/span><br \/>\n<span class=\"token number\">25<\/span><br \/>\n<span class=\"token number\">26<\/span><br \/>\n<span class=\"token number\">27<\/span><br \/>\n<span class=\"token number\">28<\/span><br \/>\n<span class=\"token number\">29<\/span><br \/>\n<span class=\"token number\">30<\/span><br \/>\n<span class=\"token number\">31<\/span> Recently, we welcomed several new team members <span class=\"token function\">who<\/span> have made significant<br \/>\ncontributions to their respective departments. I would like to recognize Jane Smith<br \/>\n<span class=\"token punctuation\">(<\/span>SSN: 049-45-5928<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">for<\/span> her outstanding performance <span class=\"token keyword\">in<\/span> customer service. Jane has<br \/>\nconsistently received positive feedback from our clients. Furthermore, please remember<br \/>\nthat the <span class=\"token function\">open<\/span> enrollment period <span class=\"token keyword\">for<\/span> our employee benefits program is fast approaching.<br \/>\nShould you have any questions or require assistance, please contact our HR<br \/>\nrepresentative, Michael Johnson <span class=\"token punctuation\">(<\/span>phone: <span class=\"token number\">418<\/span>-492-3850, email:<br \/>\nmichael.johnson&#064;example.com<span class=\"token punctuation\">)<\/span>.<br \/>\n<span class=\"token number\">32<\/span><br \/>\n<span class=\"token number\">33<\/span> <span class=\"token operator\">&gt;<\/span> Finished chain.<br \/>\n<span class=\"token number\">34<\/span><br \/>\n<span class=\"token number\">35<\/span><br \/>\n<span class=\"token number\">36<\/span> <span class=\"token operator\">&gt;<\/span> Entering new LLMChain chain<span class=\"token punctuation\">..<\/span>.<br \/>\n<span class=\"token number\">37<\/span> Prompt after formatting:<br \/>\n<span class=\"token number\">38<\/span> \u7528\u4e00\u53e5\u8bdd\u603b\u7ed3\u4e0b\u9762\u5185\u5bb9:<br \/>\n<span class=\"token number\">39<\/span><br \/>\n<span class=\"token number\">40<\/span> \u6700\u8fd1&#xff0c;\u6211\u4eec\u6b22\u8fce\u4e86\u51e0\u4f4d\u65b0\u56e2\u961f\u6210\u5458&#xff0c;\u4ed6\u4eec\u5728\u5404\u81ea\u7684\u90e8\u95e8\u4e2d\u505a\u51fa\u4e86\u663e\u8457\u7684\u8d21\u732e\u3002\u6211\u60f3\u7279\u522b\u8868\u5f70\u7b80\u00b7\u53f2<br \/>\n\u5bc6\u65af&#xff08;\u793e\u4f1a\u5b89\u5168\u53f7\u7801&#xff1a;049-45-5928&#xff09;\u5728\u5ba2\u6237\u670d\u52a1\u65b9\u9762\u7684\u4f18\u79c0\u8868\u73b0\u3002\u7b80\u4e00\u76f4\u4ee5\u6765\u90fd\u6536\u5230\u4e86\u5ba2\u6237\u7684<br \/>\n\u79ef\u6781\u53cd\u9988\u3002\u6b64\u5916&#xff0c;\u8bf7\u8bb0\u4f4f&#xff0c;\u6211\u4eec\u5458\u5de5\u798f\u5229\u8ba1\u5212\u7684\u5f00\u653e\u6ce8\u518c\u671f\u5373\u5c06\u6765\u4e34\u3002\u5982\u679c\u60a8\u6709\u4efb\u4f55\u95ee\u9898\u6216\u9700\u8981<br \/>\n\u5e2e\u52a9&#xff0c;\u8bf7\u8054\u7cfb\u6211\u4eec\u7684HR\u4ee3\u8868\u8fc8\u514b\u5c14\u00b7\u7ea6\u7ff0\u900a&#xff08;\u7535\u8bdd&#xff1a;418-492-3850&#xff0c;\u7535\u5b50\u90ae\u4ef6&#xff1a;<br \/>\nmichael.johnson&#064;example.com&#xff09;\u3002<br \/>\n<span class=\"token number\">41<\/span><br \/>\n<span class=\"token number\">42<\/span> <span class=\"token operator\">&gt;<\/span> Finished chain.<br \/>\n<span class=\"token number\">43<\/span><br \/>\n<span class=\"token number\">44<\/span><br \/>\n<span class=\"token number\">45<\/span> <span class=\"token operator\">&gt;<\/span> Entering new LLMChain chain<span class=\"token punctuation\">..<\/span>.<br \/>\n<span class=\"token number\">46<\/span> Prompt after formatting:<br \/>\n<span class=\"token number\">47<\/span> \u4e0b\u9762\u5185\u5bb9\u662f\u4ec0\u4e48\u8bed\u8a00:<br \/>\n<span class=\"token number\">48<\/span><br \/>\n<span class=\"token number\">49<\/span> <span class=\"token operator\">&gt;<\/span> Entering new SequentialChain chain<span class=\"token punctuation\">..<\/span>.<br \/>\n<span class=\"token number\">50<\/span><br \/>\n<span class=\"token number\">51<\/span><br \/>\n<span class=\"token number\">52<\/span> <span class=\"token operator\">&gt;<\/span> Entering new LLMChain chain<span class=\"token punctuation\">..<\/span>.<br \/>\n<span class=\"token number\">53<\/span> Prompt after formatting:<br \/>\n<span class=\"token number\">54<\/span> \u628a\u4e0b\u9762\u5185\u5bb9\u7ffb\u8bd1\u6210\u4e2d\u6587:<br \/>\n<span class=\"token number\">55<\/span><br \/>\n<span class=\"token number\">56<\/span> Recently, we welcomed several new team members <span class=\"token function\">who<\/span> have made significant<br \/>\ncontributions to their respective departments. I would like to recognize Jane Smith<br \/>\n<span class=\"token punctuation\">(<\/span>SSN: 049-45-5928<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">for<\/span> her outstanding performance <span class=\"token keyword\">in<\/span> customer service. Jane has<br \/>\nconsistently received positive feedback from our clients. Furthermore, please remember<br \/>\nthat the <span class=\"token function\">open<\/span> enrollment period <span class=\"token keyword\">for<\/span> our employee benefits program is fast approaching.<br \/>\nShould you have any questions or require assistance, please contact our HR<br \/>\nrepresentative, Michael Johnson <span class=\"token punctuation\">(<\/span>phone: <span class=\"token number\">418<\/span>-492-3850, email:<br \/>\nmichael.johnson&#064;example.com<span class=\"token punctuation\">)<\/span>.<br \/>\n<span class=\"token number\">57<\/span><br \/>\n<span class=\"token number\">58<\/span> <span class=\"token operator\">&gt;<\/span> Finished chain.<br \/>\n<span class=\"token number\">59<\/span><br \/>\n<span class=\"token number\">60<\/span><br \/>\n<span class=\"token number\">61<\/span> <span class=\"token operator\">&gt;<\/span> Entering new LLMChain chain<span class=\"token punctuation\">..<\/span>.<br \/>\n<span class=\"token number\">62<\/span> Prompt after formatting:<br \/>\n<span class=\"token number\">63<\/span> \u7528\u4e00\u53e5\u8bdd\u603b\u7ed3\u4e0b\u9762\u5185\u5bb9:<br \/>\n<span class=\"token number\">64<\/span><br \/>\n<span class=\"token number\">65<\/span> \u6700\u8fd1&#xff0c;\u6211\u4eec\u6b22\u8fce\u4e86\u51e0\u4f4d\u65b0\u56e2\u961f\u6210\u5458&#xff0c;\u4ed6\u4eec\u5728\u5404\u81ea\u7684\u90e8\u95e8\u4e2d\u505a\u51fa\u4e86\u663e\u8457\u7684\u8d21\u732e\u3002\u6211\u60f3\u7279\u522b\u8868\u5f70\u7b80\u00b7\u53f2<br \/>\n\u5bc6\u65af&#xff08;\u793e\u4f1a\u5b89\u5168\u53f7\u7801&#xff1a;049-45-5928&#xff09;\u5728\u5ba2\u6237\u670d\u52a1\u65b9\u9762\u7684\u4f18\u79c0\u8868\u73b0\u3002\u7b80\u4e00\u76f4\u4ee5\u6765\u90fd\u6536\u5230\u4e86\u5ba2\u6237\u7684<br \/>\n\u79ef\u6781\u53cd\u9988\u3002\u6b64\u5916&#xff0c;\u8bf7\u8bb0\u4f4f&#xff0c;\u6211\u4eec\u5458\u5de5\u798f\u5229\u8ba1\u5212\u7684\u5f00\u653e\u6ce8\u518c\u671f\u5373\u5c06\u6765\u4e34\u3002\u5982\u679c\u60a8\u6709\u4efb\u4f55\u95ee\u9898\u6216\u9700\u8981<br \/>\n\u5e2e\u52a9&#xff0c;\u8bf7\u8054\u7cfb\u6211\u4eec\u7684HR\u4ee3\u8868\u8fc8\u514b\u5c14\u00b7\u7ea6\u7ff0\u900a&#xff08;\u7535\u8bdd&#xff1a;418-492-3850&#xff0c;\u7535\u5b50\u90ae\u4ef6&#xff1a;<br \/>\nmichael.johnson&#064;example.com&#xff09;\u3002<br \/>\n<span class=\"token number\">66<\/span><br \/>\n<span class=\"token number\">67<\/span> <span class=\"token operator\">&gt;<\/span> Finished chain.<br \/>\n<span class=\"token number\">68<\/span><br \/>\n<span class=\"token number\">69<\/span><br \/>\n<span class=\"token number\">70<\/span> <span class=\"token operator\">&gt;<\/span> Entering new LLMChain chain<span class=\"token punctuation\">..<\/span>.<br \/>\n<span class=\"token number\">71<\/span> Prompt after formatting:<br \/>\n<span class=\"token number\">72<\/span> \u4e0b\u9762\u5185\u5bb9\u662f\u4ec0\u4e48\u8bed\u8a00:<br \/>\n<span class=\"token number\">73<\/span><br \/>\n<span class=\"token number\">74<\/span> \u6700\u8fd1\u6211\u4eec\u6b22\u8fce\u4e86\u65b0\u56e2\u961f\u6210\u5458&#xff0c;\u5e76\u7279\u522b\u8868\u5f70\u7b80\u00b7\u53f2\u5bc6\u65af\u5728\u5ba2\u6237\u670d\u52a1\u4e0a\u7684\u4f18\u79c0\u8d21\u732e&#xff0c;\u540c\u65f6\u63d0\u9192\u5927\u5bb6\u5458\u5de5<br \/>\n\u798f\u5229\u8ba1\u5212\u5f00\u653e\u6ce8\u518c\u5373\u5c06\u5f00\u59cb\u3002<br \/>\n<span class=\"token number\">75<\/span><br \/>\n<span class=\"token number\">76<\/span> <span class=\"token operator\">&gt;<\/span> Finished chain.<br \/>\n<span class=\"token number\">77<\/span><br \/>\n<span class=\"token number\">78<\/span><br \/>\n<span class=\"token number\">79<\/span> <span class=\"token operator\">&gt;<\/span> Entering new LLMChain chain<span class=\"token punctuation\">..<\/span>.<br \/>\n<span class=\"token number\">80<\/span> Prompt after formatting:<br \/>\n<span class=\"token number\">81<\/span> \u8bf7\u4f7f\u7528\u6307\u5b9a\u7684\u8bed\u8a00\u5bf9\u4ee5\u4e0b\u5185\u5bb9\u8fdb\u884c\u8bc4\u8bba:<br \/>\n<span class=\"token number\">82<\/span><br \/>\n<span class=\"token number\">83<\/span> \u5185\u5bb9:\u6700\u8fd1\u6211\u4eec\u6b22\u8fce\u4e86\u65b0\u56e2\u961f\u6210\u5458&#xff0c;\u5e76\u7279\u522b\u8868\u5f70\u7b80\u00b7\u53f2\u5bc6\u65af\u5728\u5ba2\u6237\u670d\u52a1\u4e0a\u7684\u4f18\u79c0\u8d21\u732e&#xff0c;\u540c\u65f6\u63d0\u9192\u5927<br \/>\n\u5bb6\u5458\u5de5\u798f\u5229\u8ba1\u5212\u5f00\u653e\u6ce8\u518c\u5373\u5c06\u5f00\u59cb\u3002<br \/>\n<span class=\"token number\">84<\/span><br \/>\n<span class=\"token number\">85<\/span> <span class=\"token operator\">&gt;<\/span> Entering new SequentialChain chain<span class=\"token punctuation\">..<\/span>.<br \/>\n<span class=\"token number\">86<\/span><br \/>\n<span class=\"token number\">87<\/span><br \/>\n<span class=\"token number\">88<\/span> <span class=\"token operator\">&gt;<\/span> Entering new LLMChain chain<span class=\"token punctuation\">..<\/span>.<br \/>\n<span class=\"token number\">89<\/span> Prompt after formatting:<br \/>\n<span class=\"token number\">90<\/span> \u628a\u4e0b\u9762\u5185\u5bb9\u7ffb\u8bd1\u6210\u4e2d\u6587:<br \/>\n<span class=\"token number\">91<\/span><br \/>\n<span class=\"token number\">92<\/span> Recently, we welcomed several new team members <span class=\"token function\">who<\/span> have made significant<br \/>\ncontributions to their respective departments. I would like to recognize Jane Smith<br \/>\n<span class=\"token punctuation\">(<\/span>SSN: 049-45-5928<span class=\"token punctuation\">)<\/span> <span class=\"token keyword\">for<\/span> her outstanding performance <span class=\"token keyword\">in<\/span> customer service. Jane has<br \/>\nconsistently received positive feedback from our clients. Furthermore, please remember<br \/>\nthat the <span class=\"token function\">open<\/span> enrollment period <span class=\"token keyword\">for<\/span> our employee benefits program is fast approaching.<br \/>\nShould you have any questions or require assistance, please contact our HR<br \/>\nrepresentative, Michael Johnson <span class=\"token punctuation\">(<\/span>phone: <span class=\"token number\">418<\/span>-492-3850, email:<br \/>\nmichael.johnson&#064;example.com<span class=\"token punctuation\">)<\/span>.<br \/>\n<span class=\"token number\">93<\/span><br \/>\n<span class=\"token number\">94<\/span> <span class=\"token operator\">&gt;<\/span> Finished chain.<br \/>\n<span class=\"token number\">95<\/span><br \/>\n<span class=\"token number\">96<\/span><br \/>\n<span class=\"token number\">97<\/span> <span class=\"token operator\">&gt;<\/span> Entering new LLMChain chain<span class=\"token punctuation\">..<\/span>.<br \/>\n<span class=\"token number\">98<\/span> Prompt after formatting:<br \/>\n<span class=\"token number\">99<\/span> \u7528\u4e00\u53e5\u8bdd\u603b\u7ed3\u4e0b\u9762\u5185\u5bb9:<br \/>\n<span class=\"token number\">100<\/span><br \/>\n<span class=\"token number\">101<\/span> \u6700\u8fd1&#xff0c;\u6211\u4eec\u6b22\u8fce\u4e86\u51e0\u4f4d\u65b0\u56e2\u961f\u6210\u5458&#xff0c;\u4ed6\u4eec\u5728\u5404\u81ea\u7684\u90e8\u95e8\u4e2d\u505a\u51fa\u4e86\u663e\u8457\u7684\u8d21\u732e\u3002\u6211\u60f3\u7279\u522b\u8868\u5f70\u7b80\u00b7\u53f2<br \/>\n\u5bc6\u65af&#xff08;\u793e\u4f1a\u5b89\u5168\u53f7\u7801&#xff1a;049-45-5928&#xff09;\u5728\u5ba2\u6237\u670d\u52a1\u65b9\u9762\u7684\u4f18\u79c0\u8868\u73b0\u3002\u7b80\u4e00\u76f4\u4ee5\u6765\u90fd\u6536\u5230\u4e86\u5ba2\u6237\u7684<br \/>\n\u79ef\u6781\u53cd\u9988\u3002\u6b64\u5916&#xff0c;\u8bf7\u8bb0\u4f4f&#xff0c;\u6211\u4eec\u5458\u5de5\u798f\u5229\u8ba1\u5212\u7684\u5f00\u653e\u6ce8\u518c\u671f\u5373\u5c06\u6765\u4e34\u3002\u5982\u679c\u60a8\u6709\u4efb\u4f55\u95ee\u9898\u6216\u9700\u8981<br \/>\n\u5e2e\u52a9&#xff0c;\u8bf7\u8054\u7cfb\u6211\u4eec\u7684HR\u4ee3\u8868\u8fc8\u514b\u5c14\u00b7\u7ea6\u7ff0\u900a&#xff08;\u7535\u8bdd&#xff1a;418-492-3850&#xff0c;\u7535\u5b50\u90ae\u4ef6&#xff1a;<br \/>\nmichael.johnson&#064;example.com&#xff09;\u3002<br \/>\n<span class=\"token number\">102<\/span><br \/>\n<span class=\"token number\">103<\/span> <span class=\"token operator\">&gt;<\/span> Finished chain.<br \/>\n<span class=\"token number\">104<\/span><br \/>\n<span class=\"token number\">105<\/span><br \/>\n<span class=\"token number\">106<\/span> <span class=\"token operator\">&gt;<\/span> Entering new LLMChain chain<span class=\"token punctuation\">..<\/span>.<br \/>\n<span class=\"token number\">107<\/span> Prompt after formatting:<br \/>\n<span class=\"token number\">108<\/span> \u4e0b\u9762\u5185\u5bb9\u662f\u4ec0\u4e48\u8bed\u8a00:<br \/>\n<span class=\"token number\">109<\/span><br \/>\n<span class=\"token number\">110<\/span> \u6700\u8fd1\u6211\u4eec\u6b22\u8fce\u4e86\u65b0\u56e2\u961f\u6210\u5458&#xff0c;\u5e76\u7279\u522b\u8868\u5f70\u7b80\u00b7\u53f2\u5bc6\u65af\u5728\u5ba2\u6237\u670d\u52a1\u4e0a\u7684\u4f18\u79c0\u8d21\u732e&#xff0c;\u540c\u65f6\u63d0\u9192\u5927\u5bb6\u5458\u5de5<br \/>\n\u798f\u5229\u8ba1\u5212\u5f00\u653e\u6ce8\u518c\u5373\u5c06\u5f00\u59cb\u3002<br \/>\n<span class=\"token number\">111<\/span><br \/>\n<span class=\"token number\">112<\/span> <span class=\"token operator\">&gt;<\/span> Finished chain.<br \/>\n<span class=\"token number\">113<\/span><br \/>\n<span class=\"token number\">114<\/span><br \/>\n<span class=\"token number\">115<\/span> <span class=\"token operator\">&gt;<\/span> Entering new LLMChain chain<span class=\"token punctuation\">..<\/span>.<br \/>\n<span class=\"token number\">116<\/span> Prompt after formatting:<br \/>\n<span class=\"token number\">117<\/span> \u8bf7\u4f7f\u7528\u6307\u5b9a\u7684\u8bed\u8a00\u5bf9\u4ee5\u4e0b\u5185\u5bb9\u8fdb\u884c\u8bc4\u8bba:<br \/>\n<span class=\"token number\">118<\/span><br \/>\n<span class=\"token number\">119<\/span> \u5185\u5bb9:\u6700\u8fd1\u6211\u4eec\u6b22\u8fce\u4e86\u65b0\u56e2\u961f\u6210\u5458&#xff0c;\u5e76\u7279\u522b\u8868\u5f70\u7b80\u00b7\u53f2\u5bc6\u65af\u5728\u5ba2\u6237\u670d\u52a1\u4e0a\u7684\u4f18\u79c0\u8d21\u732e&#xff0c;\u540c\u65f6\u63d0\u9192\u5927<br \/>\n\u5bb6\u5458\u5de5\u798f\u5229\u8ba1\u5212\u5f00\u653e\u6ce8\u518c\u5373\u5c06\u5f00\u59cb\u3002<br \/>\n<span class=\"token number\">120<\/span><br \/>\n<span class=\"token number\">121<\/span> \u8bed\u8a00:\u8fd9\u6bb5\u5185\u5bb9\u662f\u4e2d\u6587\u3002<br \/>\n<span class=\"token number\">122<\/span><br \/>\n<span class=\"token number\">123<\/span> <span class=\"token operator\">&gt;<\/span> Finished chain.<br \/>\n<span class=\"token number\">124<\/span><br \/>\n<span class=\"token number\">125<\/span> <span class=\"token operator\">&gt;<\/span> Finished chain.<br \/>\n<span class=\"token number\">1<\/span> <span class=\"token punctuation\">{<\/span><span class=\"token string\">&#039;content&#039;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token string\">&#039;Recently, we welcomed several new team members who have made significant<br \/>\ncontributions to their respective departments. I would like to recognize Jane Smith (SSN:<br \/>\n049-45-5928) for her outstanding performance in customer service. Jane has consistently<br \/>\nreceived positive feedback from our clients. Furthermore, please remember that the open<br \/>\nenrollment period for our employee benefits program is fast approaching. Should you<br \/>\nhave any questions or require assistance, please contact our HR representative, Michael<br \/>\nJohnson (phone: 418-492-3850, email: michael.johnson&#064;example.com).&#039;<\/span>,<br \/>\n<span class=\"token number\">2<\/span> <span class=\"token string\">&#039;Chinese_Review&#039;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token string\">&#039;\u6700\u8fd1&#xff0c;\u6211\u4eec\u6b22\u8fce\u4e86\u51e0\u4f4d\u65b0\u56e2\u961f\u6210\u5458&#xff0c;\u4ed6\u4eec\u5728\u5404\u81ea\u7684\u90e8\u95e8\u4e2d\u505a\u51fa\u4e86\u663e\u8457\u7684\u8d21\u732e\u3002<br \/>\n\u6211\u60f3\u7279\u522b\u8868\u5f70\u7b80\u00b7\u53f2\u5bc6\u65af&#xff08;\u793e\u4f1a\u5b89\u5168\u53f7\u7801&#xff1a;049-45-5928&#xff09;\u5728\u5ba2\u6237\u670d\u52a1\u65b9\u9762\u7684\u4f18\u79c0\u8868\u73b0\u3002\u7b80\u4e00\u76f4\u4ee5\u6765<br \/>\n\u90fd\u6536\u5230\u4e86\u5ba2\u6237\u7684\u79ef\u6781\u53cd\u9988\u3002\u6b64\u5916&#xff0c;\u8bf7\u8bb0\u4f4f&#xff0c;\u6211\u4eec\u5458\u5de5\u798f\u5229\u8ba1\u5212\u7684\u5f00\u653e\u6ce8\u518c\u671f\u5373\u5c06\u6765\u4e34\u3002\u5982\u679c\u60a8\u6709\u4efb<br \/>\n\u4f55\u95ee\u9898\u6216\u9700\u8981\u5e2e\u52a9&#xff0c;\u8bf7\u8054\u7cfb\u6211\u4eec\u7684HR\u4ee3\u8868\u8fc8\u514b\u5c14\u00b7\u7ea6\u7ff0\u900a&#xff08;\u7535\u8bdd&#xff1a;418-492-3850&#xff0c;\u7535\u5b50\u90ae\u4ef6&#xff1a;<br \/>\nmichael.johnson&#064;example.com&#xff09;\u3002&#039;<\/span>,<br \/>\n<span class=\"token number\">3<\/span> <span class=\"token string\">&#039;Chinese_Summary&#039;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token string\">&#039;\u6700\u8fd1\u6211\u4eec\u6b22\u8fce\u4e86\u65b0\u56e2\u961f\u6210\u5458&#xff0c;\u5e76\u7279\u522b\u8868\u5f70\u7b80\u00b7\u53f2\u5bc6\u65af\u5728\u5ba2\u6237\u670d\u52a1\u4e0a\u7684\u4f18\u79c0\u8d21<br \/>\n\u732e&#xff0c;\u540c\u65f6\u63d0\u9192\u5927\u5bb6\u5458\u5de5\u798f\u5229\u8ba1\u5212\u5f00\u653e\u6ce8\u518c\u5373\u5c06\u5f00\u59cb\u3002&#039;<\/span>,<br \/>\n<span class=\"token number\">4<\/span> <span class=\"token string\">&#039;Language&#039;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token string\">&#039;\u8fd9\u6bb5\u5185\u5bb9\u662f\u4e2d\u6587\u3002&#039;<\/span>,<br \/>\n<span class=\"token number\">5<\/span> <span class=\"token string\">&#039;Comment&#039;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token string\">&#039;\u8fd9\u6bb5\u5185\u5bb9\u4f20\u8fbe\u4e86\u79ef\u6781\u7684\u4fe1\u606f&#xff0c;\u9996\u5148\u6b22\u8fce\u4e86\u65b0\u56e2\u961f\u6210\u5458&#xff0c;\u5c55\u73b0\u4e86\u516c\u53f8\u5bf9\u56e2\u961f\u6269\u5c55\u7684\u91cd\u89c6<br \/>\n\u548c\u652f\u6301\u3002\u6b64\u5916&#xff0c;\u7279\u522b\u8868\u5f70\u7b80\u00b7\u53f2\u5bc6\u65af\u5728\u5ba2\u6237\u670d\u52a1\u65b9\u9762\u7684\u51fa\u8272\u8868\u73b0&#xff0c;\u8868\u660e\u516c\u53f8\u9f13\u52b1\u5458\u5de5\u5728\u5404\u81ea\u5c97\u4f4d\u4e0a\u8ffd<br \/>\n\u6c42\u5353\u8d8a&#xff0c;\u8fd9\u6709\u52a9\u4e8e\u6fc0\u52b1\u5176\u4ed6\u5458\u5de5\u52aa\u529b\u5de5\u4f5c\u3001\u63d0\u5347\u670d\u52a1\u8d28\u91cf\u3002\u6700\u540e&#xff0c;\u63d0\u5230\u5458\u5de5\u798f\u5229\u8ba1\u5212\u7684\u5f00\u653e\u6ce8\u518c&#xff0c;<br \/>\n\u8bf4\u660e\u516c\u53f8\u5173\u5fc3\u5458\u5de5\u7684\u798f\u7949&#xff0c;\u5e0c\u671b\u901a\u8fc7\u798f\u5229\u63aa\u65bd\u63d0\u9ad8\u5458\u5de5\u7684\u6ee1\u610f\u5ea6\u4e0e\u5f52\u5c5e\u611f\u3002\u603b\u4f53\u800c\u8a00&#xff0c;\u8fd9\u662f\u4e00\u4efd\u5145<br \/>\n\u6ee1\u6b63\u80fd\u91cf\u548c\u5173\u6000\u7684\u901a\u77e5&#xff0c;\u80fd\u591f\u589e\u5f3a\u56e2\u961f\u7684\u51dd\u805a\u529b\u548c\u5411\u5fc3\u529b\u3002&#039;<\/span><span class=\"token punctuation\">}<\/span><\/p>\n<h5>3.3.3 \u987a\u5e8f\u94fe\u4f7f\u7528\u573a\u666f<\/h5>\n<p>\u573a\u666f:\u591a\u6570\u636e\u6e90\u5904\u7406<\/p>\n<p>\u4e3e\u4f8b:\u6839\u636e\u4ea7\u54c1\u540d<\/p>\n<li>\u67e5\u8be2\u6570\u636e\u5e93\u83b7\u53d6\u4ef7\u683c<\/li>\n<li>\u751f\u6210\u4fc3\u9500\u6587\u6848<\/li>\n<p>\u4f7f\u7528 SimpleSequentialChain(\u4f1a\u5931\u8d25)<\/p>\n<p># \u5047\u8bbe\u94fe1\u8fd4\u56de {&#034;price&#034;: 100}, \u94fe2\u9700\u8981 {product: &#034;xx&#034;, price: xx}<br \/>\n# \u7ed3\u6784\u4e0d\u5339\u914d,\u65e0\u6cd5\u81ea\u52a8\u4f20\u9012!<\/p>\n<p>\u4f7f\u7528 SequentialChain(\u6b63\u786e\u65b9\u5f0f)<\/p>\n<p>from langchain.chains <span class=\"token function\">import<\/span> SequentialChain<\/p>\n<p><span class=\"token comment\"># \u521b\u5efa\u5927\u6a21\u578b\u5b9e\u4f8b<\/span><br \/>\nllm <span class=\"token operator\">&#061;<\/span> ChatOpenAI<span class=\"token punctuation\">(<\/span>model<span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;gpt-4o-mini&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token comment\"># \u7b2c1\u73af\u8282:<\/span><br \/>\nquery_chain <span class=\"token operator\">&#061;<\/span> LLMChain<span class=\"token punctuation\">(<\/span><br \/>\n<span class=\"token assign-left variable\">llm<\/span><span class=\"token operator\">&#061;<\/span>llm,<br \/>\n<span class=\"token assign-left variable\">prompt<\/span><span class=\"token operator\">&#061;<\/span>PromptTemplate.from_template<span class=\"token punctuation\">(<\/span>template<span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;\u8bf7\u6a21\u62df\u67e5\u8be2{product}\u7684\u5e02\u573a\u4ef7\u683c,\u76f4\u63a5\u8fd4\u56de\u4e00\u4e2a\u5408\u7406\u7684\u4ef7\u683c\u6570\u5b57(\u59826999),\u4e0d\u8981\u5305\u542b\u4efb\u4f55\u5176\u4ed6\u6587\u5b57\u6216\u4ee3\u7801&#034;<\/span><span class=\"token punctuation\">)<\/span>,<br \/>\n<span class=\"token assign-left variable\">verbose<\/span><span class=\"token operator\">&#061;<\/span>True,<br \/>\n<span class=\"token assign-left variable\">output_key<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;price&#034;<\/span><\/p>\n<p><span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token comment\"># \u7b2c2\u73af\u8282:<\/span><br \/>\npromo_chain <span class=\"token operator\">&#061;<\/span> LLMChain<span class=\"token punctuation\">(<\/span><br \/>\n<span class=\"token assign-left variable\">llm<\/span><span class=\"token operator\">&#061;<\/span>llm,<br \/>\n<span class=\"token assign-left variable\">prompt<\/span><span class=\"token operator\">&#061;<\/span>PromptTemplate.from_template<span class=\"token punctuation\">(<\/span>template<span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;\u4e3a{product}(\u552e\u4ef7:{price}\u5143)\u521b\u4f5c\u4e00\u7bc750\u5b57\u4ee5\u5185\u7684\u4fc3\u9500\u6587\u6848,\u8981\u6c42\u7a81\u51fa\u4ea7\u54c1\u5356\u70b9&#034;<\/span><span class=\"token punctuation\">)<\/span>,<br \/>\n<span class=\"token assign-left variable\">verbose<\/span><span class=\"token operator\">&#061;<\/span>True,<br \/>\n<span class=\"token assign-left variable\">output_key<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;promo_text&#034;<\/span><\/p>\n<p><span class=\"token punctuation\">)<\/span><br \/>\nsequential_chain <span class=\"token operator\">&#061;<\/span> SequentialChain<span class=\"token punctuation\">(<\/span><br \/>\n<span class=\"token assign-left variable\">chains<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token punctuation\">[<\/span>query_chain, promo_chain<span class=\"token punctuation\">]<\/span>,<br \/>\n<span class=\"token assign-left variable\">verbose<\/span><span class=\"token operator\">&#061;<\/span>True,<br \/>\n<span class=\"token assign-left variable\">input_variables<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;product&#034;<\/span><span class=\"token punctuation\">]<\/span>, <span class=\"token comment\"># \u521d\u59cb\u8f93\u5165<\/span><br \/>\n<span class=\"token assign-left variable\">output_variables<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;price&#034;<\/span>, <span class=\"token string\">&#034;promo_text&#034;<\/span><span class=\"token punctuation\">]<\/span>, <span class=\"token comment\"># \u8f93\u51fa\u4ef7\u683c\u548c\u6587\u6848<\/span><\/p>\n<p><span class=\"token punctuation\">)<\/span><br \/>\nresult <span class=\"token operator\">&#061;<\/span> sequential_chain.invoke<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">{<\/span><span class=\"token string\">&#034;product&#034;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token string\">&#034;iPhone16&#034;<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><br \/>\nprint<span class=\"token punctuation\">(<\/span>result<span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token comment\"># print(result[&#034;price&#034;])<\/span><br \/>\n<span class=\"token comment\"># print(result[&#034;promo_text&#034;])<\/span><\/p>\n<p>\u901a\u8fc7\u8fd9\u4e24\u4e2a\u4f8b\u5b50\u53ef\u4ee5\u770b\u51fa:\u5f53\u9700\u8981\u5904\u7406\u591a\u53d8\u91cf\u6216\u5f02\u6784\u6570\u636e\u65f6,SequentialChain \u7684\u7075\u6d3b\u6027\u662f\u5fc5\u4e0d\u53ef\u5c11 \u7684&#xff61;<\/p>\n<h4>2.4 \u6570\u5b66\u94fe LLMMathChain (\u4e86\u89e3)<\/h4>\n<p>LLMMathChain\u5c06\u7528\u6237\u95ee\u9898\u8f6c\u6362\u4e3a\u6570\u5b66\u95ee\u9898,\u7136\u540e\u5c06\u6570\u5b66\u95ee\u9898\u8f6c\u6362\u4e3a\u53ef\u4ee5\u4f7f\u7528 Python \u7684 numexpr \u5e93 \u6267\u884c\u7684\u8868\u8fbe\u5f0f&#xff61;\u4f7f\u7528\u8fd0\u884c\u6b64\u4ee3\u7801\u7684\u8f93\u51fa\u6765\u56de\u7b54\u95ee\u9898&#xff61;<\/p>\n<p>\u4f7f\u7528LLMMathChain,\u9700\u8981\u5b89\u88c5numexpr\u5e93<\/p>\n<p>pip <span class=\"token function\">install<\/span> numexpr<\/p>\n<p>from langchain.chains <span class=\"token function\">import<\/span> LLMMathChain<br \/>\n<span class=\"token function\">import<\/span> os<br \/>\n<span class=\"token function\">import<\/span> dotenv<br \/>\nfrom langchain_openai <span class=\"token function\">import<\/span> ChatOpenAI<br \/>\nfrom langchain.chains <span class=\"token function\">import<\/span> LLMChain<br \/>\ndotenv.load_dotenv<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p>os.environ<span class=\"token punctuation\">[<\/span><span class=\"token string\">&#039;OPENAI_API_KEY&#039;<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> os.getenv<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;OPENAI_API_KEY1&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\nos.environ<span class=\"token punctuation\">[<\/span><span class=\"token string\">&#039;OPENAI_BASE_URL&#039;<\/span><span class=\"token punctuation\">]<\/span> <span class=\"token operator\">&#061;<\/span> os.getenv<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;OPENAI_BASE_URL&#034;<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\"># \u521b\u5efa\u5927\u6a21\u578b\u5b9e\u4f8b<\/span><br \/>\nllm <span class=\"token operator\">&#061;<\/span> ChatOpenAI<span class=\"token punctuation\">(<\/span>model<span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;gpt-4o-mini&#034;<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\"># \u521b\u5efa\u94fe<\/span><br \/>\nllm_math <span class=\"token operator\">&#061;<\/span> LLMMathChain.from_llm<span class=\"token punctuation\">(<\/span>llm<span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\"># \u6267\u884c\u94fe<\/span><br \/>\nres <span class=\"token operator\">&#061;<\/span> llm_math.invoke<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;10 ** 3 &#043; 100\u7684\u7ed3\u679c\u662f\u591a\u5c11?&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\nprint<span class=\"token punctuation\">(<\/span>res<span class=\"token punctuation\">)<\/span><\/p>\n<h4>2.5 \u8def\u7531\u94fe RouterChain (\u4e86\u89e3)<\/h4>\n<p>\u8def\u7531\u94fe(RouterChain)\u7528\u4e8e\u521b\u5efa\u53ef\u4ee5\u52a8\u6001\u9009\u62e9\u4e0b\u4e00\u6761\u94fe\u7684\u94fe&#xff61;\u53ef\u4ee5\u81ea\u52a8\u5206\u6790\u7528\u6237\u7684\u9700\u6c42,\u7136\u540e\u5f15\u5bfc\u5230 \u6700\u9002\u5408\u7684\u94fe\u4e2d\u6267\u884c,\u83b7\u53d6\u54cd\u5e94\u5e76\u8fd4\u56de\u6700\u7ec8\u7ed3\u679c&#xff61;<\/p>\n<p>\u6bd4\u5982,\u6211\u4eec\u76ee\u524d\u6709\u4e09\u7c7bchain,\u5206\u522b\u5bf9\u5e94\u4e09\u79cd\u5b66\u79d1\u7684\u95ee\u9898\u89e3\u7b54&#xff61;\u6211\u4eec\u7684\u8f93\u5165\u5185\u5bb9\u4e5f\u662f\u4e0e\u8fd9\u4e09\u79cd\u5b66\u79d1\u5bf9\u5e94, \u4f46\u662f\u968f\u673a\u7684,\u6bd4\u5982\u7b2c\u4e00\u6b21\u8f93\u5165\u6570\u5b66\u95ee\u9898&#xff64;\u7b2c\u4e8c\u6b21\u6709\u53ef\u80fd\u662f\u5386\u53f2\u95ee\u9898\u2026 \u8fd9\u65f6\u5019\u671f\u5f85\u7684\u6548\u679c\u662f:\u53ef\u4ee5\u6839\u636e\u8f93 \u5165\u7684\u5185\u5bb9\u662f\u4ec0\u4e48,\u81ea\u52a8\u5c06\u5176\u5e94\u7528\u5230\u5bf9\u5e94\u7684\u5b50\u94fe\u4e2d&#xff61;RouterChain\u5c31\u4e3a\u6211\u4eec\u63d0\u4f9b\u4e86\u8fd9\u6837\u4e00\u79cd\u80fd\u529b&#xff61;<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/09\/20260929012528-6abb13882894a.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/><\/p>\n<p>\u5b83\u4f1a\u2fb8\u5148\u51b3\u5b9a\u5c06\u8981\u4f20\u9012\u4e0b\u53bb\u7684\u2f26\u94fe,\u7136\u540e\u628a\u8f93\u2f0a\u4f20\u9012\u7ed9\u90a3\u4e2a\u94fe&#xff61;\u5e76\u4e14\u5728\u8bbe\u7f6e\u7684\u65f6\u5019\u9700\u8981\u6ce8\u610f\u4e3a\u5176 \u8bbe\u7f6e\u9ed8\u8ba4chain ,\u4ee5\u517c\u5bb9\u8f93\u2f0a\u5185\u5bb9\u4e0d\u6ee1\u2f9c\u4efb\u610f\u2f00\u9879\u65f6\u7684\u60c5\u51b5&#xff61;<\/p>\n<p><img decoding=\"async\" src=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/09\/20260929012528-6abb13887628f.png\" alt=\"\u5728\u8fd9\u91cc\u63d2\u5165\u56fe\u7247\u63cf\u8ff0\" \/><\/p>\n<h4>2.6 \u6587\u6863\u94fe StuffDocumentsChain(\u4e86\u89e3)<\/h4>\n<p>StuffDocumentsChain \u662f\u4e00\u79cd\u6587\u6863\u5904\u7406\u94fe,\u5b83\u7684\u6838\u5fc3\u4f5c\u7528\u662f\u5c06\u591a\u4e2a\u6587\u6863\u5185\u5bb9\u5408\u5e76(\u201c\u586b\u5145\u201d\u6216\u201c\u585e \u5165\u201d)\u5230\u5355\u4e2a\u63d0\u793a(prompt)\u4e2d,\u7136\u540e\u4f20\u9012\u7ed9\u8bed\u8a00\u6a21\u578b(LLM)\u8fdb\u884c\u5904\u7406&#xff61;<\/p>\n<p>\u4f7f\u7528\u573a\u666f:\u7531\u4e8e\u6240\u6709\u6587\u6863\u88ab\u5b8c\u6574\u62fc\u63a5,LLM \u80fd\u540c\u65f6\u770b\u5230\u5168\u90e8\u5185\u5bb9,\u6240\u4ee5\u9002\u5408\u9700\u8981\u5168\u5c40\u7406\u89e3\u7684\u4efb\u52a1,\u5982\u603b \u7ed3&#xff64;\u95ee\u7b54&#xff64;\u5bf9\u6bd4\u5206\u6790\u7b49&#xff61;\u4f46\u6ce8\u610f,\u4ec5\u9002\u5408\u5904\u7406 \u5c11\u91cf\/\u4e2d\u7b49\u957f\u5ea6\u6587\u6863 \u7684\u573a\u666f&#xff61;<\/p>\n<p>\u4e3e\u4f8b:<\/p>\n<p><span class=\"token comment\">#1.\u5bfc\u5165\u76f8\u5173\u5305<\/span><br \/>\nfrom langchain.chains <span class=\"token function\">import<\/span> StuffDocumentsChain<br \/>\nfrom langchain.chains <span class=\"token function\">import<\/span> LLMChain<br \/>\nfrom langchain.prompts <span class=\"token function\">import<\/span> PromptTemplate<br \/>\nfrom langchain.document_loaders <span class=\"token function\">import<\/span> PyPDFLoader<br \/>\nfrom langchain.chat_models <span class=\"token function\">import<\/span> ChatOpenAI<\/p>\n<p><span class=\"token comment\"># 2.\u52a0\u8f7dPDF<\/span><br \/>\nloader <span class=\"token operator\">&#061;<\/span> PyPDFLoader<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;.\/asset\/example\/loader.pdf&#034;<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\">#3.\u5b9a\u4e49\u63d0\u793a\u8bcd<\/span><br \/>\nprompt_template <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;&#034;<\/span>&#034;\u5bf9\u4ee5\u4e0b\u6587\u5b57\u505a\u7b80\u6d01\u7684\u603b\u7ed3:<br \/>\n<span class=\"token punctuation\">{<\/span>text<span class=\"token punctuation\">}<\/span><\/p>\n<p>\u7b80\u6d01\u7684\u603b\u7ed3:<span class=\"token string\">&#034;&#034;<\/span>&#034;<br \/>\n<span class=\"token comment\"># 4.\u5b9a\u4e49\u63d0\u793a\u8bcd\u6a21\u7248<\/span><br \/>\nprompt <span class=\"token operator\">&#061;<\/span> PromptTemplate.from_template<span class=\"token punctuation\">(<\/span>prompt_template<span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\"># 5.\u5b9a\u4e49\u6a21\u578b<\/span><br \/>\nllm <span class=\"token operator\">&#061;<\/span> ChatOpenAI<span class=\"token punctuation\">(<\/span>model<span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;gpt-4o-mini&#034;<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\"># 6.\u5b9a\u4e49LLM\u94fe<\/span><br \/>\nllm_chain <span class=\"token operator\">&#061;<\/span> LLMChain<span class=\"token punctuation\">(<\/span>llm<span class=\"token operator\">&#061;<\/span>llm, <span class=\"token assign-left variable\">prompt<\/span><span class=\"token operator\">&#061;<\/span>prompt <span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\"># 7.\u5b9a\u4e49\u6587\u6863\u94fe<\/span><br \/>\nstuff_chain <span class=\"token operator\">&#061;<\/span> StuffDocumentsChain<span class=\"token punctuation\">(<\/span><br \/>\n<span class=\"token assign-left variable\">llm_chain<\/span><span class=\"token operator\">&#061;<\/span>llm_chain,<br \/>\n<span class=\"token assign-left variable\">document_variable_name<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;text&#034;<\/span>, <span class=\"token comment\"># \u5728 prompt \u6a21\u677f\u4e2d,\u6587\u6863\u5185\u5bb9\u5e94\u8be5\u7528\u54ea\u4e2a\u53d8\u91cf\u540d\u8868\u793a<\/span><br \/>\n<span class=\"token punctuation\">)<\/span> <span class=\"token comment\">#document_variable_name&#061;&#034;text&#034; \u544a\u8bc9 StuffDocumentsChain \u628a\u5408\u5e76\u540e\u7684\u6587\u6863\u5185\u5bb9\u586b\u5145\u5230 {text} \u53d8\u91cf\u4e2d&#034;&#xff61;<\/span><\/p>\n<p><span class=\"token comment\"># 8.\u52a0\u8f7dpdf\u6587\u6863<\/span><br \/>\ndocs <span class=\"token operator\">&#061;<\/span> loader.load<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\"># 9.\u6267\u884c\u94fe<\/span><br \/>\n<span class=\"token assign-left variable\">res<\/span><span class=\"token operator\">&#061;<\/span>stuff_chain.invoke<span class=\"token punctuation\">(<\/span>docs<span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token comment\">#print(res)<\/span><br \/>\nprint<span class=\"token punctuation\">(<\/span>res<span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;output_text&#034;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<h2>3&#xff64;\u57fa\u4e8eLCEL\u6784\u5efa\u7684Chains\u7684\u7c7b\u578b<\/h2>\n<p>\u524d\u9762\u8bb2\u89e3\u7684\u90fd\u662fLegacy Chains,\u4e0b\u9762\u770b\u6700\u65b0\u7684\u57fa\u4e8eLCEL\u6784\u5efa\u7684Chains&#xff61;<\/p>\n<li>create_sql_query_chain<\/li>\n<li>create_stuff_documents_chain<\/li>\n<li>create_openai_fn_runnable<\/li>\n<li>create_structured_output_runnable<\/li>\n<li>load_query_constructor_runnable<\/li>\n<li>create_history_aware_retriever<\/li>\n<li>create_retrieval_chain<\/li>\n<h3>3.1 create_sql_query_chain<\/h3>\n<p>create_sql_query_chain,SQL\u67e5\u8be2\u94fe,\u662f\u521b\u5efa\u751f\u6210SQL\u67e5\u8be2\u7684\u94fe,\u7528\u4e8e\u5c06\u81ea\u7136\u8bed\u8a00\u8f6c\u6362\u6210\u6570\u636e\u5e93 \u7684 SQL\u67e5\u8be2<\/p>\n<p>\u4e3e\u4f8b1:<br \/>\n\u8fd9\u91cc\u4f7f\u7528MySQL\u6570\u636e\u5e93,\u9700\u8981\u5b89\u88c5pymysql<\/p>\n<p>pip <span class=\"token function\">install<\/span> pymysql<\/p>\n<p>from langchain_community.utilities <span class=\"token function\">import<\/span> SQLDatabase<\/p>\n<p><span class=\"token comment\"># \u8fde\u63a5 MySQL \u6570\u636e\u5e93<\/span><br \/>\ndb_user <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;root&#034;<\/span><br \/>\ndb_password <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;abc123&#034;<\/span> <span class=\"token comment\">#\u6839\u636e\u81ea\u5df1\u7684\u5bc6\u7801\u586b\u5199<\/span><br \/>\ndb_host <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;127.0.0.1&#034;<\/span><br \/>\ndb_port <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;3306&#034;<\/span><br \/>\ndb_name <span class=\"token operator\">&#061;<\/span> <span class=\"token string\">&#034;atguigudb&#034;<\/span><\/p>\n<p><span class=\"token comment\"># mysql&#043;pymysql:\/\/\u7528\u6237\u540d:\u5bc6\u7801&#064;ip\u5730\u5740:\u7aef\u53e3\u53f7\/\u6570\u636e\u5e93\u540d<\/span><br \/>\ndb <span class=\"token operator\">&#061;<\/span> SQLDatabase.from_uri<span class=\"token punctuation\">(<\/span>f<span class=\"token string\">&#034;mysql&#043;pymysql:\/\/{db_user}:{db_password}&#064;{db_host}:{db_port}\/{db_name}&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\nprint<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u54ea\u79cd\u6570\u636e\u5e93:&#034;<\/span>, db.dialect<span class=\"token punctuation\">)<\/span><br \/>\nprint<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u83b7\u53d6\u6570\u636e\u8868:&#034;<\/span>, db.get_usable_table_names<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">))<\/span><br \/>\n<span class=\"token comment\"># \u6267\u884c\u67e5\u8be2<\/span><br \/>\nres <span class=\"token operator\">&#061;<\/span> db.run<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;SELECT count(*) FROM employees;&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\nprint<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;\u67e5\u8be2\u7ed3\u679c:&#034;<\/span>, res<span class=\"token punctuation\">)<\/span><\/p>\n<p>\u8fdb\u800c:<\/p>\n<p>from langchain_openai <span class=\"token function\">import<\/span> ChatOpenAI<br \/>\nfrom langchain.chains.sql_database.query <span class=\"token function\">import<\/span> create_sql_query_chain<\/p>\n<p><span class=\"token comment\"># \u521b\u5efa\u5927\u6a21\u578b\u5b9e\u4f8b<\/span><br \/>\nllm <span class=\"token operator\">&#061;<\/span> ChatOpenAI<span class=\"token punctuation\">(<\/span>model<span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;gpt-4o-mini&#034;<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\"># \u8c03\u7528Chain<\/span><br \/>\nchain <span class=\"token operator\">&#061;<\/span> create_sql_query_chain<span class=\"token punctuation\">(<\/span>llm<span class=\"token operator\">&#061;<\/span>llm, <span class=\"token assign-left variable\">db<\/span><span class=\"token operator\">&#061;<\/span>db<span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token comment\"># response &#061; chain.invoke({&#034;question&#034;: &#034;\u6570\u636e\u8868employees\u4e2d\u54ea\u4e2a\u5458\u5de5\u5de5\u8d44\u9ad8?&#034;})<\/span><br \/>\n<span class=\"token comment\"># print(response)<\/span><br \/>\n<span class=\"token comment\"># response &#061; chain.invoke({&#034;question&#034;: &#034;\u67e5\u8be2departments\u8868\u4e2d\u4e00\u5171\u6709\u591a\u5c11\u4e2a\u90e8\u95e8?&#034;})<\/span><br \/>\n<span class=\"token comment\"># print(response)<\/span><br \/>\n<span class=\"token comment\"># response &#061; chain.invoke({&#034;question&#034;: &#034;\u67e5\u8be2last_name\u53ebKing\u7684\u57fa\u672c\u60c5\u51b5&#034;})<\/span><br \/>\n<span class=\"token comment\"># print(response)<\/span><br \/>\n<span class=\"token comment\"># # \u9650\u5236\u4f7f\u7528\u7684\u8868<\/span><br \/>\nresponse <span class=\"token operator\">&#061;<\/span> chain.invoke<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">{<\/span><span class=\"token string\">&#034;question&#034;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token string\">&#034;\u4e00\u5171\u6709\u591a\u5c11\u4e2a\u5458\u5de5?&#034;<\/span>, <span class=\"token string\">&#034;table_names_to_use&#034;<\/span><span class=\"token builtin class-name\">:<\/span> <span class=\"token punctuation\">[<\/span><span class=\"token string\">&#034;employees&#034;<\/span><span class=\"token punctuation\">]<\/span><span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><br \/>\nprint<span class=\"token punctuation\">(<\/span>response<span class=\"token punctuation\">)<\/span><\/p>\n<h3>3.2 create_stuff_documents_chain(\u4e86\u89e3)<\/h3>\n<p>create_stuff_documents_chain\u7528\u4e8e\u5c06\u591a\u4e2a\u6587\u6863\u5185\u5bb9\u5408\u5e76\u6210\u5355\u4e2a\u957f\u6587\u672c\u7684\u94fe\u5f0f\u5de5\u5177,\u5e76\u4e00\u6b21\u6027\u4f20\u9012\u7ed9 LLM\u5904\u7406(\u800c\u4e0d\u662f\u5206\u591a\u6b21\u5904\u7406)&#xff61;<\/p>\n<p>\u9002\u5408\u573a\u666f:<\/p>\n<ul>\n<li>\u4fdd\u6301\u4e0a\u4e0b\u6587\u5b8c\u6574,\u9002\u5408\u9700\u8981\u5168\u5c40\u7406\u89e3\u6240\u6709\u6587\u6863\u5185\u5bb9\u7684\u4efb\u52a1(\u5982\u603b\u7ed3&#xff64;\u95ee\u7b54)<\/li>\n<li>\u9002\u5408\u5904\u7406 \u5c11\u91cf\/\u4e2d\u7b49\u957f\u5ea6\u6587\u6863 \u7684\u573a\u666f&#xff61;<\/li>\n<\/ul>\n<p>\u4e3e\u4f8b1:\u591a\u6587\u6863\u6458\u8981<\/p>\n<p>from langchain.chains.combine_documents <span class=\"token function\">import<\/span> create_stuff_documents_chain<br \/>\nfrom langchain_core.prompts <span class=\"token function\">import<\/span> PromptTemplate<br \/>\nfrom langchain_openai <span class=\"token function\">import<\/span> ChatOpenAI<br \/>\nfrom langchain_core.documents <span class=\"token function\">import<\/span> Document<\/p>\n<p><span class=\"token comment\"># \u5b9a\u4e49\u63d0\u793a\u8bcd\u6a21\u677f<\/span><br \/>\nprompt <span class=\"token operator\">&#061;<\/span> PromptTemplate.from_template<span class=\"token punctuation\">(<\/span><span class=\"token string\">&#034;&#034;<\/span>&#034;<br \/>\n\u5982\u4e0b\u6587\u6863<span class=\"token punctuation\">{<\/span>docs<span class=\"token punctuation\">}<\/span>\u4e2d\u8bf4,\u9999\u8549\u662f\u4ec0\u4e48\u989c\u8272\u7684?<br \/>\n<span class=\"token string\">&#034;&#034;<\/span>&#034;<span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\"># \u521b\u5efa\u94fe<\/span><br \/>\nllm <span class=\"token operator\">&#061;<\/span> ChatOpenAI<span class=\"token punctuation\">(<\/span>model<span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;gpt-4o-mini&#034;<\/span><span class=\"token punctuation\">)<\/span><br \/>\nchain <span class=\"token operator\">&#061;<\/span> create_stuff_documents_chain<span class=\"token punctuation\">(<\/span>llm, prompt, <span class=\"token assign-left variable\">document_variable_name<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;docs&#034;<\/span><span class=\"token punctuation\">)<\/span><\/p>\n<p><span class=\"token comment\"># \u6587\u6863\u8f93\u5165<\/span><br \/>\ndocs <span class=\"token operator\">&#061;<\/span> <span class=\"token punctuation\">[<\/span><br \/>\nDocument<span class=\"token punctuation\">(<\/span><br \/>\n<span class=\"token assign-left variable\">page_content<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;\u82f9\u679c,\u5b66\u540dMalus pumila Mill.,\u522b\u79f0\u897f\u6d0b\u82f9\u679c&#xff64;\u67f0,\u5c5e\u4e8e\u8537\u8587\u79d1\u82f9\u679c\u5c5e\u7684\u690d<br \/>\n\u7269&#xff61;\u82f9\u679c\u662f\u5168\u7403\u6700\u5e7f\u6cdb\u79cd\u690d\u548c\u9500\u552e\u7684\u6c34\u679c\u4e4b\u4e00,\u5177\u6709\u60a0\u4e45\u7684\u683d\u57f9\u5386\u53f2\u548c\u5e7f\u6cdb\u7684\u5206\u5e03\u8303\u56f4&#xff61;\u82f9\u679c\u7684\u539f\u59cb\u79cd<br \/>\n\u7fa4\u4e3b\u8981\u8d77\u6e90\u4e8e\u4e2d\u4e9a\u7684\u5929\u5c71\u5c71\u8109\u9644\u8fd1,\u5c24\u5176\u662f\u73b0\u4ee3\u54c8\u8428\u514b\u65af\u5766\u7684\u963f\u62c9\u6728\u56fe\u5730\u533a,\u63d0\u4f9b\u4e86\u6240\u6709\u73b0\u4ee3\u82f9\u679c\u54c1\u79cd<br \/>\n\u7684\u57fa\u56e0\u5e93&#xff61;\u82f9\u679c\u901a\u8fc7\u65e9\u671f\u7684\u8d38\u6613\u8def\u7ebf,\u5982\u4e1d\u7ef8\u4e4b\u8def,\u4ece\u4e2d\u4e9a\u5411\u5916\u6269\u6563\u5230\u5168\u7403\u5404\u5730&#xff61;&#034;<\/span><br \/>\n<span class=\"token punctuation\">)<\/span>,<br \/>\nDocument<span class=\"token punctuation\">(<\/span><br \/>\n<span class=\"token assign-left variable\">page_content<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;\u9999\u8549\u662f\u767d\u8272\u7684\u6c34\u679c,\u4e3b\u8981\u4ea7\u81ea\u70ed\u5e26\u5730\u533a&#xff61;&#034;<\/span><\/p>\n<p><span class=\"token punctuation\">)<\/span>,<br \/>\nDocument<span class=\"token punctuation\">(<\/span><br \/>\n<span class=\"token assign-left variable\">page_content<\/span><span class=\"token operator\">&#061;<\/span><span class=\"token string\">&#034;\u84dd\u8393\u662f\u84dd\u8272\u7684\u6d46\u679c,\u542b\u6709\u6297\u6c27\u5316\u7269\u8d28&#xff61;&#034;<\/span><\/p>\n<p><span class=\"token punctuation\">)<\/span><br \/>\n<span class=\"token punctuation\">]<\/span><br \/>\n<span class=\"token comment\"># \u6267\u884c\u6458\u8981<\/span><br \/>\nchain.invoke<span class=\"token punctuation\">(<\/span><span class=\"token punctuation\">{<\/span><span class=\"token string\">&#034;docs&#034;<\/span><span class=\"token builtin class-name\">:<\/span> docs<span class=\"token punctuation\">}<\/span><span class=\"token punctuation\">)<\/span><\/p>\n","protected":false},"excerpt":{"rendered":"<p>1&#xff64;Chains\u7684\u57fa\u672c\u4f7f\u7528<br \/>\n1.1 Chain\u7684\u57fa\u672c\u6982\u5ff5<br \/>\nChain:\u94fe,\u7528\u4e8e\u5c06\u591a\u4e2a\u7ec4\u4ef6(\u63d0\u793a\u6a21\u677f&#xff64;LLM\u6a21\u578b&#xff64;\u8bb0\u5fc6&#xff64;\u5de5\u5177\u7b49)\u8fde\u63a5\u8d77\u6765,\u5f62\u6210\u53ef\u590d\u7528\u7684\u5de5\u4f5c\u6d41,\u5b8c\u6210\u590d\u6742\u7684\u4efb\u52a1&#xff61;<br \/>\nChain \u7684\u6838\u5fc3\u601d\u60f3\u662f\u901a\u8fc7\u7ec4\u5408\u4e0d\u540c\u7684\u6a21\u5757\u5316\u5355\u5143,\u5b9e\u73b0\u6bd4\u5355\u4e00\u7ec4\u4ef6\u66f4\u5f3a\u5927\u7684\u529f\u80fd&#xff61;\u6bd4\u5982:<br \/>\n\u5c06LLM \u4e0ePrompt Template (\u63d0\u793a\u6a21\u677f)\u7ed3\u5408\u5c06LLM \u4e0e\u8f93\u51fa\u89e3\u6790\u5668\u7ed3\u5408\u5c06LLM \u4e0e\u5916\u90e8\u6570\u636e\u7ed3\u5408,\u4f8b\u5982\u7528\u4e8e\u95ee\u7b54\u5c06LLM \u4e0e<\/p>\n","protected":false},"author":2,"featured_media":110708,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1],"tags":[997,50],"topic":[],"class_list":["post-110713","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-server","tag-langchain","tag-50"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v20.3 - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>\u3010LangChain\u3011-\u7b2c03\u7ae0\uff1aLangChain\u4f7f\u7528\u4e4bChains - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/www.wsisp.com\/helps\/110713.html\" \/>\n<meta property=\"og:locale\" content=\"zh_CN\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"\u3010LangChain\u3011-\u7b2c03\u7ae0\uff1aLangChain\u4f7f\u7528\u4e4bChains - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"og:description\" content=\"1&#xff64;Chains\u7684\u57fa\u672c\u4f7f\u7528 1.1 Chain\u7684\u57fa\u672c\u6982\u5ff5 Chain:\u94fe,\u7528\u4e8e\u5c06\u591a\u4e2a\u7ec4\u4ef6(\u63d0\u793a\u6a21\u677f&#xff64;LLM\u6a21\u578b&#xff64;\u8bb0\u5fc6&#xff64;\u5de5\u5177\u7b49)\u8fde\u63a5\u8d77\u6765,\u5f62\u6210\u53ef\u590d\u7528\u7684\u5de5\u4f5c\u6d41,\u5b8c\u6210\u590d\u6742\u7684\u4efb\u52a1&#xff61; Chain \u7684\u6838\u5fc3\u601d\u60f3\u662f\u901a\u8fc7\u7ec4\u5408\u4e0d\u540c\u7684\u6a21\u5757\u5316\u5355\u5143,\u5b9e\u73b0\u6bd4\u5355\u4e00\u7ec4\u4ef6\u66f4\u5f3a\u5927\u7684\u529f\u80fd&#xff61;\u6bd4\u5982: \u5c06LLM \u4e0ePrompt Template (\u63d0\u793a\u6a21\u677f)\u7ed3\u5408\u5c06LLM \u4e0e\u8f93\u51fa\u89e3\u6790\u5668\u7ed3\u5408\u5c06LLM \u4e0e\u5916\u90e8\u6570\u636e\u7ed3\u5408,\u4f8b\u5982\u7528\u4e8e\u95ee\u7b54\u5c06LLM \u4e0e\" \/>\n<meta property=\"og:url\" content=\"https:\/\/www.wsisp.com\/helps\/110713.html\" \/>\n<meta property=\"og:site_name\" content=\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\" \/>\n<meta property=\"article:published_time\" content=\"2026-09-29T01:25:29+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/09\/20260929012527-6abb138787641.png\" \/>\n<meta name=\"author\" content=\"admin\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"\u4f5c\u8005\" \/>\n\t<meta name=\"twitter:data1\" content=\"admin\" \/>\n\t<meta name=\"twitter:label2\" content=\"\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4\" \/>\n\t<meta name=\"twitter:data2\" content=\"16 \u5206\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"WebPage\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/110713.html\",\"url\":\"https:\/\/www.wsisp.com\/helps\/110713.html\",\"name\":\"\u3010LangChain\u3011-\u7b2c03\u7ae0\uff1aLangChain\u4f7f\u7528\u4e4bChains - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"isPartOf\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\"},\"datePublished\":\"2026-09-29T01:25:29+00:00\",\"dateModified\":\"2026-09-29T01:25:29+00:00\",\"author\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\"},\"breadcrumb\":{\"@id\":\"https:\/\/www.wsisp.com\/helps\/110713.html#breadcrumb\"},\"inLanguage\":\"zh-Hans\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/www.wsisp.com\/helps\/110713.html\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/110713.html#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"\u9996\u9875\",\"item\":\"https:\/\/www.wsisp.com\/helps\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"\u3010LangChain\u3011----\u7b2c03\u7ae0\uff1aLangChain\u4f7f\u7528\u4e4bChains\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#website\",\"url\":\"https:\/\/www.wsisp.com\/helps\/\",\"name\":\"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3\",\"description\":\"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}\"},\"query-input\":\"required name=search_term_string\"}],\"inLanguage\":\"zh-Hans\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41\",\"name\":\"admin\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"zh-Hans\",\"@id\":\"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"contentUrl\":\"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery\",\"caption\":\"admin\"},\"sameAs\":[\"http:\/\/wp.wsisp.com\"],\"url\":\"https:\/\/www.wsisp.com\/helps\/author\/admin\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"\u3010LangChain\u3011-\u7b2c03\u7ae0\uff1aLangChain\u4f7f\u7528\u4e4bChains - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/www.wsisp.com\/helps\/110713.html","og_locale":"zh_CN","og_type":"article","og_title":"\u3010LangChain\u3011-\u7b2c03\u7ae0\uff1aLangChain\u4f7f\u7528\u4e4bChains - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","og_description":"1&#xff64;Chains\u7684\u57fa\u672c\u4f7f\u7528 1.1 Chain\u7684\u57fa\u672c\u6982\u5ff5 Chain:\u94fe,\u7528\u4e8e\u5c06\u591a\u4e2a\u7ec4\u4ef6(\u63d0\u793a\u6a21\u677f&#xff64;LLM\u6a21\u578b&#xff64;\u8bb0\u5fc6&#xff64;\u5de5\u5177\u7b49)\u8fde\u63a5\u8d77\u6765,\u5f62\u6210\u53ef\u590d\u7528\u7684\u5de5\u4f5c\u6d41,\u5b8c\u6210\u590d\u6742\u7684\u4efb\u52a1&#xff61; Chain \u7684\u6838\u5fc3\u601d\u60f3\u662f\u901a\u8fc7\u7ec4\u5408\u4e0d\u540c\u7684\u6a21\u5757\u5316\u5355\u5143,\u5b9e\u73b0\u6bd4\u5355\u4e00\u7ec4\u4ef6\u66f4\u5f3a\u5927\u7684\u529f\u80fd&#xff61;\u6bd4\u5982: \u5c06LLM \u4e0ePrompt Template (\u63d0\u793a\u6a21\u677f)\u7ed3\u5408\u5c06LLM \u4e0e\u8f93\u51fa\u89e3\u6790\u5668\u7ed3\u5408\u5c06LLM \u4e0e\u5916\u90e8\u6570\u636e\u7ed3\u5408,\u4f8b\u5982\u7528\u4e8e\u95ee\u7b54\u5c06LLM \u4e0e","og_url":"https:\/\/www.wsisp.com\/helps\/110713.html","og_site_name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","article_published_time":"2026-09-29T01:25:29+00:00","og_image":[{"url":"https:\/\/www.wsisp.com\/helps\/wp-content\/uploads\/2026\/09\/20260929012527-6abb138787641.png"}],"author":"admin","twitter_card":"summary_large_image","twitter_misc":{"\u4f5c\u8005":"admin","\u9884\u8ba1\u9605\u8bfb\u65f6\u95f4":"16 \u5206"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"WebPage","@id":"https:\/\/www.wsisp.com\/helps\/110713.html","url":"https:\/\/www.wsisp.com\/helps\/110713.html","name":"\u3010LangChain\u3011-\u7b2c03\u7ae0\uff1aLangChain\u4f7f\u7528\u4e4bChains - \u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","isPartOf":{"@id":"https:\/\/www.wsisp.com\/helps\/#website"},"datePublished":"2026-09-29T01:25:29+00:00","dateModified":"2026-09-29T01:25:29+00:00","author":{"@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41"},"breadcrumb":{"@id":"https:\/\/www.wsisp.com\/helps\/110713.html#breadcrumb"},"inLanguage":"zh-Hans","potentialAction":[{"@type":"ReadAction","target":["https:\/\/www.wsisp.com\/helps\/110713.html"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/www.wsisp.com\/helps\/110713.html#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"\u9996\u9875","item":"https:\/\/www.wsisp.com\/helps"},{"@type":"ListItem","position":2,"name":"\u3010LangChain\u3011----\u7b2c03\u7ae0\uff1aLangChain\u4f7f\u7528\u4e4bChains"}]},{"@type":"WebSite","@id":"https:\/\/www.wsisp.com\/helps\/#website","url":"https:\/\/www.wsisp.com\/helps\/","name":"\u7f51\u7855\u4e92\u8054\u5e2e\u52a9\u4e2d\u5fc3","description":"\u9999\u6e2f\u670d\u52a1\u5668_\u9999\u6e2f\u4e91\u670d\u52a1\u5668\u8d44\u8baf_\u670d\u52a1\u5668\u5e2e\u52a9\u6587\u6863_\u670d\u52a1\u5668\u6559\u7a0b","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/www.wsisp.com\/helps\/?s={search_term_string}"},"query-input":"required name=search_term_string"}],"inLanguage":"zh-Hans"},{"@type":"Person","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/358e386c577a3ab51c4493330a20ad41","name":"admin","image":{"@type":"ImageObject","inLanguage":"zh-Hans","@id":"https:\/\/www.wsisp.com\/helps\/#\/schema\/person\/image\/","url":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","contentUrl":"https:\/\/gravatar.wp-china-yes.net\/avatar\/?s=96&d=mystery","caption":"admin"},"sameAs":["http:\/\/wp.wsisp.com"],"url":"https:\/\/www.wsisp.com\/helps\/author\/admin"}]}},"_links":{"self":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/110713","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/comments?post=110713"}],"version-history":[{"count":0,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/posts\/110713\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media\/110708"}],"wp:attachment":[{"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/media?parent=110713"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/categories?post=110713"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/tags?post=110713"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/www.wsisp.com\/helps\/wp-json\/wp\/v2\/topic?post=110713"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}