Integrate docker images into compose yaml file to simplify the run instructions. fix ui ip issue and add web search tool support Signed-off-by: Tsai, Louie <louie.tsai@intel.com> Co-authored-by: alexsin368 <alex.sin@intel.com>
93 lines
3.3 KiB
Bash
93 lines
3.3 KiB
Bash
#!/bin/bash
|
|
# Copyright (C) 2024 Intel Corporation
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
set -xe
|
|
|
|
WORKPATH=$(dirname "$PWD")
|
|
export WORKDIR=$WORKPATH/../../
|
|
echo "WORKDIR=${WORKDIR}"
|
|
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"
|
|
|
|
|
|
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 stop_crag() {
|
|
cid=$(docker ps -aq --filter "name=kdd-cup-24-crag-service")
|
|
echo "Stopping container kdd-cup-24-crag-service with cid $cid"
|
|
if [[ ! -z "$cid" ]]; then docker rm $cid -f && sleep 1s; fi
|
|
}
|
|
|
|
function stop_agent_docker() {
|
|
cd $WORKPATH/docker_compose/intel/hpu/gaudi/
|
|
docker compose -f $WORKDIR/GenAIExamples/DocIndexRetriever/docker_compose/intel/cpu/xeon/compose.yaml -f compose.yaml down
|
|
}
|
|
|
|
function stop_llm(){
|
|
cd $WORKPATH/docker_compose/intel/hpu/gaudi/
|
|
container_list=$(cat tgi_gaudi.yaml | grep container_name | cut -d':' -f2)
|
|
for container_name in $container_list; do
|
|
cid=$(docker ps -aq --filter "name=$container_name")
|
|
echo "Stopping container $container_name"
|
|
if [[ ! -z "$cid" ]]; then docker rm $cid -f && sleep 1s; fi
|
|
done
|
|
|
|
cid=$(docker ps -aq --filter "name=vllm-gaudi-server")
|
|
echo "Stopping container $cid"
|
|
if [[ ! -z "$cid" ]]; then docker rm $cid -f && sleep 1s; fi
|
|
|
|
cid=$(docker ps -aq --filter "name=test-comps-vllm-gaudi-service")
|
|
echo "Stopping container $cid"
|
|
if [[ ! -z "$cid" ]]; then docker rm $cid -f && sleep 1s; fi
|
|
|
|
}
|
|
|
|
function stop_retrieval_tool() {
|
|
echo "Stopping Retrieval tool"
|
|
local RETRIEVAL_TOOL_PATH=$WORKPATH/../DocIndexRetriever
|
|
cd $RETRIEVAL_TOOL_PATH/docker_compose/intel/cpu/xeon/
|
|
container_list=$(cat compose.yaml | grep container_name | cut -d':' -f2)
|
|
for container_name in $container_list; do
|
|
cid=$(docker ps -aq --filter "name=$container_name")
|
|
echo "Stopping container $container_name"
|
|
if [[ ! -z "$cid" ]]; then docker rm $cid -f && sleep 1s; fi
|
|
done
|
|
}
|
|
echo "workpath: $WORKPATH"
|
|
echo "=================== Stop containers ===================="
|
|
stop_crag
|
|
stop_agent_docker
|
|
|
|
cd $WORKPATH/tests
|
|
|
|
echo "=================== #1 Building docker images===================="
|
|
build_agent_docker_image
|
|
echo "=================== #1 Building docker images completed===================="
|
|
|
|
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 "=================== #5 Stop agent and API server===================="
|
|
stop_crag
|
|
stop_agent_docker
|
|
echo "=================== #5 Agent and API server stopped===================="
|
|
|
|
echo y | docker system prune
|
|
|
|
echo "ALL DONE!!"
|