Как создать финансового AI-агента с помощью Google ADK: подробное руководство
В этом руководстве показано, как создать финансового AI-агента с Google ADK, интегрируя данные в реальном времени через API Alpha Vantage для обзоров компаний и анализа доходов.
Что такое Google Agent Development Kit (ADK)
Agent Development Kit (ADK) — это открытый Python-фреймворк, который помогает разработчикам создавать, управлять и развёртывать мультиагентные системы. Он модульный и гибкий, подходит для простых и сложных приложений с агентами.
Создание простого финансового AI-агента
В этом руководстве мы создадим простой AI-агент с двумя финансовыми инструментами:
get_company_overview— получение обзора компанииget_earnings— получение данных о доходах
Шаг 1: Установка зависимостей
Ключ API Google
Для использования AI-сервисов Google нужно получить API-ключ на сайте Google AI Studio. Войдите, сгенерируйте ключ и сохраните его.
Ключ API Alpha Vantage
Для доступа к финансовым данным получите бесплатный ключ API на Alpha Vantage. Зарегистрируйтесь и сохраните ключ.
Python-библиотеки
Установите необходимый пакет:
pip install google-adkШаг 2: Структура проекта
Организуйте папки так:
parent_folder/
│
└───multi_agent/
├── __init__.py
├── agent.py
└── .env
- В
__init__.pyимпортируем модуль агента:
from . import agent- В
.envхраним ключи:
GOOGLE_GENAI_USE_VERTEXAI=FALSE
GOOGLE_API_KEY="<ВАШ_GOOGLE_API_КЛЮЧ>"
ALPHA_VANTAGE_API_KEY="<ВАШ_ALPHA_VANTAGE_КЛЮЧ>"
Замените плейсхолдеры на свои ключи.
Шаг 3: Определение инструментов агента в agent.py
В agent.py определены функции для получения финансовых данных через API Alpha Vantage.
from google.adk.agents import Agent
import requests
import os
ALPHA_VANTAGE_API_KEY = os.getenv("ALPHA_VANTAGE_API_KEY")
def get_company_overview(symbol: str) -> dict:
"""
Получение общей информации о компании и финансовых показателей
"""
if not ALPHA_VANTAGE_API_KEY:
return {"status": "error", "error": "Отсутствует API ключ"}
base_url = "https://www.alphavantage.co/query"
params = {
"function": "OVERVIEW",
"symbol": symbol,
"apikey": ALPHA_VANTAGE_API_KEY
}
try:
response = requests.get(base_url, params=params)
response.raise_for_status()
data = response.json()
if "Error Message" in data:
return {"status": "error", "error": data["Error Message"]}
key_metrics = {
"Description": data.get("Description"),
"Sector": data.get("Sector"),
"MarketCap": data.get("MarketCapitalization"),
"PERatio": data.get("PERatio"),
"ProfitMargin": data.get("ProfitMargin"),
"52WeekHigh": data.get("52WeekHigh"),
"52WeekLow": data.get("52WeekLow")
}
return {
"status": "success",
"symbol": symbol,
"overview": key_metrics
}
except Exception as e:
return {"status": "error", "error": str(e)}
def get_earnings(symbol: str) -> dict:
"""
Получение годовых и квартальных данных о доходах (EPS) с аналитическими оценками и сюрпризами
"""
if not ALPHA_VANTAGE_API_KEY:
return {"status": "error", "error": "Отсутствует API ключ"}
base_url = "https://www.alphavantage.co/query"
params = {
"function": "EARNINGS",
"symbol": symbol,
"apikey": ALPHA_VANTAGE_API_KEY
}
try:
response = requests.get(base_url, params=params)
response.raise_for_status()
data = response.json()
if "Error Message" in data:
return {"status": "error", "error": data["Error Message"]}
annual_earnings = data.get("annualEarnings", [])[:5]
quarterly_earnings = data.get("quarterlyEarnings", [])[:4]
for q in quarterly_earnings:
if "surprisePercentage" in q:
q["surprise"] = f"{q['surprisePercentage']}%"
return {
"status": "success",
"symbol": symbol,
"annual_earnings": annual_earnings,
"quarterly_earnings": quarterly_earnings,
"metrics": {
"latest_eps": quarterly_earnings[0]["reportedEPS"] if quarterly_earnings else None
}
}
except Exception as e:
return {"status": "error", "error": str(e)}
root_agent = Agent(
name="Financial_analyst_agent",
model="gemini-2.0-flash",
description="Агент для предоставления обзоров компаний с ключевыми финансовыми метриками.",
instruction="Вы полезный AI-агент, который предоставляет обзоры компаний и информацию о доходах",
tools=[get_company_overview, get_earnings],
)Шаг 4: Запуск агента
Перейдите в родительскую папку проекта:
cd parent_folder/
Запустите веб-интерфейс агента:
adk web
Откройте указанный URL (обычно http://localhost:8000) в браузере, чтобы общаться с агентом через чат. Можно просматривать действия агента, вызовы инструментов, входные и выходные данные, а также ответы модели.
Дополнительные материалы
Полный код и структуру проекта можно найти на GitHub: https://github.com/mohd-arham-islam/ADK-demo
Switch Language
Read this article in English