1+ #! /bin/bash
2+
3+ # 定义日志文件
4+ LOG_FILE=" test_models.log"
5+
6+ # 清空或创建日志文件
7+ > " $LOG_FILE "
8+
9+ # 日志记录函数
10+ log () {
11+ echo " $( date ' +%Y-%m-%d %H:%M:%S' ) - $1 " | tee -a " $LOG_FILE "
12+ }
13+
14+ # 定义model_id列表
15+ MODEL_IDS=(" Qwen/Qwen2-Audio-7B-Instruct" " Qwen/Qwen2.5-0.5B-Instruct" " Qwen/Qwen3-32B-AWQ" " Qwen/Qwen3-14B" " Qwen/QwQ-32B-AWQ" )
16+
17+ # 检查yaml文件是否存在
18+ YAML_FILE=" s.yaml"
19+ if [ ! -f " $YAML_FILE " ]; then
20+ log " Error: $YAML_FILE not found!"
21+ exit 1
22+ fi
23+
24+ # 遍历每个model_id
25+ for MODEL_ID in " ${MODEL_IDS[@]} " ; do
26+ log " ========================================"
27+ log " Testing model: $MODEL_ID "
28+ log " ========================================"
29+
30+ # 生成随机函数名
31+ RANDOM_STRING=$( openssl rand -hex 16)
32+ export fc_component_function_name=ai-model-qwen-$RANDOM_STRING
33+ export NEW_MODEL_SERVICE_CLIENT_CONNECT_TIMEOUT=10000
34+ export MODEL_ID=$MODEL_ID
35+
36+ # 下载模型
37+ log " Downloading model..."
38+ DOWNLOAD_OUTPUT=$( s model download 2>&1 )
39+ echo " $DOWNLOAD_OUTPUT " >> " $LOG_FILE "
40+ echo " $DOWNLOAD_OUTPUT "
41+ if echo " $DOWNLOAD_OUTPUT " | grep -q " Error" ; then
42+ log " Failed to download model: $MODEL_ID "
43+ continue
44+ fi
45+
46+ # 部署服务
47+ log " Deploying..."
48+ DEPLOY_OUTPUT=$( s deploy 2>&1 )
49+ echo " $DEPLOY_OUTPUT " >> " $LOG_FILE "
50+ echo " $DEPLOY_OUTPUT "
51+
52+ # 检查部署是否成功
53+ if echo " $DEPLOY_OUTPUT " | grep -q " state:.*Active" ; then
54+ log " Deployment successful for model: $MODEL_ID "
55+ else
56+ log " Deployment failed for model: $MODEL_ID "
57+ # 清理资源
58+ REMOVE_OUTPUT=$( s model remove -y 2>&1 )
59+ echo " $REMOVE_OUTPUT " >> " $LOG_FILE "
60+ echo " $REMOVE_OUTPUT "
61+ REMOVE_OUTPUT=$( s remove -y 2>&1 )
62+ echo " $REMOVE_OUTPUT " >> " $LOG_FILE "
63+ echo " $REMOVE_OUTPUT "
64+ continue
65+ fi
66+
67+ # 提取system_url
68+ SYSTEM_URL=$( echo " $DEPLOY_OUTPUT " | grep " system_url:" | sed ' s/.*system_url: *//' | tr -d ' "[:cntrl:]' )
69+ if [ -z $SYSTEM_URL ]; then
70+ log " Failed to extract system_url for model: $MODEL_ID "
71+ # 清理资源
72+ REMOVE_OUTPUT=$( s model remove -y 2>&1 )
73+ echo " $REMOVE_OUTPUT " >> " $LOG_FILE "
74+ echo " $REMOVE_OUTPUT "
75+ REMOVE_OUTPUT=$( s remove -y 2>&1 )
76+ echo " $REMOVE_OUTPUT " >> " $LOG_FILE "
77+ echo " $REMOVE_OUTPUT "
78+ continue
79+ fi
80+ log " Extracted system_url: $SYSTEM_URL "
81+
82+ # 发送测试请求
83+ log " Sending test request..."
84+ CURL_OUTPUT=$( curl --request POST \
85+ --url " $SYSTEM_URL /v1/chat/completions" \
86+ -H " Content-Type: application/json" \
87+ --data ' {
88+ "model": "$MODEL_ID",
89+ "messages": [
90+ {
91+ "role": "user",
92+ "content": "Hello! 你是谁?"
93+ }
94+ ],
95+ "stream": false
96+ }' 2>&1 )
97+
98+ echo " $CURL_OUTPUT " >> " $LOG_FILE "
99+ echo " $CURL_OUTPUT "
100+
101+ # 检查curl请求是否成功
102+ if echo " $CURL_OUTPUT " | grep -q ' "object":"chat.completion"' ; then
103+ log " Model test successful for: $MODEL_ID "
104+ # 提取并显示模型回复内容
105+ RESPONSE_CONTENT=$( echo " $CURL_OUTPUT " | sed -n ' s/.*"content":"\([^"]*\)".*/\1/p' | sed ' s/\\n/\n/g' | sed ' s/\\t/\t/g' )
106+ log " Model response: $RESPONSE_CONTENT "
107+ else
108+ log " Model test failed for: $MODEL_ID "
109+ fi
110+
111+ # 清理资源
112+ log " Removing resources..."
113+ REMOVE_OUTPUT=$( s model remove -y 2>&1 )
114+ echo " $REMOVE_OUTPUT " >> " $LOG_FILE "
115+ echo " $REMOVE_OUTPUT "
116+ REMOVE_OUTPUT=$( s remove -y 2>&1 )
117+ echo " $REMOVE_OUTPUT " >> " $LOG_FILE "
118+ echo " $REMOVE_OUTPUT "
119+
120+ log " "
121+ log " Finished testing model: $MODEL_ID "
122+ log " "
123+ done
124+
125+ log " All models tested."
0 commit comments