แม่แบบข้อความพร้อม
โมเดลภาษารับข้อความเป็นอินพุตซึ่งมักถูกเรียกว่า "โปรมป์ท์" ขณะที่พัฒนา โปรมป์ท์บางครั้งไม่ได้ถูกโค้ดตรงไปตรงมา เพราะสิ่งนี้จะไม่เหมาะสมกับการจัดการโปรมป์ แทนนั้นแม่แบบโปรมป์ถูกใช้เพื่อบริหารจัดการโปรมป์ เช่นเดียวกับแม่แบบสำหรับเนื้อหาข้อความ SMS หรืออีเมล
แม่แบบโปรมป์คืออะไร?
แม่แบบโปรมป์ไม่ต่างจากแม่แบบอีเมลหรือ SMS ที่ใช้งานทั่วไป มันเป็นแม่แบบสตริงที่สามารถบรรจุชุดของพารามิเตอร์แม่แบบ พารามิเตอร์ค่าของแม่แบบจะถูกใช้เพื่อแทนที่พารามิเตอร์ที่เกี่ยวข้องในแม่แบบ
แม่แบบโปรมป์สามารถรวมเนื้อหาต่อไปนี้ได้:
- คำแนะนำที่ส่งให้กับโมเดลภาษาใหญ่ (LLM)
- ชุดตัวอย่างคำถาม-คำตอบเพื่อเตือนให้สมองปัญญาปัจจุบันทรงรู้ถึงรูปแบบที่คาดหวังเมื่อส่งคำร้องขอกลับ
- คำถามที่ส่งถึงโมเดลภาษา
การสร้างแม่แบบโปรมป์
คุณสามารถใช้คลาส PromptTemplate
เพื่อสร้างโปรมป์ที่เรียบง่าย แม่แบบโปรมป์สามารถฝังตัวแม่แบบพารามิเตอร์มากที่แล้วจากนั้นจฟอร์แม่แบบสิ่งของที่ใช้ค่าพารามิเตอร์
from langchain.prompts import PromptTemplate
prompt_template = PromptTemplate.from_template(
"Tell me a {adjective} joke about {content}."
)
prompt_template.format(adjective="funny", content="chickens")
ผลลัพธ์การทำแม่แบบสิ่งของ:
'Tell me a funny joke about chickens.'
แม่แบบข้อความประจำการสนทนา
โมเดลสนทนารับรายการข้อความสนทนาเป็นอินพุต และเนื้อหาของข้อความสนทนาเหล่านี้สามารถถูกจัดการด้วยแม่แบบโปรมป์ได้เช่นกัน ข้อความสนทนาเหล่านี้แตกต่างจากสตริงเรียบร้อยเพราะแต่ละข้อความมีการสัมพันธ์กับ "บทบาท" แต่ละข้อความ
เช่น เมื่อใช้ Chat Completion API ของ OpenAI โมเดลสนทนาของ OpenAI กำหนดบทบาทสำหรับข้อความสนทนาต่าง ๆ ได้แก่:
- ข้อความช่วยเหลือเป็นการตอบรับจากไอ
- ข้อความโดยมนุษย์เป็นข้อความที่ส่งโดยผู้ใช้แก่ไอ
- ข้อความระบบทั่วไปใช้สำหรับบอกตัวตนของผู้ช่วย
ตัวอย่างการสร้างแม่แบบข้อความสนทนา
from langchain_core.prompts import ChatPromptTemplate
chat_template = ChatPromptTemplate.from_messages(
[
("system", "You are a helpful AI bot. Your name is {name}."),
("human", "Hello, how are you doing?"),
("ai", "I'm doing well, thanks!"),
("human", "{user_input}"),
]
)
messages = chat_template.format_messages(name="Bob", user_input="What is your name?")
ตัวอย่างอีกตัวอย่างของรูปแบบข้อความ:
from langchain.prompts import HumanMessagePromptTemplate
from langchain_core.messages import SystemMessage
from langchain_openai import ChatOpenAI
chat_template = ChatPromptTemplate.from_messages(
[
SystemMessage(
content=(
"You are a helpful assistant that re-writes the user's text to "
"sound more upbeat."
)
),
HumanMessagePromptTemplate.from_template("{text}"),
]
)
messages = chat_template.format_messages(text="I don't like eating tasty things")
print(messages)
โดยทั่วไปเราจะไม่ใช้ฟังก์ชัน format_messages
ในการจัดรูปแบบเนื้อหาแม่แบบโปรมป์โดยตรง แต่เราจะให้เฟรมเวิร์ก Langchain จัดการอัตโนมัติแทน