| #!/bin/bash |
|
|
| |
| |
| |
|
|
| 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" |
|
|
| |
| 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 |
|
|