LangChain v0.3

 (LangChain v0.3) عشان الصورة تنور في دماغك أكتر وتشوف السحر ده بيشتغل إزاي في الكواليس! 🐍💻✨

------------------------------

## 🤖 إيه هو LangChain؟.. الساحر اللي هيخلي ذكائك الاصطناعي "صاحي ومصحصح"! (نسخة الكود الفني) 🚀

لو إنت مبرمج وبتحاول تبني تطبيق ذكاء اصطناعي، أكيد قابلتك مشكلة إن الموديل الكبير (زي ChatGPT) عامل زي "الفهلوي".. ذكي جداً بس ساعات بيهرتل، أو تلاقيه ناسي إنت قلت له إيه من خمس دقائق، والأوعن من كده إنه معزول عن الدنيا وما يعرفش حاجة عن ملفات شركتك أو بياناتك الخاصة! 🤦‍♂️❌

هنا بقى بيظهر البطل بتاعنا: LangChain (لانج شين) 💪. ده مش موديل ذكاء اصطناعي جديد، ده تقدر تقول عليه "المهندس والمقاول" اللي بيربط الموديل بالواقع وبيخليه يعمل شغل بجد! ✨🔧

------------------------------

## 🛠️ الخلطة السحرية.. أهم مميزات LangChain مع نماذج الكود 👇

عشان نفهم لانج شين بيعمل إيه بالظبط، تعالوا نشوف عضلاته بالكود العملي:

## 1️⃣ السلاسل (Chains).. خط إنتاج ملوش حصر ⛓️

الموديل العادي بياخد سؤال ويدي جواب وشكراً.. لانج شين بيخليك تربط "قالب الأسئلة (Prompt)" مع "الموديل (LLM)" في سلسلة واحدة مرنة جداً باستخدام لغة ربط صايعة اسمها LCEL LangChain Expression Language.


* 💻 نموذج الكود:


from langchain_core.prompts import ChatPromptTemplate

from langchain_openai import ChatOpenAI

# 1. بنجهز الموديل بتاعنا

model = ChatOpenAI(model="gpt-4o")

# 2. بنعمل قالب للسؤال (علشان نثبت الطريقة)

prompt = ChatPromptTemplate.from_template("اشرحلي مفهوم {topic} بأسلوب مصري مضحك")


# 3. بنربطهم في سلسلة واحدة (Chain) باستخدام علامة |

chain = prompt | model

# 4. بنشغل السلسلة بكلمة واحدة

response = chain.invoke({"topic": "الذكاء الاصطناعي"})

print(response.content)


## 2️⃣ الذاكرة (Memory).. مش هينساك يا توفيق! 🧠

لو بتعمل شات بوت من غير لانج شين، هتلاقيه عنده زهايمر.. كل سؤال كأنه أول مرة يشوفك! لانج شين بيبني "ذاكرة حديدية" للبوت عشان يفتكر الشات ويقرا التاريخ بتاعه.


* 💻 نموذج الكود:


from langchain_core.messages import HumanMessage, AIMessagefrom langchain_openai import ChatOpenAI

model = ChatOpenAI(model="gpt-4o")

# بنخزن تاريخ المحادثة في لستة (دي بتبقى الذاكرة)

chat_history = [

    HumanMessage(content="أنا اسمي أحمد وبحب الأكل المصري"),

    AIMessage(content="أهلاً يا أحمد! منور يا غالي، الأكل المصري مفيش يعلى عليه 🍲")

]

# لما نسأله سؤال جديد، بنبعت الذاكرة مع السؤال عشان يفتكر!

new_question = HumanMessage(content="أنا قلت لك اسمي إيه وبحب إيه؟")

chat_history.append(new_question)

response = model.invoke(chat_history)

print(response.content) # هيقولك: اسمك أحمد وبتحب الأكل المصري! 😎


## 3️⃣ الاسترجاع (Retrieval / RAG).. وداعاً للفتي! 📚🔍

أكبر مشكلة في الذكاء الاصطناعي هي "الهلوسة" (تأليف معلومات). لانج شين بيخلي الموديل يقرا ملفاتك الخاصة ويجاوب منها بدقة مية في المية من غير ما يفتي من دماغه!

* 💻 نموذج الكود:

from langchain_community.document_loaders import TextLoader

from langchain_core.vectorstores import InMemoryVectorStore

from langchain_openai import OpenAIEmbeddings


# 1. بنحمل ملف الشركة الداخلي

loader = TextLoader("company_policy.txt")docs = loader.load()

# 2. بنحول الكلام لأرقام (Embeddings) وبنحفظه في قاعدة بيانات سريعة

vector_store = InMemoryVectorStore.from_documents(docs, OpenAIEmbeddings())

# 3. بنعمل نظام بحث (Retriever) يجيب المعلومات لما نسأله

retriever = vector_store.as_retriever()

matched_docs = retriever.invoke("كم عدد أيام الإجازات السنوية؟")

# بتاخد matched_docs وتبعتها للموديل عشان يجاوب منها بالملّي! 📋


## 4️⃣ الوكلاء (Agents).. البوت اللي بيفكر ويقرر 🕵️‍♂️

دي بقى أعلى مراحل الصياعة! بدل ما تمشي البوت على خطوات ثابتة، إنت بتديله "أدوات" (زي أداة للبحث على جوجل، وأداة تانية للحسابات) وتجيبله المشكلة وهو يقرر هيستخدم إيه لوحده!


* 💻 نموذج الكود:


from langchain_openai import ChatOpenAI

from langchain_community.tools.tavily_search import TavilySearchResults

from langgraph.prebuilt import create_react_agent

model = ChatOpenAI(model="gpt-4o")

# بنجهز الأدوات اللي الموديل مسموح له يستخدمها (مثلاً أداة بحث على النت)

tools = [TavilySearchResults(max_results=2)]


# بنعمل الوكيل الذكي

 (Agent)agent = create_react_agent(model, tools)

# البوت هنا لو سألته عن ماتش اتلعب امبارح، هيعرف لوحده إنه لازم يستخدم أداة البحث

!response = agent.invoke({"messages": [("user", "مين اللي كسب ماتش الأهلي امبارح؟")]})


------------------------------

## 💡 الخلاصة.. ليه لازم تبدأ تطبق الكود ده حالا؟ 🔥

من الآخر كده، LangChain هو اللي نقل الذكاء الاصطناعي من مجرد "شات للتسلية" لتطبيقات حقيقية بتشتغل في الشركات وتوفر ملايين 💸. الأكواد اللي فوق دي هي حجر الأساس اللي هتعمل بيه بوت خدمة عملاء لشركتك، أو سيستم يحلل عقود الشغل، أو مساعد شخصي ذكي جداً! 👨‍💻 ومبروك عليك دخول عالم المبرمجين الكبار! 😉👑

Comments

Popular posts from this blog

Best Practices for Storing and Loading JSON Objects from a Large SQL Server Table Using .NET Core

Maxpooling vs minpooling vs average pooling

Understand the Softmax Function in Minutes