diff --git a/AgentQnA/docker_compose/amd/gpu/rocm/compose.yaml b/AgentQnA/docker_compose/amd/gpu/rocm/compose.yaml index 31da7be7b0..4eab372dec 100644 --- a/AgentQnA/docker_compose/amd/gpu/rocm/compose.yaml +++ b/AgentQnA/docker_compose/amd/gpu/rocm/compose.yaml @@ -29,7 +29,7 @@ services: command: --model-id ${LLM_MODEL_ID} --max-input-length 4096 --max-total-tokens 8192 worker-rag-agent: - image: opea/agent:latest + image: ${REGISTRY:-opea}/agent:${TAG:-latest} container_name: rag-agent-endpoint volumes: - "${TOOLSET_PATH}:/home/user/tools/" @@ -60,7 +60,7 @@ services: port: 9095 worker-sql-agent: - image: opea/agent:latest + image: ${REGISTRY:-opea}/agent:${TAG:-latest} container_name: sql-agent-endpoint volumes: - "${WORKDIR}/tests/Chinook_Sqlite.sqlite:/home/user/chinook-db/Chinook_Sqlite.sqlite:rw" @@ -89,7 +89,7 @@ services: port: 9096 supervisor-react-agent: - image: opea/agent:latest + image: ${REGISTRY:-opea}/agent:${TAG:-latest} container_name: react-agent-endpoint depends_on: - worker-rag-agent diff --git a/AgentQnA/docker_compose/amd/gpu/rocm/compose_vllm.yaml b/AgentQnA/docker_compose/amd/gpu/rocm/compose_vllm.yaml index 2dbf65dd7d..4b37d15d10 100644 --- a/AgentQnA/docker_compose/amd/gpu/rocm/compose_vllm.yaml +++ b/AgentQnA/docker_compose/amd/gpu/rocm/compose_vllm.yaml @@ -33,7 +33,7 @@ services: ipc: host worker-rag-agent: - image: opea/agent:latest + image: ${REGISTRY:-opea}/agent:${TAG:-latest} container_name: rag-agent-endpoint volumes: - ${TOOLSET_PATH}:/home/user/tools/ @@ -64,7 +64,7 @@ services: port: 9095 worker-sql-agent: - image: opea/agent:latest + image: ${REGISTRY:-opea}/agent:${TAG:-latest} container_name: sql-agent-endpoint volumes: - "${WORKDIR}/tests/Chinook_Sqlite.sqlite:/home/user/chinook-db/Chinook_Sqlite.sqlite:rw" @@ -93,7 +93,7 @@ services: port: 9096 supervisor-react-agent: - image: opea/agent:latest + image: ${REGISTRY:-opea}/agent:${TAG:-latest} container_name: react-agent-endpoint depends_on: - worker-rag-agent diff --git a/AgentQnA/docker_compose/intel/hpu/gaudi/compose.yaml b/AgentQnA/docker_compose/intel/hpu/gaudi/compose.yaml index 37cefea84b..a5240ad4b8 100644 --- a/AgentQnA/docker_compose/intel/hpu/gaudi/compose.yaml +++ b/AgentQnA/docker_compose/intel/hpu/gaudi/compose.yaml @@ -3,7 +3,7 @@ services: worker-rag-agent: - image: opea/agent:latest + image: ${REGISTRY:-opea}/agent:${TAG:-latest} container_name: rag-agent-endpoint volumes: - ${TOOLSET_PATH}:/home/user/tools/ @@ -34,7 +34,7 @@ services: port: 9095 worker-sql-agent: - image: opea/agent:latest + image: ${REGISTRY:-opea}/agent:${TAG:-latest} container_name: sql-agent-endpoint volumes: - ${WORKDIR}/GenAIExamples/AgentQnA/tests:/home/user/chinook-db # test db @@ -63,7 +63,7 @@ services: port: 9096 supervisor-react-agent: - image: opea/agent:latest + image: ${REGISTRY:-opea}/agent:${TAG:-latest} container_name: react-agent-endpoint depends_on: - worker-rag-agent @@ -104,7 +104,7 @@ services: - "8080:8000" ipc: host agent-ui: - image: opea/agent-ui:latest + image: ${REGISTRY:-opea}/agent-ui:${TAG:-latest} container_name: agent-ui environment: host_ip: ${host_ip} @@ -117,7 +117,7 @@ services: ports: - "8086:8000" volumes: - - "./data:/data" + - "${MODEL_CACHE:-./data}:/data" environment: no_proxy: ${no_proxy} http_proxy: ${http_proxy} diff --git a/AgentQnA/docker_image_build/build.yaml b/AgentQnA/docker_image_build/build.yaml index d12a617e40..7db63b6fa8 100644 --- a/AgentQnA/docker_image_build/build.yaml +++ b/AgentQnA/docker_image_build/build.yaml @@ -17,12 +17,15 @@ services: dockerfile: ./docker/Dockerfile extends: agent image: ${REGISTRY:-opea}/agent-ui:${TAG:-latest} + vllm-gaudi: + build: + context: vllm-fork + dockerfile: Dockerfile.hpu + extends: agent + image: ${REGISTRY:-opea}/vllm-gaudi:${TAG:-latest} vllm-rocm: build: - args: - http_proxy: ${http_proxy} - https_proxy: ${https_proxy} - no_proxy: ${no_proxy} context: GenAIComps dockerfile: comps/third_parties/vllm/src/Dockerfile.amd_gpu + extends: agent image: ${REGISTRY:-opea}/vllm-rocm:${TAG:-latest} diff --git a/AgentQnA/tests/_test_compose_openai_on_xeon.sh b/AgentQnA/tests/_test_compose_openai_on_xeon.sh index daf5c48b12..ac3346e619 100644 --- a/AgentQnA/tests/_test_compose_openai_on_xeon.sh +++ b/AgentQnA/tests/_test_compose_openai_on_xeon.sh @@ -31,7 +31,7 @@ function stop_retrieval_tool() { } echo "=================== #1 Building docker images====================" -bash step1_build_images.sh +bash step1_build_images.sh xeon echo "=================== #1 Building docker images completed====================" echo "=================== #2 Start retrieval tool====================" diff --git a/AgentQnA/tests/step1_build_images.sh b/AgentQnA/tests/step1_build_images.sh index 04a5381ac9..dfb20df229 100644 --- a/AgentQnA/tests/step1_build_images.sh +++ b/AgentQnA/tests/step1_build_images.sh @@ -15,42 +15,52 @@ function get_genai_comps() { fi } - function build_docker_images_for_retrieval_tool(){ cd $WORKDIR/GenAIExamples/DocIndexRetriever/docker_image_build/ get_genai_comps echo "Build all the images with --no-cache..." - service_list="doc-index-retriever dataprep embedding retriever reranking" - docker compose -f build.yaml build ${service_list} --no-cache - docker pull ghcr.io/huggingface/text-embeddings-inference:cpu-1.6 - + docker compose -f build.yaml build --no-cache docker images && sleep 1s } -function build_agent_docker_image() { +function build_agent_docker_image_xeon() { cd $WORKDIR/GenAIExamples/AgentQnA/docker_image_build/ get_genai_comps + echo "Build agent image with --no-cache..." - docker compose -f build.yaml build --no-cache + service_list="agent agent-ui" + docker compose -f build.yaml build ${service_list} --no-cache } -function build_vllm_docker_image() { - echo "Building the vllm docker image" - cd $WORKPATH - echo $WORKPATH - if [ ! -d "./vllm-fork" ]; then - git clone https://github.com/HabanaAI/vllm-fork.git - fi - cd ./vllm-fork +function build_agent_docker_image_gaudi_vllm() { + cd $WORKDIR/GenAIExamples/AgentQnA/docker_image_build/ + get_genai_comps + + git clone https://github.com/HabanaAI/vllm-fork.git && cd vllm-fork VLLM_VER=v0.6.6.post1+Gaudi-1.20.0 - git checkout ${VLLM_VER} &> /dev/null - docker build --no-cache -f Dockerfile.hpu -t opea/vllm-gaudi:ci --shm-size=128g . --build-arg https_proxy=$https_proxy --build-arg http_proxy=$http_proxy - if [ $? -ne 0 ]; then - echo "opea/vllm-gaudi:ci failed" - exit 1 - else - echo "opea/vllm-gaudi:ci successful" - fi + git checkout ${VLLM_VER} &> /dev/null && cd ../ + + echo "Build agent image with --no-cache..." + service_list="agent agent-ui vllm-gaudi" + docker compose -f build.yaml build ${service_list} --no-cache +} + +function build_agent_docker_image_rocm() { + cd $WORKDIR/GenAIExamples/AgentQnA/docker_image_build/ + get_genai_comps + + echo "Build agent image with --no-cache..." + service_list="agent agent-ui" + docker compose -f build.yaml build ${service_list} --no-cache +} + +function build_agent_docker_image_rocm_vllm() { + cd $WORKDIR/GenAIExamples/AgentQnA/docker_image_build/ + get_genai_comps + + echo "Build agent image with --no-cache..." + service_list="agent agent-ui vllm-rocm" + docker compose -f build.yaml build ${service_list} --no-cache } @@ -59,15 +69,32 @@ function main() { build_docker_images_for_retrieval_tool echo "==================== Build docker images for retrieval tool completed ====================" - echo "==================== Build agent docker image ====================" - build_agent_docker_image - echo "==================== Build agent docker image completed ====================" + sleep 3s - echo "==================== Build vllm docker image ====================" - build_vllm_docker_image - echo "==================== Build vllm docker image completed ====================" + case $1 in + "rocm") + echo "==================== Build agent docker image for ROCm ====================" + build_agent_docker_image_rocm + ;; + "rocm_vllm") + echo "==================== Build agent docker image for ROCm VLLM ====================" + build_agent_docker_image_rocm_vllm + ;; + "gaudi_vllm") + echo "==================== Build agent docker image for Gaudi ====================" + build_agent_docker_image_gaudi_vllm + ;; + "xeon") + echo "==================== Build agent docker image for Xeon ====================" + build_agent_docker_image_xeon + ;; + *) + echo "Invalid argument" + exit 1 + ;; + esac docker image ls | grep vllm } -main +main $1 diff --git a/AgentQnA/tests/step1_build_images_rocm_vllm.sh b/AgentQnA/tests/step1_build_images_rocm_vllm.sh deleted file mode 100644 index 94ecb2e871..0000000000 --- a/AgentQnA/tests/step1_build_images_rocm_vllm.sh +++ /dev/null @@ -1,64 +0,0 @@ -#!/bin/bash -# Copyright (C) 2024 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -set -e -export WORKPATH=$(dirname "$PWD") -export WORKDIR=${WORKPATH}/../../ -echo "WORKDIR=${WORKDIR}" -export ip_address=$(hostname -I | awk '{print $1}') - - -function get_genai_comps() { - if [ ! -d "GenAIComps" ] ; then - git clone --depth 1 --branch ${opea_branch:-"main"} https://github.com/opea-project/GenAIComps.git - fi -} - - -function build_docker_images_for_retrieval_tool(){ - cd $WORKPATH/../DocIndexRetriever/docker_image_build/ - get_genai_comps - echo "Build all the images with --no-cache..." - service_list="doc-index-retriever dataprep embedding retriever reranking" - docker compose -f build.yaml build ${service_list} --no-cache - docker pull ghcr.io/huggingface/text-embeddings-inference:cpu-1.5 - - docker images && sleep 3s -} - -function build_agent_docker_image() { - cd $WORKPATH/docker_image_build/ - get_genai_comps - echo "Build agent image with --no-cache..." - docker compose -f build.yaml build --no-cache - - docker images && sleep 3s -} - -#function build_vllm_docker_image() { -# echo "Building the vllm docker image" -# cd $WORKPATH/ -# docker build --no-cache -t opea/llm-vllm-rocm:ci -f Dockerfile-vllm-rocm . -# -# docker images && sleep 3s -#} - - -function main() { - echo "==================== Build docker images for retrieval tool ====================" - build_docker_images_for_retrieval_tool - echo "==================== Build docker images for retrieval tool completed ====================" - - echo "==================== Build agent docker image ====================" - build_agent_docker_image - echo "==================== Build agent docker image completed ====================" - -# echo "==================== Build vllm docker image ====================" -# build_vllm_docker_image -# echo "==================== Build vllm docker image completed ====================" - - docker image ls | grep vllm -} - -main diff --git a/AgentQnA/tests/test_compose_on_gaudi.sh b/AgentQnA/tests/test_compose_on_gaudi.sh index 4d0ad00f08..66084f67ff 100644 --- a/AgentQnA/tests/test_compose_on_gaudi.sh +++ b/AgentQnA/tests/test_compose_on_gaudi.sh @@ -10,29 +10,15 @@ export ip_address=$(hostname -I | awk '{print $1}') export HUGGINGFACEHUB_API_TOKEN=${HUGGINGFACEHUB_API_TOKEN} export TOOLSET_PATH=$WORKDIR/GenAIExamples/AgentQnA/tools/ export no_proxy="$no_proxy,rag-agent-endpoint,sql-agent-endpoint,react-agent-endpoint,agent-ui,vllm-gaudi-server,jaeger,grafana,prometheus,127.0.0.1,localhost,0.0.0.0,$ip_address" +IMAGE_REPO=${IMAGE_REPO:-"opea"} +IMAGE_TAG=${IMAGE_TAG:-"latest"} +echo "REGISTRY=IMAGE_REPO=${IMAGE_REPO}" +echo "TAG=IMAGE_TAG=${IMAGE_TAG}" +export REGISTRY=${IMAGE_REPO} +export TAG=${IMAGE_TAG} +export MODEL_CACHE=${model_cache:-"./data"} -function get_genai_comps() { - if [ ! -d "GenAIComps" ] ; then - git clone --depth 1 --branch ${opea_branch:-"main"} https://github.com/opea-project/GenAIComps.git - fi -} - - -function build_agent_docker_image() { - cd $WORKDIR/GenAIExamples/AgentQnA/docker_image_build/ - get_genai_comps - echo "Build agent image with --no-cache..." - docker compose -f build.yaml build --no-cache -} - -function build_retrieval_docker_image() { - cd $WORKDIR/GenAIExamples/DocIndexRetriever/docker_image_build/ - get_genai_comps - echo "Build retrieval image with --no-cache..." - docker compose -f build.yaml build --no-cache -} - function stop_crag() { cid=$(docker ps -aq --filter "name=kdd-cup-24-crag-service") echo "Stopping container kdd-cup-24-crag-service with cid $cid" @@ -92,31 +78,31 @@ function stop_retrieval_tool() { done } echo "workpath: $WORKPATH" -echo "=================== Stop containers ====================" +echo "::group::=================== Stop containers ====================" stop_llm stop_crag stop_agent_containers stop_retrieval_tool stop_telemetry_containers +echo "::endgroup::" cd $WORKPATH/tests -echo "=================== #1 Building docker images====================" -build_retrieval_docker_image -build_agent_docker_image -echo "=================== #1 Building docker images completed====================" +echo "::group::=================== #1 Building docker images====================" +bash step1_build_images.sh gaudi_vllm > docker_image_build.log +echo "::endgroup::" -echo "=================== #4 Start agent, API server, retrieval, and ingest data====================" -bash $WORKPATH/tests/step4_launch_and_validate_agent_gaudi.sh -echo "=================== #4 Agent, retrieval test passed ====================" +echo "::endgroup::=================== #4 Start agent, API server, retrieval, and ingest data====================" +bash step4_launch_and_validate_agent_gaudi.sh +echo "::endgroup::" -echo "=================== #5 Stop agent and API server====================" +echo "::endgroup::=================== #5 Stop agent and API server====================" stop_llm stop_crag stop_agent_containers stop_retrieval_tool stop_telemetry_containers -echo "=================== #5 Agent and API server stopped====================" +echo "::endgroup::" echo y | docker system prune diff --git a/AgentQnA/tests/test_compose_on_rocm.sh b/AgentQnA/tests/test_compose_on_rocm.sh index 1293b6687c..561ab0a967 100644 --- a/AgentQnA/tests/test_compose_on_rocm.sh +++ b/AgentQnA/tests/test_compose_on_rocm.sh @@ -11,7 +11,13 @@ echo "WORKDIR=${WORKDIR}" export ip_address=$(hostname -I | awk '{print $1}') export HUGGINGFACEHUB_API_TOKEN=${HUGGINGFACEHUB_API_TOKEN} export TOOLSET_PATH=$WORKPATH/tools/ -export MODEL_CACHE="./data" +IMAGE_REPO=${IMAGE_REPO:-"opea"} +IMAGE_TAG=${IMAGE_TAG:-"latest"} +echo "REGISTRY=IMAGE_REPO=${IMAGE_REPO}" +echo "TAG=IMAGE_TAG=${IMAGE_TAG}" +export REGISTRY=${IMAGE_REPO} +export TAG=${IMAGE_TAG} +export MODEL_CACHE=${model_cache:-"./data"} function stop_crag() { cid=$(docker ps -aq --filter "name=kdd-cup-24-crag-service") @@ -37,34 +43,35 @@ function stop_retrieval_tool() { done } echo "workpath: $WORKPATH" -echo "=================== Stop containers ====================" +echo "::group::=================== Stop containers ====================" stop_crag stop_agent_docker stop_retrieval_tool +echo "::endgroup::=================== Stop containers completed ====================" cd $WORKPATH/tests -echo "=================== #1 Building docker images====================" -bash step1_build_images.sh -echo "=================== #1 Building docker images completed====================" +echo "::group::=================== #1 Building docker images====================" +bash step1_build_images.sh rocm > docker_image_build.log +echo "::endgroup::=================== #1 Building docker images completed====================" -echo "=================== #2 Start retrieval tool====================" +echo "::group::=================== #2 Start retrieval tool====================" bash step2_start_retrieval_tool.sh -echo "=================== #2 Retrieval tool started====================" +echo "::endgroup::=================== #2 Retrieval tool started====================" -echo "=================== #3 Ingest data and validate retrieval====================" +echo "::group::=================== #3 Ingest data and validate retrieval====================" bash step3_ingest_data_and_validate_retrieval.sh -echo "=================== #3 Data ingestion and validation completed====================" +echo "::endgroup::=================== #3 Data ingestion and validation completed====================" -echo "=================== #4 Start agent and API server====================" +echo "::group::=================== #4 Start agent and API server====================" bash step4a_launch_and_validate_agent_tgi_on_rocm.sh -echo "=================== #4 Agent test passed ====================" +echo "::endgroup::=================== #4 Agent test passed ====================" -echo "=================== #5 Stop agent and API server====================" +echo "::group::=================== #5 Stop agent and API server====================" stop_crag stop_agent_docker stop_retrieval_tool -echo "=================== #5 Agent and API server stopped====================" +echo "::endgroup::=================== #5 Agent and API server stopped====================" echo y | docker system prune diff --git a/AgentQnA/tests/test_compose_vllm_on_rocm.sh b/AgentQnA/tests/test_compose_vllm_on_rocm.sh index 13a0deaeb9..711554f965 100644 --- a/AgentQnA/tests/test_compose_vllm_on_rocm.sh +++ b/AgentQnA/tests/test_compose_vllm_on_rocm.sh @@ -5,13 +5,18 @@ set -e WORKPATH=$(dirname "$PWD") -export LOG_PATH=${WORKPATH} export WORKDIR=${WORKPATH}/../../ echo "WORKDIR=${WORKDIR}" export ip_address=$(hostname -I | awk '{print $1}') export HUGGINGFACEHUB_API_TOKEN=${HUGGINGFACEHUB_API_TOKEN} export TOOLSET_PATH=$WORKPATH/tools/ -export MODEL_CACHE="./data" +IMAGE_REPO=${IMAGE_REPO:-"opea"} +IMAGE_TAG=${IMAGE_TAG:-"latest"} +echo "REGISTRY=IMAGE_REPO=${IMAGE_REPO}" +echo "TAG=IMAGE_TAG=${IMAGE_TAG}" +export REGISTRY=${IMAGE_REPO} +export TAG=${IMAGE_TAG} +export MODEL_CACHE=${model_cache:-"./data"} function stop_crag() { cid=$(docker ps -aq --filter "name=kdd-cup-24-crag-service") @@ -32,34 +37,35 @@ function stop_retrieval_tool() { } echo "workpath: $WORKPATH" -echo "=================== Stop containers ====================" +echo "::group::=================== Stop containers ====================" stop_crag stop_agent_docker stop_retrieval_tool +echo "::endgroup::" cd $WORKPATH/tests -echo "=================== #1 Building docker images====================" -bash step1_build_images_rocm_vllm.sh -echo "=================== #1 Building docker images completed====================" +echo "::group::=================== #1 Building docker images====================" +bash step1_build_images.sh rocm_vllm > docker_image_build.log +echo "::endgroup::=================== #1 Building docker images completed====================" -echo "=================== #2 Start retrieval tool====================" +echo "::group::=================== #2 Start retrieval tool====================" bash step2_start_retrieval_tool_rocm_vllm.sh -echo "=================== #2 Retrieval tool started====================" +echo "::endgroup::=================== #2 Retrieval tool started====================" -echo "=================== #3 Ingest data and validate retrieval====================" +echo "::group::=================== #3 Ingest data and validate retrieval====================" bash step3_ingest_data_and_validate_retrieval_rocm_vllm.sh -echo "=================== #3 Data ingestion and validation completed====================" +echo "::endgroup::=================== #3 Data ingestion and validation completed====================" -echo "=================== #4 Start agent and API server====================" +echo "::group::=================== #4 Start agent and API server====================" bash step4_launch_and_validate_agent_rocm_vllm.sh -echo "=================== #4 Agent test passed ====================" +echo "::endgroup::=================== #4 Agent test passed ====================" -echo "=================== #5 Stop agent and API server====================" +echo "::group::=================== #5 Stop agent and API server====================" stop_crag stop_agent_docker stop_retrieval_tool -echo "=================== #5 Agent and API server stopped====================" +echo "::endgroup::=================== #5 Agent and API server stopped====================" echo y | docker system prune