بناء شبكة من الوكلاء الماليين الذكية باستخدام مكتبة Python-A2A وبروتوكول A2A من جوجل
يُعدّ بروتوكول Agent-to-Agent (A2A) من جوجل إطارًا قويًا يسمح للوكلاء الاصطناعيين بالتواصل فيما بينهم باستخدام صيغة موحدة، مما يلغي الحاجة إلى تكاملات مخصصة بين الخدمات المختلفة. تُسهّل مكتبة python-a2a
عملية بناء هذه الوكلاء وتشغيلهم باستخدام نهج قائم على الديكورات (Decorators)، مما يجعل عملية تطوير وكلاء ذكاء اصطناعي فعّالين أكثر سهولة وسرعة.
1. تثبيت المكتبات اللازمة
قبل البدء، يجب عليك تثبيت مكتبة python-a2a
باستخدام الأمر التالي في محطة الأوامر:
pip install python-a2a
2. إنشاء الوكلاء
سنقوم في هذا البرنامج التعليمي بإنشاء وكيلين: وكيل لحساب أقساط القرض (EMI) ووكيل لضبط قيمة مالية مع الأخذ بعين الاعتبار التضخم على مر السنين.
2.1 وكيل حساب أقساط القرض (emi_agent.py)
هذا الوكيل يحسب قسط القرض الشهري بناءً على المبلغ الرئيسي، ومعدل الفائدة السنوي، ومدة القرض بالشهور.
from python_a2a import A2AServer, skill, agent, run_server, TaskStatus, TaskState
import re
@agent(
name="EMI Calculator Agent",
description="Calculates EMI for a given principal, interest rate, and loan duration",
version="1.0.0"
)
class EMIAgent(A2AServer):
@skill(
name="Calculate EMI",
description="Calculates EMI given principal, annual interest rate, and duration in months",
tags=["emi", "loan", "interest"]
)
def calculate_emi(self, principal: float, annual_rate: float, months: int) -> str:
monthly_rate = annual_rate / (12 * 100)
emi = (principal * monthly_rate * ((1 + monthly_rate) ** months)) / (((1 + monthly_rate) ** months) - 1)
return f"The EMI for a loan of ₹{principal:.0f} at {annual_rate:.2f}% interest for {months} months is ₹{emi:.2f}"
def handle_task(self, task):
input_text = task.message["content"]["text"]
# Extract values from natural language using regular expressions... (code remains the same)
# ... (rest of the handle_task method remains the same)
if __name__ == "__main__":
agent = EMIAgent()
run_server(agent, port=4737)
يوضّح هذا الكود استخدام ديكوراتور @agent
لتحديد اسم الوكيل، ووصفه، وإصداره. كما يستخدم ديكوراتور @skill
لتحديد وظيفة calculate_emi
التي تقوم بحساب القسط الشهري. تُعالج دالة handle_task
طلبات المستخدم، وتستخرج القيم اللازمة، وتمررها إلى دالة calculate_emi
. أخيرًا، يتم تشغيل الخادم على المنفذ 4737.
2.2 وكيل ضبط القيمة مع الأخذ بعين الاعتبار التضخم (inflation_agent.py)
هذا الوكيل يحسب القيمة المستقبلية لمبلغ مالي مع الأخذ بعين الاعتبار معدل التضخم السنوي.
from python_a2a import A2AServer, skill, agent, run_server, TaskStatus, TaskState
import re
# ... (code remains largely the same as the Inflation Agent example from the original content) ...
يشبه هذا الوكيل في هيكله وكيل حساب أقساط القرض، لكنه يحسب القيمة المستقبلية للمبلغ مع الأخذ بعين الاعتبار التضخم.
3. إنشاء شبكة الوكلاء
بعد تشغيل كلا الوكيلين في نافذتي محطة أوامر منفصلتين:
python emi_agent.py
python inflation_agent.py
سننشئ شبكة تربط بينهما باستخدام AgentNetwork
وAIAgentRouter
:
from python_a2a import AgentNetwork, A2AClient, AIAgentRouter
# Create an agent network
network = AgentNetwork(name="Economics Calculator")
# Add agents to the network
network.add("EMI", "http://localhost:4737")
network.add("Inflation", "http://localhost:4747")
# Create a router to direct queries to the best agent (using an LLM)
# ... (code for creating and using the router remains the same) ...
هذا الكود يُنشئ شبكة من الوكلاء ويضيف كل من وكيل حساب أقساط القرض ووكيل ضبط القيمة مع التضخم. ثم يُنشئ جهاز توجيه (Router) يستخدم نموذجًا لغويًا كبيرًا (LLM) لتوجيه الاستفسارات إلى الوكيل الأنسب.
4. استعلام الوكلاء
بعد إنشاء الشبكة، يمكننا استعلام الوكلاء عن طريق تمرير الاستفسارات إلى جهاز التوجيه:
# ... (code for querying the agents remains the same) ...
هذا الكود يوضح كيفية استعلام الشبكة عن طريق تمرير استفسارات مختلفة، وكيف يقوم جهاز التوجيه بتوجيه الاستفسارات إلى الوكلاء المناسبين بناءً على محتوى الاستفسار.
5. ملاحظات ختامية
يُعتبر هذا البرنامج التعليمي نقطة انطلاق لبناء شبكات وكلاء أكثر تعقيدًا. يمكن إضافة المزيد من الوكلاء والمهارات لتوسيع وظائف الشبكة. تُتيح مكتبة python-a2a
بناء أنظمة ذكاء اصطناعي متقدمة وفعّالة.
اترك تعليقاً