تم التحديث في 25 سبتمبر 2025
8 دقيقة
# pip install langchain langchain-openaifrom langchain_openai import ChatOpenAIfrom langchain_core.prompts import ChatPromptTemplate# 1) Modelllm = ChatOpenAI(model="gpt-4o-mini", temperature=0)# 2) Promptprompt = ChatPromptTemplate.from_messages( and streaming guide.---## لبنات البناء التي ستستخدمها بنسبة 80٪ من الوقت### 1) المطالبات وتحليل الإخراج- استخدم `ChatPromptTemplate` للمطالبات المنظمة.- قم بتحليل المخرجات باستخدام `StrOutputParser` أو محللات JSON للحصول على استجابات مكتوبة.```pythonfrom langchain_core.output_parsers import StrOutputParserfrom langchain_core.prompts import ChatPromptTemplatefrom langchain_openai import ChatOpenAIllm = ChatOpenAI(model="gpt-4o-mini")prompt = ChatPromptTemplate.from_template("""لخص النص التالي في 3 نقاط:---{text}""")parser = StrOutputParserchain = prompt | llm | parsersummary = chain.invoke({"text": "LangChain helps build LLM apps with RAG and tools."})print(summary)# pip install faiss-cpu tiktokenfrom langchain_openai import OpenAIEmbeddings, ChatOpenAIfrom langchain_community.vectorstores import FAISSfrom langchain_text_splitters import RecursiveCharacterTextSplitterfrom langchain_core.prompts import ChatPromptTemplate# Prepare documentstexts = .---## من النموذج الأولي إلى الإنتاج: مخطط تفصيلي خطوة بخطوة### الخطوة 1: تحديد قصة المستخدم- من هو المستخدم؟ ما هي الوظيفة التي يحاولون إنجازها؟- مثال: "وكيل دعم يجيب على أسئلة المنتج من المستندات الداخلية والتذاكر الحديثة."### الخطوة 2: اختيار الحد الأدنى من المكدس القابل للتطبيق- النموذج: اختر نموذجًا موثوقًا به وبأسعار معقولة (مثل GPT-4o-mini أو نموذج مفتوح حدودي).- البيانات: قرر ما إذا كنت بحاجة إلى RAG الآن. إذا كانت الإجابة بنعم، فابدأ بـ FAISS محليًا.- الإدخال / الإخراج: استخدم LCEL للتكرار السريع؛ تجنب التعليمات البرمجية اللاصقة المخصصة.### الخطوة 3: تنفيذ حلقة RAG نظيفة- قسّم المستندات بشكل صحيح.- فهرسة التضمينات.- اطلب مع السياق والاقتباسات.- أضف حاجز حماية لتجنب الهلوسة عند عدم العثور على سياق ذي صلة.```pythonfrom langchain_core.output_parsers import StrOutputParserfrom langchain_core.prompts import ChatPromptTemplateqa_prompt = ChatPromptTemplate.from_template("""أجب عن السؤال باستخدام السياق أدناه فقط. إذا كانت الإجابة ليستفي السياق، قل "لا أعرف". قم بتضمين معرفات المستندات المقتبسة.CONTEXT:{context}QUESTION: {question}""")parser = StrOutputParserrag_chain = (RunnableParallel(context=retriever, question=RunnableLambda(lambda x: x.### الخطوة 5: المخرجات المكتوبة والتحقق من الصحة- استخدم `PydanticOutputParser` أو مخطط JSON لفرض بنية لاستجابات API.- تحقق من صحة الحقول للقبض على انحراف النموذج.### الخطوة 6: الأدوات واستدعاء الوظائف للمهام الحقيقية- أدخل الأدوات باعتدال.- الأدوات الشائعة: آلة حاسبة، بحث في الويب، منفذ استعلام SQL، مشغل التعليمات البرمجية.- وصف بوضوح قدرات الأداة في سلاسل التوثيق.### الخطوة 7: التصلب- تحديد المعدل واستراتيجيات إعادة المحاولة.- المهلات وقواطع الدائرة.- مرشحات السلامة وفحوصات المحتوى.### الخطوة 8: التقييم والتحسين المستمر- اختبر باستخدام مجموعات البيانات الذهبية (إدخال ← إخراج متوقع).- قم بتقييم الإخلاص واكتمال الإجابة ودقة الاقتباس.- قم بقياس معدل الوصول إلى الاسترجاع ووقت الاستجابة.---## الأنماط الشائعة والمآزق- ابدأ ببساطة: سلاسل قبل الوكلاء. ستحصل على القدرة على التنبؤ وتكلفة أقل.- التقطيع مهم: يمكن أن يؤدي ضبط حجم الجزء / التداخل إلى تغيير جودة الاسترجاع أكثر من تبديل النموذج.- تسرب المطالبة: لا تحشو حوض المطبخ في مطالبات النظام؛ حافظ عليها مركزة.- الحتمية: اضبط `temperature=0` للتقييم وسير العمل الحرج.- تجربة المستخدم المتدفقة: قم بتدفق الرموز إلى واجهة المستخدم بينما يقوم بقية النظام بجلب الأصول أو التحميل المسبق للسياق.- المخرجات المنظمة: استخدم المحللات لجعل التكامل في اتجاه مجرى النهر سهلاً.---## مشروع صغير كامل: أسئلة وأجوبة حول المستندات مع الاقتباساتيربط هذا المثال كل شيء معًا: الاستيعاب و RAG وتوليد الإجابات والبث.```python# pip install langchain langchain-openai faiss-cpu tiktokenfrom langchain_openai import ChatOpenAI, OpenAIEmbeddingsfrom langchain_text_splitters import RecursiveCharacterTextSplitterfrom langchain_community.vectorstores import FAISSfrom langchain_core.prompts import ChatPromptTemplatefrom langchain_core.output_parsers import StrOutputParserfrom langchain_core.runnables import RunnableParallel, RunnableLambda# 1) Ingestcorpus = {"pricing": "Our Pro plan supports 1M context tokens and includes priority support.","limits": "The API rate limit is 60 requests per minute for Pro users.","security": "We store logs for 30 days unless logging is disabled by the admin.",}splitter = RecursiveCharacterTextSplitter(chunk_size=300, chunk_overlap=50)all_chunks, ids = [], []for doc_id, text in corpus.items:for i, chunk in enumerate(splitter.split_text(text)):all_chunks.append(chunk)ids.append(f"{doc_id}-{i}")# 2) Indexdb = FAISS.from_texts(all_chunks, OpenAIEmbeddings)retriever = db.as_retriever(k=4)# 3) Promptprompt = ChatPromptTemplate.from_template("""You are a support assistant. Use the CONTEXT to answer.If unsure, say "I don't know." Include citations of source IDs.CONTEXT:{context}QUESTION: {question}""")# 4) Model and parserllm = ChatOpenAI(model="gpt-4o-mini", temperature=0)parser = StrOutputParser# 5) Compose chainrag = (RunnableParallel(context=retriever,question=RunnableLambda(lambda x: x["question"]) # pass-through)| prompt| llm| parser)# 6) Ask a questionfor chunk in rag.stream({"question": "What are Pro rate limits and log retention?"}):print(chunk, end="", flush=True)batch على Runnables للإنتاجية.prompt | llm واختبرها باستخدام .invoke أو .stream. تشرح الدروس التعليمية الرسمية المحادثة البسيطة و RAG والوكلاء خطوة بخطوة للبدء السريع.Runnable .stream للمزامنة و .astream لغير المتزامن لإنتاج أجزاء عند وصولها. يغطي دليل البث الاستخدام وأفضل الممارسات.
كيفية إتقان ChatPDF: الحصول على رؤى أسرع من المستندات الكثيفة

أفضل بديل لـ X Auto-Translation لترجمة سريعة ودقيقة للوثائق

هل ترجمة سامسونج بالذكاء الاصطناعي غير متوفرة في إيران؟ حلول عملية

أدوات الترجمة الفارسية: دليل عملي للعمل بسرعة ودقة

أفضل بديل لـ Grok للبحث العميق والمستند إلى المراجع

أهم 15 ميزة في مولد الصور بالذكاء الاصطناعي ستستخدمها فعليًا