Skip to content

Commit cf15b91

Browse files
authored
Add validate result detection. (#492)
Signed-off-by: zepan <ze.pan@intel.com>
1 parent a56a847 commit cf15b91

16 files changed

+149
-32
lines changed

comps/dataprep/redis/llama_index/requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@ opentelemetry-exporter-otlp
1212
opentelemetry-sdk
1313
prometheus-fastapi-instrumentator
1414
python-bidi==0.4.2
15+
python-multipart
1516
redis
1617
sentence_transformers
1718
shortuuid

comps/guardrails/pii_detection/requirements.txt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@ prometheus-fastapi-instrumentator
2020
pyarrow
2121
pymupdf
2222
python-docx
23+
python-multipart
2324
ray
2425
redis
2526
scikit-learn

tests/test_agent_langchain.sh

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ function start_service() {
3434
docker logs test-comps-tgi-gaudi-service
3535

3636
echo "Starting agent microservice"
37-
docker run -d --runtime=runc --name="test-comps-langchain-agent-endpoint" -v $WORKPATH/comps/agent/langchain/tools:/home/user/comps/agent/langchain/tools -p 9090:9090 --ipc=host -e HUGGINGFACEHUB_API_TOKEN=${HUGGINGFACEHUB_API_TOKEN} -e model=${model} -e strategy=react -e llm_endpoint_url=http://${ip_address}:8080 -e llm_engine=tgi -e recursion_limit=5 -e require_human_feedback=false -e tools=/home/user/comps/agent/langchain/tools/custom_tools.yaml opea/comps-agent-langchain:comps
37+
docker run -d --runtime=runc --name="test-comps-langchain-agent-endpoint" -v $WORKPATH/comps/agent/langchain/tools:/home/user/comps/agent/langchain/tools -p 5042:9090 --ipc=host -e HUGGINGFACEHUB_API_TOKEN=${HUGGINGFACEHUB_API_TOKEN} -e model=${model} -e strategy=react -e llm_endpoint_url=http://${ip_address}:8080 -e llm_engine=tgi -e recursion_limit=5 -e require_human_feedback=false -e tools=/home/user/comps/agent/langchain/tools/custom_tools.yaml opea/comps-agent-langchain:comps
3838
sleep 5s
3939
docker logs test-comps-langchain-agent-endpoint
4040

@@ -69,7 +69,7 @@ function validate() {
6969

7070
function validate_microservice() {
7171
echo "Testing agent service"
72-
local CONTENT=$(curl http://${ip_address}:9090/v1/chat/completions -X POST -H "Content-Type: application/json" -d '{
72+
local CONTENT=$(curl http://${ip_address}:5042/v1/chat/completions -X POST -H "Content-Type: application/json" -d '{
7373
"query": "What is Intel OPEA project?"
7474
}' | tee ${LOG_PATH}/test-agent-langchain.log)
7575
local EXIT_CODE=$(validate "$CONTENT" "OPEA" "test-agent-langchain")

tests/test_dataprep_pinecone.sh

Lines changed: 18 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,20 +24,33 @@ function start_service() {
2424
export PINECONE_INDEX_NAME="test-index"
2525
export HUGGINGFACEHUB_API_TOKEN=$HF_TOKEN
2626

27-
docker run -d --name="test-comps-dataprep-pinecone" -p 6007:6007 -p 6008:6008 -p 6009:6009 --ipc=host -e http_proxy=$http_proxy -e https_proxy=$https_proxy -e no_proxy=$no_proxy -e PINECONE_API_KEY=$PINECONE_API_KEY -e PINECONE_INDEX_NAME=$PINECONE_INDEX_NAME opea/dataprep-pinecone:comps
27+
docker run -d --name="test-comps-dataprep-pinecone" -p 5039:6007 -p 5040:6008 -p 5041:6009 --ipc=host -e http_proxy=$http_proxy -e https_proxy=$https_proxy -e no_proxy=$no_proxy -e PINECONE_API_KEY=$PINECONE_API_KEY -e PINECONE_INDEX_NAME=$PINECONE_INDEX_NAME opea/dataprep-pinecone:comps
2828

2929
sleep 1m
3030
}
3131

3232
function validate_microservice() {
33-
URL="http://$ip_address:6007/v1/dataprep"
33+
URL="http://$ip_address:5039/v1/dataprep"
3434
echo 'The OPEA platform includes: Detailed framework of composable building blocks for state-of-the-art generative AI systems including LLMs, data stores, and prompt engines' > ./dataprep_file.txt
3535
result=$(curl --noproxy $ip_address --location --request POST \
3636
--form 'files=@./dataprep_file.txt' $URL)
37-
38-
DELETE_URL="http://$ip_address:6009/v1/dataprep/delete_file"
39-
result_2=$(curl --noproxy $ip_address --location --request POST \
37+
if [[ $result == *"200"* ]]; then
38+
echo "Result correct."
39+
else
40+
echo "Result wrong. Received was $result"
41+
docker logs test-comps-dataprep-pinecone
42+
exit 1
43+
fi
44+
DELETE_URL="http://$ip_address:5041/v1/dataprep/delete_file"
45+
result=$(curl --noproxy $ip_address --location --request POST \
4046
-d '{"file_path": "all"}' -H 'Content-Type: application/json' $DELETE_URL)
47+
if [[ $result == *"true"* ]]; then
48+
echo "Result correct."
49+
else
50+
echo "Result wrong. Received was $result"
51+
docker logs test-comps-dataprep-pinecone
52+
exit 1
53+
fi
4154
}
4255

4356
function stop_docker() {

tests/test_dataprep_qdrant_langchain.sh

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,13 +57,19 @@ function validate_services() {
5757
# check response status
5858
if [ "$HTTP_STATUS" -ne "200" ]; then
5959
echo "[ $SERVICE_NAME ] HTTP status is not 200. Received status was $HTTP_STATUS"
60+
docker logs test-comps-dataprep-qdrant-langchain
61+
docker logs test-comps-dataprep-qdrant-langchain-tei
62+
docker logs test-comps-dataprep-qdrant-langchain-server
6063
exit 1
6164
else
6265
echo "[ $SERVICE_NAME ] HTTP status is 200. Checking content..."
6366
fi
6467
# check response body
6568
if [[ "$RESPONSE_BODY" != *"$EXPECTED_RESULT"* ]]; then
6669
echo "[ $SERVICE_NAME ] Content does not match the expected result: $RESPONSE_BODY"
70+
docker logs test-comps-dataprep-qdrant-langchain
71+
docker logs test-comps-dataprep-qdrant-langchain-tei
72+
docker logs test-comps-dataprep-qdrant-langchain-server
6773
exit 1
6874
else
6975
echo "[ $SERVICE_NAME ] Content is as expected."

tests/test_dataprep_redis_langchain.sh

Lines changed: 9 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,16 +39,17 @@ function validate_microservice() {
3939
HTTP_STATUS=$(echo $HTTP_RESPONSE | tr -d '\n' | sed -e 's/.*HTTPSTATUS://')
4040
RESPONSE_BODY=$(echo $HTTP_RESPONSE | sed -e 's/HTTPSTATUS\:.*//g')
4141
SERVICE_NAME="dataprep - upload - file"
42-
docker logs test-comps-dataprep-redis-langchain-server >> ${LOG_PATH}/dataprep_upload_file.log
4342

4443
if [ "$HTTP_STATUS" -ne "200" ]; then
4544
echo "[ $SERVICE_NAME ] HTTP status is not 200. Received status was $HTTP_STATUS"
45+
docker logs test-comps-dataprep-redis-langchain-server >> ${LOG_PATH}/dataprep_upload_file.log
4646
exit 1
4747
else
4848
echo "[ $SERVICE_NAME ] HTTP status is 200. Checking content..."
4949
fi
5050
if [[ "$RESPONSE_BODY" != *"Data preparation succeeded"* ]]; then
5151
echo "[ $SERVICE_NAME ] Content does not match the expected result: $RESPONSE_BODY"
52+
docker logs test-comps-dataprep-redis-langchain-server >> ${LOG_PATH}/dataprep_upload_file.log
5253
exit 1
5354
else
5455
echo "[ $SERVICE_NAME ] Content is as expected."
@@ -60,16 +61,18 @@ function validate_microservice() {
6061
HTTP_STATUS=$(echo $HTTP_RESPONSE | tr -d '\n' | sed -e 's/.*HTTPSTATUS://')
6162
RESPONSE_BODY=$(echo $HTTP_RESPONSE | sed -e 's/HTTPSTATUS\:.*//g')
6263
SERVICE_NAME="dataprep - upload - link"
63-
docker logs test-comps-dataprep-redis-langchain-server >> ${LOG_PATH}/dataprep_upload_link.log
64+
6465

6566
if [ "$HTTP_STATUS" -ne "200" ]; then
6667
echo "[ $SERVICE_NAME ] HTTP status is not 200. Received status was $HTTP_STATUS"
68+
docker logs test-comps-dataprep-redis-langchain-server >> ${LOG_PATH}/dataprep_upload_link.log
6769
exit 1
6870
else
6971
echo "[ $SERVICE_NAME ] HTTP status is 200. Checking content..."
7072
fi
7173
if [[ "$RESPONSE_BODY" != *"Data preparation succeeded"* ]]; then
7274
echo "[ $SERVICE_NAME ] Content does not match the expected result: $RESPONSE_BODY"
75+
docker logs test-comps-dataprep-redis-langchain-server >> ${LOG_PATH}/dataprep_upload_link.log
7376
exit 1
7477
else
7578
echo "[ $SERVICE_NAME ] Content is as expected."
@@ -81,16 +84,17 @@ function validate_microservice() {
8184
HTTP_STATUS=$(echo $HTTP_RESPONSE | tr -d '\n' | sed -e 's/.*HTTPSTATUS://')
8285
RESPONSE_BODY=$(echo $HTTP_RESPONSE | sed -e 's/HTTPSTATUS\:.*//g')
8386
SERVICE_NAME="dataprep - get"
84-
docker logs test-comps-dataprep-redis-langchain-server >> ${LOG_PATH}/dataprep_file.log
8587

8688
if [ "$HTTP_STATUS" -ne "200" ]; then
8789
echo "[ $SERVICE_NAME ] HTTP status is not 200. Received status was $HTTP_STATUS"
90+
docker logs test-comps-dataprep-redis-langchain-server >> ${LOG_PATH}/dataprep_file.log
8891
exit 1
8992
else
9093
echo "[ $SERVICE_NAME ] HTTP status is 200. Checking content..."
9194
fi
9295
if [[ "$RESPONSE_BODY" != *'{"name":'* ]]; then
9396
echo "[ $SERVICE_NAME ] Content does not match the expected result: $RESPONSE_BODY"
97+
docker logs test-comps-dataprep-redis-langchain-server >> ${LOG_PATH}/dataprep_file.log
9498
exit 1
9599
else
96100
echo "[ $SERVICE_NAME ] Content is as expected."
@@ -102,18 +106,19 @@ function validate_microservice() {
102106
HTTP_STATUS=$(echo $HTTP_RESPONSE | tr -d '\n' | sed -e 's/.*HTTPSTATUS://')
103107
RESPONSE_BODY=$(echo $HTTP_RESPONSE | sed -e 's/HTTPSTATUS\:.*//g')
104108
SERVICE_NAME="dataprep - del"
105-
docker logs test-comps-dataprep-redis-langchain-server >> ${LOG_PATH}/dataprep_del.log
106109

107110
# check response status
108111
if [ "$HTTP_STATUS" -ne "200" ]; then
109112
echo "[ $SERVICE_NAME ] HTTP status is not 200. Received status was $HTTP_STATUS"
113+
docker logs test-comps-dataprep-redis-langchain-server >> ${LOG_PATH}/dataprep_del.log
110114
exit 1
111115
else
112116
echo "[ $SERVICE_NAME ] HTTP status is 200. Checking content..."
113117
fi
114118
# check response body
115119
if [[ "$RESPONSE_BODY" != *'{"status":true}'* ]]; then
116120
echo "[ $SERVICE_NAME ] Content does not match the expected result: $RESPONSE_BODY"
121+
docker logs test-comps-dataprep-redis-langchain-server >> ${LOG_PATH}/dataprep_del.log
117122
exit 1
118123
else
119124
echo "[ $SERVICE_NAME ] Content is as expected."

tests/test_embeddings_langchain.sh

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,14 @@ function validate_microservice() {
3737
-X POST \
3838
-d '{"text":"What is Deep Learning?"}' \
3939
-H 'Content-Type: application/json')
40+
if [[ $result == *"embedding"* ]]; then
41+
echo "Result correct."
42+
else
43+
echo "Result wrong. Received was $result"
44+
docker logs test-comps-embedding-tei-endpoint
45+
docker logs test-comps-embedding-tei-server
46+
exit 1
47+
fi
4048
}
4149

4250
function stop_docker() {

tests/test_guardrails_pii_detection.sh

Lines changed: 33 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22
# Copyright (C) 2024 Intel Corporation
33
# SPDX-License-Identifier: Apache-2.0
44

5-
set -xe
5+
set -x
66

77
WORKPATH=$(dirname "$PWD")
88
ip_address=$(hostname -I | awk '{print $1}')
@@ -31,15 +31,42 @@ function validate_microservice() {
3131
export PATH="${HOME}/miniforge3/bin:$PATH"
3232
source activate
3333
echo "test 1 - single task - ner"
34-
python comps/guardrails/pii_detection/test.py --test_text --batch_size 1 --ip_addr $ip_address --strategy ner
34+
result=$(python comps/guardrails/pii_detection/test.py --test_text --batch_size 1 --ip_addr $ip_address --strategy ner)
35+
if [[ $result == *"An error occurred"* ]]; then
36+
echo "Result wrong. Received was $result"
37+
docker logs test-comps-guardrails-pii-detection-endpoint
38+
exit 1
39+
else
40+
echo "Result correct."
41+
fi
3542
echo "test 2 - 20 tasks in parallel - ner"
36-
python comps/guardrails/pii_detection/test.py --test_text --batch_size 20 --ip_addr $ip_address --strategy ner
43+
result=$(python comps/guardrails/pii_detection/test.py --test_text --batch_size 20 --ip_addr $ip_address --strategy ner)
44+
if [[ $result == *"An error occurred"* ]]; then
45+
echo "Result wrong. Received was $result"
46+
docker logs test-comps-guardrails-pii-detection-endpoint
47+
exit 1
48+
else
49+
echo "Result correct."
50+
fi
3751
echo "test 3 - single task - ml"
38-
python comps/guardrails/pii_detection/test.py --test_text --batch_size 1 --ip_addr $ip_address --strategy ml
52+
result=$(python comps/guardrails/pii_detection/test.py --test_text --batch_size 1 --ip_addr $ip_address --strategy ml)
53+
if [[ $result == *"An error occurred"* ]]; then
54+
echo "Result wrong. Received was $result"
55+
docker logs test-comps-guardrails-pii-detection-endpoint
56+
exit 1
57+
else
58+
echo "Result correct."
59+
fi
3960
echo "test 4 - 20 tasks in parallel - ml"
40-
python comps/guardrails/pii_detection/test.py --test_text --batch_size 20 --ip_addr $ip_address --strategy ml
61+
result=$(python comps/guardrails/pii_detection/test.py --test_text --batch_size 20 --ip_addr $ip_address --strategy ml)
62+
if [[ $result == *"An error occurred"* ]]; then
63+
echo "Result wrong. Received was $result"
64+
docker logs test-comps-guardrails-pii-detection-endpoint
65+
exit 1
66+
else
67+
echo "Result correct."
68+
fi
4169
echo "Validate microservice completed"
42-
docker logs test-comps-guardrails-pii-detection-endpoint
4370
}
4471

4572
function stop_docker() {

tests/test_llms_text-generation_vllm-openvino.sh

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -102,6 +102,7 @@ function test_api_endpoint {
102102
else
103103
echo "FAIL: $endpoint returned unexpected status code: $response (expected: $expected_status)"
104104
docker logs $CONTAINER_NAME
105+
exit 1
105106
fi
106107
}
107108
# Main function

tests/test_llms_text-generation_vllm-ray.sh

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -76,12 +76,26 @@ function validate_microservice() {
7676
result=$(http_proxy="" curl http://${ip_address}:5031/v1/chat/completions \
7777
-H "Content-Type: application/json" \
7878
-d '{"model": "facebook/opt-125m", "messages": [{"role": "user", "content": "How are you?"}]}')
79-
result_2=$(http_proxy="" curl http://${ip_address}:5032/v1/chat/completions \
79+
if [[ $result == *"message"* ]]; then
80+
echo "Result correct."
81+
else
82+
echo "Result wrong. Received was $result"
83+
docker logs test-comps-vllm-ray-service
84+
docker logs test-comps-vllm-ray-microservice
85+
exit 1
86+
fi
87+
result=$(http_proxy="" curl http://${ip_address}:5032/v1/chat/completions \
8088
-X POST \
8189
-d '{"query":"What is Deep Learning?","max_new_tokens":17,"top_k":10,"top_p":0.95,"typical_p":0.95,"temperature":0.01,"repetition_penalty":1.03,"streaming":false}' \
8290
-H 'Content-Type: application/json')
83-
docker logs test-comps-vllm-ray-service
84-
docker logs test-comps-vllm-ray-microservice
91+
if [[ $result == *"text"* ]]; then
92+
echo "Result correct."
93+
else
94+
echo "Result wrong. Received was $result"
95+
docker logs test-comps-vllm-ray-service
96+
docker logs test-comps-vllm-ray-microservice
97+
exit 1
98+
fi
8599
}
86100

87101
function stop_docker() {

0 commit comments

Comments
 (0)