远兮 commited on
Commit
56ac16d
·
1 Parent(s): 25e92b9

增加PromptTemplate

Browse files
Files changed (1) hide show
  1. 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
+ }