Skip to content

Vertex AI Express Mode:免费使用 Vertex AI 会话与记忆

如果你有兴趣使用 VertexAiSessionServiceVertexAiMemoryBankService,但没有 Google Cloud 项目,你可以注册 Vertex AI Express Mode 免费获得访问权限并试用这些服务!你可以使用符合条件的 gmail 账户在此处注册。有关 Vertex AI Express Mode 的更多详细信息,请参见概述页面。 注册后,获取一个 API 密钥,你就可以开始在本地 ADK 智能体中使用 Vertex AI Session 和 Memory 服务了!

Vertex AI Express Mode 限制

Vertex AI Express Mode 在免费层级有一定的限制。免费的 Express Mode 项目只有 90 天有效期,只有特定服务可以使用且配额有限。例如,智能体引擎数量限制为 10 个,部署到智能体引擎仅限付费层级。要移除配额限制并使用 Vertex AI 的所有服务,请为你的 Express Mode 项目添加计费账户。

创建智能体引擎

Session 对象是 AgentEngine 的子对象。使用 Vertex AI Express Mode 时,我们可以创建一个空的 AgentEngine 父对象来管理所有的 SessionMemory 对象。 首先,确保你的环境变量设置正确。例如,在 Python 中:

weather_agent/.env
GOOGLE_GENAI_USE_VERTEXAI=TRUE
GOOGLE_API_KEY=PASTE_YOUR_ACTUAL_EXPRESS_MODE_API_KEY_HERE

接下来,我们可以创建智能体引擎实例。你可以使用 Gen AI SDK。

  1. 导入 Gen AI SDK。

    from google import genai
    
  2. 设置 Vertex AI 为 True,然后使用 POST 请求创建 Agent Engine

    # 使用 Gen AI SDK 创建 Agent Engine
    client = genai.Client(vertexai=True)._api_client
    
    response = client.request(
        http_method='POST',
        path=f'reasoningEngines',
        request_dict={"displayName": "YOUR_AGENT_ENGINE_DISPLAY_NAME", "description": "YOUR_AGENT_ENGINE_DESCRIPTION"},
    )
    response
    
  3. 用你的用例替换 YOUR_AGENT_ENGINE_DISPLAY_NAMEYOUR_AGENT_ENGINE_DESCRIPTION

  4. 从响应中获取智能体引擎名称和 ID

    APP_NAME = "/".join(response['name'].split("/")[:6])
    APP_ID = APP_NAME.split('/')[-1]
    

使用 VertexAiSessionService 管理会话

VertexAiSessionService 兼容 Vertex AI Express Mode API 密钥。我们可以不指定任何项目或位置来初始化会话对象。

# 需要:pip install google-adk[vertexai]
# 以及环境变量设置:
# GOOGLE_GENAI_USE_VERTEXAI=TRUE
# GOOGLE_API_KEY=PASTE_YOUR_ACTUAL_EXPRESS_MODE_API_KEY_HERE
from google.adk.sessions import VertexAiSessionService

# 与该服务一起使用时,app_name 应该是 Reasoning Engine ID 或名称
APP_ID = "your-reasoning-engine-id"

# 使用 Vertex Express Mode 初始化时不需要项目和位置
session_service = VertexAiSessionService(agent_engine_id=APP_ID)
# 调用服务方法时使用 REASONING_ENGINE_APP_ID,例如:
# session = await session_service.create_session(app_name=REASONING_ENGINE_APP_ID, user_id= ...)

Info

免费 Express Mode 项目的 VertexAiSessionService 配额如下:

  • 100 个 Session 实体
  • 10,000 个 Event 实体

使用 VertexAiMemoryBankService 管理记忆

VertexAiMemoryBankService 兼容 Vertex AI Express Mode API 密钥。我们可以不指定任何项目或位置来初始化记忆对象。

# 需要:pip install google-adk[vertexai]
# 以及环境变量设置:
# GOOGLE_GENAI_USE_VERTEXAI=TRUE
# GOOGLE_API_KEY=PASTE_YOUR_ACTUAL_EXPRESS_MODE_API_KEY_HERE
from google.adk.sessions import VertexAiMemoryBankService

# 与该服务一起使用时,app_name 应该是 Reasoning Engine ID 或名称
APP_ID = "your-reasoning-engine-id"

# 使用 Vertex Express Mode 初始化时不需要项目和位置
memory_service = VertexAiMemoryBankService(agent_engine_id=APP_ID)
# 从该会话生成记忆,以便智能体能够记住有关用户的相关信息
# memory = await memory_service.add_session_to_memory(session)

Info

免费 Express Mode 项目的 VertexAiMemoryBankService 配额如下:

  • 200 个 Memory 实体

代码示例:使用 Vertex AI Express Mode 的带会话和记忆的天气智能体

在此示例中,我们创建了一个天气智能体,它利用 VertexAiSessionServiceVertexAiMemoryBankService 进行上下文管理,使我们的智能体能够回忆用户的偏好和对话!

使用 Vertex AI Express Mode 的带会话和记忆的天气智能体