Gunakan parser output Langchain untuk mengekstrak informasi dari respons prompt chatgpt
Notebook Jupyter ini menunjukkan cara menggunakan Langchain's StructuredOutputParser untuk mengekstrak informasi terstruktur dari respons cepat chatgpt.
Impor perpustakaan yang diperlukan seperti OpenAI , LangChain , dan mendefinisikan instance ChatOpenAI .
Mendefinisikan contoh struktur output dengan bidang seperti "gift" , "delivery_days" , "price_value" .
Menunjukkan sampel teks ulasan pelanggan untuk diuraikan.
Membangun Objek ResponseSchema untuk setiap bidang output.
Membuat StructuredOutputParser Menggunakan Skema Respons.
Mendefinisikan templat cepat yang menggabungkan instruksi format parser.
Meminta chatgpt untuk menganalisis teks ulasan dan output dalam format terstruktur.
Parse respons JSON untuk mengekstraksi hadiah, hari pengiriman, dan nilai harga menjadi kamus.
Singkatnya, notebook menunjukkan bagaimana parser output Langchain dapat digunakan untuk mendapatkan data terstruktur dari respons chatgpt bentuk bebas, memungkinkan rekayasa cepat untuk ekstraksi informasi.
Jupyter Notebook Link: langchain_output_parser_prompt_engineering.ipynb (percobaan dilakukan di google colab)
Untuk menggunakan model GPT-3.5-turbo Openai dengan Langchain, diperlukan kunci API. Kunci API dapat diperoleh dari sini.
Untuk mengontrol keacakan dan kreativitas teks yang dihasilkan oleh LLM, kami menggunakan suhu = 0,0 saat menginisialisasi instance ChatOpenAI . Suhu adalah nilai numerik yang ditetapkan antara 0 dan 1. Suhu 0 berarti bahwa model akan selalu memilih kata yang paling mungkin dihasilkan, sedangkan suhu 1 berarti bahwa model lebih mungkin memilih kata -kata yang lebih kecil kemungkinannya, menghasilkan output yang lebih kreatif dan tidak terduga. Secara umum, pengaturan suhu yang optimal tergantung pada tugas spesifik yang ada. Untuk tugas yang membutuhkan keakuratan dan faktualitas, seperti menjawab pertanyaan atau meringkas teks, suhu yang lebih rendah biasanya lebih disukai. Untuk tugas yang membutuhkan kreativitas dan orisinalitas, seperti menulis puisi atau menghasilkan ide cerita, suhu yang lebih tinggi mungkin lebih cocok. Karena tugas kami adalah mengekstrak informasi terstruktur dari respons cepat chatgpt, kami mengatur suhu menjadi 0,0.
Output Parser: Model Bahasa Teks Output. Tetapi berkali -kali Anda ingin mendapatkan informasi yang lebih terstruktur daripada sekadar teks. Di sinilah parser output membantu menyusun respons model bahasa. Ada dua metode utama yang harus diimplementasikan oleh parser keluaran:
Untuk rekayasa cepat kami, kami menganalisis ulasan pelanggan untuk mengekstrak 3 info:
Contoh struktur output dari ulasan yang ingin kami parse:
{
"gift" : true ,
"delivery_days" : 3 ,
"price_value" : " pretty affordable! "
}Template cepat:
For the following text, extract the following information:
gift: Was the item purchased as a gift for someone else?
Answer True if yes, False if not or unknown.
delivery_days: How many days did it take for the product
to arrive? If this information is not found, output -1.
price_value: Extract any sentences about the value or price,
and output them as a comma separated Python list.
text: {text}
{format_instructions}
Di sini, teks mengacu pada ulasan pelanggan dan format_instructions adalah instruksi yang berisi string untuk bagaimana output dari model bahasa harus diformat.
Respons LLM kemudian dapat dengan mudah dimasukkan ke dalam parser output untuk mendapatkan data terstruktur dalam format JSON/kamus yang diinginkan.
Sebagai contoh, kami menggunakan ulasan berikut:
This leaf blower is pretty amazing. It has four settings:
candle blower, gentle breeze, windy city, and tornado.
It arrived in two days, just in time for my wife's
anniversary present.
I think my wife liked it so much she was speechless.
So far I've been the only one using it, and I've been
using it every other morning to clear the leaves on our lawn.
It's slightly more expensive than the other leaf blowers
out there, but I think it's worth it for the extra features.
Parser output memiliki output:
{
'gift': False,
'delivery_days': '2',
'price_value': "It's slightly more expensive than the other leaf blowers out there, but I think it's worth it for the extra features."
}