بناء وكيل ذكاء اصطناعي باستخدام Google ADK: دليل شامل خطوة بخطوة
يُعدّ مجموعة تطوير الوكلاء (ADK) إطار عمل مفتوح المصدر بلغة بايثون، يساعد المطورين على بناء وإدارة ونشر أنظمة متعددة الوكلاء. وقد صُمّم ليكون نمطيًا ومرنًا، مما يسهّل استخدامه في التطبيقات القائمة على الوكلاء، سواءً البسيطة أو المعقدة. سنقوم في هذا البرنامج التعليمي بإنشاء وكيل ذكاء اصطناعي بسيط باستخدام ADK. سيكون للوكيل صلاحية الوصول إلى أداتين: get_company_overview
و get_earnings
.
الخطوة الأولى: تهيئة التبعيات
1. مفتاح واجهة برمجة تطبيقات Google (API Key):
لاستخدام خدمات Google للذكاء الاصطناعي، ستحتاج إلى مفتاح API:
- تفضل بزيارة الرابط: https://aistudio.google.com/apikey
- سجّل الدخول وقم بإنشاء مفتاح API الخاص بك.
- انسخ واحفظ المفتاح بشكل آمن – سنستخدمه لاحقًا في البرنامج التعليمي.
2. مفتاح واجهة برمجة تطبيقات AlphaVantage:
للوصول إلى البيانات المالية، سنستخدم واجهة برمجة تطبيقات Alpha Vantage:
- تفضل بزيارة الرابط: https://www.alphavantage.co/
- انقر على “احصل على مفتاح API المجاني” أو تفضل بزيارة هذا الرابط المباشر: https://www.alphavantage.co/support/#api-key
- أدخل بريدك الإلكتروني واتبع التعليمات.
- بمجرد استلام مفتاح API الخاص بك، انسخ واحفظه بشكل آمن. سنستخدمه للمصادقة على الطلبات إلى نقاط النهاية المالية.
3. مكتبات بايثون:
نحتاج فقط إلى حزمة واحدة:
pip install google-adk
الخطوة الثانية: إنشاء هيكل المجلدات
قم بإعداد مجلد مشروعك بالهيكل التالي:
parent_folder/
│
└───multi_agent/
├── __init__.py
├── agent.py
└── .env
1. multi_agent/__init__.py
:
الصق الكود التالي في multi_agent/__init__.py
:
from . import agent
2. الملف .env
:
أنشئ ملفًا باسم .env
داخل مجلد multi_agent
والصق ما يلي:
GOOGLE_GENAI_USE_VERTEXAI=FALSE
GOOGLE_API_KEY="<YOUR_GOOGLE_API_KEY>"
ALPHA_VANTAGE_API_KEY="<YOUR_ALPHA_VANTAGE_KEY>"
استبدل علامات المساحة العريضة بمعلومات مفاتيح API الخاصة بك.
3. agent.py
:
الصق الكود التالي في ملف agent.py
:
from google.adk.agents import Agent
import requests
import os
from typing import Optional
ALPHA_VANTAGE_API_KEY = os.getenv("ALPHA_VANTAGE_API_KEY")
def get_company_overview(symbol: str) -> dict:
# ... (كود الوظيفة كما هو موجود في النص الأصلي) ...
def get_earnings(symbol: str) -> dict:
# ... (كود الوظيفة كما هو موجود في النص الأصلي) ...
root_agent = Agent(
name="Financial_analyst_agent",
model="gemini-2.0-flash",
description=("Agent to give company overviews with key financial metrics."),
instruction=("You are a helpful AI agent that provides company overviews and earnings information"),
tools=[get_company_overview, get_earnings],
)
في هذا البرنامج النصي، نقوم بتعريف وكيل تحليل مالي باستخدام Google Agent Development Kit (ADK). صُمّم الوكيل للإجابة على استفسارات المستخدمين من خلال الوصول إلى البيانات المالية في الوقت الحقيقي عبر واجهة برمجة تطبيقات Alpha Vantage. على وجه التحديد، يعرض أداةين: get_company_overview
و get_earnings
. تقوم وظيفة get_company_overview
باسترجاع تفاصيل الشركة الرئيسية مثل القطاع، ورأس المال السوقي، ونسبة السعر إلى الربح، والقيم العالية/المنخفضة على مدار 52 أسبوعًا. توفر وظيفة get_earnings
بيانات الأرباح السنوية والربع سنوية، بما في ذلك EPS المُعلن ونسب المفاجآت. لإنشاء الوكيل، نستخدم فئة Agent
من وحدة google.adk.agents
، ونعطيه اسمًا، ونموذجًا (مثل Gemini 2.0 Flash)، ووصفًا، وموجه تعليمات. ثم يتم تزويد الوكيل بالأداتين المذكورتين أعلاه، مما يسمح له بالرد على الأسئلة المتعلقة بالبيانات المالية للشركات.
الخطوة الثالثة: تشغيل الوكيل
لتشغيل الوكيل، انتقل إلى الدليل الرئيسي لمشروع الوكيل (مثل استخدام cd ..
):
parent_folder/ ← انتقل إلى هذا الدليل في محطة الأوامر الخاصة بك
│
└───multi_agent/
├── __init__.py # يهيئ الوحدة
├── agent.py # يحتوي على منطق الوكيل والأدوات
└── .env # يخزن مفاتيح API الخاصة بك بشكل آمن
بعد الانتقال، قم بتشغيل الكود التالي:
adk web
افتح عنوان URL المُقدم (عادةً http://localhost:8000
أو http://127.0.0.1:8000
) مباشرةً في متصفحك. سترى واجهة دردشة بسيطة حيث يمكنك التفاعل مع وكيلك باستخدام مربع النص الإدخال. بالإضافة إلى ذلك، يمكنك فحص كل خطوة من خطوات استنتاج الوكيل بالنقر على “الإجراءات”. هذا يسمح لك بعرض:
- الأدوات التي يتم استدعاؤها
- مدخلات ومخرجات كل وظيفة
- الردود التي يولدها نموذج اللغة
رابط جيتهاب
يمكنك العثور على الكود الكامل مع هيكل المجلدات في هذا الرابط: https://github.com/mohd-arham-islam/ADK-demo
اترك تعليقاً