...

/

تحليل الاستعلامات لتحقيق دقة أفضل

تحليل الاستعلامات لتحقيق دقة أفضل

تعرف على تقنية التحلل، وكيفية عملها، وكيفية تنفيذها خطوة بخطوة.

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

في مهام RAG، غالبًا ما نواجه أسئلة معقدة تتطلب تحليلًا متعمقًا وجمع معلومات من مصادر متنوعة. وهنا يأتي دور التحليل. التحليل تقنية فعّالة تُقسّم مشكلة كبيرة ومعقدة إلى مشاكل فرعية أصغر وأسهل إدارة. بمعالجة هذه المشاكل الفرعية بشكل مستقل، يُمكننا تبسيط المهمة ككل، وفي النهاية، إنشاء استجابة أكثر شمولًا ودقة.

ما هو التحلل؟

في سياق تحليل الانحدار اللوجستي (RAG)، يتضمن التحليل تقسيم السؤال الرئيسي إلى سلسلة من الأسئلة الفرعية الأصغر والأكثر تركيزًا. يمكن الإجابة على كل سؤال فرعي بشكل مستقل، ثم تُدمج الإجابات نموذج استجابة شاملة للسؤال الأصلي. يوفر هذا النهج العديد من المزايا:

  • كفاءة محسنة: من خلال معالجة المشاكل الفرعية الأصغر، تصبح عمليات الاسترجاع والتوليد أكثر كفاءة حيث يركز النظام على جوانب محددة من السؤال الرئيسي.

  • تحسين الدقة: يسمح تحليل السؤال باستكشاف أعمق لكل سؤال فرعي، مما قد يؤدي إلى إجابات أكثر دقة وارتباطًا.

  • استجابة المنظمة: يسهل التحليل تنظيم الإجابة النهائية من خلال تقديم الأسئلة الفرعية وإجاباتها المقابلة في شكل واضح ومنظم.

Press + to interact
High-level overview of the decomposition technique
High-level overview of the decomposition technique

التنفيذ خطوة بخطوة

وفيما يلي الخطوات اللازمة لتنفيذ تقنية التحلل:

Press + to interact
Steps for implementing decomposition
Steps for implementing decomposition

1. استيراد الوحدات النمطية الضرورية

سنقوم باستيراد الوحدات المطلوبة من المكتبات المثبتة لتنفيذ الاستعلامات المتعددة:

Press + to interact
import os
import bs4
from langchain_community.document_loaders import WebBaseLoader
from langchain.prompts import ChatPromptTemplate
from langchain_core.output_parsers import StrOutputParser
from langchain_openai import ChatOpenAI
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import Chroma
from langchain import hub
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough, RunnableLambda

تعتبر هذه المكتبات والوحدات ضرورية للخطوات اللاحقة في العملية.

2. إعداد مفاتيح API بـ LangSmith و OpenAI

يُنشئ مقتطف الكود التالي مفتاح API الخاص بـ LangChain مفتاح API OpenAI من متغيرات البيئة. سنحتاج إلى مفاتيح API صالحة للتفاعل مع نماذج لغة LangChain و OpenAI :

Press + to interact
os.environ['LANGCHAIN_TRACING_V2'] = 'true'
os.environ['LANGCHAIN_ENDPOINT'] = 'https://api.smith.langchain.com'
os.environ['LANGCHAIN_API_KEY'] = '' # Add your LangSmith LangChain API key
os.environ['LANGCHAIN_PROJECT']='Decomposition'
OPENAI_API_KEY = os.environ["OPENAI_API_KEY"] = "" # Add your OpenAI API key
if OPENAI_API_KEY == "":
raise ValueError("Please set the OPENAI_API_KEY environment variable")

شرح الكود

  • الأسطر 1-4: إعداد متغيرات بيئة LangChain:

    • LANGCHAIN_TRACING_V2 : تمكين التتبع لعمليات LangChain.

    • LANGCHAIN_ENDPOINT : يحدد نقطة النهاية لواجهة API LangChain.

    • LANGCHAIN_API_KEY : عنصر نصي فارغ مفتاح API LangSmith LangChain. استبدله مفتاح الحالي.

    • LANGCHAIN_PROJECT : تعيين اسم المشروع لعمليات LangChain إلى 'Decomposition' .

  • الأسطر 6-8: إعداد مفتاح API OpenAI :

    • OPENAI_API_KEY : نص فارغ مفتاح OpenAI API . استبدله مفتاح الحالي.

    • التحقق من الصحة: ​​يتحقق مما إذا كان ...