Sedang mengikuti modul ini?
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.
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.
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.
Jenis Prompt dalam LangChain
| Jenis | Penerangan | Kes Penggunaan |
|---|---|---|
| PromptTemplate | Prompt teks mudah dengan pemboleh ubah | Soal jawab asas, penjanaan teks |
| ChatPromptTemplate | Prompt berasaskan sembang dengan mesej system, human, AI | Model sembang (ChatOpenAI, ChatAnthropic, dsb.) |
| MessagesPlaceholder | Pemegang tempat untuk sejarah mesej dinamik | Sembang dengan sejarah perbualan |
| FewShotPromptTemplate | Gunakan contoh dalam prompt | Pembelajaran few-shot |
| PipelinePromptTemplate | Gabungkan beberapa template | Prompt berbilang langkah yang kompleks |
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.
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.
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"] )
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.
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)