Pankaj001's picture
Upload 16 files
8e8a896 verified
import os
import vertexai
from vertexai import agent_engines
from google.adk.sessions import VertexAiSessionService
from dotenv import load_dotenv
import json
import asyncio
def pretty_print_event(event):
"""Pretty prints an event with truncation for long content."""
if "content" not in event:
print(f"[{event.get('author', 'unknown')}]: {event}")
return
author = event.get("author", "unknown")
parts = event["content"].get("parts", [])
for part in parts:
if "text" in part:
text = part["text"]
# Truncate long text to 200 characters
if len(text) > 200:
text = text[:197] + "..."
print(f"[{author}]: {text}")
elif "functionCall" in part:
func_call = part["functionCall"]
print(f"[{author}]: Function call: {func_call.get('name', 'unknown')}")
# Truncate args if too long
args = json.dumps(func_call.get("args", {}))
if len(args) > 100:
args = args[:97] + "..."
print(f" Args: {args}")
elif "functionResponse" in part:
func_response = part["functionResponse"]
print(f"[{author}]: Function response: {func_response.get('name', 'unknown')}")
# Truncate response if too long
response = json.dumps(func_response.get("response", {}))
if len(response) > 100:
response = response[:97] + "..."
print(f" Response: {response}")
load_dotenv()
vertexai.init(
project=os.getenv("GOOGLE_CLOUD_PROJECT"),
location=os.getenv("GOOGLE_CLOUD_LOCATION"),
)
session_service = VertexAiSessionService(project=os.getenv("GOOGLE_CLOUD_PROJECT"),location=os.getenv("GOOGLE_CLOUD_LOCATION"))
AGENT_ENGINE_ID = os.getenv("AGENT_ENGINE_ID")
session = asyncio.run(session_service.create_session(
app_name=AGENT_ENGINE_ID,
user_id="123",
))
agent_engine = agent_engines.get(AGENT_ENGINE_ID)
queries = [
"Hi, how are you?",
"According to the MD&A, how might the increasing proportion of revenues derived from non-advertising sources like Google Cloud and devices potentially impact Alphabet's overall operating margin, and why?",
"The report mentions significant investments in AI. What specific connection is drawn between these AI investments and the company's expectations regarding future capital expenditures?",
"Thanks, I got all the information I need. Goodbye!",
]
for query in queries:
print(f"\n[user]: {query}")
for event in agent_engine.stream_query(
user_id="123",
session_id=session.id,
message=query,
):
pretty_print_event(event)