* add AudioQnA comps * readme * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * revert to main br * draft tests Signed-off-by: Spycsh <sihan.chen@intel.com> * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci * fix * fix * rm old yml * fix name * fix * remove * longer warmup time * Modify the corresponding format according to the backend new structure. Signed-off-by: Yue, Wenjiao <wenjiao.yue@intel.com> * Update .env * [pre-commit.ci] auto fixes from pre-commit.com hooks for more information, see https://pre-commit.ci --------- Signed-off-by: Spycsh <sihan.chen@intel.com> Signed-off-by: Yue, Wenjiao <wenjiao.yue@intel.com> Co-authored-by: pre-commit-ci[bot] <66853113+pre-commit-ci[bot]@users.noreply.github.com> Co-authored-by: WenjiaoYue <wenjiao.yue@intel.com> Co-authored-by: chen, suyue <suyue.chen@intel.com>
111 lines
3.3 KiB
Bash
111 lines
3.3 KiB
Bash
#!/bin/bash
|
|
# Copyright (C) 2024 Intel Corporation
|
|
# SPDX-License-Identifier: Apache-2.0
|
|
|
|
set -xe
|
|
|
|
function test_env_setup() {
|
|
WORKPATH=$(dirname "$PWD")
|
|
LOG_PATH="$WORKPATH/tests/langchain.log"
|
|
|
|
REDIS_CONTAINER_NAME="test-redis-vector-db"
|
|
LANGCHAIN_CONTAINER_NAME="test-qna-rag-redis-server"
|
|
AUDIOQNA_CONTAINER_NAME="test-AudioQnA_server"
|
|
cd $WORKPATH
|
|
}
|
|
|
|
function rename() {
|
|
# Rename the docker container/image names to avoid conflict with local test
|
|
cd ${WORKPATH}
|
|
sed -i "s/container_name: redis-vector-db/container_name: ${REDIS_CONTAINER_NAME}/g" langchain/docker/docker-compose.yml
|
|
sed -i "s/container_name: qna-rag-redis-server/container_name: ${LANGCHAIN_CONTAINER_NAME}/g" langchain/docker/docker-compose.yml
|
|
sed -i "s/image: intel\/gen-ai-examples:qna-rag-redis-server/image: intel\/gen-ai-examples:${LANGCHAIN_CONTAINER_NAME}/g" langchain/docker/docker-compose.yml
|
|
sed -i "s/ChatQnA_server/${AUDIOQNA_CONTAINER_NAME}/g" serving/tgi_gaudi/launch_tgi_service.sh
|
|
}
|
|
|
|
function launch_tgi_gaudi_service() {
|
|
local card_num=1
|
|
local port=8888
|
|
local model_name="Intel/neural-chat-7b-v3-3"
|
|
|
|
cd ${WORKPATH}
|
|
|
|
# Reset the tgi port
|
|
sed -i "s/8080/$port/g" langchain/redis/rag_redis/config.py
|
|
sed -i "s/8080/$port/g" langchain/docker/qna-app/app/server.py
|
|
sed -i "s/8080/$port/g" langchain/docker/qna-app/Dockerfile
|
|
|
|
docker pull ghcr.io/huggingface/tgi-gaudi:1.2.1
|
|
bash serving/tgi_gaudi/launch_tgi_service.sh $card_num $port $model_name
|
|
sleep 3m # Waits 3 minutes
|
|
}
|
|
|
|
function launch_redis_and_langchain_service() {
|
|
cd $WORKPATH
|
|
export HUGGINGFACEHUB_API_TOKEN=${HUGGINGFACEHUB_API_TOKEN}
|
|
local port=8890
|
|
sed -i "s/port=8000/port=$port/g" langchain/docker/qna-app/app/server.py
|
|
docker compose -f langchain/docker/docker-compose.yml up -d --build
|
|
|
|
# Ingest data into redis
|
|
docker exec $LANGCHAIN_CONTAINER_NAME \
|
|
bash -c "cd /ws && python ingest.py > /dev/null"
|
|
}
|
|
|
|
function start_backend_service() {
|
|
cd $WORKPATH
|
|
docker exec $LANGCHAIN_CONTAINER_NAME \
|
|
bash -c "nohup python app/server.py &"
|
|
sleep 1m
|
|
}
|
|
|
|
function run_tests() {
|
|
cd $WORKPATH
|
|
local port=8890
|
|
curl 127.0.0.1:$port/v1/rag/chat \
|
|
-X POST \
|
|
-d "{\"query\":\"What is the total revenue of Nike in 2023?\"}" \
|
|
-H 'Content-Type: application/json' > $LOG_PATH
|
|
}
|
|
|
|
function check_response() {
|
|
cd $WORKPATH
|
|
echo "Checking response"
|
|
local status=false
|
|
if [[ -f $LOG_PATH ]] && [[ $(grep -c "\$51.2 billion" $LOG_PATH) != 0 ]]; then
|
|
status=true
|
|
fi
|
|
|
|
if [ $status == false ]; then
|
|
echo "Response check failed"
|
|
exit 1
|
|
else
|
|
echo "Response check succeed"
|
|
fi
|
|
}
|
|
|
|
function docker_stop() {
|
|
local container_name=$1
|
|
cid=$(docker ps -aq --filter "name=$container_name")
|
|
if [[ ! -z "$cid" ]]; then docker stop $cid && docker rm $cid; fi
|
|
}
|
|
|
|
function main() {
|
|
test_env_setup
|
|
rename
|
|
docker_stop $CHATQNA_CONTAINER_NAME && docker_stop $LANGCHAIN_CONTAINER_NAME && docker_stop $REDIS_CONTAINER_NAME && sleep 5s
|
|
|
|
launch_tgi_gaudi_service
|
|
launch_redis_and_langchain_service
|
|
start_backend_service
|
|
|
|
run_tests
|
|
|
|
docker_stop $AUDIOQNA_CONTAINER_NAME && docker_stop $LANGCHAIN_CONTAINER_NAME && docker_stop $REDIS_CONTAINER_NAME && sleep 5s
|
|
echo y | docker system prune
|
|
|
|
check_response
|
|
}
|
|
|
|
main
|