Spaces:
Runtime error
Runtime error
远兮
commited on
Commit
·
56ac16d
1
Parent(s):
25e92b9
增加PromptTemplate
Browse files- custom_prompt_template.ipynb +103 -0
custom_prompt_template.ipynb
ADDED
@@ -0,0 +1,103 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
{
|
2 |
+
"cells": [
|
3 |
+
{
|
4 |
+
"cell_type": "code",
|
5 |
+
"execution_count": 5,
|
6 |
+
"metadata": {},
|
7 |
+
"outputs": [],
|
8 |
+
"source": [
|
9 |
+
"from langchain.chat_models import ChatOpenAI\n",
|
10 |
+
"from langchain import LLMChain\n",
|
11 |
+
"from langchain.prompts.chat import (\n",
|
12 |
+
" ChatPromptTemplate,\n",
|
13 |
+
" SystemMessagePromptTemplate,\n",
|
14 |
+
" HumanMessagePromptTemplate\n",
|
15 |
+
")\n",
|
16 |
+
"\n",
|
17 |
+
"from langchain.schema import (\n",
|
18 |
+
" AIMessage,\n",
|
19 |
+
" BaseMessage,\n",
|
20 |
+
" ChatGeneration,\n",
|
21 |
+
" ChatMessage,\n",
|
22 |
+
" ChatResult,\n",
|
23 |
+
" HumanMessage,\n",
|
24 |
+
" SystemMessage,\n",
|
25 |
+
")"
|
26 |
+
]
|
27 |
+
},
|
28 |
+
{
|
29 |
+
"cell_type": "code",
|
30 |
+
"execution_count": 6,
|
31 |
+
"metadata": {},
|
32 |
+
"outputs": [],
|
33 |
+
"source": [
|
34 |
+
"def _convert_message_to_dict(message: BaseMessage) -> dict:\n",
|
35 |
+
" if isinstance(message, ChatMessage):\n",
|
36 |
+
" message_dict = {\"role\": message.role, \"content\": message.content}\n",
|
37 |
+
" elif isinstance(message, HumanMessage):\n",
|
38 |
+
" message_dict = {\"role\": \"user\", \"content\": message.content}\n",
|
39 |
+
" elif isinstance(message, AIMessage):\n",
|
40 |
+
" message_dict = {\"role\": \"assistant\", \"content\": message.content}\n",
|
41 |
+
" elif isinstance(message, SystemMessage):\n",
|
42 |
+
" message_dict = {\"role\": \"system\", \"content\": message.content}\n",
|
43 |
+
" else:\n",
|
44 |
+
" raise ValueError(f\"Got unknown type {message}\")\n",
|
45 |
+
" if \"name\" in message.additional_kwargs:\n",
|
46 |
+
" message_dict[\"name\"] = message.additional_kwargs[\"name\"]\n",
|
47 |
+
" return message_dict"
|
48 |
+
]
|
49 |
+
},
|
50 |
+
{
|
51 |
+
"cell_type": "code",
|
52 |
+
"execution_count": 9,
|
53 |
+
"metadata": {},
|
54 |
+
"outputs": [
|
55 |
+
{
|
56 |
+
"name": "stdout",
|
57 |
+
"output_type": "stream",
|
58 |
+
"text": [
|
59 |
+
"[SystemMessage(content='你是一名翻译助手。把中文 翻译为 英语。', additional_kwargs={}), HumanMessage(content='我想请假', additional_kwargs={}, example=False)]\n",
|
60 |
+
"[{'role': 'system', 'content': '你是一名翻译助手。把中文 翻译为 英语。'}, {'role': 'user', 'content': '我想请假'}]\n"
|
61 |
+
]
|
62 |
+
}
|
63 |
+
],
|
64 |
+
"source": [
|
65 |
+
"\n",
|
66 |
+
"template = \"你是一名翻译助手。把{input_language} 翻译为 {output_language}。\"\n",
|
67 |
+
"system_message_prompt = SystemMessagePromptTemplate.from_template(template)\n",
|
68 |
+
"\n",
|
69 |
+
"human_template = \"{text}\"\n",
|
70 |
+
"human_message_prompt = HumanMessagePromptTemplate.from_template(human_template)\n",
|
71 |
+
"\n",
|
72 |
+
"# 这里是使用chat请求,返回BaseMessage。\n",
|
73 |
+
"chat_prompt_template = ChatPromptTemplate.from_messages([system_message_prompt, human_message_prompt])\n",
|
74 |
+
"messages = chat_prompt_template.format_prompt(input_language=\"中文\", output_language=\"英语\", text=\"我想请假\").to_messages()\n",
|
75 |
+
"print(messages)\n",
|
76 |
+
"message_dicts = [_convert_message_to_dict(m) for m in messages]\n",
|
77 |
+
"print(message_dicts)"
|
78 |
+
]
|
79 |
+
}
|
80 |
+
],
|
81 |
+
"metadata": {
|
82 |
+
"kernelspec": {
|
83 |
+
"display_name": "base",
|
84 |
+
"language": "python",
|
85 |
+
"name": "python3"
|
86 |
+
},
|
87 |
+
"language_info": {
|
88 |
+
"codemirror_mode": {
|
89 |
+
"name": "ipython",
|
90 |
+
"version": 3
|
91 |
+
},
|
92 |
+
"file_extension": ".py",
|
93 |
+
"mimetype": "text/x-python",
|
94 |
+
"name": "python",
|
95 |
+
"nbconvert_exporter": "python",
|
96 |
+
"pygments_lexer": "ipython3",
|
97 |
+
"version": "3.10.10"
|
98 |
+
},
|
99 |
+
"orig_nbformat": 4
|
100 |
+
},
|
101 |
+
"nbformat": 4,
|
102 |
+
"nbformat_minor": 2
|
103 |
+
}
|