diff --git a/.gitleaks.toml b/.gitleaks.toml index 5cad406e..58411cf3 100644 --- a/.gitleaks.toml +++ b/.gitleaks.toml @@ -71,3 +71,6 @@ regex = '''(10\.\d{1,3}\.\d{1,3}\.\d{1,3})''' id = "empty-env-key-pattern" description = "Empty environment variables with KEY pattern" regex = '''os\.environ\[".*?KEY"\]\s*=\s*".+"''' + +[allowlist] +paths = ["requirements.txt"] diff --git a/requirements.txt b/requirements.txt new file mode 100644 index 00000000..0d041127 --- /dev/null +++ b/requirements.txt @@ -0,0 +1,651 @@ +# This file was autogenerated by uv via the following command: +# uv pip compile pyproject.toml --extra database -o requirements.txt +a2a-sdk==0.3.3 + # via veadk-python (pyproject.toml) +absolufy-imports==0.3.1 + # via google-adk +agent-pilot-sdk==0.0.9 + # via veadk-python (pyproject.toml) +aiohappyeyeballs==2.6.1 + # via aiohttp +aiohttp==3.12.15 + # via litellm +aiosignal==1.4.0 + # via aiohttp +annotated-types==0.7.0 + # via pydantic +anyio==4.10.0 + # via + # google-adk + # google-genai + # httpx + # mcp + # openai + # sse-starlette + # starlette + # volcengine-python-sdk +arrow==1.3.0 + # via cookiecutter +attrs==25.3.0 + # via + # aiohttp + # cyclopts + # jsonschema + # referencing +authlib==1.6.2 + # via + # fastmcp + # google-adk +beautifulsoup4==4.13.5 + # via google +binaryornot==0.4.4 + # via cookiecutter +cachetools==5.5.2 + # via google-auth +certifi==2025.8.3 + # via + # httpcore + # httpx + # opensearch-py + # requests + # volcengine-python-sdk +cffi==1.17.1 + # via cryptography +chardet==5.2.0 + # via binaryornot +charset-normalizer==3.4.3 + # via requests +chevron==0.14.0 + # via agent-pilot-sdk +click==8.2.1 + # via + # cookiecutter + # google-adk + # litellm + # uvicorn +cloudpickle==3.1.1 + # via google-cloud-aiplatform +cookiecutter==2.6.0 + # via veadk-python (pyproject.toml) +crcmod==1.7 + # via tos +cryptography==45.0.6 + # via + # authlib + # volcengine-python-sdk +cyclopts==3.23.0 + # via fastmcp +decorator==5.2.1 + # via retry +deprecated==1.2.18 + # via + # veadk-python (pyproject.toml) + # tos +distro==1.9.0 + # via openai +dnspython==2.7.0 + # via email-validator +docstring-parser==0.17.0 + # via + # cyclopts + # google-cloud-aiplatform +docutils==0.22 + # via rich-rst +email-validator==2.2.0 + # via pydantic +et-xmlfile==2.0.0 + # via openpyxl +events==0.5 + # via opensearch-py +exceptiongroup==1.3.0 + # via fastmcp +fastapi==0.116.1 + # via google-adk +fastmcp==2.11.3 + # via veadk-python (pyproject.toml) +filelock==3.19.1 + # via huggingface-hub +frozenlist==1.7.0 + # via + # aiohttp + # aiosignal +fsspec==2025.7.0 + # via huggingface-hub +google==3.0.0 + # via volcengine +google-adk==1.12.0 + # via veadk-python (pyproject.toml) +google-api-core==2.25.1 + # via + # a2a-sdk + # google-api-python-client + # google-cloud-aiplatform + # google-cloud-appengine-logging + # google-cloud-bigquery + # google-cloud-bigtable + # google-cloud-core + # google-cloud-logging + # google-cloud-resource-manager + # google-cloud-secret-manager + # google-cloud-spanner + # google-cloud-speech + # google-cloud-storage + # google-cloud-trace +google-api-python-client==2.179.0 + # via google-adk +google-auth==2.40.3 + # via + # google-api-core + # google-api-python-client + # google-auth-httplib2 + # google-cloud-aiplatform + # google-cloud-appengine-logging + # google-cloud-bigquery + # google-cloud-bigtable + # google-cloud-core + # google-cloud-logging + # google-cloud-resource-manager + # google-cloud-secret-manager + # google-cloud-speech + # google-cloud-storage + # google-cloud-trace + # google-genai +google-auth-httplib2==0.2.0 + # via google-api-python-client +google-cloud-aiplatform==1.110.0 + # via google-adk +google-cloud-appengine-logging==1.6.2 + # via google-cloud-logging +google-cloud-audit-log==0.3.2 + # via google-cloud-logging +google-cloud-bigquery==3.36.0 + # via google-cloud-aiplatform +google-cloud-bigtable==2.32.0 + # via google-adk +google-cloud-core==2.4.3 + # via + # google-cloud-bigquery + # google-cloud-bigtable + # google-cloud-logging + # google-cloud-spanner + # google-cloud-storage +google-cloud-logging==3.12.1 + # via google-cloud-aiplatform +google-cloud-resource-manager==1.14.2 + # via google-cloud-aiplatform +google-cloud-secret-manager==2.24.0 + # via google-adk +google-cloud-spanner==3.57.0 + # via google-adk +google-cloud-speech==2.33.0 + # via google-adk +google-cloud-storage==2.19.0 + # via + # google-adk + # google-cloud-aiplatform +google-cloud-trace==1.16.2 + # via + # google-cloud-aiplatform + # opentelemetry-exporter-gcp-trace +google-crc32c==1.7.1 + # via + # google-cloud-bigtable + # google-cloud-storage + # google-resumable-media +google-genai==1.31.0 + # via + # google-adk + # google-cloud-aiplatform +google-resumable-media==2.7.2 + # via + # google-cloud-bigquery + # google-cloud-storage +googleapis-common-protos==1.70.0 + # via + # google-api-core + # google-cloud-audit-log + # grpc-google-iam-v1 + # grpcio-status + # opentelemetry-exporter-otlp-proto-grpc + # opentelemetry-exporter-otlp-proto-http +graphviz==0.21 + # via google-adk +grpc-google-iam-v1==0.14.2 + # via + # google-cloud-bigtable + # google-cloud-logging + # google-cloud-resource-manager + # google-cloud-secret-manager + # google-cloud-spanner +grpc-interceptor==0.15.4 + # via google-cloud-spanner +grpcio==1.74.0 + # via + # google-api-core + # googleapis-common-protos + # grpc-google-iam-v1 + # grpc-interceptor + # grpcio-status + # opentelemetry-exporter-otlp-proto-grpc +grpcio-status==1.74.0 + # via google-api-core +h11==0.16.0 + # via + # httpcore + # uvicorn +hf-xet==1.1.8 + # via huggingface-hub +httpcore==1.0.9 + # via httpx +httplib2==0.22.0 + # via + # google-api-python-client + # google-auth-httplib2 +httpx==0.28.1 + # via + # a2a-sdk + # fastmcp + # google-genai + # litellm + # mcp + # openai + # volcengine-python-sdk +httpx-sse==0.4.1 + # via + # a2a-sdk + # mcp +huggingface-hub==0.34.4 +idna==3.10 + # via + # anyio + # email-validator + # httpx + # requests + # yarl +importlib-metadata==8.7.0 + # via + # litellm + # opentelemetry-api +isodate==0.7.2 + # via openapi-core +jinja2==3.1.6 + # via + # cookiecutter + # litellm +jiter==0.10.0 + # via openai +jsonpickle==4.1.1 + # via agent-pilot-sdk +jsonschema==4.25.1 + # via + # litellm + # mcp + # openapi-core + # openapi-schema-validator + # openapi-spec-validator +jsonschema-path==0.3.4 + # via + # openapi-core + # openapi-spec-validator +jsonschema-specifications==2025.4.1 + # via + # jsonschema + # openapi-schema-validator +lazy-object-proxy==1.12.0 + # via openapi-spec-validator +litellm==1.76.0 + # via veadk-python (pyproject.toml) +loguru==0.7.3 + # via + # veadk-python (pyproject.toml) + # agent-pilot-sdk +markdown-it-py==4.0.0 + # via rich +markupsafe==3.0.2 + # via + # jinja2 + # werkzeug +mcp==1.13.1 + # via + # fastmcp + # google-adk +mdurl==0.1.2 + # via markdown-it-py +more-itertools==10.7.0 + # via openapi-core +multidict==6.6.4 + # via + # aiohttp + # yarl +numpy==2.3.2 + # via shapely +openai==1.99.9 + # via + # veadk-python (pyproject.toml) + # litellm +openapi-core==0.19.5 + # via fastmcp +openapi-pydantic==0.5.1 + # via fastmcp +openapi-schema-validator==0.6.3 + # via + # openapi-core + # openapi-spec-validator +openapi-spec-validator==0.7.2 + # via openapi-core +openpyxl==3.1.5 + # via agent-pilot-sdk +opensearch-py==2.8.0 + # via veadk-python (pyproject.toml) +opentelemetry-api==1.36.0 + # via + # google-adk + # google-cloud-logging + # opentelemetry-exporter-gcp-trace + # opentelemetry-exporter-otlp-proto-grpc + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-instrumentation + # opentelemetry-instrumentation-logging + # opentelemetry-resourcedetector-gcp + # opentelemetry-sdk + # opentelemetry-semantic-conventions +opentelemetry-exporter-gcp-trace==1.9.0 + # via + # google-adk + # google-cloud-aiplatform +opentelemetry-exporter-otlp==1.36.0 + # via veadk-python (pyproject.toml) +opentelemetry-exporter-otlp-proto-common==1.36.0 + # via + # opentelemetry-exporter-otlp-proto-grpc + # opentelemetry-exporter-otlp-proto-http +opentelemetry-exporter-otlp-proto-grpc==1.36.0 + # via opentelemetry-exporter-otlp +opentelemetry-exporter-otlp-proto-http==1.36.0 + # via opentelemetry-exporter-otlp +opentelemetry-instrumentation==0.57b0 + # via opentelemetry-instrumentation-logging +opentelemetry-instrumentation-logging==0.57b0 + # via veadk-python (pyproject.toml) +opentelemetry-proto==1.36.0 + # via + # opentelemetry-exporter-otlp-proto-common + # opentelemetry-exporter-otlp-proto-grpc + # opentelemetry-exporter-otlp-proto-http +opentelemetry-resourcedetector-gcp==1.9.0a0 + # via opentelemetry-exporter-gcp-trace +opentelemetry-sdk==1.36.0 + # via + # google-adk + # google-cloud-aiplatform + # opentelemetry-exporter-gcp-trace + # opentelemetry-exporter-otlp-proto-grpc + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-resourcedetector-gcp +opentelemetry-semantic-conventions==0.57b0 + # via + # opentelemetry-instrumentation + # opentelemetry-sdk +packaging==25.0 + # via + # google-cloud-aiplatform + # google-cloud-bigquery + # huggingface-hub + # opentelemetry-instrumentation +parse==1.20.2 + # via openapi-core +pathable==0.4.4 + # via jsonschema-path +propcache==0.3.2 + # via + # aiohttp + # yarl +proto-plus==1.26.1 + # via + # google-api-core + # google-cloud-aiplatform + # google-cloud-appengine-logging + # google-cloud-bigtable + # google-cloud-logging + # google-cloud-resource-manager + # google-cloud-secret-manager + # google-cloud-spanner + # google-cloud-speech + # google-cloud-trace +protobuf==6.32.0 + # via + # a2a-sdk + # google-api-core + # google-cloud-aiplatform + # google-cloud-appengine-logging + # google-cloud-audit-log + # google-cloud-bigtable + # google-cloud-logging + # google-cloud-resource-manager + # google-cloud-secret-manager + # google-cloud-spanner + # google-cloud-speech + # google-cloud-trace + # googleapis-common-protos + # grpc-google-iam-v1 + # grpcio-status + # opentelemetry-proto + # proto-plus + # volcengine +py==1.11.0 + # via retry +pyasn1==0.6.1 + # via + # pyasn1-modules + # rsa +pyasn1-modules==0.4.2 + # via google-auth +pycparser==2.22 + # via cffi +pycryptodome==3.23.0 + # via volcengine +pydantic==2.11.7 + # via + # a2a-sdk + # agent-pilot-sdk + # fastapi + # fastmcp + # google-adk + # google-cloud-aiplatform + # google-genai + # litellm + # mcp + # openai + # openapi-pydantic + # pydantic-settings + # volcengine-python-sdk +pydantic-core==2.33.2 + # via pydantic +pydantic-settings==2.10.1 + # via + # veadk-python (pyproject.toml) + # mcp +pygments==2.19.2 + # via rich +pymysql==1.1.2 + # via veadk-python (pyproject.toml) +pyparsing==3.2.3 + # via httplib2 +pyperclip==1.9.0 + # via fastmcp +python-dateutil==2.9.0.post0 + # via + # arrow + # google-adk + # google-cloud-bigquery + # opensearch-py + # volcengine-python-sdk +python-dotenv==1.1.1 + # via + # fastmcp + # google-adk + # litellm + # pydantic-settings +python-multipart==0.0.20 + # via mcp +python-slugify==8.0.4 + # via cookiecutter +pytz==2025.2 + # via + # tos + # volcengine +pyyaml==6.0.2 + # via + # cookiecutter + # google-adk + # huggingface-hub + # jsonschema-path +redis==6.4.0 + # via veadk-python (pyproject.toml) +referencing==0.36.2 + # via + # jsonschema + # jsonschema-path + # jsonschema-specifications +regex==2025.7.34 + # via tiktoken +requests==2.32.5 + # via + # agent-pilot-sdk + # cookiecutter + # google-adk + # google-api-core + # google-cloud-bigquery + # google-cloud-storage + # google-genai + # huggingface-hub + # jsonschema-path + # opensearch-py + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-resourcedetector-gcp + # tiktoken + # tos + # volcengine +retry==0.9.2 + # via volcengine +rfc3339-validator==0.1.4 + # via openapi-schema-validator +rich==14.1.0 + # via + # cookiecutter + # cyclopts + # fastmcp + # rich-rst +rich-rst==1.3.1 + # via cyclopts +rpds-py==0.27.0 + # via + # jsonschema + # referencing +rsa==4.9.1 + # via google-auth +shapely==2.1.1 + # via google-cloud-aiplatform +six==1.17.0 + # via + # python-dateutil + # rfc3339-validator + # tos + # volcengine + # volcengine-python-sdk +sniffio==1.3.1 + # via + # anyio + # openai +soupsieve==2.7 + # via beautifulsoup4 +sqlalchemy==2.0.43 + # via google-adk +sqlparse==0.5.3 + # via google-cloud-spanner +sse-starlette==3.0.2 + # via mcp +starlette==0.47.3 + # via + # fastapi + # google-adk + # mcp +tenacity==8.5.0 + # via + # google-adk + # google-genai +text-unidecode==1.3 + # via python-slugify +tiktoken==0.11.0 + # via litellm +tokenizers==0.21.4 +tos==2.8.5 + # via veadk-python (pyproject.toml) +tqdm==4.67.1 + # via + # huggingface-hub + # openai +types-python-dateutil==2.9.0.20250822 + # via arrow +typing-extensions==4.15.0 + # via + # beautifulsoup4 + # fastapi + # google-adk + # google-cloud-aiplatform + # google-genai + # huggingface-hub + # openai + # openapi-core + # opentelemetry-api + # opentelemetry-exporter-otlp-proto-grpc + # opentelemetry-exporter-otlp-proto-http + # opentelemetry-resourcedetector-gcp + # opentelemetry-sdk + # opentelemetry-semantic-conventions + # pydantic + # pydantic-core + # sqlalchemy + # typing-inspection +typing-inspection==0.4.1 + # via + # pydantic + # pydantic-settings +tzlocal==5.3.1 + # via google-adk +uritemplate==4.2.0 + # via google-api-python-client +urllib3==2.5.0 + # via + # opensearch-py + # requests + # volcengine-python-sdk +uv==0.8.13 + # via agent-pilot-sdk +uvicorn==0.35.0 + # via + # google-adk + # mcp +volcengine==1.0.197 + # via veadk-python (pyproject.toml) +volcengine-python-sdk==4.0.3 + # via + # veadk-python (pyproject.toml) + # agent-pilot-sdk +watchdog==6.0.0 + # via google-adk +websockets==15.0.1 + # via + # google-adk + # google-genai +werkzeug==3.1.1 + # via openapi-core +wrapt==1.17.3 + # via + # veadk-python (pyproject.toml) + # deprecated + # opentelemetry-instrumentation +yarl==1.20.1 + # via aiohttp +zipp==3.23.0 + # via importlib-metadata diff --git a/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/run.sh b/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/run.sh index 6e34e8c1..3bfb5915 100755 --- a/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/run.sh +++ b/veadk/integrations/ve_faas/template/{{cookiecutter.local_dir_name}}/src/run.sh @@ -34,7 +34,17 @@ while [[ $# -gt 0 ]]; do done # in case of deployment deps not installed in user's requirements.txt -python3 -m pip install uvicorn[standard] fastapi +if pip list | grep -q "^fastapi \|^uvicorn "; then + echo "fastapi and uvicorn already installed" +else + python3 -m pip install uvicorn[standard] fastapi +fi + +# Check if MODEL_AGENT_API_KEY is set +if [ -z "$MODEL_AGENT_API_KEY" ]; then + echo "MODEL_AGENT_API_KEY is not set. Please set it in your environment variables." + exit 1 +fi USE_ADK_WEB=${USE_ADK_WEB:-False}