Ye-Song's picture
Add files using upload-large-folder tool
75f449c verified
Raw
History Blame Contribute Delete
3.75 kB
#!/bin/bash
################################################################################
# Kimodo 完全独立启动脚本(包含工具链)
################################################################################
set -e
WORKSPACE_DIR="$(cd "$(dirname "$(readlink -f "$0")")" && pwd)"
TOOLS_DIR="${WORKSPACE_DIR}/tools"
ENV_DIR="${WORKSPACE_DIR}/env"
KIMODO_DIR="${WORKSPACE_DIR}/kimodo"
PYTHON_BIN="${ENV_DIR}/kimodo/bin/python"
# 设置环境变量,优先使用 workspace 内的工具
export PATH="${TOOLS_DIR}/bin:${PATH}"
export LD_LIBRARY_PATH="${TOOLS_DIR}/lib:${ENV_DIR}/kimodo/lib:${LD_LIBRARY_PATH}"
export CPATH="${TOOLS_DIR}/include:${CPATH}"
export PKG_CONFIG_PATH="${TOOLS_DIR}/lib/pkgconfig:${PKG_CONFIG_PATH}"
export CMAKE_ROOT="${TOOLS_DIR}/share/cmake-3.28"
# 服务器配置
DEFAULT_SERVER_NAME="0.0.0.0"
DEFAULT_SERVER_PORT="7860"
# 颜色输出
print_info() {
echo -e "\033[32m[INFO]\033[0m $1"
}
print_error() {
echo -e "\033[31m[ERROR]\033[0m $1"
}
print_step() {
echo -e "\033[36m[STEP]\033[0m $1"
}
# 检查工具
check_tools() {
print_step "检查工具..."
if [ ! -f "${TOOLS_DIR}/bin/cmake" ]; then
print_error "cmake 未找到"
exit 1
fi
if [ ! -f "${TOOLS_DIR}/bin/gcc" ]; then
print_error "gcc 未找到"
exit 1
fi
print_info "cmake: $(${TOOLS_DIR}/bin/cmake --version | head -1)"
print_info "gcc: $(${TOOLS_DIR}/bin/gcc --version | head -1)"
print_info "make: $(${TOOLS_DIR}/bin/make --version | head -1)"
}
# 检查环境
check_env() {
if [ ! -f "${PYTHON_BIN}" ]; then
print_error "Python 环境未找到: ${PYTHON_BIN}"
exit 1
fi
if [ ! -d "${KIMODO_DIR}" ]; then
print_error "Kimodo 目录不存在: ${KIMODO_DIR}"
exit 1
fi
}
# 设置环境变量
setup_environment() {
print_step "设置环境变量..."
export PYTHONPATH="${KIMODO_DIR}:${PYTHONPATH}"
export SERVER_NAME="${SERVER_NAME:-${DEFAULT_SERVER_NAME}}"
export SERVER_PORT="${SERVER_PORT:-${DEFAULT_SERVER_PORT}}"
export LOCAL_CACHE="True"
export TEXT_ENCODERS_DIR="${KIMODO_DIR}/McGill-NLP"
export TEXT_ENCODER_MODE="local"
export HF_HOME="${WORKSPACE_DIR}/.cache/huggingface"
export HUGGINGFACE_HUB_CACHE="${HF_HOME}/hub"
export kimodo_EMBED_CACHE_DIR="${WORKSPACE_DIR}/.cache/kimodo_demo/embeddings"
export WORKSPACE_DIR="${WORKSPACE_DIR}"
print_info "环境变量设置完成"
}
# 显示配置
show_config() {
print_step "配置信息:"
echo " 工作空间: ${WORKSPACE_DIR}"
echo " 工具目录: ${TOOLS_DIR}"
echo " Python: ${PYTHON_BIN}"
echo " Kimodo: ${KIMODO_DIR}"
echo " 服务器: ${SERVER_NAME}:${SERVER_PORT}"
}
# 启动应用
start_kimodo() {
print_step "启动 Kimodo Demo..."
cd "${WORKSPACE_DIR}"
echo ""
print_info "======================================================================"
print_info "Kimodo Demo 正在启动..."
print_info "访问地址: http://${SERVER_NAME:-${DEFAULT_SERVER_NAME}}:${SERVER_PORT:-${DEFAULT_SERVER_PORT}}"
print_info "======================================================================"
echo ""
exec "${PYTHON_BIN}" -c "
import sys
sys.path.insert(0, '${KIMODO_DIR}')
from kimodo.demo import main
if __name__ == '__main__':
sys.exit(main())
"
}
# 主函数
main() {
echo ""
echo "======================================================================"
echo " Kimodo 完全独立启动(包含工具链)"
echo "======================================================================"
echo ""
check_tools
check_env
show_config
setup_environment
start_kimodo
}
main