动物园导览助手

一个基于Google Agent Development Kit (ADK)开发的动物园导览助手,能够通过本地数据库和维基百科回答关于动物园动物的问题。

  • by Domengo
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Domengo/MCP-server-on-cloudrun

使用说明

动物园导游

该项目使用Google agent Development Kit(ADK)实现了动物园导游代理。该代理可以通过利用本地数据库(通过MCP服务器)和维基百科的外部知识来回答有关动物园动物的问题。

设置

  1. 克隆存储库:

    git clone https://github.com/Domengo/MCP-server-on-cloudrun.git
    cd MCP-server-on-cloudrun
    
  2. 创建并激活Python虚拟环境:

    python3 -m venv .venv
    source .venv/bin/activate
    
  3. 安装所需的依赖项:

    pip install -r requirements.txt
    
  4. 创建一个 .env 文件: 创建一个名为的文件 .env 在项目的根目录中添加以下环境变量。您需要更换 <your-mcp-server-url> 使用MCP服务器的实际URL。

    MODEL="gemini-1.5-flash"
    MCP_SERVER_URL=<your-mcp-server-url>
    

运行代理

此代理旨在作为web服务部署在Google Cloud Run上。与代理交互的主要方式是通过部署后提供的web UI。

部署到Google Cloud Run

  1. 设置您的Google Cloud项目:

    gcloud config set project <your-gcp-project-id>
    
  2. 启用必要的Google Cloud服务:

    gcloud services enable \
        run.googleapis.com \
        artifactregistry.googleapis.com \
        cloudbuild.googleapis.com \
        aiplatform.googleapis.com \
        compute.googleapis.com
    
  3. 设置部署的环境变量:

    export PROJECT_ID=$(gcloud config get-value project)
    export REGION=$(gcloud compute project-info describe \
      --format="value(commonInstanceMetadata.items[google-compute-default-region])")
    export PROJECT_NUMBER=$(gcloud projects describe $PROJECT_ID --format="value(projectNumber)")
    export SERVICE_ACCOUNT="${PROJECT_NUMBER}-compute@developer.gserviceaccount.com"
    
  4. 向服务帐户授予IAM权限:

    gcloud projects add-iam-policy-binding $PROJECT_ID \
      --member="serviceAccount:$SERVICE_ACCOUNT" \
      --role="roles/run.invoker"
    
    gcloud projects add-iam-policy-binding $PROJECT_ID \
      --member="serviceAccount:$SERVICE_ACCOUNT" \
      --role="roles/aiplatform.user"
    
  5. 将代理部署到Cloud Run:

    adk deploy cloud_run \
      --project=$PROJECT_ID \
      --region=$REGION \
      --service_name=zoo-tour-guide \
      --with_ui \
      .
    

    出现提示时,键入 Y 允许未经身份验证的调用。

  6. 访问代理: 成功部署后,您将获得一个服务URL。在浏览器中打开此URL,通过ADK的web UI与Zoo Guide Agent进行交互。

清理

为了避免产生未来的成本,您可以使用以下命令删除创建的云资源:

gcloud run services delete zoo-tour-guide --region=$REGION --quiet
gcloud artifacts repositories delete cloud-run-source-deploy --location=$REGION --quiet