...

/

إضافة منطق LangChain إلى تطبيق Streamlit الخاص بك

إضافة منطق LangChain إلى تطبيق Streamlit الخاص بك

تعرف على كيفية دمج LangChain مع Streamlit بناء تطبيق RAG ديناميكي.

سنغطي ما يلي...

لقد تناولنا في دروس سابقة ماهية LangChain وStreamlit وكيفية عملهما. الآن، حان الوقت لتطبيق هذه المعرفة مباشرةً على تطبيقنا.

تخيل تطبيق Streamlit الخاص بنا كهيكل سيارة، لامع وجديد، ولكن بدون محرك. يبدو جيدًا الآن، ولكنه لا يقدم الكثير، أليس كذلك؟ سيكون LangChain محركنا، المكون القوي الذي يضمن سلاسة وكفاءة كل شيء. يشبه دمج LangChain في تطبيق Streamlit تفاعل JavaScript مع HTML وCSS في تطوير الويب. يوفر Streamlit البنية الأساسية لواجهة تطبيقنا، مُعرّفًا عناصر مثل أشرطة التمرير والأزرار ومدخلات النصوص، بينما يضيف LangChain منطقًا ووظائف ديناميكية. يساعدنا على ربط أجزاء مختلفة من تطبيقنا، ومعالجة البيانات، وإنشاء استجابات بناءً على مدخلات المستخدم.

كيفية إنشاء الوظيفة الرئيسية لتوليد الاستجابات

سوف نقوم بتعريف دالة تسمىgenerate_response يأخذ ملفًا مُحمَّلًا، مفتاح API OpenAI ، ونص الاستعلام. تُعالج هذه الوظيفة الملف المُحمَّل، وتُقسِّمه إلى أجزاء، وتُنشئ تضمينات، وتستخدم نموذج استرجاع الأسئلة والإجابة (QA) لتوليد استجابة. أول ما نحتاج إلى التحقق منه هو ما إذا كانuploaded_file يتم توفيره. إذا لم يكن كذلكNone نقرأ الملف ونفكّ محتوياته. تفترض هذه الخطوة أن الملف المُحمَّل يحتوي على المستند النصي الذي نريد معالجته. لنرَ كيف سنفعل ذلك:

Press + to interact
def generate_response(uploaded_file, openai_api_key, query_text):
# Load document if file is uploaded
if uploaded_file is not None:
documents = [uploaded_file.read().decode()

دعونا نكسرها:

  • السطر 1: هذا السطر يحدد دالة تسمىgenerate_response وهذا يتطلب ثلاث حجج:uploaded_file ،openai_api_key ، وquery_text ستعمل هذه الوظيفة على معالجة الملف الذي تم تحميله باستخدام خدمات OpenAI لتوليد استجابة لاستعلام المستخدم.

  • الأسطر 3-4: تتحقق هذه الأسطر مما إذا كانuploaded_file تم توفيره. إذا تم تحميل ملف (uploaded_file ليس كذلكNone ), تستمر الوظيفة في معالجة الملف؛ وإلا فإنها تتخطى ...