|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import vertexai
|
|
|
from vertexai import agent_engines
|
|
|
from vertexai.preview.reasoning_engines import AdkApp
|
|
|
from rag.agent import root_agent
|
|
|
import logging
|
|
|
import os
|
|
|
from dotenv import set_key
|
|
|
|
|
|
logging.basicConfig(level=logging.DEBUG)
|
|
|
logger = logging.getLogger(__name__)
|
|
|
|
|
|
GOOGLE_CLOUD_PROJECT = os.getenv("GOOGLE_CLOUD_PROJECT")
|
|
|
GOOGLE_CLOUD_LOCATION = os.getenv("GOOGLE_CLOUD_LOCATION")
|
|
|
STAGING_BUCKET = os.getenv("STAGING_BUCKET")
|
|
|
|
|
|
ENV_FILE_PATH = os.path.abspath(os.path.join(os.path.dirname(__file__), "..", ".env"))
|
|
|
|
|
|
vertexai.init(
|
|
|
project=GOOGLE_CLOUD_PROJECT,
|
|
|
location=GOOGLE_CLOUD_LOCATION,
|
|
|
staging_bucket=STAGING_BUCKET,
|
|
|
)
|
|
|
|
|
|
|
|
|
def update_env_file(agent_engine_id, env_file_path):
|
|
|
"""Updates the .env file with the agent engine ID."""
|
|
|
try:
|
|
|
set_key(env_file_path, "AGENT_ENGINE_ID", agent_engine_id)
|
|
|
print(f"Updated AGENT_ENGINE_ID in {env_file_path} to {agent_engine_id}")
|
|
|
except Exception as e:
|
|
|
print(f"Error updating .env file: {e}")
|
|
|
|
|
|
logger.info("deploying app...")
|
|
|
app = AdkApp(
|
|
|
agent=root_agent,
|
|
|
enable_tracing=True,
|
|
|
)
|
|
|
|
|
|
logging.debug("deploying agent to agent engine:")
|
|
|
|
|
|
remote_app = agent_engines.create(
|
|
|
app,
|
|
|
requirements=[
|
|
|
"google-cloud-aiplatform[adk,agent-engines]==1.108.0",
|
|
|
"google-adk==1.10.0",
|
|
|
"python-dotenv",
|
|
|
"google-auth",
|
|
|
"tqdm",
|
|
|
"requests",
|
|
|
"llama-index",
|
|
|
],
|
|
|
extra_packages=[
|
|
|
"./rag",
|
|
|
],
|
|
|
)
|
|
|
|
|
|
|
|
|
logging.info(f"Deployed agent to Vertex AI Agent Engine successfully, resource name: {remote_app.resource_name}")
|
|
|
|
|
|
|
|
|
update_env_file(remote_app.resource_name, ENV_FILE_PATH) |