استخدم محلل الإخراج من Langchain لاستخراج المعلومات من استجابة chatgpt
يوضح دفتر Jupyter Notebook كيفية استخدام Langchain من Langchain من StructuredOutputParser لاستخراج المعلومات المهيكلة من استجابات chatgpt السريعة.
يستورد المكتبات اللازمة مثل OpenAI و LangChain ، ويحدد مثيل ChatOpenAI .
يحدد مثال بنية الإخراج مع حقول مثل "gift" ، "delivery_days" ، "price_value" .
يعرض نموذج مراجعة العميل ليتم تحليله.
يبني كائنات ResponseSchema في كل حقل إخراج.
يخلق مصلحة StructuredOutputParser باستخدام مخططات الاستجابة.
يحدد قالب موجه يتضمن تعليمات تنسيق المحلل.
يطالب ChatGPT بتحليل نص المراجعة والإخراج بالتنسيق المنظم.
تقوم باستجابة JSON لاستخراج الهدية وأيام التسليم وقيمة السعر في قاموس.
باختصار ، يوضح دفتر الملاحظات كيف يمكن استخدام محلل الإخراج من Langchain للحصول على بيانات منظمة من استجابات ChatGPT مجانية ، مما يتيح الهندسة السريعة لاستخراج المعلومات.
Jupyter Notebook رابط: langchain_output_parser_prompt_engineering.ipynb (تتم التجربة في Google Colab)
لاستخدام نموذج GPT-3.5-Turbo من Openai مع Langchain ، مطلوب مفتاح API. يمكن الحصول على مفتاح API من هنا.
للتحكم في العشوائية وإبداع النص الذي تم إنشاؤه بواسطة LLM ، استخدمنا درجة الحرارة = 0.0 عند تهيئة مثيل ChatOpenAI . درجة الحرارة هي قيمة عددية مجموعة بين 0 و 1. تعني درجة حرارة 0 أن النموذج سيختار دائمًا الكلمة الأكثر ترجيحًا التي يجب توليدها ، في حين أن درجة حرارة 1 تعني أن النموذج من المرجح أن يختار كلمات أقل احتمالًا ، مما يؤدي إلى إخراج أكثر إبداعًا وغير متوقع. بشكل عام ، يعتمد إعداد درجة الحرارة الأمثل على المهمة المحددة في متناول اليد. بالنسبة للمهام التي تتطلب الدقة والواقعية ، مثل الإجابة على الأسئلة أو تلخيص النص ، عادة ما يفضل درجة الحرارة المنخفضة. بالنسبة للمهام التي تتطلب الإبداع والأصالة ، مثل كتابة الشعر أو توليد أفكار القصة ، قد تكون درجة حرارة أعلى أكثر ملاءمة. نظرًا لأن مهمتنا هي استخراج المعلومات المنظمة من استجابات chatgpt form ، فقد حددنا درجة الحرارة إلى 0.0.
إخراج المحلل: نماذج اللغة الناتج الإخراج. ولكن في كثير من الأحيان تريد الحصول على معلومات أكثر تنظيما من مجرد نص. هذا هو المكان الذي تساعد فيه محللات الإخراج في تنظيم استجابات نموذج اللغة. هناك طريقتان رئيسيتان يجب أن ينفذهم محلل الإخراج:
بالنسبة للهندسة السريعة لدينا ، نقوم بتحليل مراجعات العملاء لاستخراج 3 معلومات:
هيكل مثال على الإخراج من مراجعة نريد تحليلها:
{
"gift" : true ,
"delivery_days" : 3 ,
"price_value" : " pretty affordable! "
}قالب سريع:
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}
هنا ، يشير النص إلى مراجعة العميل و format_instructions هي سلسلة تحتوي على تعليمات لكيفية تنسيق إخراج نموذج اللغة.
يمكن بعد ذلك تغذية استجابة LLM بسهولة في محلل الإخراج للحصول على بيانات منظمة بتنسيق JSON/القاموس المطلوب.
على سبيل المثال ، استخدمنا المراجعة التالية:
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.
محلل الإخراج لديه الإخراج:
{
'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."
}