PhysicsCorrection/scripts/local_run.sh

76 lines
1.5 KiB
Bash

#!/bin/bash
set -e
mode=""
node=""
input=""
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
WORK_DIR="${COZE_WORKSPACE_PATH:-$(dirname "$SCRIPT_DIR")}"
usage() {
echo "用法: $0 -m <模式> [-n <节点ID>] [-i <输入JSON>]"
echo ""
echo "参数说明:"
echo " -m <模式> 运行模式: http, flow, node, agent"
echo " -n <节点ID> 节点ID (仅在 node 模式下需要)"
echo " -i <输入JSON> 输入数据,支持 JSON 字符串或纯文本"
echo " -h 显示帮助信息"
echo ""
echo "示例:"
echo " $0 -m flow"
echo " $0 -m flow -i '{\"text\": \"你好\"}'"
echo " $0 -m flow -i '你好'"
echo " $0 -m node -n node_1 -i '{\"text\": \"测试\"}'"
}
while getopts "m:n:i:h" opt; do
case "$opt" in
m)
mode="$OPTARG"
;;
n)
node="$OPTARG"
;;
i)
input="$OPTARG"
;;
h)
usage
exit 0
;;
\?)
echo "无效选项: -$OPTARG"
usage
exit -1
;;
esac
done
if [ -z "$mode" ]; then
echo "错误: 必须指定 -m 参数"
usage
exit -1
fi
# Load environment variables
if [ -f "${SCRIPT_DIR}/load_env.sh" ]; then
echo "Loading environment variables..."
source "${SCRIPT_DIR}/load_env.sh"
fi
# Build python command
cmd="python ${WORK_DIR}/src/main.py -m \"$mode\""
if [ -n "$node" ]; then
cmd="$cmd -n \"$node\""
fi
if [ -n "$input" ]; then
cmd="$cmd -i '$input'"
fi
# Execute command
echo "Executing: $cmd"
eval $cmd