Spaces:
Runtime error
Runtime error
File size: 3,786 Bytes
e27205e |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 |
{
"cells": [
{
"cell_type": "code",
"execution_count": 16,
"metadata": {},
"outputs": [],
"source": [
"from langchain.prompts.example_selector import MaxMarginalRelevanceExampleSelector\n",
"from langchain.vectorstores import FAISS\n",
"from langchain.embeddings import OpenAIEmbeddings\n",
"from langchain.prompts import FewShotPromptTemplate, PromptTemplate\n",
"\n",
"example_prompt = PromptTemplate(\n",
" input_variables=[\"input\", \"output\"],\n",
" template=\"Input: {input}\\nOutput: {output}\",\n",
")\n",
"\n",
"# These are a lot of examples of a pretend task of creating antonyms.\n",
"examples = [\n",
" {\"input\": \"高兴\", \"output\": \"悲伤\"},\n",
" {\"input\": \"个子高\", \"output\": \"个子矮\"},\n",
" {\"input\": \"精力充沛\", \"output\": \"昏昏欲睡\"},\n",
" {\"input\": \"晴朗\", \"output\": \"阴暗的阴暗的\"},\n",
" {\"input\": \"多风\", \"output\": \"平静的\"},\n",
" {\"input\": \"经济下滑\", \"output\": \"业绩增长\"},\n",
" {\"input\": \"飞翔\", \"output\": \"天空\"},\n",
" {\"input\": \"教育\", \"output\": \"平静的\"},\n",
" {\"input\": \"小孩儿\", \"output\": \"平静的\"},\n",
" {\"input\": \"开心\", \"output\": \"平静的\"},\n",
" {\"input\": \"消防员\", \"output\": \"平静的\"},\n",
" {\"input\": \"程序员\", \"output\": \"平静的\"},\n",
" {\"input\": \"理财师\", \"output\": \"平静的\"},\n",
" {\"input\": \"学生\", \"output\": \"平静的\"},\n",
" {\"input\": \"计算机\", \"output\": \"平静的\"},\n",
"]"
]
},
{
"cell_type": "code",
"execution_count": 17,
"metadata": {},
"outputs": [],
"source": [
"example_selector = MaxMarginalRelevanceExampleSelector.from_examples(\n",
" # This is the list of examples available to select from.\n",
" examples, \n",
" # This is the embedding class used to produce embeddings which are used to measure semantic similarity.\n",
" OpenAIEmbeddings(), \n",
" # This is the VectorStore class that is used to store the embeddings and do a similarity search over.\n",
" FAISS, \n",
" # This is the number of examples to produce.\n",
" k=2\n",
")\n",
"mmr_prompt = FewShotPromptTemplate(\n",
" # We provide an ExampleSelector instead of examples.\n",
" example_selector=example_selector,\n",
" example_prompt=example_prompt,\n",
" prefix=\"Give the antonym of every input\",\n",
" suffix=\"Input: {adjective}\\nOutput:\", \n",
" input_variables=[\"adjective\"],\n",
")"
]
},
{
"cell_type": "code",
"execution_count": 18,
"metadata": {},
"outputs": [
{
"name": "stdout",
"output_type": "stream",
"text": [
"Give the antonym of every input\n",
"\n",
"Input: 理财师\n",
"Output: 平静的\n",
"\n",
"Input: 经济下滑\n",
"Output: 业绩增长\n",
"\n",
"Input: 投资\n",
"Output:\n"
]
}
],
"source": [
"# Input is a feeling, so should select the happy/sad example as the first one\n",
"print(mmr_prompt.format(adjective=\"投资\"))"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "base",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.10.10"
},
"orig_nbformat": 4
},
"nbformat": 4,
"nbformat_minor": 2
}
|