تكامل LangChain

تعلم كيفية دمج Rememberizer كاسترجاع في LangChain لتوفير وصول تطبيق LangChain الخاص بك إلى بحث قوي في قاعدة بيانات المتجهات.

تكامل LangChain

يتكامل Rememberizer مع LangChain من خلال فئة RememberizerRetriever، مما يتيح لك دمج قدرات البحث الدلالي لـ Rememberizer بسهولة في تطبيقاتك المدعومة من LangChain. تشرح هذه الدليل كيفية إعداد واستخدام هذا التكامل لبناء تطبيقات LLM متقدمة مع الوصول إلى قاعدة معرفتك.

المقدمة

LangChain هو إطار عمل شائع لبناء التطبيقات باستخدام نماذج اللغة الكبيرة (LLMs). من خلال دمج Rememberizer مع LangChain، يمكنك:

  • استخدام قاعدة المعرفة الخاصة بك في Rememberizer في تطبيقات RAG (التوليد المعزز بالاسترجاع)

  • إنشاء روبوتات محادثة يمكنها الوصول إلى مستنداتك وبياناتك

  • بناء أنظمة للإجابة على الأسئلة تستفيد من معرفتك

  • تطوير وكلاء يمكنهم البحث والتفكير في معلوماتك

التكامل متاح في وحدة langchain_community.retrievers.

البدء

المتطلبات الأساسية

قبل أن تبدأ، تحتاج إلى:

  1. حساب Rememberizer مع إنشاء المعرفة العامة

  2. مفتاح API للوصول إلى معرفتك العامة

  3. بيئة Python مع تثبيت LangChain

للحصول على تعليمات مفصلة حول إنشاء المعرفة العامة وتوليد مفتاح API، راجع تسجيل واستخدام مفاتيح API.

التثبيت

قم بتثبيت الحزم المطلوبة:

إذا كنت تخطط لاستخدام نماذج OpenAI (كما هو موضح في الأمثلة أدناه):

إعداد المصادقة

هناك طريقتان لمصادقة RememberizerRetriever:

  1. متغير البيئة: قم بتعيين متغير البيئة REMEMBERIZER_API_KEY

  2. معامل مباشر: قم بتمرير مفتاح API مباشرة عند تهيئة المسترجع

خيارات التكوين

تقبل فئة RememberizerRetriever هذه المعلمات:

المعلمة
النوع
الافتراضي
الوصف

top_k_results

int

10

عدد الوثائق التي سيتم إرجاعها من البحث

rememberizer_api_key

str

None

مفتاح API للمصادقة (اختياري إذا تم تعيينه كمتغير بيئي)

خلف الكواليس، يقوم المسترجع بإجراء مكالمات API إلى نقطة نهاية البحث الخاصة بـ Rememberizer مع معلمات قابلة للتكوين إضافية:

المعلمة المتقدمة
الوصف

prev_chunks

عدد القطع قبل القطعة المطابقة التي يجب تضمينها (الافتراضي: 2)

next_chunks

عدد القطع بعد القطعة المطابقة التي يجب تضمينها (الافتراضي: 2)

return_full_content

ما إذا كان يجب إرجاع محتوى الوثيقة بالكامل (الافتراضي: true)

الاستخدام الأساسي

إليك مثال بسيط لاسترجاع الوثائق من Rememberizer باستخدام LangChain:

قم بتعيين مفتاح واجهة برمجة التطبيقات الخاص بك

os.environ["REMEMBERIZER_API_KEY"] = "rem_ck_your_api_key"

تهيئة المسترجع

retriever = RememberizerRetriever(top_k_results=5)

احصل على الوثائق ذات الصلة لاستعلام

docs = retriever.get_relevant_documents(query="كيف تعمل تمثيلات المتجهات؟")

عرض الوثيقة الأولى

if docs: print(f"الوثيقة: {docs[0].metadata['name']}") print(f"المحتوى: {docs[0].page_content[:200]}...")

أمثلة متقدمة

بناء نظام للإجابة على الأسئلة باستخدام RAG

هذا المثال ينشئ نظامًا للإجابة على الأسئلة يسترجع المعلومات من Rememberizer ويستخدم GPT-3.5 لصياغة الإجابات:

إعداد مفاتيح API

os.environ["REMEMBERIZER_API_KEY"] = "rem_ck_your_api_key" os.environ["OPENAI_API_KEY"] = "your_openai_api_key"

تهيئة المسترجع ونموذج اللغة

retriever = RememberizerRetriever(top_k_results=5) llm = ChatOpenAI(model_name="gpt-3.5-turbo", temperature=0)

إنشاء سلسلة استرجاع QA

qa_chain = RetrievalQA.from_chain_type( llm=llm, chain_type="stuff", # أبسط طريقة - فقط قم بتجميع جميع الوثائق في الطلب retriever=retriever, return_source_documents=True )

اطرح سؤالاً

response = qa_chain.invoke({"query": "ما هو RAG في سياق الذكاء الاصطناعي؟"})

طباعة الإجابة

print(f"الإجابة: {response['result']}") print("\nالمصادر:") for idx, doc in enumerate(response['source_documents']): print(f"{idx+1}. {doc.metadata['name']}")

إعداد مفاتيح API

os.environ["REMEMBERIZER_API_KEY"] = "rem_ck_your_api_key" os.environ["OPENAI_API_KEY"] = "your_openai_api_key"

تهيئة المكونات

retriever = RememberizerRetriever(top_k_results=5) llm = ChatOpenAI(model_name="gpt-3.5-turbo") memory = ConversationBufferMemory( memory_key="chat_history", return_messages=True )

إنشاء سلسلة المحادثة

conversation = ConversationalRetrievalChain.from_llm( llm=llm, retriever=retriever, memory=memory )

مثال على المحادثة

questions = [ "ما هو RAG؟", "كيف تستخدم نماذج اللغة الكبيرة ذلك؟", "ما هي قيود هذه الطريقة؟", ]

for question in questions: response = conversation.invoke({"question": question}) print(f"السؤال: {question}") print(f"الإجابة: {response['answer']}\n")

إنشاء المسترجعين

rememberizer_retriever = RememberizerRetriever(top_k_results=3) web_retriever = WebResearchRetriever(...) # تكوين مسترجع آخر

إنشاء مجموعة مع درجة موزونة

ensemble_retriever = EnsembleRetriever( retrievers=[rememberizer_retriever, web_retriever], weights=[0.7, 0.3] # نتائج Rememberizer لها وزن أعلى )

  • افحص نتائج البحث الخام قبل تمريرها إلى LLM لتحديد مشكلات الاسترجاع

الموارد ذات الصلة

  • دليل مفاهيم [Retriever] في LangChain (https://python.langchain.com/docs/concepts/#retrievers)

  • أدلة كيفية استخدام [Retriever] في LangChain (https://python.langchain.com/docs/how_to/#retrievers)

  • وثائق [API] لـ Rememberizer (https://docs.rememberizer.ai/developer/api-docs/)

  • [متاجر المتجهات] (https://docs.rememberizer.ai/developer/vector-stores) في Rememberizer

  • [إنشاء GPT لـ Rememberizer] (creating-a-rememberizer-gpt.md) - نهج بديل لدمج الذكاء الاصطناعي

Last updated