Lewati ke konten utama

Pengantar Prompt Engineering dengan LangChain

Temukan kekuatan prompt engineering di LangChain, teknik penting untuk mendapatkan respons yang tepat dan relevan dari model AI.
Diperbarui 28 Sep 2026  · 11 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

LangChain adalah kerangka kerja open-source yang dirancang untuk dengan mudah membangun aplikasi menggunakan model bahasa seperti GPT, LLaMA, Mistral, dan lain-lain.

Salah satu fitur terkuat LangChain adalah dukungannya untuk prompt engineering tingkat lanjut. Prompt engineering mengacu pada perancangan dan pengoptimalan prompt untuk mendapatkan respons yang paling akurat dan relevan dari model bahasa.

Dalam tulisan ini, kita akan membahas dasar-dasar prompt, bagaimana LangChain memanfaatkan prompt, templat prompt, memori, agen, dan chain. Untuk tiap konsep inti ini, kita akan melihat beberapa contoh kode dalam Python sehingga pada akhir tutorial ini Anda nyaman membangun aplikasi Anda sendiri menggunakan kerangka LangChain dalam Python.

Penasaran bagaimana LangChain dan GPT dapat digunakan untuk membuat agen AI sederhana? Lihat Prompt Engineering dengan GPT & LangChain AI Code-Along kami:

Apa itu Prompt Engineering?

Gambar oleh Penulis

Kami memiliki panduan lengkap yang membahas prompt engineering, tetapi sebagai pengingat singkat, ini adalah praktik membuat masukan teks yang berkomunikasi secara efektif dengan model AI generatif. Prompt ini, yang ditulis dalam bahasa alami, menetapkan tugas yang ingin kita lakukan oleh AI.

Bentuknya bisa beragam, mulai dari pertanyaan sederhana seperti meminta penjelasan teorema matematika hingga permintaan yang lebih kreatif seperti menulis puisi tentang tema tertentu.

Dalam prompt engineering, yang penting bukan hanya apa yang Anda tanyakan tetapi juga bagaimana Anda menanyakannya. Ini mungkin mencakup pemilihan kata yang tepat, penetapan nada atau gaya tertentu, penyediaan konteks yang diperlukan, atau bahkan mendefinisikan peran untuk AI, misalnya memintanya merespons seolah-olah penutur asli bahasa tertentu.

Dalam beberapa kasus, prompt juga dapat menyertakan contoh untuk memandu proses pembelajaran AI. Teknik ini, yang dikenal sebagai few-shot learning, bisa sangat efektif untuk tugas yang kompleks.

Saat berhadapan dengan model yang menghasilkan gambar atau audio, prompt biasanya menggambarkan keluaran yang diinginkan secara detail, mulai dari subjek dan gaya hingga komposisi dan suasana produk akhir. Seni prompt engineering terletak pada penyesuaian elemen-elemen ini untuk mengarahkan AI menghasilkan hasil yang diinginkan.

Dasar-dasar Prompt

Gambar oleh Penulis

Prompt adalah masukan yang diberikan kepada large language models (LLM) untuk memunculkan respons yang diinginkan. Prompt yang dirancang dengan baik sangat penting untuk mendapatkan keluaran yang berguna dari LLM. Tujuan prompt engineering adalah menyusun prompt secara cermat sehingga menghasilkan respons LLM yang akurat, relevan, dan membantu.

Prompt yang baik biasanya berisi empat komponen berikut:

  1. Instruksi - Beri tahu model apa yang harus dilakukan, bagaimana menggunakan informasi yang diberikan, apa yang harus dilakukan dengan kueri, dan bagaimana menyusun keluaran.
  2. Contoh Input - Berikan contoh input untuk menunjukkan kepada model apa yang diharapkan.
  3. Contoh Output - Berikan contoh keluaran yang sesuai.
  4. Kueri - Input aktual yang ingin Anda proses oleh model.

Kecuali kueri, yang lainnya bersifat opsional tetapi dapat berdampak signifikan pada kualitas respons, terutama instruksi yang memberi panduan kepada LLM tentang tugas dan respons yang diharapkan.

Contoh menunjukkan format keluaran yang diinginkan untuk suatu contoh input.

Kueri adalah pertanyaan atau permintaan yang diajukan kepada LLM.

Menyusun prompt yang efektif melibatkan penggabungan kreatif elemen-elemen ini berdasarkan masalah yang diselesaikan.

Prompt di LangChain

LangChain menawarkan berbagai kelas dan fungsi untuk membantu menyusun dan bekerja dengan prompt, sehingga memudahkan pengelolaan tugas kompleks yang melibatkan model bahasa.

LangChain menyediakan dukungan kelas satu untuk prompt engineering melalui objek `PromptTemplate`.

Templat prompt berfungsi sebagai panduan terstruktur untuk merumuskan kueri bagi model bahasa.

Biasanya, templat ini terdiri atas arahan, pilihan contoh input (few-shot examples), serta pertanyaan dan konteks yang disesuaikan untuk tugas tertentu.

Tujuan LangChain adalah merancang templat yang kompatibel dengan berbagai model bahasa, sehingga memudahkan pemindahan templat antar model.

Singkatnya, Anda dapat menggunakan kelas PromptTemplate untuk membuat templat bagi sebuah string prompt.

from langchain.prompts import PromptTemplate


prompt_template = PromptTemplate.from_template(
    "Tell me a {adjective} joke about {content}."
)
prompt_template.format(adjective="sad", content="data scientists")

Keluaran:

>>> 'Tell me a sad joke about data scientists.'

Tidak wajib memiliki variabel. Anda dapat membuat prompt menggunakan kelas ini bahkan jika Anda tidak memiliki variabel apa pun.

from langchain.prompts import PromptTemplate
prompt_template = PromptTemplate.from_template("Tell me a joke")
prompt_template.format()

Keluaran:

>>> 'Tell me a joke'

Bagaimana jika Anda membangun aplikasi chat di mana Anda perlu menyimpan dan mengirim riwayat pesan ke LLM setiap kali pengguna mengirim pesan baru? Melakukan ini secara manual memakan waktu.

Untuk model chat yang didukung, Anda dapat menggunakan ChatPromptTemplate sebagai gantinya:

from langchain.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?")


print(messages)

Keluaran:

>>> [SystemMessage(content='You are a helpful AI bot. Your name is Bob.'),

>>> HumanMessage(content='Hello, how are you doing?'),

>>> AIMessage(content="I'm doing well, thanks!"),

>>> HumanMessage(content='What is your name?')]

Jadi Anda mungkin berpikir, mengapa kita memerlukan PromptTemplate? Mengapa kita tidak langsung mengoper string prompt ke LLM? Berikut beberapa alasan bagus untuk menggunakan PromptTemplate dari LangChain:

  • Templat prompt dapat digunakan kembali, memungkinkan Anda membuat sebuah prompt sekali dan menggunakannya dalam berbagai situasi, seperti meringkas artikel berbeda tanpa menulis ulang prompt setiap kali.
  • Templat memisahkan pemformatan prompt dari pemanggilan model sebenarnya, membuat kode lebih modular dan memungkinkan pembaruan templat atau model secara independen.
  • Penggunaan templat meningkatkan keterbacaan kode Anda, karena templat membungkus logika kompleks dalam format yang lebih sederhana dengan variabel bernama yang lebih jelas.
  • Perawatan menjadi lebih mudah dengan templat prompt, karena perubahan pada logika prompt hanya perlu dilakukan di satu tempat terpusat, alih-alih di setiap prompt individual.

Memori di LangChain

Dalam aplikasi model bahasa yang melibatkan percakapan, penting bagi sistem untuk mengingat percakapan sebelumnya.

Sama seperti obrolan biasa, sistem harus dapat melihat kembali apa yang telah dibicarakan.

Dalam bentuk paling sederhana, ini berarti sistem dapat melihat beberapa pesan sebelumnya. Namun sistem yang lebih canggih akan mengingat lebih banyak detail, seperti fakta tentang berbagai topik dan bagaimana keterkaitannya.

Kemampuan untuk mengingat percakapan sebelumnya ini disebut "memori." LangChain membantu menambahkan memori ke sistem percakapan ini.

Memori di LangChain melakukan dua hal utama:

  1. Sebelum mengirim kueri ke LLM, sistem membaca dari memorinya untuk memperkaya prompt input awal yang diterima dari pengguna.
  2. Setelah respons dikembalikan oleh LLM, sistem menuliskannya ke memori untuk interaksi di masa mendatang, sebelum mengembalikan keluaran akhir kepada pengguna.

Memori di LangChain (Sumber Gambar)

Untuk menggunakan fitur Memory di LangChain Anda dapat menggunakan kelas ConversationBufferMemory.

from langchain.memory import ConversationBufferMemory
memory = ConversationBufferMemory(return_messages=True)
memory.chat_memory.add_user_message("hi!")
memory.chat_memory.add_ai_message("what's up?")
memory.chat_memory.add_user_message("how are you doing?")
memory.chat_memory.add_ai_message("I am fine, thank you and you?")


# to check the variables history
memory.load_memory_variables({})

Keluaran:

>>> {'history': [HumanMessage(content='hi!'),

>>> AIMessage(content="what's up?"),

>>> HumanMessage(content='how are you doing?'),

>>> AIMessage(content='I am fine, thank you and you?')]}

Ini mengembalikan sebuah dictionary di mana kuncinya secara bawaan adalah history. Kunci ini berisi daftar pesan, dan pesan-pesan ini bisa berasal dari manusia (HumanMessage) atau dari LLM (AIMessage).

Chain di LangChain

Untuk tugas sederhana, menggunakan satu LLM (Large Language Model) sudah memadai. Namun, untuk tugas yang lebih kompleks, biasanya diperlukan pengaitan beberapa langkah dan/atau model.

Cara lama menggunakan Chains di LangChain adalah melalui antarmuka Chain.

Metode yang lebih baru dan direkomendasikan adalah LangChain Expression Language (LCEL). Meskipun LCEL lebih disarankan untuk proyek baru, metode Chain masih berguna dan didukung.

from langchain.llms import OpenAI
from langchain.chat_models import ChatOpenAI
from langchain.prompts import ChatPromptTemplate
from langchain.schema import StrOutputParser


model = ChatOpenAI(openai_api_key = “...”)


prompt = ChatPromptTemplate.from_messages(
    [
        (
            "system",
            "You're a expert data scientist and machine learning engineer who offer its expertise and responds to the point and accurately.",
        ),
        ("human", "{question}"),
    ]
)
runnable = prompt | model | StrOutputParser()


for chunk in runnable.stream({"question": "How is machine learning different than deep learning?"}):
    print(chunk, end="", flush=True)

Keluaran:

>>> Machine learning and deep learning are subfields of artificial intelligence (AI) that involve training models to make predictions or decisions based on data. While there is an overlap between the two, they ……..

Cara runnable dibuat memang tidak lazim untuk Python, tetapi | adalah operator pipa. Prompt | model | StrOutputParser() berarti Prompt diteruskan melalui model, dan keluarannya kemudian diteruskan melalui StrOutputParser(). Setiap segmen dalam chain mentransformasi data dengan caranya masing-masing.

Ingin mempelajari lebih lanjut kasus penggunaan dan aplikasi menarik yang dapat dibangun menggunakan LangChain? Lihat tutorial Engineering dan Aplikasi Data kami.

Agen di LangChain

Konsep fundamental agen melibatkan pemanfaatan model bahasa untuk memilih serangkaian tindakan.

Berbeda dengan chain, di mana urutan tindakan telah ditentukan dan tertanam di dalam kode, agen menggunakan model bahasa sebagai alat pengambilan keputusan untuk mengidentifikasi tindakan yang sesuai beserta urutannya.

Ada tiga konsep kunci dalam Agents di LangChain:

  1. Alat: Deskripsi alat yang tersedia bagi LLM
  2. Masukan pengguna: Tujuan tingkat tinggi dari tugas
  3. Langkah antara: Pasangan (aksi, keluaran alat) yang sebelumnya dieksekusi untuk mencapai masukan pengguna

Alat merepresentasikan fungsionalitas yang dapat diaktifkan oleh agen. Dua aspek penting dalam perancangan alat meliputi:

  • Memastikan agen memiliki akses ke alat yang sesuai.
  • Mendefinisikan alat sedemikian rupa sehingga memaksimalkan kegunaannya bagi agen.

Untuk berbagai aktivitas rutin, agen memerlukan kumpulan alat yang saling terhubung. Untuk itu, LangChain memperkenalkan konsep toolkit. LangChain menawarkan beragam toolkit untuk memulai.

Untuk mempelajari lebih lanjut tentang Agents, lihat Panduan Resmi LangChain ini.

Kredit: Beberapa contoh dalam blog ini dihasilkan menggunakan dokumentasi resmi LangChain.

Kesimpulan

Dengan menawarkan pendekatan terstruktur untuk merancang prompt, LangChain tidak hanya menyederhanakan proses berinteraksi dengan berbagai model bahasa, tetapi juga memaksimalkan efisiensi dan relevansi keluarannya. Fitur seperti PromptTemplate dan Memory di LangChain menunjukkan integrasi yang matang antara fleksibilitas dan presisi dalam prompt engineering, mencakup berbagai tugas mulai dari kueri sederhana hingga konteks percakapan yang kompleks.

Fitur lanjutan dalam Chains dan Agents di LangChain semakin memperluas potensi aplikasi yang dapat dibangun hanya dengan beberapa baris kode dengan pilihan LLM apa pun di baliknya, dan ada banyak yang bisa dipilih.

Baik untuk tugas sederhana maupun aplikasi yang rumit, pendekatan LangChain terhadap prompt engineering cukup sederhana, jelas, dan mudah diadopsi.

Ingin belajar lebih jauh? Lihat bagian 1 dari Cara Membangun Aplikasi LLM dengan LangChain di DataCamp.


Moez Ali's photo
Author
Moez Ali
LinkedIn
Twitter

Data Scientist, Pendiri & Kreator PyCaret

Topik
Kecerdasan Buatan

Pelajari Lebih Lanjut tentang LLM

Kursus

Konsep Large Language Models (LLM)

2 jam
113.4K
Temukan potensi penuh dari LLMs melalui kursus konseptual kami yang mencakup aplikasi LLMs, metode pelatihan, pertimbangan etika, dan penelitian terbaru.
Lihat DetailRight Arrow
Mulai Kursus
Lihat SelengkapnyaRight Arrow
Terkait

blogs

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

blogs

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

blogs

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

blogs

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

Lihat SelengkapnyaLihat Selengkapnya