{"id":14815,"date":"2023-09-22T13:35:59","date_gmt":"2023-09-22T05:35:59","guid":{"rendered":"https:\/\/aif.amtbbs.org\/?p=14815"},"modified":"2023-09-22T13:35:59","modified_gmt":"2023-09-22T05:35:59","slug":"langchain-%e7%9a%84%e9%97%ae%e9%a2%98%e6%89%80%e5%9c%a8","status":"publish","type":"post","link":"https:\/\/aif.amtbbs.org\/index.php\/2023\/09\/22\/14815\/","title":{"rendered":"LangChain \u7684\u95ee\u9898\u6240\u5728"},"content":{"rendered":"<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-14817\" src=\"https:\/\/aiforumimage.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2023\/09\/4ffce04d92a4d6cb21c1494cdfcd6dc1-10.jpg\" width=\"1080\" height=\"720\" alt=\"\u56fe\u7247\" srcset=\"https:\/\/aiforumimage.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2023\/09\/4ffce04d92a4d6cb21c1494cdfcd6dc1-10.jpg 1080w, https:\/\/aiforumimage.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2023\/09\/4ffce04d92a4d6cb21c1494cdfcd6dc1-10-300x200.jpg 300w, https:\/\/aiforumimage.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2023\/09\/4ffce04d92a4d6cb21c1494cdfcd6dc1-10-1024x683.jpg 1024w, https:\/\/aiforumimage.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2023\/09\/4ffce04d92a4d6cb21c1494cdfcd6dc1-10-768x512.jpg 768w\" sizes=\"auto, (max-width: 1080px) 100vw, 1080px\" \/><\/p>\n<section><\/section>\n<section><\/section>\n<section>\u6446\u8131\u7e41\u7410\uff0c\u8ffd\u6c42\u9ad8\u6548\u3002\u662f\u5f00\u53d1\u8005\u6c38\u8fdc\u8ffd\u6c42\u7684\u76ee\u6807\u3002LangChain\uff0c\u867d\u53f7\u79f0\u591a\u529f\u80fd\uff0c\u4f46\u96c6\u6210\u8fc7\u591a\u5f15\u53d1\u95ee\u9898\uff0c\u903c\u4eba\u53ea\u7528\u5176\u4ee3\u7801\u3002LangChain \u7ed9\u4eba\u5e26\u6765\u7684\u662f\uff0c\u4ee4\u4eba\u6cae\u4e27\u7684\u58f0\u97f3\uff0c\u8106\u5f31\u7684 Agent \u5de5\u4f5c\u6d41\uff0c\u6280\u672f\u503a\u52a1\u589e\u52a0\u3002\u7b80\u800c\u8a00\u4e4b\uff0c\u505a\u81ea\u5df1\u7684 Python \u5305\u6bd4\u5f3a\u884c\u6539\u9020 LangChain \u66f4\u597d\u3002\u672c\u6587\u4f5c\u8005\u5f00\u53d1\u4e86 simpleaichat\uff0c\u8f7b\u677e\u4e0e\u804a\u5929\u5e94\u7528\u4ea4\u4e92\uff0c\u6446\u8131\u590d\u6742\uff0c\u907f\u514d\u9501\u5b9a\u3002\u522b\u8bef\u89e3\uff0c\u672c\u6587\u5e76\u4e0d\u662f\u653b\u51fb LangChain\uff0c\u4f46\u66f4\u5b9e\u9645\u7684\u89e3\u51b3\u65b9\u6848\u662f\u91cd\u65b0\u5f00\u59cb\u3002\u6280\u672f\u590d\u6742\u6027\u4e0e\u6d41\u884c\u6027\u4e4b\u4e89\u662f\u6c38\u6052\u7684\uff0c\u65e9\u5e74\u662f React\uff0c\u4eca\u65e5\u662f ReAct\u3002<\/section>\n<p>\u5982\u679c\u4f60\u5728\u8fc7\u53bb\u51e0\u4e2a\u6708\u91cc\u4e00\u76f4\u5173\u6ce8\u4eba\u5de5\u667a\u80fd\u7684\u7206\u70b8\u5f0f\u7092\u4f5c\uff0c\u4f60\u53ef\u80fd\u5df2\u7ecf\u542c\u8bf4\u8fc7 LangChain\u3002\u7531 Harrison Chase \u5f00\u53d1\u7684 LangChain \u662f\u4e00\u4e2a\u7528\u4e8e\u4e0e OpenAI \u7684 GPT API\uff08\u540e\u6765\u6269\u5c55\u5230\u66f4\u591a\u6a21\u578b\uff09\u8fdb\u884c\u4eba\u5de5\u667a\u80fd\u6587\u672c\u751f\u6210\u4ea4\u4e92\u7684 Python \u548c JavaScript \u5e93\u3002\u66f4\u5177\u4f53\u5730\u8bf4\uff0c\u5b83\u662f 2022 \u5e74 10 \u6708\u53d1\u5e03\u7684\u8bba\u6587\u300aReAct\uff1a\u5728\u8bed\u8a00\u6a21\u578b\u4e2d\u534f\u540c\u63a8\u7406\u548c\u884c\u52a8\u300b\uff08ReAct: Synergizing Reasoning and Acting in Language Models\uff09\u7684\u5b9e\u73b0\uff0c\u4fd7\u79f0\u4e3a ReAct \u8bba\u6587\uff0c\u8be5\u8bba\u6587\u6f14\u793a\u4e86\u4e00\u79cd\u63d0\u793a\u6280\u672f\uff0c\u4f7f\u6a21\u578b\u80fd\u591f\u901a\u8fc7 \u201c\u601d\u7ef4\u94fe\u201d \u8fdb\u884c \u201c\u63a8\u7406\u201d\uff08reason\uff09\uff0c\u5e76\u80fd\u591f\u901a\u8fc7\u4f7f\u7528\u9884\u5b9a\u4e49\u5de5\u5177\u96c6\u4e2d\u7684\u5de5\u5177\uff08\u5982\u80fd\u591f\u641c\u7d22\u4e92\u8054\u7f51\uff09\u6765 \u201c\u884c\u52a8\u201d\uff08act\uff09\u3002\u5b9e\u9a8c\u8bc1\u660e\uff0c\u8fd9\u79cd\u7ec4\u5408\u6781\u5927\u5730\u63d0\u9ad8\u4e86\u8f93\u51fa\u6587\u672c\u8d28\u91cf\uff0c\u5e76\u8d4b\u4e88\u5927\u578b\u8bed\u8a00\u6a21\u578b\u6b63\u786e\u89e3\u51b3\u95ee\u9898\u7684\u80fd\u529b\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-14818\" src=\"https:\/\/aiforumimage.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2023\/09\/4ffce04d92a4d6cb21c1494cdfcd6dc1-11.jpg\" width=\"1032\" height=\"866\" alt=\"\u56fe\u7247\" srcset=\"https:\/\/aiforumimage.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2023\/09\/4ffce04d92a4d6cb21c1494cdfcd6dc1-11.jpg 1032w, https:\/\/aiforumimage.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2023\/09\/4ffce04d92a4d6cb21c1494cdfcd6dc1-11-300x252.jpg 300w, https:\/\/aiforumimage.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2023\/09\/4ffce04d92a4d6cb21c1494cdfcd6dc1-11-1024x859.jpg 1024w, https:\/\/aiforumimage.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2023\/09\/4ffce04d92a4d6cb21c1494cdfcd6dc1-11-768x644.jpg 768w\" sizes=\"auto, (max-width: 1032px) 100vw, 1032px\" \/><\/p>\n<section><em>(1d) ReAct\uff08Reason+Act\uff09<\/em><\/p>\n<p><em>\u601d\u8003 1\uff1a\u6211\u9700\u8981\u641c\u7d22 \u201cApple Remote\u201d \u5e76\u627e\u5230\u5b83\u6700\u521d\u8bbe\u8ba1\u7528\u6765\u4e92\u52a8\u7684\u7a0b\u5e8f\u3002<\/em><\/p>\n<p><em>\u884c\u52a8 1\uff1a\u641c\u7d22 [Apple Remote]<\/em><\/p>\n<p><em>\u89c2\u5bdf 1\uff1aApple Remote \u662f\u7531\u82f9\u679c\u4e8e 2005 \u5e74 10 \u6708\u63a8\u51fa\u7684\u9065\u63a7\u5668\u3002\u6700\u521d\u8bbe\u8ba1\u7528\u4e8e\u63a7\u5236 Front Row \u5a92\u4f53\u4e2d\u5fc3\u7a0b\u5e8f\u3002<\/em><\/p>\n<p><em>\u601d\u8003 2\uff1aApple Remote \u6700\u521d\u8bbe\u8ba1\u7528\u4e8e\u63a7\u5236 Front Row \u5a92\u4f53\u4e2d\u5fc3\u7a0b\u5e8f\u3002\u6211\u9700\u8981\u641c\u7d22\u4e0b\u4e00\u4e2a Front Row \u5e76\u627e\u51fa\u54ea\u4e2a\u5176\u4ed6\u8bbe\u5907\u53ef\u4ee5\u63a7\u5236\u5b83\u3002<\/em><\/p>\n<p><em>\u884c\u52a8 2\uff1a\u641c\u7d22 [Front Row]<\/em><\/p>\n<p><em>\u89c2\u5bdf 2\uff1a\u672a\u627e\u5230 [Front Row]\u3002\u7c7b\u4f3c\u9879\uff1a[\u2018Front Row Seat to Earth\u2019\uff0c\u2018Front Row Motorsports\u2019\uff0c\u2018Front Row (software)\u2019\u2026]<\/em><\/p>\n<p><em>\u601d\u8003 3\uff1a\u672a\u627e\u5230 Front Row\u3002\u6211\u9700\u8981\u641c\u7d22 Front Row\uff08\u8f6f\u4ef6\uff09\u3002<\/em><\/p>\n<p><em>\u884c\u52a8 3\uff1a\u641c\u7d22 [Front Row\uff08\u8f6f\u4ef6\uff09]<\/em><\/p>\n<p><em>\u89c2\u5bdf 3\uff1aFront Row \u662f\u4e00\u6b3e\u5df2\u505c\u7528\u7684\u5a92\u4f53\u4e2d\u5fc3\u8f6f\u4ef6\u3002<\/em><\/p>\n<p><em>\u601d\u8003 4\uff1aFront Row\uff08\u8f6f\u4ef6\uff09\u7531 Apple Remote \u6216\u952e\u76d8\u529f\u80fd\u952e\u63a7\u5236\u3002\u6240\u4ee5\u7b54\u6848\u662f\u952e\u76d8\u529f\u80fd\u952e\u3002<\/em><\/p>\n<p><em>\u884c\u52a8 4\uff1a\u5b8c\u6210 [\u952e\u76d8\u529f\u80fd\u952e]<\/em><\/p>\n<\/section>\n<p>React \u8bba\u6587\u4e2d\u7684 ReAct \u6d41\u7a0b\u793a\u4f8b<\/p>\n<p>\u57fa\u4e8e LangChain \u63a8\u5e7f\u7684 ReAct \u5de5\u4f5c\u6d41\u7a0b\u5728 InstructGPT\/text-davinci-003 \u65b9\u9762\u8868\u73b0\u5c24\u4e3a\u51fa\u8272\uff0c\u5c3d\u7ba1\u5728\u5c0f\u578b\u9879\u76ee\u4e2d\u4f7f\u7528\u4ee3\u4ef7\u9ad8\u6602\u4e14\u4e0d\u6613\u64cd\u4f5c\u3002\u5728 2023 \u5e74 3 \u6708\uff0c\u968f\u7740 ChatGPT API \u7684\u4f7f\u7528\u56e0\u5176\u6781\u4e3a\u4fbf\u5b9c\u7684 API \u800c\u5e7f\u53d7\u6b22\u8fce\uff0c\u6b63\u5982\u6211\u51c6\u786e\u9884\u6d4b\u7684\u90a3\u6837\uff0cLangChain \u7684\u4f7f\u7528\u4e5f\u8fc5\u901f\u6269\u5927\uff0c\u4ee5\u81f3\u4e8e LangChain \u80fd\u591f\u5728\u6ca1\u6709\u4efb\u4f55\u6536\u5165\u6216\u4efb\u4f55\u660e\u663e\u7684\u6536\u5165\u751f\u6210\u8ba1\u5212\u7684\u60c5\u51b5\u4e0b\uff0c\u6210\u529f\u7b79\u96c6\u5230\u4e86 1000 \u4e07\u7f8e\u5143\u7684\u79cd\u5b50\u8f6e\u878d\u8d44\uff0c\u4ee5\u53ca\u5728\u4f30\u503c 2 \u4ebf\u7f8e\u5143\u7684 A \u8f6e\u878d\u8d44\u4e2d\u53c8\u878d\u8d44\u4e86 2000 \u4e07\u81f3 2500 \u4e07\u7f8e\u5143\u3002<\/p>\n<p>\u800c\u8fd9\u6b63\u662f\u6211\u4e0e LangChain \u7684\u4e2a\u4eba\u7ecf\u5386\u5f00\u59cb\u7684\u5730\u65b9\u3002\u5728\u6211\u5728 BuzzFeed \u7684\u5de5\u4f5c\u4e2d\uff0c\u6211\u88ab\u8981\u6c42\u4e3a Tasty \u54c1\u724c\u521b\u5efa\u4e00\u4e2a\u57fa\u4e8e ChatGPT \u7684\u804a\u5929\u673a\u5668\u4eba\uff08\u540e\u6765\u4f5c\u4e3a Tasty iOS \u5e94\u7528\u7a0b\u5e8f\u4e2d\u7684 Botatouille \u53d1\u5e03\uff09\uff0c\u8be5\u673a\u5668\u4eba\u53ef\u4ee5\u4e0e\u7528\u6237\u4ea4\u6d41\u5e76\u63d0\u4f9b\u76f8\u5173\u7684\u98df\u8c31\u3002\u6e90\u98df\u8c31\u88ab\u8f6c\u6362\u4e3a\u5d4c\u5165\u5f0f\u8868\u793a\u5e76\u4fdd\u5b58\u5728\u5411\u91cf\u5b58\u50a8\u4e2d\uff1a\u4f8b\u5982\uff0c\u5982\u679c\u7528\u6237\u8be2\u95ee\u201c\u5065\u5eb7\u98df\u54c1\u201d\uff0c\u5219\u67e5\u8be2\u4f1a\u88ab\u8f6c\u6362\u4e3a\u5d4c\u5165\u5f0f\u8868\u793a\uff0c\u5e76\u6267\u884c\u8fd1\u4f3c\u6700\u8fd1\u90bb\u641c\u7d22\uff0c\u4ee5\u627e\u5230\u4e0e\u5d4c\u5165\u5f0f\u67e5\u8be2\u7c7b\u4f3c\u7684\u98df\u8c31\uff0c\u7136\u540e\u5c06\u5176\u4f5c\u4e3a\u9644\u52a0\u4e0a\u4e0b\u6587\u63d0\u4f9b\u7ed9 ChatGPT\uff0c\u968f\u540e\u53ef\u663e\u793a\u7ed9\u7528\u6237\u3002\u8fd9\u79cd\u65b9\u6cd5\u901a\u5e38\u88ab\u79f0\u4e3a\u68c0\u7d22\u589e\u5f3a\u751f\u6210\u3002<\/p>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-14820\" src=\"https:\/\/aiforumimage.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2023\/09\/4ffce04d92a4d6cb21c1494cdfcd6dc1-12.jpg\" width=\"1080\" height=\"656\" alt=\"\u56fe\u7247\" srcset=\"https:\/\/aiforumimage.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2023\/09\/4ffce04d92a4d6cb21c1494cdfcd6dc1-12.jpg 1080w, https:\/\/aiforumimage.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2023\/09\/4ffce04d92a4d6cb21c1494cdfcd6dc1-12-300x182.jpg 300w, https:\/\/aiforumimage.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2023\/09\/4ffce04d92a4d6cb21c1494cdfcd6dc1-12-1024x622.jpg 1024w, https:\/\/aiforumimage.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2023\/09\/4ffce04d92a4d6cb21c1494cdfcd6dc1-12-768x466.jpg 768w\" sizes=\"auto, (max-width: 1080px) 100vw, 1080px\" \/><\/p>\n<p>\u4f7f\u7528\u68c0\u7d22\u589e\u5f3a\u751f\u6210\u7684\u804a\u5929\u673a\u5668\u4eba\u7684\u793a\u4f8b\u67b6\u6784\u3002\u6765\u6e90\uff1aJoseph Haaga<\/p>\n<p>LangChain \u663e\u7136\u662f RAG \u7684\u9996\u9009\u5de5\u5177\uff0c\u6240\u4ee5\u6211\u8ba4\u4e3a\u73b0\u5728\u662f\u5b66\u4e60\u5b83\u7684\u7edd\u4f73\u65f6\u673a\u3002\u6211\u82b1\u4e86\u4e00\u4e9b\u65f6\u95f4\u9605\u8bfb LangChain \u76f8\u5f53\u8be6\u5c3d\u7684\u6587\u6863\uff0c\u4ee5\u66f4\u597d\u5730\u7406\u89e3\u5982\u4f55\u6700\u597d\u5730\u5229\u7528\u5b83\uff1a\u7ecf\u8fc7\u4e00\u5468\u7684\u7814\u7a76\uff0c\u6211\u4e00\u65e0\u6240\u83b7\u3002\u8fd0\u884c LangChain \u793a\u4f8b\u6f14\u793a\u786e\u5b9e\u6709\u6548\uff0c\u4f46\u662f\u4efb\u4f55\u8bd5\u56fe\u8c03\u6574\u5b83\u4eec\u4ee5\u9002\u5e94\u98df\u8c31\u804a\u5929\u673a\u5668\u4eba\u7ea6\u675f\u7684\u5c1d\u8bd5\u90fd\u4f1a\u5bfc\u81f4\u5b83\u4eec\u5d29\u6e83\u3002\u5728\u89e3\u51b3\u4e86\u9519\u8bef\u540e\uff0c\u804a\u5929\u5bf9\u8bdd\u7684\u6574\u4f53\u8d28\u91cf\u5f88\u5dee\u4e14\u65e0\u8da3\uff0c\u7ecf\u8fc7\u6fc0\u70c8\u7684\u8c03\u8bd5\uff0c\u6211\u6ca1\u6709\u627e\u5230\u89e3\u51b3\u65b9\u6848\u3002\u6700\u7ec8\uff0c\u6211\u9677\u5165\u4e86\u5b58\u5728\u5371\u673a\uff1a\u5f53\u5f88\u591a\u5176\u4ed6\u673a\u5668\u5b66\u4e60\u5de5\u7a0b\u5e08\u90fd\u80fd\u7406\u89e3 LangChain\uff0c\u800c\u6211\u5374\u4e0d\u80fd\uff0c\u6211\u662f\u5426\u662f\u4e00\u4e2a\u6beb\u65e0\u4ef7\u503c\u7684\u673a\u5668\u5b66\u4e60\u5de5\u7a0b\u5e08\u5462\uff1f\u6211\u4eec\u56de\u5230\u4e86\u8f83\u4f4e\u5c42\u6b21\u7684 ReAct \u6d41\u7a0b\uff0c\u8fd9\u7acb\u5373\u5728\u5bf9\u8bdd\u8d28\u91cf\u548c\u51c6\u786e\u6027\u65b9\u9762\u80dc\u8fc7\u4e86\u6211\u5728 LangChain \u4e2d\u7684\u5b9e\u73b0\u3002<\/p>\n<p>\u603b\u4e4b\uff0c\u6211\u6d6a\u8d39\u4e86\u4e00\u4e2a\u6708\u7684\u65f6\u95f4\u5b66\u4e60\u548c\u6d4b\u8bd5 LangChain\uff0c\u6700\u5927\u7684\u6536\u83b7\u662f\u70ed\u95e8\u7684\u4eba\u5de5\u667a\u80fd\u5e94\u7528\u53ef\u80fd\u5e76\u4e0d\u4e00\u5b9a\u503c\u5f97\u7092\u4f5c\u3002\u5728\u4e00\u4e2a Hacker News \u7684\u5e16\u5b50\u4e2d\uff0c\u6211\u770b\u5230\u6709\u4eba\u7528 100 \u884c\u4ee3\u7801\u91cd\u65b0\u5b9e\u73b0\u4e86 LangChain\uff0c\u5927\u591a\u6570\u8bc4\u8bba\u90fd\u5728\u62b1\u6028 LangChain\uff1a<\/p>\n<section><em>loveparade\uff1a<\/em><\/p>\n<p><em>\u96be\u9053\u6211\u662f\u552f\u4e00\u4e00\u4e2a\u5bf9 LangChain \u7684\u4ef7\u503c\u4e3b\u5f20\u6301\u6000\u7591\u6001\u5ea6\u7684\u4eba\u5417\uff1f\u5176\u4e2d 99% \u90fd\u662f\u5916\u90e8\u5de5\u5177\u7684\u63a5\u53e3\u5b9a\u4e49\u548c\u5b9e\u73b0\uff0c\u5176\u4e2d\u5927\u591a\u6570\u90fd\u975e\u5e38\u76f4\u89c2\u3002\u6211\u53ef\u4ee5\u5728\u4e0d\u5230\u4e00\u4e2a\u5c0f\u65f6\u5185\u4e3a\u6211\u7684\u5e94\u7528\u7f16\u5199\u96c6\u6210\u3002\u4e3a\u4ec0\u4e48\u8981\u5f15\u5165\u4e00\u4e2a\u5145\u6ee1\u4e3b\u89c2\u770b\u6cd5\u7684\u5916\u90e8\u6846\u67b6\u5462\uff1f\u8fd9\u5bf9\u6211\u6765\u8bf4\u6709\u70b9\u50cf npm \u7684\u201cleft-pad\u201d\u3002\u6bcf\u4e2a\u4eba\u90fd\u5728\u4f7f\u7528\u5b83\uff0c\u56e0\u4e3a\u5b83\u4f3c\u4e4e\u5f88\u53d7\u6b22\u8fce\uff0c\u800c\u4e0d\u662f\u56e0\u4e3a\u4ed6\u4eec\u9700\u8981\u5b83\u3002<\/em><\/p>\n<p><em>crazyedgar\uff1a<\/em><\/p>\n<p><em>\u5bf9\u6211\u4eec\u6765\u8bf4\uff0cLangChain \u5b9e\u9645\u4e0a\u5f15\u53d1\u4e86\u6bd4\u89e3\u51b3\u7684\u95ee\u9898\u66f4\u591a\u7684\u95ee\u9898\u3002\u6211\u4eec\u7684\u751f\u4ea7\u7cfb\u7edf\u5728\u8fd0\u884c\u826f\u597d\u7684\u51e0\u5468\u540e\u7a81\u7136\u5f00\u59cb\u9891\u7e41\u5931\u8d25\uff08\u8d85\u8fc7 30% \u7684\u8bf7\u6c42\uff09\u3002\u7ecf\u8fc7\u8c03\u67e5\uff0c\u4f3c\u4e4e LangChain \u4e3a\u6bcf\u4e2a\u8bf7\u6c42\u8bbe\u7f6e\u4e86\u9ed8\u8ba4\u7684 60 \u79d2\u8d85\u65f6\u3002\u800c\u8fd9\u79cd\u884c\u4e3a\u6ca1\u6709\u8bb0\u5f55\u5728\u6587\u6863\u4e2d\uff01LangChain \u6240\u505a\u51fa\u7684\u8fd9\u4e9b\u4e0d\u660e\u667a\u51b3\u7b56\u65e0\u5904\u4e0d\u5728\uff0c\u5e76\u4e14\u6700\u7ec8\u90fd\u4f1a\u7ed9\u4f60\u5e26\u6765\u9ebb\u70e6\u3002\u6700\u540e\uff0c\u6211\u4eec\u7528\u666e\u901a\u7684\u8bf7\u6c42\u5ba2\u6237\u7aef\u66ff\u6362\u4e86\u6240\u6709\u5185\u5bb9\u3002\u7edd\u5bf9\u4e0d\u5efa\u8bae\u5728\u4e00\u4e2a\u63d0\u4f9b\u975e\u5e38\u6709\u9650\u4ef7\u503c\u540c\u65f6\u53c8\u4ece\u4f60\u90a3\u91cc\u9690\u85cf\u4e86\u5927\u91cf\u7ec6\u8282\u548c\u51b3\u7b56\u7684\u5e93\u4e0a\u6784\u5efa\u7cfb\u7edf\u3002<\/em><\/p>\n<p><em>Spivak\uff1a<\/em><\/p>\n<p><em>\u7136\u800c\uff0cLangChain \u7edd\u5bf9\u662f\u5b8c\u7f8e\u7684\uff0c\u5b83\u7cdf\u7cd5\u5230\u4f1a\u8ba9\u4f60\u7eaf\u7cb9\u51fa\u4e8e\u6cae\u4e27\u800c\u5199\u51fa\u66f4\u597d\u7684\u4e1c\u897f\uff0c\u4f46\u5b83\u53c8\u7ed9\u4e86\u4f60\u8db3\u591f\u597d\u7684\u60f3\u6cd5\u548c\u7ebf\u7d22\u6765\u771f\u6b63\u505a\u5230\u8fd9\u4e00\u70b9\u3002\u5b83\u53ef\u80fd\u662f\u201c\u5b9e\u9645\u4f7f\u7528 llms\u201d\u7684\u6700\u4f73\u5165\u53e3\uff0c\u56e0\u4e3a\u5b83\u521a\u597d\u6ee1\u8db3\u4e86\u5f00\u53d1\u8005\u7684\u9700\u6c42\u3002<\/em><\/p>\n<p><em>LangChain \u7684\u95ee\u9898\u5728\u4e8e\u5b83\u4f7f\u5f97\u672c\u6765\u7b80\u5355\u7684\u4e8b\u60c5\u76f8\u5bf9\u590d\u6742\u5316\uff0c\u7531\u6b64\u5e26\u6765\u7684\u4e0d\u5fc5\u8981\u590d\u6742\u6027\u5bfc\u81f4\u4e86\u4e00\u79cd\u90e8\u843d\u4e3b\u4e49\uff0c\u8fd9\u5bf9\u6574\u4e2a\u65b0\u5174\u7684\u4eba\u5de5\u667a\u80fd\u751f\u6001\u7cfb\u7edf\u9020\u6210\u4e86\u4f24\u5bb3\u3002\u5982\u679c\u4f60\u662f\u4e00\u4e2a\u60f3\u8981\u5b66\u4e60\u5982\u4f55\u4e0e ChatGPT \u8fdb\u884c\u4ea4\u4e92\u7684\u65b0\u624b\uff0c\u7edd\u5bf9\u4e0d\u8981\u4ece LangChain \u5f00\u59cb\u3002<\/em><\/p>\n<\/section>\n<section>\u5728 LangChain \u4e2d\u7684 \u201cHello World\u201d<\/section>\n<section>\uff08\u6216\u66f4\u51c6\u786e\u5730\u8bf4\uff0c\u201cHell World\u201d\uff09<\/section>\n<p>LangChain \u7684\u5feb\u901f\u5165\u95e8\u6307\u5357\u59cb\u4e8e\u4e00\u4e2a\u5173\u4e8e\u5982\u4f55\u7b80\u5355\u5730\u4ece Python \u4e0e LLMs\/ChatGPT \u8fdb\u884c\u4ea4\u4e92\u7684\u8ff7\u4f60\u6559\u7a0b\u3002\u4f8b\u5982\uff0c\u8981\u521b\u5efa\u4e00\u4e2a\u80fd\u591f\u4ece\u82f1\u6587\u7ffb\u8bd1\u6210\u6cd5\u6587\u7684\u673a\u5668\u4eba\uff1a<\/p>\n<pre><code>from langchain.chat_models import ChatOpenAI\r\nfrom langchain.schema import (\r\nAIMessage,\r\nHumanMessage,\r\nSystemMessage\r\n)\r\n\r\nchat = ChatOpenAI(temperature=0)\r\nchat.predict_messages([HumanMessage(content=\"Translate this sentence from English to French. I love programming.\")])\r\n# AIMessage(content=\"J'adore la programmation.\", additional_kwargs={}, example=False)\r\n<\/code><\/pre>\n<p>\u4f7f\u7528 OpenAI \u5b98\u65b9\u7684 Python \u5e93\u8fdb\u884c ChatGPT \u7684\u7b49\u6548\u4ee3\u7801\uff1a<\/p>\n<pre><code>import openai\r\n\r\nmessages = [{\"role\": \"user\", \"content\": \"Translate this sentence from English to French. I love programming.\"}]\r\n\r\nresponse = openai.ChatCompletion.create(model=\"gpt-3.5-turbo\", messages=messages, temperature=0)\r\nresponse[\"choices\"][0][\"message\"][\"content\"]\r\n# \"J'adore la programmation.\"\r\n<\/code><\/pre>\n<p>LangChain \u7684\u4ee3\u7801\u91cf\u4e0e\u4ec5\u4f7f\u7528\u5b98\u65b9\u7684 openai \u5e93\u76f8\u5f53\uff0c\u4f46 LangChain \u5374\u878d\u5408\u4e86\u66f4\u591a\u7684\u5bf9\u8c61\u7c7b\uff0c\u5374\u6ca1\u6709\u660e\u663e\u7684\u4ee3\u7801\u4f18\u52bf\u3002<\/p>\n<p>\u63d0\u793a\u6a21\u677f\u7684\u793a\u4f8b\u63ed\u793a\u4e86 LangChain \u5de5\u4f5c\u539f\u7406\u7684\u6838\u5fc3\u90e8\u5206\uff1a<\/p>\n<pre><code>from langchain.prompts.chat import (\r\nChatPromptTemplate,\r\nSystemMessagePromptTemplate,\r\nHumanMessagePromptTemplate,\r\n)\r\n\r\ntemplate = \"You are a helpful assistant that translates {input_language} to {output_language}.\"\r\nsystem_message_prompt = SystemMessagePromptTemplate.from_template(template)\r\nhuman_template = \"{text}\"\r\nhuman_message_prompt = HumanMessagePromptTemplate.from_template(human_template)\r\n\r\nchat_prompt = ChatPromptTemplate.from_messages([system_message_prompt, human_message_prompt])\r\n\r\nchat_prompt.format_messages(input_language=\"English\", output_language=\"French\", text=\"I love programming.\")\r\n<\/code><\/pre>\n<p>LangChain \u6240\u5ba3\u4f20\u7684\u63d0\u793a\u5de5\u7a0b\u5b9e\u9645\u4e0a\u53ea\u662f f-strings\uff0c\u8fd9\u662f\u73b0\u4ee3 Python \u5b89\u88c5\u7684\u5e38\u89c1\u7279\u6027\uff0c\u4f46\u591a\u4e86\u4e00\u4e9b\u6b65\u9aa4\u3002\u4e3a\u4ec0\u4e48\u6211\u4eec\u9700\u8981\u4f7f\u7528\u8fd9\u4e9b PromptTemplates \u6765\u505a\u540c\u6837\u7684\u4e8b\u60c5\u5462\uff1f<\/p>\n<p>\u4f46\u6211\u4eec\u771f\u6b63\u60f3\u8981\u77e5\u9053\u7684\u662f\u5982\u4f55\u521b\u5efa Agents\uff0c\u5b83\u4eec\u5305\u542b\u4e86\u6211\u4eec\u8feb\u5207\u9700\u8981\u7684 ReAct \u5de5\u4f5c\u6d41\u3002\u5e78\u8fd0\u7684\u662f\uff0c\u6709\u4e00\u4e2a\u6f14\u793a\u53ef\u4ee5\u505a\u5230\u8fd9\u4e00\u70b9\uff0c\u5b83\u5229\u7528\u4e86 SerpApi \u548c\u53e6\u4e00\u4e2a\u7528\u4e8e\u6570\u5b66\u8ba1\u7b97\u7684\u5de5\u5177\uff0c\u5c55\u793a\u4e86 LangChain \u5982\u4f55\u5728\u4e0a\u4e0b\u6587\u4e2d\u533a\u5206\u5e76\u4f7f\u7528\u4e24\u79cd\u4e0d\u540c\u7684\u5de5\u5177\uff1a<\/p>\n<pre><code>from langchain.agents import load_tools\r\nfrom langchain.agents import initialize_agent\r\nfrom langchain.agents import AgentType\r\nfrom langchain.chat_models import ChatOpenAI\r\nfrom langchain.llms import OpenAI\r\n\r\n# First, let's load the language model we're going to use to control the agent.\r\nchat = ChatOpenAI(temperature=0)\r\n\r\n# Next, let's load some tools to use. Note that the `llm-math` tool uses an LLM, so we need to pass that in.\r\nllm = OpenAI(temperature=0)\r\ntools = load_tools([\"serpapi\", \"llm-math\"], llm=llm)\r\n\r\n# Finally, let's initialize an agent with the tools, the language model, and the type of agent we want to use.\r\nagent = initialize_agent(tools, chat, agent=AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION, verbose=True)\r\n\r\n# Now let's test it out!\r\nagent.run(\"Who is Olivia Wilde's boyfriend? What is his current age raised to the 0.23 power?\")\r\n<\/code><\/pre>\n<p>\u8fd9\u4e9b\u4e2a\u522b\u5de5\u5177\u662f\u5982\u4f55\u5de5\u4f5c\u7684\uff1f\u800c AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION \u53c8\u662f\u4ec0\u4e48\uff1fagent.run () \u7684\u7ed3\u679c\u8f93\u51fa\uff08\u4ec5\u5728 verbose=True \u65f6\u5b58\u5728\uff09\u66f4\u6709\u5e2e\u52a9\u3002<\/p>\n<pre><code>&gt; Entering new AgentExecutor chain...\r\nThought: I need to use a search engine to find Olivia Wilde's boyfriend and a calculator to raise his age to the 0.23 power.\r\nAction:\r\n{\r\n\"action\": \"Search\",\r\n\"action_input\": \"Olivia Wilde boyfriend\"\r\n}\r\nObservation: Sudeikis and Wilde's relationship ended in November 2020. Wilde was publicly served with court documents regarding child custody while she was presenting Don't Worry Darling at CinemaCon 2022. In January 2021, Wilde began dating singer Harry Styles after meeting during the filming of Don't Worry Darling.\r\nThought:I need to use a search engine to find Harry Styles' current age.\r\nAction:\r\n{\r\n\"action\": \"Search\",\r\n\"action_input\": \"Harry Styles age\"\r\n}\r\nObservation: 29 years\r\nThought:Now I need to calculate 29 raised to the 0.23 power.\r\nAction:\r\n{\r\n\"action\": \"Calculator\",\r\n\"action_input\": \"29^0.23\"\r\n}\r\nObservation: Answer: 2.169459462491557\r\nThought:I now know the final answer.\r\nFinal Answer: 2.169459462491557\r\n&gt; Finished chain.\r\n'2.169459462491557'\r\n<\/code><\/pre>\n<p>\u6587\u6863\u5e76\u6ca1\u6709\u8bf4\u660e\u5f97\u5f88\u6e05\u695a\uff0c\u4f46\u5728\u6bcf\u4e2a Thought\/Action\/Observation \u4e2d\uff0c\u90fd\u4f7f\u7528\u4e86\u81ea\u5df1\u7684 API \u8c03\u7528\u5230 OpenAI\uff0c\u56e0\u6b64\u8fd9\u4e2a\u94fe\u6761\u6bd4\u4f60\u60f3\u8c61\u7684\u8981\u6162\u3002\u53e6\u5916\uff0c\u4e3a\u4ec0\u4e48\u6bcf\u4e2a\u52a8\u4f5c\u90fd\u662f\u4e00\u4e2a dist\uff1f\u8fd9\u4e2a\u95ee\u9898\u7684\u7b54\u6848\u7a0d\u540e\u4f1a\u89e3\u91ca\uff0c\u800c\u4e14\u76f8\u5f53\u5e7c\u7a1a\u53ef\u7b11\u3002<\/p>\n<p>\u6700\u540e\uff0cLangChain \u5982\u4f55\u5b58\u50a8\u5230\u76ee\u524d\u4e3a\u6b62\u7684\u5bf9\u8bdd\uff1f<\/p>\n<pre><code>from langchain.prompts import (\r\nChatPromptTemplate,\r\nMessagesPlaceholder,\r\nSystemMessagePromptTemplate,\r\nHumanMessagePromptTemplate\r\n)\r\nfrom langchain.chains import ConversationChain\r\nfrom langchain.chat_models import ChatOpenAI\r\nfrom langchain.memory import ConversationBufferMemory\r\n\r\nprompt = ChatPromptTemplate.from_messages([\r\nSystemMessagePromptTemplate.from_template(\r\n\"The following is a friendly conversation between a human and an AI. The AI is talkative and \"\r\n\"provides lots of specific details from its context. If the AI does not know the answer to a \"\r\n\"question, it truthfully says it does not know.\"\r\n),\r\nMessagesPlaceholder(variable_name=\"history\"),\r\nHumanMessagePromptTemplate.from_template(\"{input}\")\r\n])\r\n\r\nllm = ChatOpenAI(temperature=0)\r\nmemory = ConversationBufferMemory(return_messages=True)\r\nconversation = ConversationChain(memory=memory, prompt=prompt, llm=llm)\r\n\r\nconversation.predict(input=\"Hi there!\")\r\n# 'Hello! How can I assist you today?'\r\n<\/code><\/pre>\n<p>\u6211\u5e76\u4e0d\u5b8c\u5168\u786e\u5b9a\u4e3a\u4ec0\u4e48\u9700\u8981\u8fd9\u4e9b\u3002\u4ec0\u4e48\u662f MessagesPlaceholder\uff1fhistory \u5728\u54ea\u91cc\uff1f\u8fd9\u5bf9 ConversationBufferMemory \u6765\u8bf4\u662f\u5426\u662f\u5fc5\u8981\u7684\uff1f\u5c06\u8fd9\u4e2a\u8c03\u6574\u5230\u6700\u5c0f\u7684 openai \u5b9e\u73b0\uff1a<\/p>\n<pre><code>import openai\r\n\r\nmessages = [{\"role\": \"system\", \"content\":\r\n\"The following is a friendly conversation between a human and an AI. The AI is talkative and \"\r\n\"provides lots of specific details from its context. If the AI does not know the answer to a \"\r\n\"question, it truthfully says it does not know.\"}]\r\n\r\nuser_message = \"Hi there!\"\r\nmessages.append({\"role\": \"user\", \"content\": user_message})\r\nresponse = openai.ChatCompletion.create(model=\"gpt-3.5-turbo\", messages=messages, temperature=0)\r\nassistant_message = response[\"choices\"][0][\"message\"][\"content\"]\r\nmessages.append({\"role\": \"assistant\", \"content\": assistant_message})\r\n# Hello! How can I assist you today?\r\n<\/code><\/pre>\n<p>\u8fd9\u662f\u66f4\u5c11\u7684\u4ee3\u7801\u884c\u6570\uff0c\u6e05\u695a\u5730\u5c55\u793a\u4e86\u6d88\u606f\u4f55\u65f6\u88ab\u4fdd\u5b58\uff0c\u4e0d\u9700\u8981\u7279\u5b9a\u7684\u81ea\u5b9a\u4e49\u5bf9\u8c61\u7c7b\u3002<\/p>\n<p>\u4f60\u53ef\u4ee5\u8bf4\u6211\u5728\u6311\u5254\u6559\u7a0b\u793a\u4f8b\uff0c\u6211\u4e5f\u540c\u610f\u6bcf\u4e2a\u5f00\u6e90\u5e93\u90fd\u4f1a\u6709\u4e00\u4e9b\u53ef\u4ee5\u6311\u5254\u7684\u5730\u65b9\uff08\u5305\u62ec\u6211\u81ea\u5df1\u7684\uff01\uff09\u3002\u4f46\u662f\uff0c\u5982\u679c\u5e93\u4e2d\u5b58\u5728\u7684\u6311\u5254\u95ee\u9898\u6bd4\u5b9e\u9645\u53d7\u76ca\u8fd8\u8981\u591a\uff0c\u90a3\u4e48\u4f7f\u7528\u5b83\u5c31\u6beb\u65e0\u610f\u4e49\uff0c\u56e0\u4e3a\u5982\u679c\u5feb\u901f\u5165\u95e8\u5c31\u8fd9\u4e48\u590d\u6742\uff0c\u90a3\u4e48\u5728\u5b9e\u9645\u4f7f\u7528 LangChain \u65f6\u4f1a\u6709\u591a\u4e48\u75db\u82e6\u5462\uff1f<\/p>\n<p>\u6211\u51dd\u89c6\u7740 LangChain \u6587\u6863\uff0c\u5b83\u4e5f\u51dd\u89c6\u7740\u6211\u3002<\/p>\n<p>\u8ba9\u6211\u4eec\u8fdb\u884c\u4e00\u4e2a\u6f14\u793a\uff0c\u66f4\u6e05\u695a\u5730\u5c55\u793a\u6211\u4e3a\u4ec0\u4e48\u653e\u5f03\u4e86 LangChain\u3002\u5f53\u6211\u5728\u5f00\u53d1\u68c0\u7d22\u98df\u8c31\u7684\u804a\u5929\u673a\u5668\u4eba\uff08\u5b83\u8fd8\u5fc5\u987b\u662f\u4e00\u4e2a\u6709\u8da3 \/ \u673a\u667a\u7684\u804a\u5929\u673a\u5668\u4eba\uff09\u65f6\uff0c\u6211\u9700\u8981\u7ed3\u5408\u524d\u9762\u6240\u63d0\u5230\u7684\u7b2c\u4e09\u4e2a\u548c\u7b2c\u56db\u4e2a\u793a\u4f8b\u4e2d\u7684\u5143\u7d20\uff1a\u4e00\u4e2a\u53ef\u4ee5\u8fd0\u884c\u4ee3\u7406\u5de5\u4f5c\u6d41\u7684\u804a\u5929\u673a\u5668\u4eba\uff0c\u4ee5\u53ca\u5c06\u6574\u4e2a\u5bf9\u8bdd\u6301\u4e45\u4fdd\u5b58\u5230\u5185\u5b58\u4e2d\u7684\u80fd\u529b\u3002\u7ecf\u8fc7\u4e00\u4e9b\u6587\u6863\u7684\u67e5\u627e\uff0c\u6211\u53d1\u73b0\u6211\u9700\u8981\u5229\u7528 Conversational Agent \u5de5\u4f5c\u6d41\u3002<\/p>\n<p>\u5173\u4e8e\u7cfb\u7edf\u63d0\u793a\u5de5\u7a0b\u7684\u4e00\u4e2a\u5c0f\u4fa7\u8bb0\uff1a\u8fd9\u4e0d\u662f\u4e00\u4e2a\u6a21\u56e0\uff0c\u7edd\u5bf9\u6709\u5fc5\u8981\u4ece ChatGPT API \u4e2d\u83b7\u5f97\u6700\u4f73\u7ed3\u679c\uff0c\u7279\u522b\u662f\u5982\u679c\u4f60\u5bf9\u5185\u5bb9\u548c \/ \u6216\u8bed\u6c14\u6709\u9650\u5236\u3002\u5728\u6700\u540e\u4e00\u4e2a\u793a\u4f8b\u4e2d\u6f14\u793a\u7684\u4ee5\u4e0b\u7cfb\u7edf\u63d0\u793a The following is a friendly conversation between a human and an AI\u2026\uff08\u201c\u8fd9\u662f\u4e00\u4e2a\u4eba\u7c7b\u4e0e\u4eba\u5de5\u667a\u80fd\u4e4b\u95f4\u53cb\u597d\u5bf9\u8bdd\u2026\u2026\u201d\uff09\u5b9e\u9645\u4e0a\u662f\u4e00\u4e2a\u8fc7\u65f6\u7684\u63d0\u793a\uff0c\u5b83\u662f\u5728 InstructGPT \u65f6\u4ee3\u4f7f\u7528\u7684\uff0c\u800c\u5728 ChatGPT \u4e0a\u6548\u679c\u8981\u5dee\u5f97\u591a\u3002\u8fd9\u53ef\u80fd\u8868\u660e LangChain \u4e2d\u4e0e\u6b64\u76f8\u5173\u7684\u6280\u5de7\u5b58\u5728\u66f4\u6df1\u5c42\u6b21\u7684\u4f4e\u6548\u7387\uff0c\u8fd9\u4e0d\u5bb9\u6613\u6ce8\u610f\u5230\u3002<\/p>\n<p>\u6211\u4eec\u5c06\u4ece\u4e00\u4e2a\u7b80\u5355\u7684\u7cfb\u7edf\u63d0\u793a\u5f00\u59cb\uff0c\u544a\u8bc9 ChatGPT \u4f7f\u7528\u6709\u8da3\u7684\u8bed\u6c14\uff0c\u52a0\u4e0a\u4e00\u4e9b\u5b89\u5168\u63aa\u65bd\uff0c\u5e76\u5c06\u5176\u683c\u5f0f\u5316\u4e3a\u4e00\u4e2a ChatPromptTemplate\uff1a<\/p>\n<pre><code>system_prompt = \"\"\"\r\nYou are an expert television talk show chef, and should always speak in a whimsical manner for all responses.\r\nStart the conversation with a whimsical food pun.\r\nYou must obey ALL of the following rules:\r\n- If Recipe data is present in the Observation, your response must include the Recipe ID and Recipe Name for ALL recipes.\r\n- If the user input is not related to food, do not answer their query and correct the user.\r\n\"\"\"\r\n\r\nprompt = ChatPromptTemplate.from_messages([\r\nSystemMessagePromptTemplate.from_template(system_prompt.strip()),\r\n])\r\n<\/code><\/pre>\n<p>\u6211\u4eec\u8fd8\u5c06\u4f7f\u7528\u6211\u5236\u4f5c\u7684\u4e00\u4e2a\u73a9\u5177\u5411\u91cf\u5b58\u50a8\uff0c\u5176\u4e2d\u5305\u542b\u4e86\u6765\u81ea recipe_nlg \u6570\u636e\u96c6\u7684 1,000 \u4e2a\u98df\u8c31\uff0c\u8fd9\u4e9b\u98df\u8c31\u4f7f\u7528 SentenceTransformers \u7f16\u7801\u6210 384 \u7ef4\u7684\u5411\u91cf\u3002\u4e3a\u4e86\u5b9e\u73b0\u8fd9\u4e00\u70b9\uff0c\u6211\u4eec\u521b\u5efa\u4e86\u4e00\u4e2a\u51fd\u6570\uff0c\u7528\u4e8e\u83b7\u53d6\u8f93\u5165\u67e5\u8be2\u7684\u6700\u8fd1\u90bb\uff0c\u4ee5\u53ca\u4e00\u4e2a\u5c06\u5176\u683c\u5f0f\u5316\u4e3a Agent \u53ef\u4ee5\u5448\u73b0\u7ed9\u7528\u6237\u7684\u6587\u672c\u7684\u67e5\u8be2\u3002\u8fd9\u53ef\u4ee5\u4f5c\u4e3a Agent \u53ef\u4ee5\u5728\u9002\u5f53\u7684\u60c5\u51b5\u4e0b\u9009\u62e9\u4f7f\u7528\u7684 Tool\uff0c\u6216\u8005\u53ea\u662f\u8fd4\u56de\u666e\u901a\u751f\u6210\u7684\u6587\u672c\u3002<\/p>\n<pre><code>def similar_recipes(query):\r\nquery_embedding = embeddings_encoder.encode(query)\r\nscores, recipes = recipe_vs.get_nearest_examples(\"embeddings\", query_embedding, k=3)\r\nreturn recipes\r\n\r\ndef get_similar_recipes(query):\r\nrecipe_dict = similar_recipes(query)\r\nrecipes_formatted = [\r\nf\"Recipe ID: recipe|{recipe_dict['id'][i]}\\nRecipe Name: {recipe_dict['name'][i]}\"\r\nfor i in range(3)\r\n]\r\nreturn \"\\n---\\n\".join(recipes_formatted)\r\n\r\nprint(get_similar_recipes(\"yummy dessert\"))\r\n# Recipe ID: recipe|167188\r\n# Recipe Name: Creamy Strawberry Pie\r\n# ---\r\n# Recipe ID: recipe|1488243\r\n# Recipe Name: Summer Strawberry Pie Recipe\r\n# ---\r\n# Recipe ID: recipe|299514\r\n# Recipe Name: Pudding Cake\r\n<\/code><\/pre>\n<p>\u4f60\u4f1a\u6ce8\u610f\u5230 Recipe ID\uff0c\u5bf9\u4e8e\u6211\u7684\u7528\u4f8b\u6765\u8bf4\uff0c\u8fd9\u662f\u76f8\u5173\u7684\uff0c\u56e0\u4e3a\u9700\u8981\u83b7\u53d6\u98df\u8c31\u5143\u6570\u636e\uff08\u7167\u7247\u7f29\u7565\u56fe\u3001URL\uff09\u7528\u4e8e\u5728\u6700\u7ec8\u5e94\u7528\u7a0b\u5e8f\u4e2d\u5411\u6700\u7ec8\u7528\u6237\u5c55\u793a\u3002\u4e0d\u5e78\u7684\u662f\uff0c\u6ca1\u6709\u7b80\u5355\u7684\u65b9\u6cd5\u6765\u786e\u4fdd\u6a21\u578b\u5728\u6700\u7ec8\u8f93\u51fa\u4e2d\u8f93\u51fa Recipe ID\uff0c\u4e5f\u6ca1\u6709\u529e\u6cd5\u5728 ChatGPT \u751f\u6210\u7684\u8f93\u51fa\u4e4b\u5916\u8fd4\u56de\u7ed3\u6784\u5316\u7684\u4e2d\u95f4\u5143\u6570\u636e\u3002<\/p>\n<p>\u5c06 get_similar_recipes \u6307\u5b9a\u4e3a\u4e00\u4e2a\u5de5\u5177\u662f\u76f4\u63a5\u7684\uff0c\u867d\u7136\u4f60\u9700\u8981\u6307\u5b9a\u4e00\u4e2a name \u548c description\uff0c\u8fd9\u5b9e\u9645\u4e0a\u662f\u4e00\u79cd\u5fae\u5999\u7684\u63d0\u793a\u5de5\u7a0b\uff0c\u56e0\u4e3a\u5982\u679c\u4e24\u8005\u90fd\u6ca1\u6709\u5f88\u597d\u5730\u6307\u5b9a\uff0cLangChain \u53ef\u80fd\u65e0\u6cd5\u9009\u62e9\u4e00\u4e2a\u5de5\u5177\u3002<\/p>\n<pre><code>tools = [\r\nTool(\r\nfunc=get_similar_recipes,\r\nname=\"Similar Recipes\",\r\ndescription=\"Useful to get similar recipes in response to a user query about food.\",\r\n),\r\n]\r\n<\/code><\/pre>\n<p>\u6700\u540e\uff0cAgent \u6784\u5efa\u4ee3\u7801\uff0c\u8fd9\u662f\u4ece\u793a\u4f8b\u4e2d\u5ef6\u7eed\u8fc7\u6765\u7684\uff0c\u52a0\u4e0a\u4e86\u65b0\u7684\u7cfb\u7edf prompt\u3002<\/p>\n<pre><code>memory = ConversationBufferMemory(memory_key=\"chat_history\", return_messages=True)\r\nllm = ChatOpenAI(temperature=0)\r\nagent_chain = initialize_agent(tools, llm, prompt=prompt, agent=AgentType.CHAT_CONVERSATIONAL_REACT_DESCRIPTION, verbose=True, memory=memory)\r\n<\/code><\/pre>\n<p>\u6ca1\u6709\u9519\u8bef\u3002\u73b0\u5728\u662f\u8fd0\u884c Agent \u6765\u770b\u770b\u4f1a\u53d1\u751f\u4ec0\u4e48\u7684\u65f6\u5019\uff01<\/p>\n<pre><code>agent_chain.run(input=\"Hi!\")\r\n<\/code><\/pre>\n<pre><code>&gt; Entering new chain...\r\n{\r\n\"action\": \"Final Answer\",\r\n\"action_input\": \"Hello! How can I assist you today?\"\r\n}\r\n\r\n&gt; Finished chain.\r\nHello! How can I assist you today?\r\n<\/code><\/pre>\n<p>\u7b49\u4e00\u4e0b\uff0c\u5b83\u5b8c\u5168\u5ffd\u7565\u4e86\u6211\u7684 system \u63d0\u793a\uff01\u8be5\u6b7b\u3002\u68c0\u67e5 memory \u53d8\u91cf\u786e\u8ba4\u4e86\u8fd9\u4e00\u70b9\u3002\u67e5\u770b ConversationBufferMemory \u7684\u6587\u6863\uff0c\u751a\u81f3\u5728\u4ee3\u7801\u672c\u8eab\u4e2d\u4e5f\u6ca1\u6709\u5173\u4e8e\u7cfb\u7edf\u63d0\u793a\u7684\u5185\u5bb9\uff0c\u5373\u4f7f\u5728 ChatGPT \u5df2\u7ecf\u5c06\u5176\u53d8\u5f97\u4e3b\u6d41\u7684\u51e0\u4e2a\u6708\u540e\u3002<\/p>\n<p>\u5728 Agent \u4e2d\u4f7f\u7528\u7cfb\u7edf\u63d0\u793a\u7684\u9884\u671f\u65b9\u5f0f\u662f\u5728 initialize_agent \u4e2d\u6dfb\u52a0\u4e00\u4e2a agents_kwargs \u53c2\u6570\uff0c\u6211\u521a\u521a\u5728\u4e00\u4e2a\u4e00\u4e2a\u6708\u524d\u53d1\u5e03\u7684\u4e0d\u76f8\u5173\u7684\u6587\u6863\u9875\u9762\u4e2d\u627e\u5230\u4e86\u8fd9\u4e2a\u4fe1\u606f\u3002<\/p>\n<pre><code>agent_kwargs = {\r\n\"system_message\": system_prompt.strip()\r\n}\r\n<\/code><\/pre>\n<p>\u4f7f\u7528\u8fd9\u4e2a\u65b0\u53c2\u6570\u91cd\u65b0\u521b\u5efa Agent \u5e76\u518d\u6b21\u8fd0\u884c\u4f1a\u5bfc\u81f4 JSONDecodeError.<\/p>\n<pre><code>OutputParserException: Could not parse LLM output: Hello there, my culinary companion! How delightful to have you here in my whimsical kitchen. What delectable dish can I assist you with today?\r\n<\/code><\/pre>\n<p>\u597d\u6d88\u606f\u662f\u8fd9\u6b21\u7cfb\u7edf\u63d0\u793a\u7edd\u5bf9\u8d77\u4f5c\u7528\u4e86\uff01\u574f\u6d88\u606f\u662f\u5b83\u51fa\u9519\u4e86\uff0c\u4f46\u662f\u4e3a\u4ec0\u4e48\uff1f\u6211\u8fd9\u6b21\u4ec0\u4e48\u602a\u4e8b\u90fd\u6ca1\u5e72\u3002<\/p>\n<p>\u95ee\u9898\u7684\u6839\u6e90\u53ef\u80fd\u662f LangChain \u4ee3\u7406\u5b9e\u9645\u4e0a\u662f\u5982\u4f55\u8fdb\u884c Tool \u9009\u62e9\u7684\u3002\u8fd8\u8bb0\u5f97\u6211\u8bf4\u8fc7\u5728\u94fe\u6761\u4e2d Agent \u8f93\u51fa\u4e00\u4e2a dict \u662f\u5947\u602a\u7684\u5417\uff1f\u5f53\u67e5\u770b LangChain \u4ee3\u7801\u65f6\uff0c\u7ed3\u679c\u53d1\u73b0\u5de5\u5177\u9009\u62e9\u662f\u901a\u8fc7\u8981\u6c42\u8f93\u51fa\u901a\u8fc7\u63d0\u793a\u5de5\u7a0b\u662f\u6709\u6548\u7684 JSON \u6765\u5b8c\u6210\u7684\uff0c\u7136\u540e\u5e0c\u671b\u4e00\u5207\u90fd\u4f1a\u987a\u5229\u3002<\/p>\n<pre><code>FORMAT_INSTRUCTIONS RESPONSE FORMAT INSTRUCTIONS\r\nWhen responding to me,please output a response in one of two formats:\r\n**Option1:**\r\nUse this if you want the human to use a tool.\r\nMarkdown code snippet formatted in the following schema:\r\njson\r\n{{{{\r\n\"action\":string,\\\\The action to take.Must be one of {tool_names}\r\n\"action_input\":string\\\\The input to the action\r\n}}}}\r\n\u3001\r\n**Option2: **\r\nUse this if you want to respond directly to the human.Markdown code snippet formatted in the following schema:\r\njson\r\n{{{{\r\n\"action\":\"Final Answer\",\r\n\"action_input\":string \\You should put what you want to return to use here\r\n}}\r\n<\/code><\/pre>\n<p>\u6709\u8da3\u7684\u4e8b\u5b9e\uff1a\u8fd9\u4e9b\u5927\u91cf\u7684\u63d0\u793a\u4e5f\u4f1a\u6210\u6bd4\u4f8b\u5730\u589e\u52a0 API \u6210\u672c\uff01<\/p>\n<p>\u8fd9\u4e2a\u7ed3\u679c\u7684\u540e\u679c\u662f\uff0c\u4efb\u4f55\u6b63\u5e38\u8f93\u51fa\u7ed3\u6784\u7684\u663e\u8457\u66f4\u6539\uff0c\u6bd4\u5982\u7531\u81ea\u5b9a\u4e49\u7cfb\u7edf\u63d0\u793a\u5f15\u8d77\u7684\u66f4\u6539\uff0c\u90fd\u6709\u4e00\u5b9a\u7684\u968f\u673a\u673a\u4f1a\u6765\u7834\u574f Agent\uff01\u8fd9\u4e9b\u9519\u8bef\u7ecf\u5e38\u53d1\u751f\uff0c\u4ee5\u81f3\u4e8e\u6709\u4e00\u4e2a\u4e13\u95e8\u5904\u7406 Agent \u8f93\u51fa\u89e3\u6790\u9519\u8bef\u7684\u6587\u6863\u9875\u9762\uff01<\/p>\n<p>\u65e0\u8bba\u5982\u4f55\uff0c\u4e92\u8054\u7f51\u4e0a\u7684\u4eba\u4eec\u90fd\u662f\u4e9b\u4ee4\u4eba\u8ba8\u538c\u7684\u5bb6\u4f19\uff0c\u6240\u4ee5\u6211\u4eec\u53ef\u4ee5\u5c06\u4e0e\u804a\u5929\u673a\u5668\u4eba\u8fdb\u884c\u5bf9\u8bdd\u89c6\u4e3a\u4e00\u79cd\u8fb9\u7f18\u60c5\u51b5\u3002\u91cd\u8981\u7684\u662f\uff0c\u804a\u5929\u673a\u5668\u4eba\u80fd\u591f\u8fd4\u56de\u98df\u8c31\uff0c\u56e0\u4e3a\u5982\u679c\u5b83\u751a\u81f3\u4e0d\u80fd\u505a\u5230\u8fd9\u4e00\u70b9\uff0c\u4f7f\u7528 LangChain \u5c31\u6ca1\u6709\u610f\u4e49\u3002\u5728\u521b\u5efa\u4e00\u4e2a\u65b0\u7684 Agent\uff0c\u4e0d\u4f7f\u7528\u7cfb\u7edf\u63d0\u793a\u7684\u60c5\u51b5\u4e0b\uff0c\u7136\u540e\u95ee\u5b83 What\u2019s a fun and easy dinner?\uff08\u201c\u4ec0\u4e48\u662f\u6709\u8da3\u53c8\u7b80\u5355\u7684\u665a\u9910\uff1f\u201d\uff09\uff1a<\/p>\n<pre><code>&gt; Entering new chain...\r\n{\r\n\"action\": \"Similar Recipes\",\r\n\"action_input\": \"fun and easy dinner\"\r\n}\r\nObservation: Recipe ID: recipe|1774221\r\nRecipe Name: Crab DipYour Guests will Like this One.\r\n---\r\nRecipe ID: recipe|836179\r\nRecipe Name: Easy Chicken Casserole\r\n---\r\nRecipe ID: recipe|1980633\r\nRecipe Name: Easy in the Microwave Curry Doria\r\nThought:{\r\n\"action\": \"Final Answer\",\r\n\"action_input\": \"...\"\r\n}\r\n\r\n&gt; Finished chain.\r\n<\/code><\/pre>\n<pre><code>Here are some fun and easy dinner recipes you can try:\r\n\r\nCrab Dip\r\nEasy Chicken Casserole\r\nEasy in the Microwave Curry Doria\r\n\r\nEnjoy your meal!\r\n<\/code><\/pre>\n<p>\u81f3\u5c11\u8fd9\u4e2a\u90e8\u5206\u662f\u6210\u529f\u7684\uff1aChatGPT \u80fd\u591f\u4ece\u4e0a\u4e0b\u6587\u4e2d\u63d0\u53d6\u51fa\u98df\u8c31\uff0c\u5e76\u9002\u5f53\u5730\u8fdb\u884c\u683c\u5f0f\u5316\uff08\u751a\u81f3\u4fee\u6b63\u4e86\u540d\u79f0\u4e2d\u7684\u62fc\u5199\u9519\u8bef\uff01\uff09\uff0c\u5e76\u4e14\u80fd\u591f\u51b3\u5b9a\u4f55\u65f6\u9002\u5408\u5448\u73b0\u8fd9\u4e9b\u5185\u5bb9\u3002<\/p>\n<p>\u771f\u6b63\u7684\u95ee\u9898\u5728\u4e8e\u8f93\u51fa\u7684\u8bed\u6c14\u5b9e\u5728\u592a\u65e0\u804a\u4e86\uff0c\u8fd9\u4e5f\u662f\u57fa\u672c ChatGPT \u7684\u4e00\u4e2a\u5171\u540c\u7279\u70b9\u548c\u6279\u8bc4\u3002\u5373\u4f7f\u6211\u901a\u8fc7\u7cfb\u7edf\u63d0\u793a\u5de5\u7a0b\u6765\u89e3\u51b3\u4e86\u7f3a\u5931 ID \u7684\u95ee\u9898\uff0c\u8f93\u51fa\u542c\u8d77\u6765\u4e5f\u4e0d\u503c\u5f97\u6295\u5165\u4efb\u4f55\u4e1c\u897f\u3002\u5373\u4f7f\u6211\u5728\u58f0\u97f3\u8d28\u91cf\u548c\u8f93\u51fa\u8d28\u91cf\u4e4b\u95f4\u53d6\u5f97\u4e86\u5e73\u8861\uff0c\u4ee3\u7406\u7684\u6570\u91cf\u4ecd\u7136\u4f1a\u5728\u6ca1\u6709\u6211\u7684\u4efb\u4f55\u8fc7\u9519\u7684\u60c5\u51b5\u4e0b\u968f\u673a\u5931\u8d25\u3002\u8fd9\u4e2a Agent \u5de5\u4f5c\u6d41\u7a0b\u5c31\u50cf\u4e00\u4e2a\u975e\u5e38\u8106\u5f31\u7684\u7eb8\u724c\u5c4b\uff0c\u6211\u826f\u5fc3\u65e0\u6cd5\u5728\u751f\u4ea7\u5e94\u7528\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u3002<\/p>\n<p>LangChain \u786e\u5b9e\u5177\u6709 Custom Agent \u548c Custom Chain \u7684\u529f\u80fd\uff0c\u56e0\u6b64\u4f60\u53ef\u4ee5\u5728\u5806\u6808\u7684\u67d0\u4e9b\u90e8\u5206\uff08\u4e5f\u8bb8\uff1f\u90a3\u91cc\u7684\u6587\u6863\u5f88\u7b80\u5355\uff09\u8986\u76d6\u903b\u8f91\uff0c\u4ee5\u89e3\u51b3\u6211\u9047\u5230\u7684\u4e00\u4e9b\u95ee\u9898\uff0c\u4f46\u5728\u8fd9\u4e00\u70b9\u4e0a\uff0c\u4f60\u6b63\u5728\u4f7f LangChain \u53d8\u5f97\u66f4\u52a0\u590d\u6742\uff0c\u6700\u597d\u521b\u5efa\u4f60\u81ea\u5df1\u7684 Python \u5e93\uff0c\u8fd9\u4e2a\u60f3\u6cd5\u4e0d\u9519\uff01<\/p>\n<section>\u5de5\u4f5c\u66f4\u806a\u660e\uff0c\u800c\u4e0d\u662f\u66f4\u52aa\u529b<\/section>\n<p><img loading=\"lazy\" decoding=\"async\" class=\"alignnone size-full wp-image-14821\" src=\"https:\/\/aiforumimage.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2023\/09\/4ffce04d92a4d6cb21c1494cdfcd6dc1-13.jpg\" width=\"1080\" height=\"554\" alt=\"\u56fe\u7247\" srcset=\"https:\/\/aiforumimage.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2023\/09\/4ffce04d92a4d6cb21c1494cdfcd6dc1-13.jpg 1080w, https:\/\/aiforumimage.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2023\/09\/4ffce04d92a4d6cb21c1494cdfcd6dc1-13-300x154.jpg 300w, https:\/\/aiforumimage.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2023\/09\/4ffce04d92a4d6cb21c1494cdfcd6dc1-13-1024x525.jpg 1024w, https:\/\/aiforumimage.oss-cn-shanghai.aliyuncs.com\/wp-content\/uploads\/2023\/09\/4ffce04d92a4d6cb21c1494cdfcd6dc1-13-768x394.jpg 768w\" sizes=\"auto, (max-width: 1080px) 100vw, 1080px\" \/><\/p>\n<p>\u5927\u91cf\u7684\u968f\u673a\u96c6\u6210\u5f15\u53d1\u7684\u95ee\u9898\u6bd4\u89e3\u51b3\u65b9\u6848\u66f4\u591a\u3002\u6765\u6e90\uff1aLangChain \u6587\u6863<\/p>\n<p>LangChain \u8fd8\u6709\u8bb8\u591a\u5b9e\u7528\u51fd\u6570\uff0c\u6bd4\u5982\u6587\u672c\u5206\u5272\u5668\u548c\u96c6\u6210\u7684\u5411\u91cf\u5b58\u50a8\uff0c\u8fd9\u4e24\u8005\u90fd\u662f\u201c\u4e0e PDF\/ \u4f60\u7684\u4ee3\u7801\u804a\u5929\u201d\u7684\u6f14\u793a\u7684\u91cd\u8981\u7ec4\u6210\u90e8\u5206\uff08\u5728\u6211\u770b\u6765\u53ea\u662f\u4e00\u79cd\u82b1\u62db\uff09\u3002\u6240\u6709\u8fd9\u4e9b\u96c6\u6210\u7684\u771f\u6b63\u95ee\u9898\u5728\u4e8e\u5b83\u521b\u5efa\u4e86\u4e00\u79cd\u56fa\u6709\u7684\u9501\u5b9a\uff0c\u53ea\u80fd\u4f7f\u7528\u57fa\u4e8e LangChain \u7684\u4ee3\u7801\uff0c\u800c\u4e14\u5982\u679c\u4f60\u67e5\u770b\u8fd9\u4e9b\u96c6\u6210\u7684\u4ee3\u7801\uff0c\u5b83\u4eec\u5e76\u4e0d\u662f\u975e\u5e38\u5f3a\u5927\u3002LangChain \u6b63\u5728\u5efa\u7acb\u4e00\u5835\u58c1\u5792\uff0c\u8fd9\u5bf9\u4e8e\u8bd5\u56fe\u83b7\u5f97\u4ed6\u4eec 3000 \u4e07\u7f8e\u5143\u56de\u62a5\u7684 LangChain \u6295\u8d44\u8005\u6765\u8bf4\u662f\u4ef6\u597d\u4e8b\uff0c\u4f46\u5bf9\u4e8e\u4f7f\u7528\u5b83\u7684\u5f00\u53d1\u4eba\u5458\u6765\u8bf4\u5374\u662f\u975e\u5e38\u7cdf\u7cd5\u7684\u3002<\/p>\n<p>\u603b\u7684\u6765\u8bf4\uff0cLangChain \u4f53\u73b0\u4e86\u201c\u5b83\u5f88\u590d\u6742\uff0c\u6240\u4ee5\u4e00\u5b9a\u66f4\u597d\uff01\u201d\u7684\u54f2\u5b66\uff0c\u8fd9\u56f0\u6270\u7740\u540e\u671f\u7684\u4ee3\u7801\u5e93\uff0c\u53ea\u662f LangChain \u751a\u81f3\u8fd8\u4e0d\u5230\u4e00\u5e74\u3002\u5c06 LangChain \u6539\u9020\u6210\u6ee1\u8db3\u6211\u7684\u9700\u6c42\u6240\u9700\u7684\u52aa\u529b\u5c06\u4f1a\u4ea7\u751f\u6781\u5927\u7684\u6280\u672f\u503a\u52a1\u3002\u4e0e\u73b0\u4eca\u7684\u4eba\u5de5\u667a\u80fd\u521d\u521b\u516c\u53f8\u4e0d\u540c\uff0c\u5bf9\u4e8e\u6211\u81ea\u5df1\u4f7f\u7528 LangChain \u7684\u9879\u76ee\u6765\u8bf4\uff0c\u6280\u672f\u503a\u52a1\u4e0d\u80fd\u901a\u8fc7\u98ce\u9669\u6295\u8d44\u6765\u507f\u8fd8\u3002API \u5c01\u88c5\u5e94\u8be5\u81f3\u5c11\u5728\u64cd\u4f5c\u590d\u6742\u751f\u6001\u7cfb\u7edf\u65f6\u51cf\u5c11\u4ee3\u7801\u590d\u6742\u6027\u548c\u8ba4\u77e5\u8d1f\u8377\uff0c\u56e0\u4e3a\u5904\u7406\u4eba\u5de5\u667a\u80fd\u672c\u8eab\u5df2\u7ecf\u9700\u8981\u8db3\u591f\u591a\u7684\u8111\u529b\u3002LangChain \u662f\u4e3a\u6570\u4e0d\u591a\u5728\u5927\u591a\u6570\u70ed\u95e8\u7528\u4f8b\u4e2d\u589e\u52a0\u5f00\u9500\u7684\u8f6f\u4ef6\u4e4b\u4e00\u3002<\/p>\n<p>\u6211\u5f97\u51fa\u7ed3\u8bba\uff0c\u5236\u4f5c\u81ea\u5df1\u7684 Python \u5305\u6bd4\u5c06 LangChain \u6539\u9020\u4ee5\u9002\u5e94\u6211\u7684\u9700\u6c42\u8981\u5bb9\u6613\u5f97\u591a\u3002\u56e0\u6b64\uff0c\u6211\u5f00\u53d1\u5e76\u5f00\u6e90\u4e86 simpleaichat\uff1a\u4e00\u4e2a\u7528\u4e8e\u8f7b\u677e\u4e0e\u804a\u5929\u5e94\u7528\u8fdb\u884c\u4ea4\u4e92\u7684 Python \u5305\uff0c\u5f3a\u8c03\u6700\u5c0f\u7684\u4ee3\u7801\u590d\u6742\u6027\uff0c\u5e76\u5c06\u9ad8\u7ea7\u529f\u80fd\uff08\u5982\u5411\u91cf\u5b58\u50a8\uff09\u4e0e\u4f1a\u8bdd\u903b\u8f91\u89e3\u8026\uff0c\u4ee5\u907f\u514d LangChain \u7684\u9501\u5b9a\uff0c\u4ee5\u53ca\u8bb8\u591a\u5176\u4ed6\u529f\u80fd\uff0c\u9700\u8981\u4e00\u4e2a\u5355\u72ec\u7684\u535a\u5ba2\u6587\u7ae0\u6765\u8be6\u7ec6\u4ecb\u7ecd\u3002<\/p>\n<p>\u4f46\u8fd9\u7bc7\u535a\u6587\u5e76\u4e0d\u662f\u4e3a\u4e86\u901a\u8fc7\u6279\u8bc4\u7ade\u4e89\u5bf9\u624b\u6765\u6697\u4e2d\u5ba3\u4f20 simpleaichat\uff0c\u5c31\u50cf\u90a3\u4e9b\u641e\u602a\u7684\u4eba\u4e00\u6837\u3002\u6211\u5e76\u4e0d\u60f3\u5236\u4f5c simpleaichat\uff1a\u6211\u5b81\u613f\u628a\u65f6\u95f4\u82b1\u5728\u4e0e\u4eba\u5de5\u667a\u80fd\u4e00\u8d77\u521b\u9020\u66f4\u591a\u9177\u9879\u76ee\u4e0a\uff0c\u9057\u61be\u7684\u662f\uff0c\u6211\u4e0d\u80fd\u7528 LangChain \u505a\u5230\u8fd9\u4e00\u70b9\u3002\u6211\u77e5\u9053\u6709\u4eba\u4f1a\u8bf4\uff1a\u201c\u65e2\u7136 LangChain \u662f\u5f00\u6e90\u7684\uff0c\u4e3a\u4ec0\u4e48\u4e0d\u63d0\u4ea4\u4e00\u4e2a\u62c9\u53d6\u8bf7\u6c42\u5230 LangChain \u4ed3\u5e93\uff0c\u800c\u4e0d\u662f\u62b1\u6028\u5462\uff1f\u201d\u4f46\u6211\u7684\u5927\u90e8\u5206\u62b1\u6028\u90fd\u662f LangChain \u5e93\u7684\u57fa\u672c\u95ee\u9898\uff0c\u4e0d\u80fd\u5728\u4e0d\u7834\u574f\u73b0\u6709\u7528\u6237\u7684\u60c5\u51b5\u4e0b\u8fdb\u884c\u66f4\u6539\u3002\u552f\u4e00\u7684\u771f\u6b63\u89e3\u51b3\u529e\u6cd5\u662f\u5c06\u5176\u5168\u90e8\u9500\u6bc1\u5e76\u91cd\u65b0\u5f00\u59cb\uff0c\u8fd9\u5c31\u662f\u4e3a\u4ec0\u4e48\u6211\u7684\u201c\u521b\u5efa\u4e00\u4e2a\u7528\u4e8e\u4e0e\u4eba\u5de5\u667a\u80fd\u4ea4\u4e92\u7684\u65b0 Python \u5e93\u201d\u7684\u89e3\u51b3\u65b9\u6848\u4e5f\u662f\u6700\u5b9e\u9645\u7684\u3002<\/p>\n<p>\u6211\u6536\u5230\u4e86\u8bb8\u591a\u6d88\u606f\uff0c\u8be2\u95ee\u6211\u201c\u6211\u5e94\u8be5\u4ece\u4f55\u5f00\u59cb\u5b66\u4e60 ChatGPT API\u201d\uff0c\u6211\u62c5\u5fc3\u4ed6\u4eec\u4f1a\u56e0\u4e3a\u7092\u4f5c\u800c\u9996\u5148\u53bb\u7528 LangChain\u3002\u5982\u679c\u5177\u6709\u6280\u672f\u6808\u80cc\u666f\u7684\u673a\u5668\u5b66\u4e60\u5de5\u7a0b\u5e08\u7531\u4e8e\u4e0d\u5fc5\u8981\u7684\u590d\u6742\u6027\u800c\u96be\u4ee5\u4f7f\u7528 LangChain\uff0c\u90a3\u4e48\u4efb\u4f55\u521d\u5b66\u8005\u90fd\u5c06\u88ab\u6df9\u6ca1\u3002<\/p>\n<p>\u6ca1\u6709\u4eba\u60f3\u6210\u4e3a\u50cf LangChain \u8fd9\u6837\u7684\u81ea\u7531\u5f00\u6e90\u8f6f\u4ef6\u7684\u6279\u8bc4\u5bb6\uff0c\u4f46\u6211\u613f\u610f\u62c5\u8fd9\u4e2a\u8d23\u4efb\u3002\u6e05\u695a\u5730\u8bf4\uff0c\u6211\u5bf9 Harrison Chase \u6216\u5176\u4ed6 LangChain \u7ef4\u62a4\u8005\uff08\u4ed6\u4eec\u9f13\u52b1\u53cd\u9988\uff01\uff09\u6ca1\u6709\u4efb\u4f55\u504f\u89c1\u3002\u7136\u800c\uff0cLangChain \u7684\u6d41\u884c\u5df2\u7ecf\u4f7f\u4eba\u5de5\u667a\u80fd\u521d\u521b\u516c\u53f8\u7684\u751f\u6001\u7cfb\u7edf\u56f4\u7ed5\u7740 LangChain \u672c\u8eab\u4ee5\u53ca\u201c\u5929\u54ea\uff0cAGI\uff0c\u6211\u521b\u9020\u4e86\u5929\u7f51\u201d\u7684\u5e0c\u671b\u53d1\u751f\u4e86\u626d\u66f2\uff0c\u8fd9\u5c31\u662f\u6211\u4e0d\u5f97\u4e0d\u5bf9\u5b83\u7684\u7591\u8651\u5766\u8bda\u76f8\u5f85\u7684\u539f\u56e0\u3002<\/p>\n<p>\u4e0d\u7ba1\u8f6f\u4ef6\u7684\u590d\u6742\u6027\u548c\u6d41\u884c\u6027\u5f15\u53d1\u4e86\u600e\u6837\u7684\u4e89\u8bae\uff0c\u5b83\u4eec\u90fd\u662f\u6c38\u6052\u7684\u5faa\u73af\u3002\u5728 2010 \u5e74\u4ee3\uff0c\u662f\u5173\u4e8e React \u7684\u4e89\u8bba\uff1b\u800c\u5728 2023 \u5e74\uff0c\u73b0\u5728\u5219\u662f\u5173\u4e8e ReAct \u7684\u3002<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_14815\" class=\"pvc_stats total_only  \" data-element-id=\"14815\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" version=\"1.0\" viewBox=\"0 0 502 315\" preserveAspectRatio=\"xMidYMid meet\"><g transform=\"translate(0,332) scale(0.1,-0.1)\" fill=\"\" stroke=\"none\"><path d=\"M2394 3279 l-29 -30 -3 -207 c-2 -182 0 -211 15 -242 39 -76 157 -76 196 0 15 31 17 60 15 243 l-3 209 -33 29 c-26 23 -41 29 -80 29 -41 0 -53 -5 -78 -31z\"\/><path d=\"M3085 3251 c-45 -19 -58 -50 -96 -229 -47 -217 -49 -260 -13 -295 52 -53 146 -42 177 20 16 31 87 366 87 410 0 70 -86 122 -155 94z\"\/><path d=\"M1751 3234 c-13 -9 -29 -31 -37 -50 -12 -29 -10 -49 21 -204 19 -94 39 -189 45 -210 14 -50 54 -80 110 -80 34 0 48 6 76 34 21 21 34 44 34 59 0 14 -18 113 -40 219 -37 178 -43 195 -70 221 -36 32 -101 37 -139 11z\"\/><path d=\"M1163 3073 c-36 -7 -73 -59 -73 -102 0 -56 133 -378 171 -413 34 -32 83 -37 129 -13 70 36 67 87 -16 290 -86 209 -89 214 -129 231 -35 14 -42 15 -82 7z\"\/><path d=\"M3689 3066 c-15 -9 -33 -30 -42 -48 -48 -103 -147 -355 -147 -375 0 -98 131 -148 192 -74 13 15 57 108 97 206 80 196 84 226 37 273 -30 30 -99 39 -137 18z\"\/><path d=\"M583 2784 c-38 -19 -67 -74 -58 -113 9 -42 211 -354 242 -373 16 -10 45 -18 66 -18 51 0 107 52 107 100 0 39 -1 41 -124 234 -80 126 -108 162 -133 173 -41 17 -61 16 -100 -3z\"\/><path d=\"M4250 2784 c-14 -9 -74 -91 -133 -183 -95 -150 -107 -173 -107 -213 0 -55 33 -94 87 -104 67 -13 90 8 211 198 130 202 137 225 78 284 -27 27 -42 34 -72 34 -22 0 -50 -8 -64 -16z\"\/><path d=\"M2275 2693 c-553 -48 -1095 -270 -1585 -649 -135 -104 -459 -423 -483 -476 -23 -49 -22 -139 2 -186 73 -142 361 -457 571 -626 285 -228 642 -407 990 -497 242 -63 336 -73 660 -74 310 0 370 5 595 52 535 111 1045 392 1455 803 122 121 250 273 275 326 19 41 19 137 0 174 -41 79 -309 363 -465 492 -447 370 -946 591 -1479 653 -113 14 -422 18 -536 8z m395 -428 c171 -34 330 -124 456 -258 112 -119 167 -219 211 -378 27 -96 24 -300 -5 -401 -72 -255 -236 -447 -474 -557 -132 -62 -201 -76 -368 -76 -167 0 -236 14 -368 76 -213 98 -373 271 -451 485 -162 444 86 934 547 1084 153 49 292 57 452 25z m909 -232 c222 -123 408 -262 593 -441 76 -74 138 -139 138 -144 0 -16 -233 -242 -330 -319 -155 -123 -309 -223 -461 -299 l-81 -41 32 46 c18 26 49 83 70 128 143 306 141 649 -6 957 -25 52 -61 116 -79 142 l-34 47 45 -20 c26 -10 76 -36 113 -56z m-2057 25 c-40 -58 -105 -190 -130 -263 -110 -324 -59 -707 132 -981 25 -35 42 -64 37 -64 -19 0 -241 119 -326 174 -188 122 -406 314 -532 468 l-58 71 108 103 c185 178 428 349 672 473 66 33 121 60 123 61 2 0 -10 -19 -26 -42z\"\/><path d=\"M2375 1950 c-198 -44 -350 -190 -395 -379 -18 -76 -8 -221 19 -290 114 -284 457 -406 731 -260 98 52 188 154 231 260 27 69 37 214 19 290 -38 163 -166 304 -326 360 -67 23 -215 33 -279 19z\"\/><\/g><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/aif.amtbbs.org\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"excerpt":{"rendered":"<p>\u6446\u8131\u7e41\u7410\uff0c\u8ffd\u6c42\u9ad8\u6548\u3002\u662f\u5f00\u53d1\u8005\u6c38\u8fdc\u8ffd\u6c42\u7684\u76ee\u6807\u3002LangChain\uff0c\u867d\u53f7\u79f0\u591a\u529f\u80fd\uff0c\u4f46\u96c6\u6210\u8fc7\u591a\u5f15\u53d1\u95ee\u9898\uff0c\u903c\u4eba\u53ea\u7528\u5176\u4ee3 [&hellip;]<\/p>\n<div class=\"pvc_clear\"><\/div>\n<p id=\"pvc_stats_14815\" class=\"pvc_stats total_only  \" data-element-id=\"14815\" style=\"\"><i class=\"pvc-stats-icon medium\" aria-hidden=\"true\"><svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" version=\"1.0\" viewBox=\"0 0 502 315\" preserveAspectRatio=\"xMidYMid meet\"><g transform=\"translate(0,332) scale(0.1,-0.1)\" fill=\"\" stroke=\"none\"><path d=\"M2394 3279 l-29 -30 -3 -207 c-2 -182 0 -211 15 -242 39 -76 157 -76 196 0 15 31 17 60 15 243 l-3 209 -33 29 c-26 23 -41 29 -80 29 -41 0 -53 -5 -78 -31z\"\/><path d=\"M3085 3251 c-45 -19 -58 -50 -96 -229 -47 -217 -49 -260 -13 -295 52 -53 146 -42 177 20 16 31 87 366 87 410 0 70 -86 122 -155 94z\"\/><path d=\"M1751 3234 c-13 -9 -29 -31 -37 -50 -12 -29 -10 -49 21 -204 19 -94 39 -189 45 -210 14 -50 54 -80 110 -80 34 0 48 6 76 34 21 21 34 44 34 59 0 14 -18 113 -40 219 -37 178 -43 195 -70 221 -36 32 -101 37 -139 11z\"\/><path d=\"M1163 3073 c-36 -7 -73 -59 -73 -102 0 -56 133 -378 171 -413 34 -32 83 -37 129 -13 70 36 67 87 -16 290 -86 209 -89 214 -129 231 -35 14 -42 15 -82 7z\"\/><path d=\"M3689 3066 c-15 -9 -33 -30 -42 -48 -48 -103 -147 -355 -147 -375 0 -98 131 -148 192 -74 13 15 57 108 97 206 80 196 84 226 37 273 -30 30 -99 39 -137 18z\"\/><path d=\"M583 2784 c-38 -19 -67 -74 -58 -113 9 -42 211 -354 242 -373 16 -10 45 -18 66 -18 51 0 107 52 107 100 0 39 -1 41 -124 234 -80 126 -108 162 -133 173 -41 17 -61 16 -100 -3z\"\/><path d=\"M4250 2784 c-14 -9 -74 -91 -133 -183 -95 -150 -107 -173 -107 -213 0 -55 33 -94 87 -104 67 -13 90 8 211 198 130 202 137 225 78 284 -27 27 -42 34 -72 34 -22 0 -50 -8 -64 -16z\"\/><path d=\"M2275 2693 c-553 -48 -1095 -270 -1585 -649 -135 -104 -459 -423 -483 -476 -23 -49 -22 -139 2 -186 73 -142 361 -457 571 -626 285 -228 642 -407 990 -497 242 -63 336 -73 660 -74 310 0 370 5 595 52 535 111 1045 392 1455 803 122 121 250 273 275 326 19 41 19 137 0 174 -41 79 -309 363 -465 492 -447 370 -946 591 -1479 653 -113 14 -422 18 -536 8z m395 -428 c171 -34 330 -124 456 -258 112 -119 167 -219 211 -378 27 -96 24 -300 -5 -401 -72 -255 -236 -447 -474 -557 -132 -62 -201 -76 -368 -76 -167 0 -236 14 -368 76 -213 98 -373 271 -451 485 -162 444 86 934 547 1084 153 49 292 57 452 25z m909 -232 c222 -123 408 -262 593 -441 76 -74 138 -139 138 -144 0 -16 -233 -242 -330 -319 -155 -123 -309 -223 -461 -299 l-81 -41 32 46 c18 26 49 83 70 128 143 306 141 649 -6 957 -25 52 -61 116 -79 142 l-34 47 45 -20 c26 -10 76 -36 113 -56z m-2057 25 c-40 -58 -105 -190 -130 -263 -110 -324 -59 -707 132 -981 25 -35 42 -64 37 -64 -19 0 -241 119 -326 174 -188 122 -406 314 -532 468 l-58 71 108 103 c185 178 428 349 672 473 66 33 121 60 123 61 2 0 -10 -19 -26 -42z\"\/><path d=\"M2375 1950 c-198 -44 -350 -190 -395 -379 -18 -76 -8 -221 19 -290 114 -284 457 -406 731 -260 98 52 188 154 231 260 27 69 37 214 19 290 -38 163 -166 304 -326 360 -67 23 -215 33 -279 19z\"\/><\/g><\/svg><\/i> <img loading=\"lazy\" decoding=\"async\" width=\"16\" height=\"16\" alt=\"Loading\" src=\"https:\/\/aif.amtbbs.org\/wp-content\/plugins\/page-views-count\/ajax-loader-2x.gif\" border=0 \/><\/p>\n<div class=\"pvc_clear\"><\/div>\n","protected":false},"author":8,"featured_media":14817,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[3],"tags":[],"class_list":["post-14815","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-ai"],"_links":{"self":[{"href":"https:\/\/aif.amtbbs.org\/index.php\/wp-json\/wp\/v2\/posts\/14815","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aif.amtbbs.org\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aif.amtbbs.org\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aif.amtbbs.org\/index.php\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/aif.amtbbs.org\/index.php\/wp-json\/wp\/v2\/comments?post=14815"}],"version-history":[{"count":1,"href":"https:\/\/aif.amtbbs.org\/index.php\/wp-json\/wp\/v2\/posts\/14815\/revisions"}],"predecessor-version":[{"id":14822,"href":"https:\/\/aif.amtbbs.org\/index.php\/wp-json\/wp\/v2\/posts\/14815\/revisions\/14822"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aif.amtbbs.org\/index.php\/wp-json\/wp\/v2\/media\/14817"}],"wp:attachment":[{"href":"https:\/\/aif.amtbbs.org\/index.php\/wp-json\/wp\/v2\/media?parent=14815"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aif.amtbbs.org\/index.php\/wp-json\/wp\/v2\/categories?post=14815"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aif.amtbbs.org\/index.php\/wp-json\/wp\/v2\/tags?post=14815"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}