File size: 2,435 Bytes
8e8a896 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 |
# Copyright 2025 Google LLC
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
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")
# Define the path to the .env file relative to this script
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,
)
# Function to update the .env file
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",
],
)
# log remote_app
logging.info(f"Deployed agent to Vertex AI Agent Engine successfully, resource name: {remote_app.resource_name}")
# Update the .env file with the new Agent Engine ID
update_env_file(remote_app.resource_name, ENV_FILE_PATH) |