Sedang mengikuti modul ini?0 daripada 17 selesai
Modul 05 · Halaman 6 daripada 20 · 8 bahagian

Prompt dan Prompt Template

Apa itu prompt, mengapa template membantu, jenis template utama, contoh termasuk few-shot dan petua kejuruteraan prompt.

5.1

Apa itu Prompt?

  • Prompt ialah arahan input yang diberikan kepada LLM.
  • Ia membimbing model menjana output yang dikehendaki.
  • Prompt yang baik menghasilkan respons yang lebih baik, tepat dan konsisten.
  • LangChain menyediakan prompt template untuk mencipta prompt yang dinamik dan boleh digunakan semula.
5.2

Mengapa Menggunakan Prompt Template?

  • Prompt yang boleh digunakan semula dan mudah diselenggara.
  • Masukkan pemboleh ubah dinamik (cth. input pengguna).
  • Asingkan logik prompt daripada kod.
  • Mudah mengurus prompt yang kompleks.
  • Menyokong jenis prompt berbeza (chat, system, human, dsb.).
  • Membantu membina aplikasi LLM yang berstruktur dan konsisten.
5.3

Jenis Prompt dalam LangChain

JenisPeneranganKes Penggunaan
PromptTemplatePrompt teks mudah dengan pemboleh ubahSoal jawab asas, penjanaan teks
ChatPromptTemplatePrompt berasaskan sembang dengan mesej system, human, AIModel sembang (ChatOpenAI, ChatAnthropic, dsb.)
MessagesPlaceholderPemegang tempat untuk sejarah mesej dinamikSembang dengan sejarah perbualan
FewShotPromptTemplateGunakan contoh dalam promptPembelajaran few-shot
PipelinePromptTemplateGabungkan beberapa templatePrompt berbilang langkah yang kompleks
5.4

PromptTemplate

python
from langchain_core.prompts import PromptTemplate

template = PromptTemplate(
    input_variables=["topic"],
    template="Explain {topic} in simple words."
)

prompt = template.format(topic="LangChain")
print(prompt)
# Output: Explain LangChain in simple words.
5.5

ChatPromptTemplate

python
from langchain_core.prompts import ChatPromptTemplate

template = ChatPromptTemplate.from_messages([
    ("system", "You are a helpful AI assistant."),
    ("human", "Explain {topic} in simple words.")
])

prompt = template.format_messages(topic="LangChain")

# This creates formatted chat messages
# to be used with ChatOpenAI or other chat models.
5.6

FewShotPromptTemplate

python
from langchain_core.prompts import FewShotPromptTemplate, PromptTemplate

examples = [
    {"input": "Python", "output": "A programming language."},
    {"input": "LangChain", "output": "A framework to build LLM applications."}
]

example_prompt = PromptTemplate(
    input_variables=["input", "output"],
    template="Input: {input}\nOutput: {output}"
)

few_shot = FewShotPromptTemplate(
    examples=examples,
    example_prompt=example_prompt,
    prefix="Answer the question:",
    suffix="Input: {question}\nOutput:",
    input_variables=["question"]
)
5.7

Petua Kejuruteraan Prompt

  • Jelas dan spesifik dalam arahan.
  • Beri contoh (few-shot) apabila perlu.
  • Gunakan format berstruktur (JSON, senarai, dsb.).
  • Tetapkan peranan menggunakan system prompt.
  • Pecahkan tugas kompleks kepada langkah lebih kecil.
  • Gunakan kekangan (cth. panjang, nada, format).
  • Cuba pelbagai ayat yang berbeza.
5.8

Contoh: Menggunakan Prompt dengan LLM

python
from langchain_openai import ChatOpenAI
from langchain_core.prompts import ChatPromptTemplate

llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0.7)
template = ChatPromptTemplate.from_messages([
    ("human", "Explain {topic} in simple words.")
])

chain = template | llm
response = chain.invoke({"topic": "LangChain"})
print(response.content)