{"id":5466,"date":"2023-08-04T23:07:06","date_gmt":"2023-08-04T15:07:06","guid":{"rendered":"https:\/\/aict.nkust.edu.tw\/digitrans\/?p=5466"},"modified":"2024-12-13T20:34:36","modified_gmt":"2024-12-13T12:34:36","slug":"%e4%b8%80%e7%af%87%e6%96%87%e7%ab%a0%e6%90%9e%e6%87%82-langchain","status":"publish","type":"post","link":"https:\/\/aict.nkust.edu.tw\/digitrans\/?p=5466","title":{"rendered":"\u4e00\u7bc7\u6587\u7ae0\u641e\u61c2 LangChain"},"content":{"rendered":"\n<p>2023-08-04 | readfog<\/p>\n\n\n\n<p>\u5728\u65e5\u5e38\u751f\u6d3b\u4e2d\uff0c\u6211\u5011\u901a\u5e38\u81f4\u529b\u65bc\u69cb\u5efa\u7aef\u5230\u7aef\u7684\u61c9\u7528\u7a0b\u5e8f\u3002\u6709\u8a31\u591a\u81ea\u52d5\u6a5f\u5668\u5b78\u7fd2\u5e73\u81fa\u548c\u6301\u7e8c\u96c6\u6210 \/ \u6301\u7e8c\u4ea4\u4ed8\uff08CI\/CD\uff09\u6d41\u6c34\u7dda\u53ef\u7528\u65bc\u81ea\u52d5\u5316\u6211\u5011\u7684\u6a5f\u5668\u5b78\u7fd2\u6d41\u7a0b\u3002\u6211\u5011\u9084\u6709\u50cf Roboflow \u548c Andrew N.G. \u7684 Landing AI \u9019\u6a23\u7684\u5de5\u5177\uff0c\u53ef\u4ee5\u81ea\u52d5\u5316\u6216\u5275\u5efa\u7aef\u5230\u7aef\u7684\u8a08\u7b97\u6a5f\u8996\u89ba\u61c9\u7528\u7a0b\u5e8f\u3002<\/p>\n\n\n\n<p>\u5982\u679c\u6211\u5011\u60f3\u8981\u85c9\u52a9 OpenAI \u6216 Hugging Face \u5275\u5efa\u57fa\u65bc\u5927\u8a9e\u8a00\u6a21\u578b\u7684\u61c9\u7528\u7a0b\u5e8f\uff0c\u4ee5\u524d\u6211\u5011\u53ef\u80fd\u9700\u8981\u624b\u52d5\u5b8c\u6210\u3002\u73fe\u5728\uff0c\u7232\u4e86\u5be6\u73fe\u76f8\u540c\u7684\u76ee\u6a19\uff0c\u6211\u5011\u6709\u5169\u500b\u6700\u8457\u540d\u7684\u5eab\uff0c\u5373 Haystack \u548c LangChain\uff0c\u5b83\u5011\u53ef\u4ee5\u5e6b\u52a9\u6211\u5011\u5275\u5efa\u57fa\u65bc\u5927\u8a9e\u8a00\u6a21\u578b\u7684\u7aef\u5230\u7aef\u61c9\u7528\u7a0b\u5e8f\u6216\u6d41\u7a0b\u3002<\/p>\n\n\n\n<p>\u4e0b\u9762\u8b93\u6211\u5011\u6df1\u5165\u5730\u77ad\u89e3\u4e00\u4e0b LangChain\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"01--langchain\"><strong>01 \u4ec0\u9ebc\u662f LangChain\uff1f<\/strong><\/h2>\n\n\n\n<p><strong>LangChain \u662f\u4e00\u7a2e\u5275\u65b0\u6846\u67b6\uff0c\u6b63\u5728\u5fb9\u5e95\u6539\u8b8a\u6211\u5011\u958b\u767c\u7531\u8a9e\u8a00\u6a21\u578b\u9a45\u52d5\u7684\u61c9\u7528\u7a0b\u5e8f\u7684\u65b9\u5f0f\u3002<\/strong>&nbsp;\u901a\u904e\u5f15\u5165\u5148\u9032\u7684\u539f\u7406\uff0cLangChain \u6b63\u5728\u91cd\u65b0\u5b9a\u7fa9\u50b3\u7d71 API \u6240\u80fd\u5be6\u73fe\u7684\u9650\u5236\u3002\u6b64\u5916\uff0cLangChain \u61c9\u7528\u7a0b\u5e8f\u5177\u6709\u667a\u80fd\u4ee3\u7406\u7684\u7279\u6027\uff0c\u4f7f\u8a9e\u8a00\u6a21\u578b\u80fd\u5920\u8207\u74b0\u5883\u9032\u884c\u4e92\u52d5\u548c\u81ea\u9069\u61c9\u3002<\/p>\n\n\n\n<p>LangChain \u7531\u591a\u500b\u6a21\u584a\u7d44\u6210\u3002\u6b63\u5982\u5176\u540d\u7a31\u6240\u793a\uff0c<strong>LangChain \u7684\u4e3b\u8981\u76ee\u7684\u662f\u5c07\u9019\u4e9b\u6a21\u584a\u9032\u884c\u93c8\u5f0f\u9023\u63a5<\/strong>\u3002\u9019\u610f\u5473\u7740\u6211\u5011\u53ef\u4ee5\u5c07\u6bcf\u500b\u6a21\u584a\u90fd\u4e32\u806f\u5728\u4e00\u8d77\uff0c\u4e26\u4f7f\u7528\u9019\u500b\u93c8\u5f0f\u7d50\u69cb\u4e00\u6b21\u6027\u8abf\u7528\u6240\u6709\u6a21\u584a\u3002<\/p>\n\n\n\n<p>\u9019\u4e9b\u6a21\u584a\u7531\u4ee5\u4e0b\u90e8\u5206\u7d44\u6210\uff1a<\/p>\n\n\n\n<p><strong>Model<\/strong><\/p>\n\n\n\n<p>\u6b63\u5982\u4ecb\u7d39\u4e2d\u6240\u8a0e\u8ad6\u7684\u90a3\u6a23\uff0c\u6a21\u578b\u4e3b\u8981\u6db5\u84cb\u5927\u8a9e\u8a00\u6a21\u578b\uff08LLM\uff09\u3002\u5927\u8a9e\u8a00\u6a21\u578b\u662f\u6307\u5177\u6709\u5927\u91cf\u53c3\u6578\u4e26\u5728\u5927\u898f\u6a21\u7121\u6a19\u7c64\u6587\u672c\u4e0a\u9032\u884c\u8a13\u7df4\u7684\u795e\u7d93\u7db2\u7d61\u6a21\u578b\u3002\u79d1\u6280\u5de8\u982d\u5011\u63a8\u51fa\u4e86\u5404\u7a2e\u5404\u6a23\u7684\u5927\u578b\u8a9e\u8a00\u6a21\u578b\uff0c\u6bd4\u5982\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>\u8c37\u6b4c\u7684 BERT<\/li>\n\n\n\n<li>OpenAI \u7684 GPT-3<\/li>\n\n\n\n<li>\u8c37\u6b4c LaMDA<\/li>\n\n\n\n<li>\u8c37\u6b4c PaLM<\/li>\n\n\n\n<li>Meta AI \u7684 LLaMA<\/li>\n\n\n\n<li>OpenAI \u7684 GPT-4<\/li>\n\n\n\n<li>\u2026\u2026<\/li>\n<\/ul>\n\n\n\n<p><strong>\u85c9\u52a9 LangChain\uff0c\u8207\u5927\u8a9e\u8a00\u6a21\u578b\u7684\u4ea4\u4e92\u8b8a\u5f97\u66f4\u52a0\u4fbf\u6377\u3002<\/strong>&nbsp;LangChain \u63d0\u4f9b\u7684\u63a5\u53e3\u548c\u529f\u80fd\u6709\u52a9\u65bc\u5c07 LLM \u7684\u5f37\u5927\u80fd\u529b\u8f15\u9b06\u96c6\u6210\u5230\u4f60\u7684\u5de5\u4f5c\u61c9\u7528\u7a0b\u5e8f\u4e2d\u3002LangChain \u5229\u7528 asyncio \u5eab\u7232 LLM \u63d0\u4f9b\u7570\u6b65\u652f\u6301\u3002<\/p>\n\n\n\n<p>\u5c0d\u65bc\u9700\u8981\u540c\u6642\u4f75\u767c\u8abf\u7528\u591a\u500b LLM \u7684\u7db2\u7d61\u7d81\u5b9a\u5834\u666f\uff0c<strong>LangChain \u9084\u63d0\u4f9b\u4e86\u7570\u6b65\u652f\u6301<\/strong>\u3002\u901a\u904e\u91cb\u653e\u8655\u7406\u8acb\u6c42\u7684\u7dda\u7a0b\uff0c\u670d\u52d9\u5668\u53ef\u4ee5\u5c07\u5176\u5206\u914d\u7d66\u5176\u4ed6\u4efb\u52d9\uff0c\u76f4\u5230\u97ff\u61c9\u6e96\u5099\u5c31\u7dd2\uff0c\u5f9e\u800c\u6700\u5927\u9650\u5ea6\u5730\u63d0\u9ad8\u8cc7\u6e90\u5229\u7528\u7387\u3002<\/p>\n\n\n\n<p>\u76ee\u524d\uff0cLangChain \u652f\u6301 OpenAI\u3001PromptLayerOpenAI\u3001ChatOpenAI \u548c Anthropic \u7b49\u6a21\u578b\u7684\u7570\u6b65\u652f\u6301\uff0c\u4f46\u5728\u672a\u4f86\u7684\u8a08\u5283\u4e2d\u5c07\u64f4\u5c55\u5c0d\u5176\u4ed6 LLM \u7684\u7570\u6b65\u652f\u6301\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528 agenerate \u65b9\u6cd5\u4f86\u7570\u6b65\u8abf\u7528 OpenAI LLM\u3002\u6b64\u5916\uff0c\u4f60\u9084\u53ef\u4ee5\u7de8\u5beb\u81ea\u5b9a\u7fa9\u7684 LLM \u5305\u88dd\u5668\uff0c\u800c\u4e0d\u50c5\u9650\u65bc LangChain \u6240\u652f\u6301\u7684\u6a21\u578b\u3002<\/p>\n\n\n\n<p>\u6211\u5728\u6211\u7684\u61c9\u7528\u7a0b\u5e8f\u4e2d\u4f7f\u7528\u4e86 OpenAI\uff0c\u4e26\u4e3b\u8981\u4f7f\u7528\u4e86 Davinci\u3001Babbage\u3001Curie \u548c Ada \u6a21\u578b\u4f86\u89e3\u6c7a\u6211\u7684\u554f\u984c\u3002\u6bcf\u500b\u6a21\u578b\u90fd\u6709\u5176\u81ea\u8eab\u7684\u512a\u9ede\u3001\u4ee4\u724c\u4f7f\u7528\u91cf\u548c\u4f7f\u7528\u6848\u4f8b\u3002<\/p>\n\n\n\n<p>\u6848\u4f8b 1\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#&nbsp;Importing&nbsp;modules&nbsp;\nfrom&nbsp;langchain.llms&nbsp;import&nbsp;OpenAI\n\n#Here&nbsp;we&nbsp;are&nbsp;using&nbsp;text-ada-001&nbsp;but&nbsp;you&nbsp;can&nbsp;change&nbsp;it&nbsp;\nllm&nbsp;=&nbsp;OpenAI(model_,&nbsp;n=2,&nbsp;best_of=2)\n\n#Ask&nbsp;anything\nllm(\"Tell&nbsp;me&nbsp;a&nbsp;joke\")<\/code><\/pre>\n\n\n\n<p>\u8f38\u51fa 1\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>'\\n\\nWhy&nbsp;did&nbsp;the&nbsp;chicken&nbsp;cross&nbsp;the&nbsp;road?\\n\\nTo&nbsp;get&nbsp;to&nbsp;the&nbsp;other&nbsp;side.'<\/code><\/pre>\n\n\n\n<p>\u6848\u4f8b 2\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>llm_result&nbsp;=&nbsp;llm.generate(&#91;\"Tell&nbsp;me&nbsp;a&nbsp;poem\"]*15)<\/code><\/pre>\n\n\n\n<p>\u8f38\u51fa 2\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;Generation(text=\"\\n\\nWhat&nbsp;if&nbsp;love&nbsp;neverspeech\\n\\nWhat&nbsp;if&nbsp;love&nbsp;never&nbsp;ended\\n\\nWhat&nbsp;if&nbsp;love&nbsp;was&nbsp;only&nbsp;a&nbsp;feeling\\n\\nI'll&nbsp;never&nbsp;know&nbsp;this&nbsp;love\\n\\nIt's&nbsp;not&nbsp;a&nbsp;feeling\\n\\nBut&nbsp;it's&nbsp;what&nbsp;we&nbsp;have&nbsp;for&nbsp;each&nbsp;other\\n\\nWe&nbsp;just&nbsp;know&nbsp;that&nbsp;love&nbsp;is&nbsp;something&nbsp;strong\\n\\nAnd&nbsp;we&nbsp;can't&nbsp;help&nbsp;but&nbsp;be&nbsp;happy\\n\\nWe&nbsp;just&nbsp;feel&nbsp;what&nbsp;love&nbsp;is&nbsp;for&nbsp;us\\n\\nAnd&nbsp;we&nbsp;love&nbsp;each&nbsp;other&nbsp;with&nbsp;all&nbsp;our&nbsp;heart\\n\\nWe&nbsp;just&nbsp;don't&nbsp;know&nbsp;how\\n\\nHow&nbsp;it&nbsp;will&nbsp;go\\n\\nBut&nbsp;we&nbsp;know&nbsp;that&nbsp;love&nbsp;is&nbsp;something&nbsp;strong\\n\\nAnd&nbsp;we'll&nbsp;always&nbsp;have&nbsp;each&nbsp;other\\n\\nIn&nbsp;our&nbsp;lives.\"),&nbsp;&nbsp;\n&nbsp;Generation(text='\\n\\nOnce&nbsp;upon&nbsp;a&nbsp;time\\n\\nThere&nbsp;was&nbsp;a&nbsp;love&nbsp;so&nbsp;pure&nbsp;and&nbsp;true\\n\\nIt&nbsp;lasted&nbsp;for&nbsp;centuries\\n\\nAnd&nbsp;never&nbsp;became&nbsp;stale&nbsp;or&nbsp;dry\\n\\nIt&nbsp;was&nbsp;moving&nbsp;and&nbsp;alive\\n\\nAnd&nbsp;the&nbsp;heart&nbsp;of&nbsp;the&nbsp;love-ick\\n\\nIs&nbsp;still&nbsp;beating&nbsp;strong&nbsp;and&nbsp;true.')]<\/code><\/pre>\n\n\n\n<p><strong>Prompt<\/strong><\/p>\n\n\n\n<p>\u8846\u6240\u5468\u77e5\uff0c\u63d0\u793a\uff08prompt\uff09\u662f\u6211\u5011\u5411\u7cfb\u7d71\u63d0\u4f9b\u7684\u8f38\u5165\uff0c\u4ee5\u4fbf\u6839\u64da\u6211\u5011\u7684\u4f7f\u7528\u6848\u4f8b\u5c0d\u7b54\u6848\u9032\u884c\u7cbe\u78ba\u6216\u7279\u5b9a\u7684\u8abf\u6574\u3002\u8a31\u591a\u6642\u5019\uff0c\u6211\u5011\u5e0c\u671b\u5f97\u5230\u7684\u4e0d\u50c5\u50c5\u662f\u6587\u672c\uff0c\u9084\u9700\u8981\u66f4\u7d50\u69cb\u5316\u7684\u4fe1\u606f\u3002<strong>\u57fa\u65bc\u5c0d\u6bd4\u9810\u8a13\u7df4\u548c\u96f6\u6a23\u672c\u5b78\u7fd2\u7684\u8a31\u591a\u65b0\u7684\u76ee\u6a19\u6aa2\u6e2c\u548c\u5206\u985e\u7b97\u6cd5\u90fd\u5c07\u63d0\u793a\u4f5c\u7232\u6709\u6548\u7684\u8f38\u5165\u4f86\u9032\u884c\u7d50\u679c\u9810\u6e2c<\/strong>\u3002\u8209\u4f8b\u4f86\u8aaa\uff0cOpenAI \u7684 CLIP \u548c META \u7684 Grounding DINO \u90fd\u4f7f\u7528\u63d0\u793a\u4f5c\u7232\u9810\u6e2c\u7684\u8f38\u5165\u3002<\/p>\n\n\n\n<p><strong>\u5728 LangChain \u4e2d\uff0c\u6211\u5011\u53ef\u4ee5\u6839\u64da\u9700\u8981\u8a2d\u7f6e\u63d0\u793a\u6a21\u677f\uff0c\u4e26\u5c07\u5176\u8207\u4e3b\u93c8\u76f8\u9023\u63a5\u4ee5\u9032\u884c\u8f38\u51fa\u9810\u6e2c\u3002<\/strong>&nbsp;\u6b64\u5916\uff0cLangChain \u9084\u63d0\u4f9b\u4e86\u8f38\u51fa\u89e3\u6790\u5668\u7684\u529f\u80fd\uff0c\u7528\u65bc\u9032\u4e00\u6b65\u7cbe\u7149\u7d50\u679c\u3002\u8f38\u51fa\u89e3\u6790\u5668\u7684\u4f5c\u7528\u662f\uff081\uff09\u6307\u5c0e\u6a21\u578b\u8f38\u51fa\u7684\u683c\u5f0f\u5316\u65b9\u5f0f\uff0c\u548c\uff082\uff09\u5c07\u8f38\u51fa\u89e3\u6790\u7232\u6240\u9700\u7684\u683c\u5f0f\uff08\u5305\u62ec\u5fc5\u8981\u6642\u7684\u91cd\u8a66\uff09\u3002<\/p>\n\n\n\n<p><strong>\u5728 LangChain \u4e2d\uff0c\u6211\u5011\u53ef\u4ee5\u63d0\u4f9b\u63d0\u793a\u6a21\u677f\u4f5c\u7232\u8f38\u5165\u3002<\/strong>&nbsp;\u6a21\u677f\u6307\u7684\u662f\u6211\u5011\u5e0c\u671b\u7372\u5f97\u7b54\u6848\u7684\u5177\u9ad4\u683c\u5f0f\u6216\u85cd\u5716\u3002LangChain \u63d0\u4f9b\u4e86\u9810\u5148\u8a2d\u8a08\u597d\u7684\u63d0\u793a\u6a21\u677f\uff0c\u53ef\u4ee5\u7528\u65bc\u751f\u6210\u4e0d\u540c\u985e\u578b\u4efb\u52d9\u7684\u63d0\u793a\u3002\u7136\u800c\uff0c\u5728\u67d0\u4e9b\u60c5\u6cc1\u4e0b\uff0c\u9810\u8a2d\u7684\u6a21\u677f\u53ef\u80fd\u7121\u6cd5\u6eff\u8db3\u4f60\u7684\u9700\u6c42\u3002\u5728\u9019\u7a2e\u60c5\u6cc1\u4e0b\uff0c\u6211\u5011\u53ef\u4ee5\u4f7f\u7528\u81ea\u5b9a\u7fa9\u7684\u63d0\u793a\u6a21\u677f\u3002<\/p>\n\n\n\n<p>\u6848\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from&nbsp;langchain&nbsp;import&nbsp;PromptTemplate\n#&nbsp;This&nbsp;template&nbsp;will&nbsp;act&nbsp;as&nbsp;a&nbsp;blue&nbsp;print&nbsp;for&nbsp;prompt\n\ntemplate&nbsp;=&nbsp;\"\"\"\nI&nbsp;want&nbsp;you&nbsp;to&nbsp;act&nbsp;as&nbsp;a&nbsp;naming&nbsp;consultant&nbsp;for&nbsp;new&nbsp;companies.\nWhat&nbsp;is&nbsp;a&nbsp;good&nbsp;name&nbsp;for&nbsp;a&nbsp;company&nbsp;that&nbsp;makes&nbsp;{product}?\n\"\"\"\n\nprompt&nbsp;=&nbsp;PromptTemplate(\n&nbsp;&nbsp;&nbsp;&nbsp;input_variables=&#91;\"product\"],\n&nbsp;&nbsp;&nbsp;&nbsp;template=template,\n)\nprompt.format(product=\"colorful&nbsp;socks\")\n#&nbsp;-&gt;&nbsp;I&nbsp;want&nbsp;you&nbsp;to&nbsp;act&nbsp;as&nbsp;a&nbsp;naming&nbsp;consultant&nbsp;for&nbsp;new&nbsp;companies.\n#&nbsp;-&gt;&nbsp;What&nbsp;is&nbsp;a&nbsp;good&nbsp;name&nbsp;for&nbsp;a&nbsp;company&nbsp;that&nbsp;makes&nbsp;colorful&nbsp;socks?<\/code><\/pre>\n\n\n\n<p><strong>Memory<\/strong><\/p>\n\n\n\n<p>\u5728 LangChain \u4e2d\uff0c\u93c8\u5f0f\u548c\u4ee3\u7406\u9ed8\u8a8d\u4ee5\u7121\u72c0\u614b\u6a21\u5f0f\u904b\u884c\uff0c\u5373\u5b83\u5011\u7368\u7acb\u8655\u7406\u6bcf\u500b\u50b3\u5165\u7684\u67e5\u8a62\u3002\u7136\u800c\uff0c\u5728\u67d0\u4e9b\u61c9\u7528\u7a0b\u5e8f\uff08\u5982\u804a\u5929\u6a5f\u5668\u4eba\uff09\u4e2d\uff0c\u4fdd\u7559\u5148\u524d\u7684\u4ea4\u4e92\u8a18\u9304\u5c0d\u65bc\u77ed\u671f\u548c\u9577\u671f\u90fd\u975e\u5e38\u91cd\u8981\u3002\u9019\u6642\u5c31\u9700\u8981\u5f15\u5165 \u201c\u5167\u5b58\u201d \u7684\u6982\u5ff5\u3002<\/p>\n\n\n\n<p>LangChain \u63d0\u4f9b\u5169\u7a2e\u5f62\u5f0f\u7684\u5167\u5b58\u7d44\u4ef6\u3002\u9996\u5148\uff0cLangChain \u63d0\u4f9b\u4e86\u8f14\u52a9\u5de5\u5177\uff0c\u7528\u65bc\u7ba1\u7406\u548c\u64cd\u4f5c\u5148\u524d\u7684\u804a\u5929\u6d88\u606f\uff0c\u9019\u4e9b\u5de5\u5177\u8a2d\u8a08\u6210\u6a21\u584a\u5316\u7684\uff0c\u7121\u8ad6\u7528\u4f8b\u5982\u4f55\uff0c\u90fd\u80fd\u5f88\u597d\u5730\u4f7f\u7528\u3002\u5176\u6b21\uff0cLangChain \u63d0\u4f9b\u4e86\u4e00\u7a2e\u7c21\u55ae\u7684\u65b9\u6cd5\u5c07\u9019\u4e9b\u5de5\u5177\u96c6\u6210\u5230\u93c8\u5f0f\u7d50\u69cb\u4e2d\uff0c\u4f7f\u5176\u975e\u5e38\u9748\u6d3b\u548c\u9069\u61c9\u5404\u7a2e\u60c5\u6cc1\u3002<\/p>\n\n\n\n<p>\u6848\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from&nbsp;langchain.memory&nbsp;import&nbsp;&nbsp;ChatMessageHistory&nbsp;&nbsp;\n&nbsp;&nbsp;\nhistory&nbsp;&nbsp;=&nbsp;ChatMessageHistory()&nbsp;&nbsp;\nhistory.add_user_message(\"hi!\")&nbsp;&nbsp;\n&nbsp;&nbsp;\nhistory.add_ai_message(\"whats&nbsp;up?\")&nbsp;&nbsp;\nhistory.messages<\/code><\/pre>\n\n\n\n<p>\u8f38\u51fa\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>&#91;HumanMessage(content='hi!',&nbsp;additional_kwargs={}),&nbsp;&nbsp;\n&nbsp;AIMessage(content='whats&nbsp;up?',&nbsp;additional_kwargs={})]<\/code><\/pre>\n\n\n\n<p><strong>Chain<\/strong><\/p>\n\n\n\n<p>\u93c8\u5f0f\uff08Chain\uff09\u63d0\u4f9b\u4e86\u5c07\u5404\u7a2e\u7d44\u4ef6\u5408\u4f75\u6210\u4e00\u500b\u7d71\u4e00\u61c9\u7528\u7a0b\u5e8f\u7684\u65b9\u5f0f\u3002\u4f8b\u5982\uff0c\u53ef\u4ee5\u5275\u5efa\u4e00\u500b\u93c8\u5f0f\uff0c\u5b83\u63a5\u6536\u7528\u6236\u7684\u8f38\u5165\uff0c\u4e26\u4f7f\u7528 PromptTemplate \u5c0d\u5176\u9032\u884c\u683c\u5f0f\u5316\uff0c\u7136\u5f8c\u5c07\u683c\u5f0f\u5316\u5f8c\u7684\u56de\u8986\u50b3\u905e\u7d66 LLM\uff08\u5927\u8a9e\u8a00\u6a21\u578b\uff09\u3002\u901a\u904e\u5c07\u591a\u500b\u93c8\u5f0f\u8207\u5176\u4ed6\u7d44\u4ef6\u96c6\u6210\uff0c\u53ef\u4ee5\u751f\u6210\u66f4\u5fa9\u96dc\u7684\u93c8\u5f0f\u7d50\u69cb\u3002<\/p>\n\n\n\n<p><strong>LLMChain \u88ab\u8a8d\u7232\u662f\u67e5\u8a62 LLM \u5c0d\u8c61\u6700\u5e38\u7528\u7684\u65b9\u6cd5\u4e4b\u4e00\u3002<\/strong>&nbsp;\u5b83\u6839\u64da\u63d0\u793a\u6a21\u677f\u5c07\u63d0\u4f9b\u7684\u8f38\u5165\u9375\u503c\u548c\u5167\u5b58\u9375\u503c\uff08\u5982\u679c\u5b58\u5728\uff09\u9032\u884c\u683c\u5f0f\u5316\uff0c\u7136\u5f8c\u5c07\u683c\u5f0f\u5316\u5f8c\u7684\u5b57\u7b26\u4e32\u767c\u9001\u7d66 LLM\uff0cLLM \u751f\u6210\u4e26\u8fd4\u56de\u8f38\u51fa\u7d50\u679c\u3002<\/p>\n\n\n\n<p>\u5728\u8abf\u7528\u8a9e\u8a00\u6a21\u578b\u5f8c\uff0c\u53ef\u4ee5\u6309\u7167\u4e00\u7cfb\u5217\u6b65\u9a5f\u9032\u884c\u64cd\u4f5c\uff0c\u53ef\u4ee5\u9032\u884c\u591a\u500b\u6a21\u578b\u8abf\u7528\u7684\u5e8f\u5217\u3002\u9019\u7a2e\u505a\u6cd5\u7279\u5225\u6709\u50f9\u503c\uff0c\u7576\u5e0c\u671b\u5c07\u4e00\u500b\u8abf\u7528\u7684\u8f38\u51fa\u4f5c\u7232\u53e6\u4e00\u500b\u8abf\u7528\u7684\u8f38\u5165\u6642\u3002\u5728\u9019\u500b\u93c8\u5f0f\u5e8f\u5217\u4e2d\uff0c\u6bcf\u500b\u93c8\u5f0f\u90fd\u6709\u4e00\u500b\u8f38\u5165\u548c\u4e00\u500b\u8f38\u51fa\uff0c\u4e00\u500b\u6b65\u9a5f\u7684\u8f38\u51fa\u4f5c\u7232\u4e0b\u4e00\u500b\u6b65\u9a5f\u7684\u8f38\u5165\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#Here&nbsp;we&nbsp;are&nbsp;chaining&nbsp;everything\nfrom&nbsp;langchain.chat_models&nbsp;import&nbsp;ChatOpenAI\nfrom&nbsp;langchain.prompts.chat&nbsp;import&nbsp;(\n&nbsp;&nbsp;&nbsp;&nbsp;ChatPromptTemplate,\n&nbsp;&nbsp;&nbsp;&nbsp;HumanMessagePromptTemplate,\n)\nhuman_message_prompt&nbsp;=&nbsp;HumanMessagePromptTemplate(\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;prompt=PromptTemplate(\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;template=\"What&nbsp;is&nbsp;a&nbsp;good&nbsp;name&nbsp;for&nbsp;a&nbsp;company&nbsp;that&nbsp;makes&nbsp;{product}?\",\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;input_variables=&#91;\"product\"],\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;)\n&nbsp;&nbsp;&nbsp;&nbsp;)\nchat_prompt_template&nbsp;=&nbsp;ChatPromptTemplate.from_messages(&#91;human_message_prompt])\nchat&nbsp;=&nbsp;ChatOpenAI(temperature=0.9)\n#&nbsp;Temperature&nbsp;is&nbsp;about&nbsp;randomness&nbsp;in&nbsp;answer&nbsp;more&nbsp;the&nbsp;temp,&nbsp;random&nbsp;the&nbsp;answer\n#Final&nbsp;Chain\n\nchain&nbsp;=&nbsp;LLMChain(llm=chat,&nbsp;prompt=chat_prompt_template)\nprint(chain.run(\"colorful&nbsp;socks\"))<\/code><\/pre>\n\n\n\n<p><strong>Agent<\/strong><\/p>\n\n\n\n<p>\u67d0\u4e9b\u61c9\u7528\u53ef\u80fd\u9700\u8981\u4e0d\u50c5\u9810\u5b9a\u7684 LLM\uff08\u5927\u578b\u8a9e\u8a00\u6a21\u578b\uff09\/ \u5176\u4ed6\u5de5\u5177\u8abf\u7528\u9806\u5e8f\uff0c\u9084\u53ef\u80fd\u9700\u8981\u6839\u64da\u7528\u6236\u7684\u8f38\u5165\u78ba\u5b9a\u4e0d\u78ba\u5b9a\u7684\u8abf\u7528\u9806\u5e8f\u3002\u9019\u7a2e\u60c5\u6cc1\u4e0b\u6d89\u53ca\u5230\u7684\u5e8f\u5217\u5305\u62ec\u4e00\u500b \u201c\u4ee3\u7406\uff08Agent\uff09\u201d\uff0c\u8a72\u4ee3\u7406\u53ef\u4ee5\u8a2a\u554f\u591a\u7a2e\u5de5\u5177\u3002\u6839\u64da\u7528\u6236\u7684\u8f38\u5165\uff0c\u4ee3\u7406\u53ef\u80fd\u6c7a\u5b9a\u662f\u5426\u8abf\u7528\u9019\u4e9b\u5de5\u5177\uff0c\u4e26\u78ba\u5b9a\u8abf\u7528\u6642\u7684\u8f38\u5165\u3002<\/p>\n\n\n\n<p>\u6839\u64da\u6587\u6a94\uff0c\u4ee3\u7406\u7684\u9ad8\u7d1a\u50de\u4ee3\u78bc\u5927\u81f4\u5982\u4e0b\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u63a5\u6536\u7528\u6236\u8f38\u5165\u3002<\/li>\n\n\n\n<li>\u4ee3\u7406\u6839\u64da\u8f38\u5165\u6c7a\u5b9a\u662f\u5426\u4f7f\u7528\u67d0\u500b\u5de5\u5177\uff0c\u4ee5\u53ca\u8a72\u5de5\u5177\u7684\u8f38\u5165\u61c9\u8a72\u662f\u4ec0\u9ebc\u3002<\/li>\n\n\n\n<li>\u8abf\u7528\u8a72\u5de5\u5177\uff0c\u4e26\u8a18\u9304\u89c0\u6e2c\u7d50\u679c\uff08\u5373\u4f7f\u7528\u8a72\u5de5\u5177\u548c\u8f38\u5165\u8abf\u7528\u5f8c\u5f97\u5230\u7684\u8f38\u51fa\uff09\u3002<\/li>\n\n\n\n<li>\u5c07\u5de5\u5177\u3001\u5de5\u5177\u8f38\u5165\u548c\u89c0\u6e2c\u7d50\u679c\u7684\u6b77\u53f2\u50b3\u905e\u8ff4\u4ee3\u7406\uff0c\u4ee3\u7406\u6c7a\u5b9a\u4e0b\u4e00\u6b65\u61c9\u8a72\u63a1\u53d6\u7684\u6b65\u9a5f\u3002<\/li>\n\n\n\n<li>\u91cd\u8907\u4e0a\u8ff0\u6b65\u9a5f\uff0c\u76f4\u5230\u4ee3\u7406\u6c7a\u5b9a\u4e0d\u518d\u9700\u8981\u4f7f\u7528\u5de5\u5177\uff0c\u7136\u5f8c\u76f4\u63a5\u5411\u7528\u6236\u4f5c\u51fa\u8ff4\u61c9\u3002<\/li>\n<\/ol>\n\n\n\n<p>\u9019\u500b\u904e\u7a0b\u6703\u4e00\u76f4\u91cd\u8907\uff0c\u76f4\u5230\u4ee3\u7406\u6c7a\u5b9a\u4e0d\u518d\u9700\u8981\u4f7f\u7528\u5de5\u5177\uff0c\u7136\u5f8c\u76f4\u63a5\u56de\u61c9\u7528\u6236\u3002<\/p>\n\n\n\n<p>\u6848\u4f8b\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>from&nbsp;langchain.agents&nbsp;import&nbsp;load_tools\nfrom&nbsp;langchain.agents&nbsp;import&nbsp;initialize_agent\nfrom&nbsp;langchain.agents&nbsp;import&nbsp;AgentType\nfrom&nbsp;langchain.llms&nbsp;import&nbsp;OpenAI\n\nllm&nbsp;=&nbsp;OpenAI(temperature=0)\n\ntools&nbsp;=&nbsp;load_tools(&#91;\"serpapi\",&nbsp;\"llm-math\"],&nbsp;llm=llm)\n\nagent&nbsp;=&nbsp;initialize_agent(tools,&nbsp;llm,&nbsp;agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION,&nbsp;verbose=True)\n\nagent.run(\"Who&nbsp;is&nbsp;Leo&nbsp;DiCaprio's&nbsp;girlfriend?&nbsp;What&nbsp;is&nbsp;her&nbsp;current&nbsp;age&nbsp;raised&nbsp;to&nbsp;the&nbsp;0.43&nbsp;power?\")<\/code><\/pre>\n\n\n\n<p>\u8b93\u6211\u5011\u5c07\u6240\u6709\u5167\u5bb9\u7e3d\u7d50\u5728\u4e0b\u9762\u9019\u5f35\u5716\u4e2d\u3002<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.readfog.com\/assets\/0b\/2d\/ae6a75a4930e19562e88060c9f7f.jpg?w=640&#038;ssl=1\" alt=\"\" style=\"width:774px;height:auto\"\/><\/figure>\n<\/div>\n\n\n<p>\u7406\u89e3\u6240\u6709\u6a21\u584a\u548c\u93c8\u5f0f\u64cd\u4f5c\u5c0d\u65bc\u4f7f\u7528 LangChain \u69cb\u5efa\u5927\u8a9e\u8a00\u6a21\u578b\u7684\u7ba1\u9053\u61c9\u7528\u7a0b\u5e8f\u975e\u5e38\u91cd\u8981\u3002\u9019\u53ea\u662f\u5c0d LangChain \u7684\u7c21\u55ae\u4ecb\u7d39\u3002<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"02-langchain-\"><strong>02 LangChain \u7684\u5be6\u969b\u61c9\u7528<\/strong><\/h2>\n\n\n\n<p>\u5ee2\u8a71\u5c11\u8aaa\uff0c\u8b93\u6211\u5011\u76f4\u63a5\u4f7f\u7528 LangChain \u69cb\u5efa\u7c21\u55ae\u7684\u61c9\u7528\u7a0b\u5e8f\u3002\u5176\u4e2d\u6700\u6709\u8da3\u7684\u61c9\u7528\u662f\u5728\u81ea\u5b9a\u7fa9\u6578\u64da\u4e0a\u5275\u5efa\u4e00\u500b\u554f\u7b54\u6a5f\u5668\u4eba\u3002<\/p>\n\n\n\n<p>\u514d\u8cac\u8072\u660e \/ \u8b66\u544a\uff1a\u9019\u6bb5\u4ee3\u78bc\u50c5\u7528\u65bc\u5c55\u793a\u61c9\u7528\u7a0b\u5e8f\u7684\u69cb\u5efa\u65b9\u5f0f\u3002\u6211\u4e26\u4e0d\u4fdd\u8b49\u4ee3\u78bc\u7684\u512a\u5316\uff0c\u4e26\u4e14\u6839\u64da\u5177\u9ad4\u7684\u554f\u984c\u9673\u8ff0\uff0c\u53ef\u80fd\u9700\u8981\u9032\u884c\u9032\u4e00\u6b65\u6539\u9032\u3002<\/p>\n\n\n\n<p><strong>\u958b\u59cb\u5c0e\u5165\u6a21\u584a<\/strong><\/p>\n\n\n\n<p>\u5c0e\u5165 LangChain \u548c OpenAI \u7528\u65bc\u5927\u8a9e\u8a00\u6a21\u578b\u90e8\u5206\u3002\u5982\u679c\u4f60\u9084\u6c92\u6709\u5b89\u88dd\u5b83\u5011\uff0c\u8acb\u5148\u5b89\u88dd\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#&nbsp;&nbsp;&nbsp;&nbsp;IMPORTS\nfrom&nbsp;langchain.embeddings.openai&nbsp;import&nbsp;OpenAIEmbeddings\nfrom&nbsp;langchain.vectorstores&nbsp;import&nbsp;Chroma\nfrom&nbsp;langchain.text_splitter&nbsp;import&nbsp;CharacterTextSplitter\nfrom&nbsp;langchain.chains&nbsp;import&nbsp;ConversationalRetrievalChain\nfrom&nbsp;langchain.vectorstores&nbsp;import&nbsp;ElasticVectorSearch,&nbsp;Pinecone,&nbsp;Weaviate,&nbsp;FAISS\nfrom&nbsp;PyPDF2&nbsp;import&nbsp;PdfReader\nfrom&nbsp;langchain&nbsp;import&nbsp;OpenAI,&nbsp;VectorDBQA\nfrom&nbsp;langchain.vectorstores&nbsp;import&nbsp;Chroma\nfrom&nbsp;langchain.prompts&nbsp;import&nbsp;PromptTemplate\nfrom&nbsp;langchain.chains&nbsp;import&nbsp;ConversationChain\n\nfrom&nbsp;langchain.document_loaders&nbsp;import&nbsp;TextLoader\n#&nbsp;from&nbsp;langchain&nbsp;import&nbsp;ConversationalRetrievalChain\nfrom&nbsp;langchain.chains.question_answering&nbsp;import&nbsp;load_qa_chain\nfrom&nbsp;langchain&nbsp;import&nbsp;LLMChain\n#&nbsp;from&nbsp;langchain&nbsp;import&nbsp;retrievers\nimport&nbsp;langchain\nfrom&nbsp;langchain.chains.conversation.memory&nbsp;import&nbsp;ConversationBufferMemory<\/code><\/pre>\n\n\n\n<p>py2PDF \u662f\u7528\u65bc\u8b80\u53d6\u548c\u8655\u7406 PDF \u6587\u4ef6\u7684\u5de5\u5177\u3002\u6b64\u5916\uff0c\u9084\u6709\u4e0d\u540c\u985e\u578b\u7684\u5167\u5b58\uff0c\u4f8b\u5982 ConversationBufferMemory \u548c ConversationBufferWindowMemory\uff0c\u5b83\u5011\u5177\u6709\u7279\u5b9a\u7684\u529f\u80fd\u3002\u6211\u5c07\u5728\u6700\u5f8c\u4e00\u90e8\u5206\u8a73\u7d30\u4ecb\u7d39\u6709\u95dc\u5167\u5b58\u7684\u5167\u5bb9\u3002<\/p>\n\n\n\n<p><strong>\u8a2d\u7f6e\u74b0\u5883<\/strong><\/p>\n\n\n\n<p>\u6211\u60f3\u4f60\u77e5\u9053\u5982\u4f55\u7372\u53d6 OpenAI API \u5bc6\u9470\uff0c\u4f46\u662f\u6211\u9084\u662f\u60f3\u8aaa\u660e\u4e00\u4e0b\uff1a<\/p>\n\n\n\n<ol class=\"wp-block-list\">\n<li>\u524d\u5f80 OpenAI API \u9801\u9762\uff0c<\/li>\n\n\n\n<li>\u9ede\u64ca \u201cCreate new secret key\uff08\u5275\u5efa\u65b0\u7684\u5bc6\u9470\uff09\u201d<\/li>\n\n\n\n<li>\u90a3\u5c07\u662f\u4f60\u7684 API \u5bc6\u9470\u3002\u8acb\u5c07\u5176\u7c98\u8cbc\u5728\u4e0b\u65b9<\/li>\n<\/ol>\n\n\n\n<pre class=\"wp-block-code\"><code>import&nbsp;os&nbsp;&nbsp;\nos.environ&#91;\"OPENAI_API_KEY\"]&nbsp;=&nbsp;\"sk-YOUR&nbsp;API&nbsp;KEY\"<\/code><\/pre>\n\n\n\n<p>\u8981\u4f7f\u7528\u54ea\u500b\u6a21\u578b\uff1fDavinci\u3001Babbage\u3001Curie \u9084\u662f Ada\uff1f\u57fa\u65bc GPT-3\u3001\u57fa\u65bc GPT-3.5\u3001\u9084\u662f\u57fa\u65bc GPT-4\uff1f\u95dc\u65bc\u6a21\u578b\u6709\u5f88\u591a\u554f\u984c\uff0c\u6240\u6709\u6a21\u578b\u90fd\u9069\u7528\u65bc\u4e0d\u540c\u7684\u4efb\u52d9\u3002\u6709\u4e9b\u6a21\u578b\u50f9\u683c\u8f03\u4f4e\uff0c\u6709\u4e9b\u6a21\u578b\u66f4\u6e96\u78ba\u3002<\/p>\n\n\n\n<p>\u7232\u4e86\u7c21\u55ae\u8d77\u898b\uff0c\u6211\u5011\u5c07\u4f7f\u7528\u6700\u7d93\u6fdf\u5be6\u60e0\u7684\u6a21\u578b \u201cgpt-3.5-turbo\u201d\u3002\u6eab\u5ea6\u662f\u4e00\u500b\u53c3\u6578\uff0c\u5b83\u5f71\u97ff\u7b54\u6848\u7684\u96a8\u6a5f\u6027\u3002\u6eab\u5ea6\u503c\u8d8a\u9ad8\uff0c\u6211\u5011\u5f97\u5230\u7684\u7b54\u6848\u5c31\u8d8a\u96a8\u6a5f\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>llm&nbsp;=&nbsp;ChatOpenAI(temperature=0,model_)<\/code><\/pre>\n\n\n\n<p>\u5728\u9019\u88cf\uff0c\u4f60\u53ef\u4ee5\u6dfb\u52a0\u81ea\u5df1\u7684\u6578\u64da\u3002\u4f60\u53ef\u4ee5\u4f7f\u7528\u4efb\u4f55\u683c\u5f0f\uff0c\u5982 PDF\u3001\u6587\u672c\u3001\u6587\u6a94\u6216 CSV\u3002\u6839\u64da\u4f60\u7684\u6578\u64da\u683c\u5f0f\uff0c\u4f60\u53ef\u4ee5\u53d6\u6d88 \/ \u8a3b\u91cb\u4ee5\u4e0b\u4ee3\u78bc\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#&nbsp;Custom&nbsp;data\nfrom&nbsp;langchain.document_loaders&nbsp;import&nbsp;DirectoryLoader\npdf_loader&nbsp;=&nbsp;PdfReader(r'Your&nbsp;PDF&nbsp;location')\n\n#&nbsp;excel_loader&nbsp;=&nbsp;DirectoryLoader('.\/Reports\/',&nbsp;glob=\"**\/*.txt\")\n#&nbsp;word_loader&nbsp;=&nbsp;DirectoryLoader('.\/Reports\/',&nbsp;glob=\"**\/*.docx\")<\/code><\/pre>\n\n\n\n<p>\u6211\u5011\u7121\u6cd5\u4e00\u6b21\u6027\u6dfb\u52a0\u6240\u6709\u6578\u64da\u3002\u6211\u5011\u5c07\u6578\u64da\u5206\u6210\u584a\u4e26\u5c07\u5176\u767c\u9001\u4ee5\u5275\u5efa\u6578\u64da Embedding\u3002<\/p>\n\n\n\n<p>Embedding \u662f\u4ee5\u6578\u5b57\u5411\u91cf\u6216\u6578\u7d44\u7684\u5f62\u5f0f\u8868\u793a\u7684\uff0c\u5b83\u5011\u6355\u6349\u4e86\u6a21\u578b\u8655\u7406\u548c\u751f\u6210\u7684\u6a19\u8a18\u7684\u5be6\u8cea\u548c\u4e0a\u4e0b\u6587\u4fe1\u606f\u3002\u9019\u4e9b\u5d4c\u5165\u662f\u901a\u904e\u6a21\u578b\u7684\u53c3\u6578\u6216\u6b0a\u91cd\u6d3e\u751f\u51fa\u4f86\u7684\uff0c\u7528\u65bc\u7de8\u78bc\u548c\u89e3\u78bc\u8f38\u5165\u548c\u8f38\u51fa\u6587\u672c\u3002<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.readfog.com\/assets\/fa\/21\/f714cfb6a200b2ec962c73e68fc7.png?w=640&#038;ssl=1\" alt=\"\"\/><\/figure>\n<\/div>\n\n\n<p>\u9019\u5c31\u662f Embedding \u7684\u5275\u5efa\u65b9\u5f0f\u3002<\/p>\n\n\n\n<p>\u7c21\u55ae\u4f86\u8aaa\uff0c\u5728 LLM \u4e2d\uff0cEmbedding \u662f\u5c07\u6587\u672c\u8868\u793a\u7232\u6578\u5b57\u5411\u91cf\u7684\u4e00\u7a2e\u65b9\u5f0f\u3002\u9019\u4f7f\u5f97\u8a9e\u8a00\u6a21\u578b\u80fd\u5920\u7406\u89e3\u55ae\u8a5e\u548c\u77ed\u8a9e\u7684\u542b\u7fa9\uff0c\u4e26\u57f7\u884c\u6587\u672c\u5206\u985e\u3001\u6458\u8981\u548c\u7ffb\u8b6f\u7b49\u4efb\u52d9\u3002<\/p>\n\n\n\n<p><strong>\u901a\u4fd7\u5730\u8aaa\uff0cEmbedding \u662f\u5c07\u55ae\u8a5e\u8f49\u5316\u7232\u6578\u5b57\u7684\u4e00\u7a2e\u65b9\u6cd5\u3002<\/strong>&nbsp;\u9019\u662f\u901a\u904e\u5728\u5927\u91cf\u6587\u672c\u8a9e\u6599\u5eab\u4e0a\u8a13\u7df4\u6a5f\u5668\u5b78\u7fd2\u6a21\u578b\u4f86\u5be6\u73fe\u7684\u3002\u6a21\u578b\u5b78\u6703\u5c07\u6bcf\u500b\u55ae\u8a5e\u8207\u4e00\u500b\u552f\u4e00\u7684\u6578\u5b57\u5411\u91cf\u76f8\u95dc\u806f\u3002\u8a72\u5411\u91cf\u4ee3\u8868\u55ae\u8a5e\u7684\u542b\u7fa9\uff0c\u4ee5\u53ca\u8207\u5176\u4ed6\u55ae\u8a5e\u7684\u95dc\u4fc2\u3002<\/p>\n\n\n\n<figure class=\"wp-block-image\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.readfog.com\/assets\/de\/54\/9ae11e975fe1cccac9b5c828c57c.jpg?w=640&#038;ssl=1\" alt=\"\"\/><\/figure>\n\n\n\n<p>\u8b93\u6211\u5011\u505a\u8207\u4e0a\u5716\u6240\u793a\u5b8c\u5168\u76f8\u540c\u7684\u4e8b\u60c5\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#Preprocessing&nbsp;of&nbsp;file\n\nraw_text&nbsp;=&nbsp;''\nfor&nbsp;i,&nbsp;page&nbsp;in&nbsp;enumerate(pdf_loader.pages):\n&nbsp;&nbsp;&nbsp;&nbsp;text&nbsp;=&nbsp;page.extract_text()\n&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;text:\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;raw_text&nbsp;+=&nbsp;text\n\n#&nbsp;print(raw_text&#91;:100])\n\n\ntext_splitter&nbsp;=&nbsp;CharacterTextSplitter(&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n&nbsp;&nbsp;&nbsp;&nbsp;separator&nbsp;=&nbsp;\"\\n\",\n&nbsp;&nbsp;&nbsp;&nbsp;chunk_size&nbsp;=&nbsp;1000,\n&nbsp;&nbsp;&nbsp;&nbsp;chunk_overlap&nbsp;&nbsp;=&nbsp;200,\n&nbsp;&nbsp;&nbsp;&nbsp;length_function&nbsp;=&nbsp;len,\n)\ntexts&nbsp;=&nbsp;text_splitter.split_text(raw_text)<\/code><\/pre>\n\n\n\n<p>\u5728\u5be6\u969b\u60c5\u6cc1\u4e2d\uff0c\u7576\u7528\u6236\u767c\u8d77\u67e5\u8a62\u6642\uff0c\u5c07\u5728\u5411\u91cf\u5b58\u5132\u4e2d\u9032\u884c\u641c\u7d22\uff0c\u4e26\u6aa2\u7d22\u51fa\u6700\u5408\u9069\u7684\u7d22\u5f15\uff0c\u7136\u5f8c\u5c07\u5176\u50b3\u905e\u7d66 LLM\u3002\u7136\u5f8c\uff0cLLM \u6703\u91cd\u65b0\u69cb\u5efa\u7d22\u5f15\u4e2d\u7684\u5167\u5bb9\uff0c\u4ee5\u5411\u7528\u6236\u63d0\u4f9b\u683c\u5f0f\u5316\u7684\u97ff\u61c9\u3002<\/p>\n\n\n\n<p>\u6211\u5efa\u8b70\u9032\u4e00\u6b65\u6df1\u5165\u7814\u7a76\u5411\u91cf\u5b58\u5132\u548c Embedding \u7684\u6982\u5ff5\uff0c\u4ee5\u589e\u5f37\u4f60\u7684\u7406\u89e3\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>embeddings&nbsp;=&nbsp;OpenAIEmbeddings()\n#&nbsp;vectorstore&nbsp;=&nbsp;Chroma.from_documents(documents,&nbsp;embeddings)\nvectorstore&nbsp;=&nbsp;FAISS.from_texts(texts,&nbsp;embeddings)<\/code><\/pre>\n\n\n\n<p>\u5d4c\u5165\u5411\u91cf\u76f4\u63a5\u5b58\u5132\u5728\u4e00\u500b\u5411\u91cf\u6578\u64da\u5eab\u4e2d\u3002\u6709\u8a31\u591a\u53ef\u7528\u7684\u5411\u91cf\u6578\u64da\u5eab\uff0c\u5982 Pinecone\u3001FAISS \u7b49\u3002\u5728\u9019\u88cf\uff0c\u6211\u5011\u5c07\u4f7f\u7528 FAISS\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>prompt_template&nbsp;=&nbsp;\"\"\"Use&nbsp;the&nbsp;following&nbsp;pieces&nbsp;of&nbsp;context&nbsp;to&nbsp;answer&nbsp;the&nbsp;question&nbsp;at&nbsp;the&nbsp;end.&nbsp;If&nbsp;you&nbsp;don't&nbsp;know&nbsp;the&nbsp;answer,&nbsp;just&nbsp;say&nbsp;GTGTGTGTGTGTGTGTGTG,&nbsp;don't&nbsp;try&nbsp;to&nbsp;make&nbsp;up&nbsp;an&nbsp;answer.\n{context}\nQuestion:&nbsp;{question}\nHelpful&nbsp;Answer:\"\"\"\nQA_PROMPT&nbsp;=&nbsp;PromptTemplate(\n&nbsp;&nbsp;&nbsp;&nbsp;template=prompt_template,&nbsp;input_variables=&#91;'context',\"question\"]\n)<\/code><\/pre>\n\n\n\n<p>\u4f60\u53ef\u4ee5\u4f7f\u7528\u81ea\u5df1\u7684\u63d0\u793a\u4f86\u512a\u5316\u67e5\u8a62\u548c\u7b54\u6848\u3002\u5728\u7de8\u5beb\u63d0\u793a\u5f8c\uff0c\u8b93\u6211\u5011\u5c07\u5176\u8207\u6700\u7d42\u7684\u93c8\u689d\u9032\u884c\u93c8\u63a5\u3002<\/p>\n\n\n\n<p>\u8b93\u6211\u5011\u8abf\u7528\u6700\u5f8c\u7684\u93c8\u689d\uff0c\u5176\u4e2d\u5305\u62ec\u4e4b\u524d\u93c8\u63a5\u7684\u6240\u6709\u5167\u5bb9\u3002\u6211\u5011\u5728\u9019\u88cf\u4f7f\u7528 ConversationalRetrievalChain\u3002\u5b83\u53ef\u4ee5\u5e6b\u52a9\u6211\u5011\u4ee5\u4eba\u985e\u7684\u65b9\u5f0f\u9032\u884c\u5c0d\u8a71\uff0c\u4e26\u8a18\u4f4f\u4e4b\u524d\u7684\u804a\u5929\u8a18\u9304\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>qa&nbsp;=&nbsp;ConversationalRetrievalChain.from_llm(ChatOpenAI(temperature=0.8),&nbsp;vectorstore.as_retriever(),qa_prompt=QA_PROMPT)<\/code><\/pre>\n\n\n\n<p>\u6211\u5011\u5c07\u4f7f\u7528\u7c21\u55ae\u7684 Gradio \u4f86\u5275\u5efa\u4e00\u500b Web \u61c9\u7528\u3002\u4f60\u53ef\u4ee5\u9078\u64c7\u4f7f\u7528 Streamlit \u6216\u5176\u4ed6\u524d\u7aef\u6280\u8853\u3002\u6b64\u5916\uff0c\u9084\u6709\u8a31\u591a\u514d\u8cbb\u7684\u90e8\u7f72\u9078\u9805\u53ef\u4f9b\u9078\u64c7\uff0c\u4f8b\u5982\u90e8\u7f72\u5230 Hugging Face \u6216\u672c\u5730\u4e3b\u6a5f\u4e0a\uff0c\u6211\u5011\u53ef\u4ee5\u5728\u7a0d\u5f8c\u9032\u884c\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>#&nbsp;Front&nbsp;end&nbsp;web&nbsp;app\nimport&nbsp;gradio&nbsp;as&nbsp;gr\nwith&nbsp;gr.Blocks()&nbsp;as&nbsp;demo:\n&nbsp;&nbsp;&nbsp;&nbsp;gr.Markdown(\"##&nbsp;Grounding&nbsp;DINO&nbsp;ChatBot\")\n&nbsp;&nbsp;&nbsp;&nbsp;chatbot&nbsp;=&nbsp;gr.Chatbot()\n&nbsp;&nbsp;&nbsp;&nbsp;msg&nbsp;=&nbsp;gr.Textbox()\n&nbsp;&nbsp;&nbsp;&nbsp;clear&nbsp;=&nbsp;gr.Button(\"Clear\")\n&nbsp;&nbsp;&nbsp;&nbsp;chat_history&nbsp;=&nbsp;&#91;]<\/code><\/pre>\n\n\n\n<pre class=\"wp-block-code\"><code>&nbsp;&nbsp;def&nbsp;user(user_message,&nbsp;history)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(\"Type&nbsp;of&nbsp;use&nbsp;msg:\",type(user_message))\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Get&nbsp;response&nbsp;from&nbsp;QA&nbsp;chain\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response&nbsp;=&nbsp;qa({\"question\":&nbsp;user_message,&nbsp;\"chat_history\":&nbsp;history})\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;#&nbsp;Append&nbsp;user&nbsp;message&nbsp;and&nbsp;response&nbsp;to&nbsp;chat&nbsp;history\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;history.append((user_message,&nbsp;response&#91;\"answer\"]))\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print(history)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;gr.update(value=\"\"),&nbsp;history\n&nbsp;&nbsp;&nbsp;&nbsp;msg.submit(user,&nbsp;&#91;msg,&nbsp;chatbot],&nbsp;&#91;msg,&nbsp;chatbot],&nbsp;queue=False)\n&nbsp;&nbsp;&nbsp;&nbsp;clear.click(lambda:&nbsp;None,&nbsp;None,&nbsp;chatbot,&nbsp;queue=False)\n&nbsp;&nbsp;&nbsp;&nbsp;############################################\n\nif&nbsp;__name__&nbsp;==&nbsp;\"__main__\":\n&nbsp;&nbsp;&nbsp;&nbsp;demo.launch(debug=True)<\/code><\/pre>\n\n\n\n<p>\u9019\u6bb5\u4ee3\u78bc\u5c07\u5728\u672c\u5730\u5275\u5efa\u4e00\u500b\u93c8\u63a5\uff0c\u4f60\u53ef\u4ee5\u76f4\u63a5\u63d0\u51fa\u554f\u984c\u4e26\u67e5\u770b\u56de\u7b54\u3002\u540c\u6642\uff0c\u5728\u4f60\u7684\u96c6\u6210\u958b\u767c\u74b0\u5883\uff08IDE\uff09\u4e2d\uff0c\u4f60\u5c07\u770b\u5230\u804a\u5929\u66c6\u53f2\u8a18\u9304\u7684\u7dad\u8b77\u60c5\u6cc1\u3002<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.readfog.com\/assets\/0b\/2d\/ae6a75a4930e19562e88060c9f7f.jpg?w=640&#038;ssl=1\" alt=\"\" style=\"width:750px;height:auto\"\/><\/figure>\n<\/div>\n\n\n<p>LangChain \u5feb\u7167<\/p>\n\n\n\n<p>\u9019\u662f\u4e00\u500b\u7c21\u55ae\u7684\u4ecb\u7d39\uff0c\u5c55\u793a\u77ad\u5982\u4f55\u901a\u904e\u9023\u63a5\u4e0d\u540c\u7684\u6a21\u584a\u4f86\u5275\u5efa\u6700\u7d42\u7684\u93c8\u689d\u3002\u901a\u904e\u5c0d\u6a21\u584a\u548c\u4ee3\u78bc\u9032\u884c\u8abf\u6574\uff0c\u4f60\u53ef\u4ee5\u5be6\u73fe\u8a31\u591a\u4e0d\u540c\u7684\u529f\u80fd\u3002\u6211\u60f3\u8aaa\uff0c<strong>\u73a9\u800d\u662f\u7814\u7a76\u7684\u6700\u9ad8\u5f62\u5f0f<\/strong>\uff01<\/p>\n\n\n\n<h2 class=\"wp-block-heading\" id=\"03-langchain--token-\"><strong>03 LangChain \u7684 Token \u548c\u6a21\u578b<\/strong><\/h2>\n\n\n\n<p><strong>Token<\/strong><\/p>\n\n\n\n<p><strong>Token \u53ef\u4ee5\u88ab\u8996\u7232\u55ae\u8a5e\u7684\u7d44\u6210\u90e8\u5206\u3002<\/strong>&nbsp;\u5728\u8655\u7406\u63d0\u793a\u4fe1\u606f\u4e4b\u524d\uff0cAPI \u6703\u5c07\u8f38\u5165\u62c6\u5206\u6210 Token\u3002Token \u7684\u5207\u5206\u4f4d\u7f6e\u4e0d\u4e00\u5b9a\u8207\u55ae\u8a5e\u7684\u958b\u59cb\u6216\u7d50\u675f\u4f4d\u7f6e\u5b8c\u5168\u5c0d\u61c9\uff0c\u9084\u53ef\u80fd\u5305\u62ec\u5c3e\u96a8\u7684\u7a7a\u683c\u751a\u81f3\u5b50\u8a5e\u3002<\/p>\n\n\n\n<p>\u5728\u81ea\u7136\u8a9e\u8a00\u8655\u7406\u4e2d\uff0c\u6211\u5011\u901a\u5e38\u6703\u9032\u884c Tokenizer \u7684\u64cd\u4f5c\uff0c\u5c07\u6bb5\u843d\u62c6\u5206\u7232\u53e5\u5b50\u6216\u55ae\u8a5e\u3002\u5728\u9019\u88cf\uff0c\u6211\u5011\u4e5f\u5c07\u53e5\u5b50\u548c\u6bb5\u843d\u5207\u5206\u6210\u7531\u55ae\u8a5e\u7d44\u6210\u7684\u5c0f\u584a\u3002<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.readfog.com\/assets\/29\/09\/c960ce0160d60c2dbb67a2b5065e.jpg?w=640&#038;ssl=1\" alt=\"\"\/><\/figure>\n<\/div>\n\n\n<p>\u4e0a\u5716\u986f\u793a\u77ad\u5982\u4f55\u5c07\u6587\u672c\u5206\u5272\u7232 Token\u3002\u4e0d\u540c\u984f\u8272\u8868\u793a\u4e0d\u540c\u7684 Token\u3002\u4e00\u500b\u7d93\u9a57\u6cd5\u5247\u662f\uff0c\u4e00\u500b Token \u5927\u7d04\u76f8\u7576\u65bc\u5e38\u898b\u82f1\u8a9e\u6587\u672c\u4e2d\u7684 4 \u500b\u5b57\u7b26\u3002\u9019\u610f\u5473\u7740 100 \u500b Token \u5927\u7d04\u76f8\u7576\u65bc 75 \u500b\u55ae\u8a5e\u3002<\/p>\n\n\n\n<p>\u5982\u679c\u4f60\u60f3\u6aa2\u67e5\u7279\u5b9a\u6587\u672c\u7684 Token \u6578\u91cf\uff0c\u53ef\u4ee5\u76f4\u63a5\u5728 OpenAI \u7684 Tokenizer \u4e0a\u9032\u884c\u6aa2\u67e5\u3002<\/p>\n\n\n\n<p>\u53e6\u4e00\u7a2e\u8a08\u7b97 Token \u6578\u91cf\u7684\u65b9\u6cd5\u662f\u4f7f\u7528 tiktoken \u5eab\u3002<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>import&nbsp;tiktoken\n#Write&nbsp;function&nbsp;to&nbsp;take&nbsp;string&nbsp;input&nbsp;and&nbsp;return&nbsp;number&nbsp;of&nbsp;tokens&nbsp;\ndef&nbsp;num_tokens_from_string(string:&nbsp;str,&nbsp;encoding_name:&nbsp;str)&nbsp;-&gt;&nbsp;int:\n&nbsp;&nbsp;&nbsp;&nbsp;\"\"\"Returns&nbsp;the&nbsp;number&nbsp;of&nbsp;tokens&nbsp;in&nbsp;a&nbsp;text&nbsp;string.\"\"\"\n&nbsp;&nbsp;&nbsp;&nbsp;encoding&nbsp;=&nbsp;tiktoken.encoding_for_model(encoding_name)\n&nbsp;&nbsp;&nbsp;&nbsp;num_tokens&nbsp;=&nbsp;len(encoding.encode(string))\n&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;num_tokens<\/code><\/pre>\n\n\n\n<p>\u6700\u5f8c\uff0c\u4f7f\u7528\u4e0a\u8ff0\u51fd\u6578\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>prompt&nbsp;=&nbsp;&#91;]\nfor&nbsp;i&nbsp;in&nbsp;data:\n&nbsp;&nbsp;&nbsp;&nbsp;prompt.append((num_tokens_from_string(i&#91;'prompt'],&nbsp;\"davinci\")))\n&nbsp;&nbsp;&nbsp;&nbsp;\ncompletion&nbsp;=&nbsp;&#91;]\nfor&nbsp;j&nbsp;in&nbsp;data:\n&nbsp;&nbsp;&nbsp;&nbsp;completion.append((num_tokens_from_string(j&#91;'completion'],&nbsp;\"davinci\")))\n&nbsp;&nbsp;&nbsp;&nbsp;\nres_list&nbsp;=&nbsp;&#91;]\nfor&nbsp;i&nbsp;in&nbsp;range(0,&nbsp;len(prompt)):\n&nbsp;&nbsp;&nbsp;&nbsp;res_list.append(prompt&#91;i]&nbsp;+&nbsp;completion&#91;i])\n&nbsp;&nbsp;&nbsp;&nbsp;\nno_of_final_token&nbsp;=&nbsp;0\nfor&nbsp;i&nbsp;in&nbsp;res_list:\n&nbsp;&nbsp;&nbsp;&nbsp;no_of_final_token+=i\nprint(\"Number&nbsp;of&nbsp;final&nbsp;token\",no_of_final_token)<\/code><\/pre>\n\n\n\n<p>\u8f38\u51fa\uff1a<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>Number&nbsp;of&nbsp;final&nbsp;token&nbsp;2094<\/code><\/pre>\n\n\n\n<p>\u4e0d\u540c\u6a21\u578b\u7684\u9078\u64c7\u53d7\u5230 Token \u6578\u91cf\u7684\u5f71\u97ff\u3002<\/p>\n\n\n\n<p>\u9996\u5148\uff0c\u8b93\u6211\u5011\u77ad\u89e3 OpenAI \u63d0\u4f9b\u7684\u4e0d\u540c\u6a21\u578b\u3002\u5728\u672c\u535a\u5ba2\u4e2d\uff0c\u6211\u5c08\u6ce8\u65bc OpenAI \u6a21\u578b\u3002\u6211\u5011\u4e5f\u53ef\u4ee5\u4f7f\u7528 hugging faces \u548c cohere AI \u6a21\u578b\u3002<\/p>\n\n\n\n<p>\u8b93\u6211\u5011\u5148\u4e86\u89e3\u57fa\u672c\u6a21\u578b\u3002<\/p>\n\n\n\n<p><strong>Model<\/strong><\/p>\n\n\n\n<p><strong>GPT \u4e4b\u6240\u4ee5\u5f37\u5927\uff0c\u662f\u56e0\u7232\u5b83\u662f\u5728\u5927\u898f\u6a21\u6578\u64da\u96c6\u4e0a\u9032\u884c\u8a13\u7df4\u7684\u3002<\/strong>&nbsp;\u7136\u800c\uff0c\u5f37\u5927\u7684\u529f\u80fd\u4e5f\u4f34\u96a8\u7740\u4e00\u5b9a\u7684\u4ee3\u50f9\uff0c\u56e0\u6b64 OpenAI \u63d0\u4f9b\u4e86\u591a\u500b\u53ef\u4f9b\u9078\u64c7\u7684\u6a21\u578b\uff0c\u4e5f\u88ab\u7a31\u7232\u5f15\u64ce\u3002<\/p>\n\n\n\n<p>Davinci \u662f\u6700\u5927\u3001\u529f\u80fd\u6700\u5f37\u5927\u7684\u5f15\u64ce\u3002\u5b83\u53ef\u4ee5\u57f7\u884c\u5176\u4ed6\u5f15\u64ce\u53ef\u4ee5\u57f7\u884c\u7684\u6240\u6709\u4efb\u52d9\u3002Babbage \u662f\u6b21\u5f37\u5927\u7684\u5f15\u64ce\uff0c\u5b83\u53ef\u4ee5\u57f7\u884c Curie \u548c Ada \u80fd\u5920\u57f7\u884c\u7684\u4efb\u52d9\u3002Ada \u662f\u529f\u80fd\u6700\u5f31\u7684\u5f15\u64ce\uff0c\u4f46\u5b83\u6027\u80fd\u6700\u4f73\u4e14\u50f9\u683c\u6700\u4f4e\u3002<\/p>\n\n\n\n<p>\u96a8\u7740 GPT \u7684\u4e0d\u65b7\u9aee\u5c55\uff0c\u9084\u6709\u8a31\u591a\u4e0d\u540c\u7248\u672c\u7684\u6a21\u578b\u53ef\u4f9b\u9078\u64c7\u3002GPT \u7cfb\u5217\u4e2d\u5927\u7d04\u6709 50 \u591a\u500b\u6a21\u578b\u53ef\u4f9b\u4f7f\u7528\u3002<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.readfog.com\/assets\/be\/97\/00c0a7796cbc6be083544d9c84eb.jpg?w=640&#038;ssl=1\" alt=\"\" style=\"width:664px;height:auto\"\/><\/figure>\n<\/div>\n\n\n<p>\u622a\u5716\u81ea OpenAI \u5b98\u65b9\u6a21\u578b\u9801\u9762<\/p>\n\n\n\n<p>\u56e0\u6b64\uff0c\u91dd\u5c0d\u4e0d\u540c\u7684\u7528\u9014\uff0c\u6709\u4e0d\u540c\u7684\u6a21\u578b\u53ef\u4f9b\u9078\u64c7\uff0c\u5305\u62ec\u751f\u6210\u548c\u7de8\u8f2f\u5716\u50cf\u3001\u8655\u7406\u97f3\u983b\u548c\u7de8\u78bc\u7b49\u3002\u5c0d\u65bc\u6587\u672c\u8655\u7406\u548c\u81ea\u7136\u8a9e\u8a00\u8655\u7406\uff0c\u6211\u5011\u5e0c\u671b\u9078\u64c7\u80fd\u5920\u6e96\u78ba\u57f7\u884c\u4efb\u52d9\u7684\u6a21\u578b\u3002\u5728\u4e0a\u5716\u4e2d\uff0c\u6211\u5011\u53ef\u4ee5\u770b\u5230\u4e09\u500b\u53ef\u7528\u7684\u6a21\u578b\uff1a<\/p>\n\n\n\n<ul class=\"wp-block-list\">\n<li>GPT-3<\/li>\n\n\n\n<li>GPT-3.5<\/li>\n\n\n\n<li>GPT-4<\/li>\n<\/ul>\n\n\n\n<p>\u7136\u800c\uff0c\u76ee\u524d\u6211\u5011\u7121\u6cd5\u76f4\u63a5\u4f7f\u7528 GPT-4\uff0c\u56e0\u7232 GPT-4 \u76ee\u524d\u50c5\u9650\u65bc\u6709\u9650\u7684\u6e2c\u8a66\u968e\u6bb5\uff0c\u53ea\u6709\u7279\u5b9a\u6388\u6b0a\u7528\u6236\u624d\u80fd\u4f7f\u7528\u3002\u6211\u5011\u9700\u8981\u52a0\u5165\u7b49\u5f85\u5217\u8868\u4e26\u7b49\u5f85\u6388\u6b0a\u3002\u56e0\u6b64\uff0c\u73fe\u5728\u6211\u5011\u53ea\u5269\u4e0b\u5169\u500b\u9078\u64c7\uff0c\u5373 GPT-3 \u548c GPT-3.5\u3002<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.readfog.com\/assets\/f8\/0f\/26a36a0f379e287fb7eb889ddc7f.jpg?w=640&#038;ssl=1\" alt=\"\" style=\"width:638px;height:auto\"\/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.readfog.com\/assets\/c8\/e4\/80230932f13ce59f8484562e66fa.jpg?w=640&#038;ssl=1\" alt=\"\" style=\"width:651px;height:auto\"\/><\/figure>\n<\/div>\n\n\n<p>\u622a\u5716\u81ea OpenAI \u5b98\u65b9\u6a21\u578b\u9801\u9762<\/p>\n\n\n\n<p>\u4e0a\u5716\u5c55\u793a\u4e86 GPT-3 \u548c GPT-3.5 \u53ef\u7528\u7684\u6a21\u578b\u3002\u4f60\u53ef\u4ee5\u770b\u5230\u9019\u4e9b\u6a21\u578b\u90fd\u662f\u57fa\u65bc Davinci\u3001Babbage\u3001Curie \u548c Ada \u7684\u4e0d\u540c\u7248\u672c\u3002<\/p>\n\n\n\n<p>\u5982\u679c\u4f60\u89c0\u5bdf\u4e0a\u9762\u7684\u5716\u8868\uff0c\u6703\u767c\u73fe\u6709\u4e00\u500b\u540d\u7232 \u201cMax tokens\u201d \u7684\u5217\u3002\u201cMax tokens\u201d \u662f OpenAI \u6a21\u578b\u7684\u4e00\u500b\u53c3\u6578\uff0c\u7528\u65bc\u9650\u5236\u55ae\u500b\u8acb\u6c42\u4e2d\u53ef\u4ee5\u751f\u6210\u7684 Token \u6578\u91cf\u3002\u8a72\u9650\u5236\u5305\u62ec\u63d0\u793a\u548c\u5b8c\u6210\u7684 Token \u6578\u91cf\u3002<\/p>\n\n\n\n<p>\u63db\u53e5\u8a71\u8aaa\uff0c\u5982\u679c\u4f60\u7684\u63d0\u793a\u4f54\u7528\u4e86 1,000 \u500b Token\uff0c\u90a3\u9ebc\u4f60\u53ea\u80fd\u751f\u6210\u6700\u591a 3,000 \u500b Token \u7684\u5b8c\u6210\u6587\u672c\u3002\u6b64\u5916\uff0c\u201cMax tokens\u201d \u9650\u5236\u7531 OpenAI \u670d\u52d9\u5668\u57f7\u884c\u3002\u5982\u679c\u4f60\u5617\u8a66\u751f\u6210\u8d85\u904e\u9650\u5236\u7684\u6587\u672c\uff0c\u4f60\u7684\u8acb\u6c42\u5c07\u88ab\u62d2\u7d55\u3002<\/p>\n\n\n\n<p>\u57fa\u65bc GPT-3 \u7684\u6a21\u578b\u5177\u6709\u8f03\u4f4e\u7684 \u201cMax tokens\u201d \u6578\u503c\uff082049\uff09\uff0c\u800c\u57fa\u65bc GPT-3.5 \u7684\u6a21\u578b\u5177\u6709\u8f03\u9ad8\u7684\u6578\u503c\uff084096\uff09\u3002\u56e0\u6b64\uff0c\u4f7f\u7528 GPT-3\u30025 \u6a21\u578b\u53ef\u4ee5\u8655\u7406\u66f4\u591a\u7684\u6578\u64da\u91cf\u3002<\/p>\n\n\n\n<p>\u63a5\u4e0b\u4f86\uff0c\u8b93\u6211\u5011\u4f86\u4e86\u89e3\u4e0d\u540c\u6a21\u578b\u7684\u5b9a\u50f9\u3002<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.readfog.com\/assets\/a6\/f7\/0f65c53a81359a37158168f1c4a5.jpg?w=640&#038;ssl=1\" alt=\"\" style=\"width:812px;height:auto\"\/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.readfog.com\/assets\/01\/74\/77267a9e855a358a525900831089.jpg?w=640&#038;ssl=1\" alt=\"\" style=\"width:806px;height:auto\"\/><\/figure>\n<\/div>\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.readfog.com\/assets\/c3\/97\/357679d76414175137bfddc7350d.jpg?w=640&#038;ssl=1\" alt=\"\" style=\"width:789px;height:auto\"\/><\/figure>\n<\/div>\n\n\n<p>\u6211\u5011\u53ef\u4ee5\u9078\u64c7\u57fa\u65bc GPT-3.5 \u7684 \u201cgpt-3.5-turbo\u201d \u6a21\u578b\u3002<\/p>\n\n\n\n<p>\u5047\u8a2d\u6211\u6709 5000 \u500b\u55ae\u8a5e\uff0c\u4e26\u4e14\u6211\u4f7f\u7528 \u201cgpt-3.5-turbo\u201d \u6a21\u578b\uff0c\u90a3\u9ebc\uff1a<\/p>\n\n\n\n<p>5000 \u500b\u55ae\u8a5e\u7d04\u7b49\u65bc 6667 \u500b Token\u3002<\/p>\n\n\n\n<p>\u73fe\u5728\uff0c\u5c0d\u65bc 1000 \u500b Token\uff0c\u6211\u5011\u9700\u8981 0.002 \u7f8e\u5143\u3002<\/p>\n\n\n\n<p>\u56e0\u6b64\uff0c\u5c0d\u65bc 6667 \u500b Token\uff0c\u6211\u5011\u5927\u7d04\u9700\u8981 0.0133 \u7f8e\u5143\u3002<\/p>\n\n\n\n<p>\u6211\u5011\u53ef\u4ee5\u7c97\u7565\u8a08\u7b97\u9700\u8981\u591a\u5c11\u4f7f\u7528\u91cf\u4f86\u9032\u884c\u8655\u7406\u3002\u540c\u6642\uff0c\u8fed\u4ee3\u6b21\u6578\u662f\u6703\u6539\u8b8a Token \u6578\u91cf\u7684\u4e00\u500b\u53c3\u6578\uff0c\u56e0\u6b64\u5728\u8a08\u7b97\u4e2d\u9700\u8981\u8003\u616e\u9019\u4e00\u9ede\u3002<\/p>\n\n\n\n<p>\u73fe\u5728\uff0c\u4f60\u53ef\u4ee5\u7406\u89e3 Token \u7684\u91cd\u8981\u6027\u4e86\u5427\u3002\u9019\u5c31\u662f\u7232\u4ec0\u9ebc\u6211\u5011\u5fc5\u9808\u9032\u884c\u975e\u5e38\u4e7e\u6de8\u548c\u9069\u7576\u7684\u9810\u8655\u7406\uff0c\u4ee5\u6e1b\u5c11\u6587\u6a94\u4e2d\u7684\u566a\u8072\uff0c\u540c\u6642\u4e5f\u6e1b\u5c11\u8655\u7406 Token \u7684\u6210\u672c\u3002\u56e0\u6b64\uff0c\u6b63\u78ba\u6e05\u7406\u6587\u672c\u975e\u5e38\u91cd\u8981\uff0c\u4f8b\u5982\u6d88\u9664\u566a\u8072\u3002\u751a\u81f3\u522a\u9664\u591a\u9918\u7684\u7a7a\u683c\u4e5f\u53ef\u4ee5\u7232\u4f60\u7684 API \u5bc6\u9470\u7bc0\u7701\u8cbb\u7528\u3002<\/p>\n\n\n\n<p>\u8b93\u6211\u5011\u5728\u4e00\u500b\u5167\u5b58\u5716\u4e2d\u67e5\u770b\u6240\u6709\u6a21\u578b\u3002<\/p>\n\n\n<div class=\"wp-block-image\">\n<figure class=\"aligncenter is-resized\"><img data-recalc-dims=\"1\" decoding=\"async\" src=\"https:\/\/i0.wp.com\/www.readfog.com\/assets\/ff\/bc\/cedd9e8a6e83255584cf5fb2ae2c.jpg?w=640&#038;ssl=1\" alt=\"\" style=\"width:665px;height:auto\"\/><\/figure>\n<\/div>\n\n\n<h2 class=\"wp-block-heading\" id=\"heading\"><strong>\u7e3d\u7d50<\/strong><\/h2>\n\n\n\n<p>Token \u5c0d\u65bc\u554f\u984c\u56de\u7b54\u6216\u5176\u4ed6 LLM \u76f8\u95dc\u4efb\u52d9\u81f3\u95dc\u91cd\u8981\u3002\u5982\u4f55\u4ee5\u4e00\u7a2e\u80fd\u5920\u4f7f\u7528\u66f4\u4fbf\u5b9c\u7684\u6a21\u578b\u7684\u65b9\u5f0f\u9810\u8655\u7406\u6578\u64da\u662f\u771f\u6b63\u7684\u8b8a\u9769\u56e0\u7d20\u3002\u6a21\u578b\u7684\u9078\u64c7\u53d6\u6c7a\u65bc\u4f60\u5e0c\u671b\u505a\u51fa\u7684\u6b0a\u8861\u3002Davinci \u7cfb\u5217\u5c07\u4ee5\u66f4\u9ad8\u7684\u901f\u5ea6\u548c\u6e96\u78ba\u6027\u63d0\u4f9b\u670d\u52d9\uff0c\u4f46\u6210\u672c\u8f03\u9ad8\u3002\u800c\u57fa\u65bc GPT-3.5 Turbo \u7684\u6a21\u578b\u5c07\u7bc0\u7701\u8cbb\u7528\uff0c\u4f46\u901f\u5ea6\u8f03\u6162\u3002<\/p>\n\n\n\n<p>\u8cc7\u6599\u4f86\u6e90:<a href=\"https:\/\/www.readfog.com\/a\/1706407494707941376\" data-type=\"link\" data-id=\"https:\/\/www.readfog.com\/a\/1706407494707941376\">https:\/\/www.readfog.com\/a\/1706407494707941376<\/a><\/p>\n","protected":false},"excerpt":{"rendered":"<p>2023-08-04 | readfog \u5728\u65e5\u5e38\u751f\u6d3b\u4e2d\uff0c\u6211\u5011\u901a\u5e38\u81f4\u529b\u65bc\u69cb\u5efa\u7aef\u5230\u7aef\u7684\u61c9\u7528\u7a0b\u5e8f\u3002\u6709\u8a31\u591a\u81ea\u52d5\u6a5f\u5668\u5b78\u7fd2\u5e73\u81fa\u548c\u6301\u7e8c\u96c6\u6210 \/ \u6301\u7e8c\u4ea4\u4ed8\uff08CI\/CD\uff09\u6d41\u6c34\u7dda\u53ef\u7528\u65bc\u81ea\u52d5\u5316\u6211\u5011\u7684\u6a5f\u5668&hellip;<\/p>\n","protected":false},"author":9,"featured_media":5467,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":"","jetpack_post_was_ever_published":false},"categories":[579,4],"tags":[26,40],"class_list":["post-5466","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-579","category-industry-news","tag-ai","tag-40"],"gutentor_comment":0,"jetpack_featured_media_url":"https:\/\/i0.wp.com\/aict.nkust.edu.tw\/digitrans\/wp-content\/uploads\/2024\/03\/%E4%B8%8B%E8%BC%89-e1709824606989.png?fit=338%2C99&ssl=1","jetpack-related-posts":[],"jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/aict.nkust.edu.tw\/digitrans\/index.php?rest_route=\/wp\/v2\/posts\/5466","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/aict.nkust.edu.tw\/digitrans\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/aict.nkust.edu.tw\/digitrans\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/aict.nkust.edu.tw\/digitrans\/index.php?rest_route=\/wp\/v2\/users\/9"}],"replies":[{"embeddable":true,"href":"https:\/\/aict.nkust.edu.tw\/digitrans\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=5466"}],"version-history":[{"count":1,"href":"https:\/\/aict.nkust.edu.tw\/digitrans\/index.php?rest_route=\/wp\/v2\/posts\/5466\/revisions"}],"predecessor-version":[{"id":5468,"href":"https:\/\/aict.nkust.edu.tw\/digitrans\/index.php?rest_route=\/wp\/v2\/posts\/5466\/revisions\/5468"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/aict.nkust.edu.tw\/digitrans\/index.php?rest_route=\/wp\/v2\/media\/5467"}],"wp:attachment":[{"href":"https:\/\/aict.nkust.edu.tw\/digitrans\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=5466"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/aict.nkust.edu.tw\/digitrans\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=5466"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/aict.nkust.edu.tw\/digitrans\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=5466"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}