...

/

إضافة منطق 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()

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

  • السطر ١: يُعرّف هذا السطر دالة تُسمى generate_response ، وتستقبل ثلاثة مُعاملات: uploaded_file ، و openai_api_key ، و query_text . ستُعالج هذه الدالة الملف المُحمّل باستخدام خدمات OpenAI لإنشاء استجابة لاستعلام المستخدم.

  • السطران 3 و4: يتحقق هذان السطران من توفير ملف uploaded_file . إذا تم تحميل ملف ( uploaded_file ليست None )، تستمر الدالة في معالجة الملف؛ وإلا، تتخطى المعالجة وتُرجع ...