{"id":1323,"date":"2024-05-03T23:31:06","date_gmt":"2024-05-03T23:31:06","guid":{"rendered":"https:\/\/www.nicekj.com\/?p=1323"},"modified":"2024-05-03T23:31:06","modified_gmt":"2024-05-03T23:31:06","slug":"langchainxilie-8promptmobanshaoyangbenpromptmobaner","status":"publish","type":"post","link":"https:\/\/www.nicekj.com\/langchainxilie-8promptmobanshaoyangbenpromptmobaner.html","title":{"rendered":"\u3010LangChain\u7cfb\u5217 8\u3011Prompt\u6a21\u7248\u2014\u2014\u5c11\u6837\u672cprompt\u6a21\u7248(\u4e8c)"},"content":{"rendered":"<p>\u539f\u6587\u5730\u5740\uff1a<a href=\"https:\/\/link.juejin.cn?target=https%3A%2F%2Fmp.weixin.qq.com%2Fs%2Fo3qRJo0UKV6eo037C7avjQ\" target=\"_blank\" title=\"https:\/\/mp.weixin.qq.com\/s\/o3qRJo0UKV6eo037C7avjQ\" ref=\"nofollow noopener noreferrer\" rel=\"noopener\">\u3010LangChain\u7cfb\u5217 8\u3011Prompt\u6a21\u7248\u2014\u2014\u5c11\u6837\u672cprompt\u6a21\u7248(\u4e8c)<\/a><\/p>\n<p>\u672c\u6587\u901f\u8bfb\uff1a<\/p>\n<ul>\n<li>\n<p>\u56fa\u5b9a\u5c11\u6837\u672cprompt\u6a21\u7248<\/p>\n<\/li>\n<li>\n<p>\u52a8\u6001\u5c11\u6837\u672cprompt\u6a21\u7248<\/p>\n<\/li>\n<\/ul>\n<p>\u5728\u4e0a\u7bc7\u6587\u7ae0\u4e2d\u4ecb\u7ecd\u4e86\u5c11\u6837\u672c\u6a21\u7248\u7684\u57fa\u672c\u7528\u6cd5\uff0c\u672c\u6587\u5c06\u4ecb\u7ecd&nbsp;\u5bf9\u8bdd\u6a21\u578b(chat model) \u4e2d \u5c11\u6837prompt\u6a21\u7248\u7684\u7528\u6cd5\u3002LangChain\u5c01\u88c5\u4e86\u4e00\u4e9b\u50cfFewShotChatMessagePromptTemplate\u7684\u5c11\u6837\u672cprompt\u6a21\u7248\uff0c\u5728\u6b64\u57fa\u7840\u4e0a\u6211\u4eec\u53ef\u4ee5\u7075\u6d3b\u7684\u8bbe\u8ba1\u6211\u4eec\u9700\u8981\u7684 \u5c11\u6837\u672cprompt\u6a21\u7248\u3002\u5c11\u6837\u672cprompt\u6a21\u7248 \u7684\u76ee\u6807\u5c31\u662f\u53ef\u4ee5\u6839\u636e\u8f93\u5165\u53bb\u52a8\u6001\u5730\u9009\u62e9\u6837\u672c\uff0c\u7136\u540e\u5c06\u9009\u62e9\u7684\u6837\u672c\u683c\u5f0f\u5316\u5230\u6700\u540e\u7684prompt\u4e2d\u53bb\u3002<\/p>\n<h2 data-id=\"heading-0\">01 \u56fa\u5b9a\u5c11\u6837\u672cprompt\u6a21\u7248<\/h2>\n<p>\u6700\u57fa\u672c\u7684\u5c11\u6837\u672cprompt\u6280\u672f\u662f\u4f7f\u7528\u56fa\u5b9a\u7684prompt\u6837\u672c\uff0c\u6240\u4ee5\u5bf9\u4e8e\u4e00\u4e2a\u5c11\u6837\u672cprompt\u6a21\u7248\u81f3\u5c11\u8981\u5305\u542b\uff1a<\/p>\n<ul>\n<li>\n<p>examples\uff1a\u7528\u4e8eprompt\u7684\u6837\u672c\u6570\u636e<\/p>\n<\/li>\n<li>\n<p>example_prompt\uff1a\u5c06\u6bcf\u4e2a\u6837\u672c\u6570\u636e\u8f6c\u6362\u6210message<\/p>\n<\/li>\n<\/ul>\n<p>\u8bdd\u4e0d\u591a\u8bf4\uff0c\u4e0b\u9762\u5c06\u901a\u8fc7\u4e00\u4e2a\u793a\u4f8b\u6765\u4ecb\u7ecd \u56fa\u5b9a\u5c11\u6837\u672cprompt\u6a21\u7248 \u7684\u4f7f\u7528\u3002<\/p>\n<p>1. \u5bfc\u5165\u76f8\u5173\u6a21\u5757<\/p>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">javascript<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-javascript code-block-extension-codeShowNum\" lang=\"javascript\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\"><span class=\"hljs-keyword\">from<\/span> langchain.<span class=\"hljs-property\">prompts<\/span> <span class=\"hljs-keyword\">import<\/span> (<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">    <span class=\"hljs-title class_\">FewShotChatMessagePromptTemplate<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">    <span class=\"hljs-title class_\">ChatPromptTemplate<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">)<\/span>\n<\/code><\/pre>\n<p>2. \u5b9a\u4e49examples<\/p>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">ini<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-ini code-block-extension-codeShowNum\" lang=\"ini\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\"><span class=\"hljs-attr\">examples<\/span> = [<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">    {<span class=\"hljs-string\">\"input\"<\/span>: <span class=\"hljs-string\">\"2+2\"<\/span>, <span class=\"hljs-string\">\"output\"<\/span>: <span class=\"hljs-string\">\"4\"<\/span>},<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">    {<span class=\"hljs-string\">\"input\"<\/span>: <span class=\"hljs-string\">\"2+3\"<\/span>, <span class=\"hljs-string\">\"output\"<\/span>: <span class=\"hljs-string\">\"5\"<\/span>},<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">]<\/span>\n<\/code><\/pre>\n<p>3. \u5b9a\u4e49example_prompt<\/p>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">ini<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-ini code-block-extension-codeShowNum\" lang=\"ini\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\"><span class=\"hljs-comment\"># This is a prompt template used to format each individual example.<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\"><span class=\"hljs-attr\">example_prompt<\/span> = ChatPromptTemplate.from_messages(<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">    <span class=\"hljs-section\">[<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">        (\"human\", \"{input}\"),<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\">        (\"ai\", \"{output}\"),<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\">    ]<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"7\">)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"8\"><span class=\"hljs-attr\">few_shot_prompt<\/span> = FewShotChatMessagePromptTemplate(<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"9\">    <span class=\"hljs-attr\">example_prompt<\/span>=example_prompt,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"10\">    <span class=\"hljs-attr\">examples<\/span>=examples,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"11\">)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"12\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"13\">print(few_shot_prompt.format())<\/span>\n<\/code><\/pre>\n<p>\u6267\u884c\u4ee3\u7801\uff0c\u8f93\u51fa\u7ed3\u679c\uff1a<\/p>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">yaml<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-yaml code-block-extension-codeShowNum\" lang=\"yaml\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\">  <span class=\"hljs-attr\">Human:<\/span> <span class=\"hljs-number\">2<\/span><span class=\"hljs-string\">+2<\/span>  <span class=\"hljs-attr\">AI: 4  Human:<\/span> <span class=\"hljs-number\">2<\/span><span class=\"hljs-string\">+3<\/span>  <span class=\"hljs-attr\">AI:<\/span> <span class=\"hljs-number\">5<\/span><\/span>\n<\/code><\/pre>\n<p>4. \u62fc\u88c5\u6700\u7ec8\u7684prompt<\/p>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">css<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-css code-block-extension-codeShowNum\" lang=\"css\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\">final_prompt = ChatPromptTemplate<span class=\"hljs-selector-class\">.from_messages<\/span>(<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">    <span class=\"hljs-selector-attr\">[        (<span class=\"hljs-string\">\"system\"<\/span>, <span class=\"hljs-string\">\"You are a wondrous wizard of math.\"<\/span>),        few_shot_prompt,        (<span class=\"hljs-string\">\"human\"<\/span>, <span class=\"hljs-string\">\"{input}\"<\/span>),    ]<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\"><span class=\"hljs-selector-tag\">from<\/span> langchain<span class=\"hljs-selector-class\">.chat_models<\/span> import ChatAnthropic<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"7\">chain = final_prompt | ChatAnthropic(temperature=<span class=\"hljs-number\">0.0<\/span>)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"8\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"9\">chain<span class=\"hljs-selector-class\">.invoke<\/span>({\"<span class=\"hljs-selector-tag\">input<\/span>\": <span class=\"hljs-string\">\"What's the square of a triangle?\"<\/span>})<\/span>\n<\/code><\/pre>\n<p>ChatAnthropic\u662f\u4e00\u4e2a\u5bf9\u8bdd\u5927\u8bed\u8a00\u6a21\u578b\uff0c\u5c06\u6700\u7ec8\u7684prompt\u8f93\u5165\u7ed9\u5b83\uff0c\u7136\u540e\u5f97\u5230\u4e00\u4e2a\u56de\u7b54\u3002\u6267\u884c\u4ee3\u7801\uff0c\u8f93\u51fa\u7ed3\u679c\uff1a<\/p>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">vbnet<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-vbnet code-block-extension-codeShowNum\" lang=\"vbnet\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\">AIMessage(content=<span class=\"hljs-comment\">' Triangles do not have a \"square\". A square refers to a shape with 4 equal sides and 4 right angles. Triangles have 3 sides and 3 angles.\\n\\nThe area of a triangle can be calculated using the formula:\\n\\nA = 1\/2 * b * h\\n\\nWhere:\\n\\nA is the area \\nb is the base (the length of one of the sides)\\nh is the height (the length from the base to the opposite vertex)\\n\\nSo the area depends on the specific dimensions of the triangle. There is no single \"square of a triangle\". The area can vary greatly depending on the base and height measurements.', additional_kwargs={}, example=False)<\/span><\/span>\n<\/code><\/pre>\n<h2 data-id=\"heading-1\">02 \u52a8\u6001\u5c11\u6837\u672cprompt\u6a21\u7248<\/h2>\n<p>\u6709\u65f6\u6211\u4eec\u53ef\u80fd\u9700\u8981\u4ece\u6240\u6709\u6837\u672c\u4e2d\u52a8\u6001\u9009\u62e9\u66f4\u52a0\u7b26\u5408\u8981\u6c42\u7684\u6837\u672c\uff0c\u6b64\u65f6\u6211\u4eec\u53ea\u9700\u8981\u628aexamples\u66ff\u6362\u6210example_selector\u5c31\u53ef\u4ee5\u4e86\uff1b\u90a3\u4e48\u52a8\u6001\u7684\u5c11\u6837\u672cprompt\u6a21\u7248\u5305\u542b\uff1a<\/p>\n<ul>\n<li>\n<p>example_selector\uff1a\u6839\u636e\u8f93\u5165\u4ece\u6240\u6709\u6837\u672c\u4e2d\u9009\u62e9\u90e8\u5206\u6837\u672c\u6570\u636e<\/p>\n<\/li>\n<li>\n<p>example_prompt\uff1a\u5c06\u6bcf\u4e2a\u6837\u672c\u6570\u636e\u8f6c\u6362\u6210message<\/p>\n<\/li>\n<\/ul>\n<p>\u4e0b\u9762\u5c06\u4ecb\u7ecd\u5982\u4f55\u4f7f\u7528\u52a8\u6001\u5c11\u6837\u672cprompt\u6a21\u7248\u3002<\/p>\n<p>1. \u5bfc\u5165\u76f8\u5173\u5305<\/p>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">javascript<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-javascript code-block-extension-codeShowNum\" lang=\"javascript\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\"><span class=\"hljs-keyword\">from<\/span> langchain.<span class=\"hljs-property\">prompts<\/span> <span class=\"hljs-keyword\">import<\/span> <span class=\"hljs-title class_\">SemanticSimilarityExampleSelector<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\"><span class=\"hljs-keyword\">from<\/span> langchain.<span class=\"hljs-property\">embeddings<\/span> <span class=\"hljs-keyword\">import<\/span> <span class=\"hljs-title class_\">OpenAIEmbeddings<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\"><span class=\"hljs-keyword\">from<\/span> langchain.<span class=\"hljs-property\">vectorstores<\/span> <span class=\"hljs-keyword\">import<\/span> <span class=\"hljs-title class_\">Chroma<\/span><\/span>\n<\/code><\/pre>\n<p>2. \u5b9a\u4e49example\uff0c\u5e76\u5411\u91cf\u5316<\/p>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">ini<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-ini code-block-extension-codeShowNum\" lang=\"ini\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\"><span class=\"hljs-attr\">examples<\/span> = [<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">    {<span class=\"hljs-string\">\"input\"<\/span>: <span class=\"hljs-string\">\"2+2\"<\/span>, <span class=\"hljs-string\">\"output\"<\/span>: <span class=\"hljs-string\">\"4\"<\/span>},<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">    {<span class=\"hljs-string\">\"input\"<\/span>: <span class=\"hljs-string\">\"2+3\"<\/span>, <span class=\"hljs-string\">\"output\"<\/span>: <span class=\"hljs-string\">\"5\"<\/span>},<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">    {<span class=\"hljs-string\">\"input\"<\/span>: <span class=\"hljs-string\">\"2+4\"<\/span>, <span class=\"hljs-string\">\"output\"<\/span>: <span class=\"hljs-string\">\"6\"<\/span>},<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\">    {<span class=\"hljs-string\">\"input\"<\/span>: <span class=\"hljs-string\">\"What did the cow say to the moon?\"<\/span>, <span class=\"hljs-string\">\"output\"<\/span>: <span class=\"hljs-string\">\"nothing at all\"<\/span>},<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\">    {<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"7\">        <span class=\"hljs-string\">\"input\"<\/span>: <span class=\"hljs-string\">\"Write me a poem about the moon\"<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"8\">        <span class=\"hljs-string\">\"output\"<\/span>: <span class=\"hljs-string\">\"One for the moon, and one for me, who are we to talk about the moon?\"<\/span>,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"9\">    },<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"10\">]<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"11\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"12\"><span class=\"hljs-attr\">to_vectorize<\/span> = [<span class=\"hljs-string\">\" \"<\/span>.join(example.values()) for example in examples]<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"13\"><span class=\"hljs-attr\">embeddings<\/span> = OpenAIEmbeddings()<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"14\"><span class=\"hljs-attr\">vectorstore<\/span> = Chroma.from_texts(to_vectorize, embeddings, metadatas=examples)<\/span>\n<\/code><\/pre>\n<p>3. \u521b\u5efaexample_selector<\/p>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">bash<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-bash code-block-extension-codeShowNum\" lang=\"bash\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\">example_selector = SemanticSimilarityExampleSelector(<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">    vectorstore=vectorstore,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">    k=2,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\"><span class=\"hljs-comment\"># The prompt template will load examples by passing the input do the `select_examples` method<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"7\">example_selector.select_examples({<span class=\"hljs-string\">\"input\"<\/span>: <span class=\"hljs-string\">\"horse\"<\/span>})<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"8\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"9\">    [{<span class=\"hljs-string\">'input'<\/span>: <span class=\"hljs-string\">'What did the cow say to the moon?'<\/span>, <span class=\"hljs-string\">'output'<\/span>: <span class=\"hljs-string\">'nothing at all'<\/span>},<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"10\">     {<span class=\"hljs-string\">'input'<\/span>: <span class=\"hljs-string\">'2+4'<\/span>, <span class=\"hljs-string\">'output'<\/span>: <span class=\"hljs-string\">'6'<\/span>}]<\/span>\n<\/code><\/pre>\n<p>4. \u521b\u5efaprompt\u6a21\u7248<\/p>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">ini<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-ini code-block-extension-codeShowNum\" lang=\"ini\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\">from langchain.prompts import (<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">    FewShotChatMessagePromptTemplate,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">    ChatPromptTemplate,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\">)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\"><span class=\"hljs-comment\"># Define the few-shot prompt.<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"7\"><span class=\"hljs-attr\">few_shot_prompt<\/span> = FewShotChatMessagePromptTemplate(<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"8\">    <span class=\"hljs-comment\"># The input variables select the values to pass to the example_selector<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"9\">    <span class=\"hljs-attr\">input_variables<\/span>=[<span class=\"hljs-string\">\"input\"<\/span>],<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"10\">    <span class=\"hljs-attr\">example_selector<\/span>=example_selector,<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"11\">    <span class=\"hljs-comment\"># Define how each example will be formatted.<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"12\">    <span class=\"hljs-comment\"># In this case, each example will become 2 messages:<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"13\">    <span class=\"hljs-comment\"># 1 human, and 1 AI<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"14\">    <span class=\"hljs-attr\">example_prompt<\/span>=ChatPromptTemplate.from_messages(<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"15\">        <span class=\"hljs-section\">[(\"human\", \"{input}\"), (\"ai\", \"{output}\")]<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"16\">    ),<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"17\">)<\/span>\n<\/code><\/pre>\n<p>\u8f93\u51fa\u7ed3\u679c\uff1a<\/p>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">yaml<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-yaml code-block-extension-codeShowNum\" lang=\"yaml\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\">  <span class=\"hljs-attr\">Human:<\/span> <span class=\"hljs-number\">2<\/span><span class=\"hljs-string\">+3<\/span>  <span class=\"hljs-attr\">AI: 5  Human:<\/span> <span class=\"hljs-number\">2<\/span><span class=\"hljs-string\">+2<\/span>  <span class=\"hljs-attr\">AI:<\/span> <span class=\"hljs-number\">4<\/span><\/span>\n<\/code><\/pre>\n<p>few_shot_prompt\u4f1a\u6839\u636einput\uff0c\u52a8\u6001\u5730\u4eceexamples\u4e2d\u53bb\u9009\u62e9\u5408\u9002\u7684example\u6570\u636e\u3002<\/p>\n<p>5. \u62fc\u88c5\u6700\u7ec8\u7684prompt<\/p>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">css<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-css code-block-extension-codeShowNum\" lang=\"css\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\">final_prompt = ChatPromptTemplate<span class=\"hljs-selector-class\">.from_messages<\/span>(<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"2\">    <span class=\"hljs-selector-attr\">[        (<span class=\"hljs-string\">\"system\"<\/span>, <span class=\"hljs-string\">\"You are a wondrous wizard of math.\"<\/span>),        few_shot_prompt,        (<span class=\"hljs-string\">\"human\"<\/span>, <span class=\"hljs-string\">\"{input}\"<\/span>),    ]<\/span><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"3\">)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"4\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"5\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"6\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"7\"><span class=\"hljs-selector-tag\">from<\/span> langchain<span class=\"hljs-selector-class\">.chat_models<\/span> import ChatAnthropic<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"8\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"9\">chain = final_prompt | ChatAnthropic(temperature=<span class=\"hljs-number\">0.0<\/span>)<\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"10\"><\/span>\n<span class=\"code-block-extension-codeLine\" data-line-num=\"11\">chain<span class=\"hljs-selector-class\">.invoke<\/span>({\"<span class=\"hljs-selector-tag\">input<\/span>\": <span class=\"hljs-string\">\"What's 3+3?\"<\/span>})<\/span>\n<\/code><\/pre>\n<p>\u8fd0\u884c\u4ee3\u7801\uff0c\u8f93\u51fa\u7ed3\u679c\uff1a<\/p>\n<pre><\/div><div class=\"code-block-extension-headerRight\"><span class=\"code-block-extension-lang\">ini<\/span><div class=\"code-block-extension-copyCodeBtn\">\u590d\u5236\u4ee3\u7801<\/div><\/div><\/div><code class=\"hljs language-ini code-block-extension-codeShowNum\" lang=\"ini\"><span class=\"code-block-extension-codeLine\" data-line-num=\"1\">AIMessage(<span class=\"hljs-attr\">content<\/span>=<span class=\"hljs-string\">' 3 + 3 = 6'<\/span>, additional_kwargs={}, example=<span class=\"hljs-literal\">False<\/span>)<\/span>\n<\/code><\/pre>\n<p><strong>\u672c\u6587\u5c0f\u7ed3<\/strong><\/p>\n<p>\u672c\u6587\u4e3b\u8981\u4ecb\u7ecd\u4e86\u5728\u5bf9\u8bdd\u6a21\u578b(chat model)\u4e2d\uff0c\u4f7f\u7528\u5c11\u6837\u672cprompt\u6a21\u7248\u7684\u4e24\u79cd\u65b9\u5f0f\uff1a\u56fa\u5b9a\u6837\u672c\u548c\u52a8\u6001\u6837\u672c\u3002\u52a8\u6001\u6837\u672c\u53ef\u4ee5\u6839\u636e\u7528\u6237\u8f93\u5165\uff0c\u52a8\u6001\u5730\u9009\u62e9\u5408\u9002\u7684\u6837\u672c\uff0c\u6700\u7ec8\u7ec4\u6210prompt\u8f93\u5165\u7ed9LLM\uff0c\u4ece\u800cLLM\u53ef\u4ee5\u66f4\u597d\u5730\u7406\u89e3prompt\uff0c\u7ed9\u51fa\u66f4\u52a0\u7b26\u5408\u8981\u6c42\u7684\u7b54\u6848\u3002<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u6587\u4e3b\u8981\u4ecb\u7ecd\u4e86 \u56fa\u5b9a\u5c11\u6837\u672cprompt\u6a21\u7248 \u548c \u52a8\u6001\u5c11\u6837\u672cprompt\u6a21\u7248 \u7684\u4f7f\u7528\uff0c\u5bf9\u4e8e\u6837\u672c\u5f88\u591a\uff0c\u6216\u8005\u90e8\u5206\u6837\u672c\u6cbb\u7406\u4e0d\u9ad8\u7684\u60c5\u51b5\uff0c\u53ef\u4ee5\u4f7f\u7528 \u52a8\u6001\u5c11\u6837\u672cprompt\u6a21\u7248\u63d0\u9ad8prompt\u7684\u6574\u4f53\u8d28\u91cf\u3002<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"rank_math_title":"","rank_math_description":"","rank_math_focus_keyword":"","views":"1","footnotes":""},"categories":[3],"tags":[126,127,128,129,136],"collection":[],"class_list":["post-1323","post","type-post","status-publish","format-standard","hentry","category-fenlei2","tag-gpt","tag-ai","tag-128","tag-129","tag-136"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/posts\/1323","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/comments?post=1323"}],"version-history":[{"count":0,"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/posts\/1323\/revisions"}],"wp:attachment":[{"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/media?parent=1323"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/categories?post=1323"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/tags?post=1323"},{"taxonomy":"collection","embeddable":true,"href":"https:\/\/www.nicekj.com\/nicekj2024\/wp\/v2\/collection?post=1323"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}