ريأكت
المشروع المعروف AutoGPT مستند إلى نموذج ReAct، وهو مزيج من الاستدلال + العمل. النموذج الكبير LLM مسؤول عن الاستدلال، والتحكم في الإجراءات لتحقيق الأهداف، وبالنسبة للمطورين، العمل في الواقع يعني تطوير أدوات أو واجهات برمجة التطبيقات الجيدة. سيقوم هذا الفصل بشرح كيفية تنفيذ نموذج ReAct في LangChain.
تحميل الحزم الأساسية:
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.agents import AgentType
from langchain_openai import OpenAI
هنا، نستخدم نموذج OpenAI:
llm = OpenAI(temperature=0)
تحميل أدوات مدمجة في LangChain: serpapi للبحث في Google و llm-math لآلة حاسبة رياضية، تم تنفيذهما باستخدام LLM. لذلك، عند تحميل الأدوات، يجب تمرير النموذج llm الذي سيتم استخدامه.
tools = load_tools(["serpapi", "llm-math"], llm=llm)
أخيرًا، تهيئة الوكيل بنوع الوكيل كـ AgentType.ZERO_SHOT_REACT_DESCRIPTION، الذي يمثل نموذج ReAct.
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
الآن، دعنا نجربها!
agent.run("Who is Leonardo DiCaprio's girlfriend? What is the 0.43 power of her current age?")
> دخول سلسلة تنفيذ وكيل جديدة...
أحتاج إلى معرفة من هي صديقة ليوناردو دي كابريو، ومن ثم حساب قوة 0.43 من عمرها.
العمل: بحث
مدخلات العمل: "صديقة ليوناردو دي كابريو"
الملاحظة: كاميلا موروني
التفكير: أحتاج إلى معرفة عمر كاميلا موروني
العمل: بحث
مدخلات العمل: "عمر كاميلا موروني"
الملاحظة: 25 عامًا
التفكير: أحتاج إلى حساب 25 بقوة 0.43
العمل: الآلة الحاسبة
مدخلات العمل: 25^0.43
الملاحظة: الجواب: 3.991298452658078
التفكير: أنا أعرف الإجابة النهائية الآن
الإجابة النهائية: كاميلا موروني هي صديقة ليوناردو دي كابريو، وقوة 0.43 من عمرها هي 3.991298452658078.
> السلسلة اكتملت.
"كاميلا موروني هي صديقة ليوناردو دي كابريو، وقوة 0.43 من عمرها هي 3.991298452658078."
باستخدام نموذج الدردشة
من المثال السابق، نعلم أن الوكيل يحتاج إلى اختيار نموذج كبير كمحرك استدلال. هنا، نغير ذلك لاستخدام نموذج الدردشة من OpenAI.
from langchain_openai import ChatOpenAI
chat_model = ChatOpenAI(temperature=0)
agent = initialize_agent(tools, chat_model, agent=AgentType.CHAT_ZERO_SHOT_REACT_DESCRIPTION, verbose=True)
agent.run("Who is Leonardo DiCaprio's girlfriend? What is the 0.43 power of her current age?")