目次
この記事について
本記事は、Agent Builder を使用したデータストア参照型対話エージェントの作成に関する調査記録です。
やりたいこと
Agent Builder を用いたデータストア参照型対話エージェントの作成において、
データストアのファイル数が増加することで回答率が低下する問題への対処を進める。
前回の調査日記
あわせて読みたい


AI Agent開発日記 2025/03/23
この記事について 本記事は、Agent Builder を使用したデータストア参照型対話エージェントの作成に関する調査記録です。 やりたいこと Agent Builder を用いたデータス...
elasticsearchをcloud runにデプロイする。
- 現状
- 下記記事を参考にし、elasticsearchをrunにデプロイする
- 下記構造のディレクトリを作成
elasticsearch-app
├── Dockerfile
├── cloudbuild.yml
├── config
│ ├── elasticsearch.yml
│ └── jvm.options
└── security
└── limits.conf
- デプロイする
$ export PROJECT_ID=<your-project>
$ gcloud builds submit --substitutions=_DOCKER_URI=gcr.io/${PROJECT_ID}/es-run,_GITHUB_SHA=latest
- デプロイ時に下記、ログを見る権限が不足しているとのエラーが発生
ERROR: (gcloud.builds.submit)
The build is running, and logs are being written to the default logs bucket.
This tool can only stream logs if you are Viewer/Owner of the project and, if applicable, allowed by your VPC-SC security policy.- ログを見る権限がすでにあるのにもかかわらずエラーが発生している
- 試したこと
- デプロイコードを使うのではなく、下記内容のdeploy.pyを使用した
- ブラウザのcloud run のコンテナ設定からメモリ制限の設定項目を4Gibに引き上げる
- DockerfileのElasticsearch プロセスの最大ファイルディスクリプタ数を25000から65535に変更
- .yamlにしていたファイル拡張子を、.ymlに修正
- elasticsearc.ymlに
http.port: 8080
を追加
- 結果
- 無事デプロイに成功した
elasticsearchをrunにデプロイする為に参考にした参照記事
Qiita


Elasticsearch + Cloud Run で検索 API を作る - Qiita
はじめにこの記事は ZOZO Advent Calendar 2021 24日目の記事です。この記事では全文検索エンジンの一つである Elasticsearch を Cloud Run にデプロ…
deploy.pyの内容
import os
import subprocess
if __name__ == "__main__":
service_account = os.environ["pj_acc"]
shell_param = {"shell": False} if "/" in os.sep else {"shell": True}
paths = os.getcwd().split(os.sep)
app_name = f"{paths[-2]}-{paths[-1]}"
pj = "your-project-name"
build_cmd = f"gcloud builds submit --tag gcr.io/{pj}/{app_name}"
# --no-allow-unauthenticated or --allow-unauthenticated
deploy_cmd = f"""gcloud run deploy {app_name} --image gcr.io/{pj}/{app_name} \
--platform=managed \
--allow-unauthenticated \
--region us-west1 \
--service-account={service_account} \
--set-env-vars=service_account={service_account}
"""
print(build_cmd)
build_result = subprocess.call(build_cmd.split(), **shell_param)
print("build_result:", build_result)
deploy_result = subprocess.call(deploy_cmd.split(), **shell_param)
print("deploy_result:", deploy_result)