动物园导游
该项目使用Google agent Development Kit(ADK)实现了动物园导游代理。该代理可以通过利用本地数据库(通过MCP服务器)和维基百科的外部知识来回答有关动物园动物的问题。
设置
- 克隆存储库:
git clone https://github.com/Domengo/MCP-server-on-cloudrun.git
cd MCP-server-on-cloudrun- 创建并激活Python虚拟环境:
python3 -m venv .venv
source .venv/bin/activate- 安装所需的依赖项:
pip install -r requirements.txt- 创建一个
.env文件:
创建一个名为的文件 .env 在项目的根目录中添加以下环境变量。您需要更换 `` 使用MCP服务器的实际URL。
MODEL="gemini-1.5-flash"
MCP_SERVER_URL=运行代理
此代理旨在作为web服务部署在Google Cloud Run上。与代理交互的主要方式是通过部署后提供的web UI。
部署到Google Cloud Run
- 设置您的Google Cloud项目:
gcloud config set project - 启用必要的Google Cloud服务:
gcloud services enable \
run.googleapis.com \
artifactregistry.googleapis.com \
cloudbuild.googleapis.com \
aiplatform.googleapis.com \
compute.googleapis.com- 设置部署的环境变量:
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"- 向服务帐户授予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"- 将代理部署到Cloud Run:
adk deploy cloud_run \
--project=$PROJECT_ID \
--region=$REGION \
--service_name=zoo-tour-guide \
--with_ui \
.出现提示时,键入 Y 允许未经身份验证的调用。
- 访问代理:
成功部署后,您将获得一个服务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