แม่แบบข้อความพร้อม

โมเดลภาษารับข้อความเป็นอินพุตซึ่งมักถูกเรียกว่า "โปรมป์ท์" ขณะที่พัฒนา โปรมป์ท์บางครั้งไม่ได้ถูกโค้ดตรงไปตรงมา เพราะสิ่งนี้จะไม่เหมาะสมกับการจัดการโปรมป์ แทนนั้นแม่แบบโปรมป์ถูกใช้เพื่อบริหารจัดการโปรมป์ เช่นเดียวกับแม่แบบสำหรับเนื้อหาข้อความ 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 จัดการอัตโนมัติแทน