当前位置:   article > 正文

dify-on-wechat中的entrypoint.sh脚本

dify-on-wechat中的entrypoint.sh脚本

注解:因为ntwork类库不支持Linux环境,所以企业微信就放弃了容器部署。

通过dockerfile启动容器

cd dify-on-wechat/docker       # 进入docker目录
docker compose up -d           # 启动docker容器
docker logs -f dify-on-wechat  # 查看二维码并登录
  • 1
  • 2
  • 3

代码位置:dify-on-wechat/docker/entrypoint.sh。当容器启动时,执行entrypoint.sh脚本:

#!/bin/bash
set -e

# build prefix
DIFY_ON_WECHAT_PREFIX=${DIFY_ON_WECHAT_PREFIX:-""}
# path to config.json
DIFY_ON_WECHAT_CONFIG_PATH=${DIFY_ON_WECHAT_CONFIG_PATH:-""}
# execution command line
DIFY_ON_WECHAT_EXEC=${DIFY_ON_WECHAT_EXEC:-""}

# use environment variables to pass parameters
# if you have not defined environment variables, set them below
# export OPEN_AI_API_KEY=${OPEN_AI_API_KEY:-'YOUR API KEY'}
# export OPEN_AI_PROXY=${OPEN_AI_PROXY:-""}
# export SINGLE_CHAT_PREFIX=${SINGLE_CHAT_PREFIX:-'["bot", "@bot"]'}
# export SINGLE_CHAT_REPLY_PREFIX=${SINGLE_CHAT_REPLY_PREFIX:-'"[bot] "'}
# export GROUP_CHAT_PREFIX=${GROUP_CHAT_PREFIX:-'["@bot"]'}
# export GROUP_NAME_WHITE_LIST=${GROUP_NAME_WHITE_LIST:-'["ChatGPT测试群", "ChatGPT测试群2"]'}
# export IMAGE_CREATE_PREFIX=${IMAGE_CREATE_PREFIX:-'["画", "看", "找"]'}
# export CONVERSATION_MAX_TOKENS=${CONVERSATION_MAX_TOKENS:-"1000"}
# export SPEECH_RECOGNITION=${SPEECH_RECOGNITION:-"False"}
# export CHARACTER_DESC=${CHARACTER_DESC:-"你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。"}
# export EXPIRES_IN_SECONDS=${EXPIRES_IN_SECONDS:-"3600"}

# DIFY_ON_WECHAT_PREFIX is empty, use /app
if [ "$DIFY_ON_WECHAT_PREFIX" == "" ] ; then
    DIFY_ON_WECHAT_PREFIX=/app
fi

# DIFY_ON_WECHAT_CONFIG_PATH is empty, use '/app/config.json'
if [ "$DIFY_ON_WECHAT_CONFIG_PATH" == "" ] ; then
    DIFY_ON_WECHAT_CONFIG_PATH=$DIFY_ON_WECHAT_PREFIX/config.json
fi

# DIFY_ON_WECHAT_EXEC is empty, use ‘python app.py’
if [ "$DIFY_ON_WECHAT_EXEC" == "" ] ; then
    DIFY_ON_WECHAT_EXEC="python app.py"
fi

# modify content in config.json
# if [ "$OPEN_AI_API_KEY" == "YOUR API KEY" ] || [ "$OPEN_AI_API_KEY" == "" ]; then
#     echo -e "\033[31m[Warning] You need to set OPEN_AI_API_KEY before running!\033[0m"
# fi


# go to prefix dir
cd $DIFY_ON_WECHAT_PREFIX
# excute
$DIFY_ON_WECHAT_EXEC
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
  • 32
  • 33
  • 34
  • 35
  • 36
  • 37
  • 38
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49

这段 Bash 脚本主要用于配置和启动一个 Python 应用程序,脚本中使用了多个环境变量来控制不同的配置选项。下面逐一解释每一部分的功能和用途:

1.设置脚本行为
set -e
  • 1

这一行让脚本在执行过程中如果遇到任何错误立即退出。set -e 是确保脚本在出现任何非零退出状态的命令后立即终止执行,提高脚本的稳定性和可预测性。

2.定义默认环境变量

这部分代码使用了 Bash 的参数展开功能,如果环境变量未设置,则为其提供默认值。例如:

DIFY_ON_WECHAT_PREFIX=${DIFY_ON_WECHAT_PREFIX:-""}
  • 1

如果 `DIFY_ON_WECHAT_PREFIX 没有被设置,它将默认为一个空字符串。这种模式在脚本中用于多个变量,确保所有重要的配置都有明确的值。

3.条件赋值
if [ "$DIFY_ON_WECHAT_PREFIX" == "" ] ; then
    DIFY_ON_WECHAT_PREFIX=/app
fi
  • 1
  • 2
  • 3

这个条件检查 DIFY_ON_WECHAT_PREFIX 是否为空,如果为空,则将其设置为 /app。这样的条件赋值确保了即使环境变量未被外部明确设置,应用也能有一个合理的默认运行目录。

4.配置文件路径设置
if [ "$DIFY_ON_WECHAT_CONFIG_PATH" == "" ] ; then
    DIFY_ON_WECHAT_CONFIG_PATH=$DIFY_ON_WECHAT_PREFIX/config.json
fi
  • 1
  • 2
  • 3

这里设置配置文件的路径,默认位置是在 DIFY_ON_WECHAT_PREFIX 目录下的 config.json

5.执行命令设置
if [ "$DIFY_ON_WECHAT_EXEC" == "" ] ; then
    DIFY_ON_WECHAT_EXEC="python app.py"
fi
  • 1
  • 2
  • 3

设置启动应用程序的命令,默认为 python app.py。这允许通过环境变量覆盖执行命令,从而增加灵活性。

6.目录切换与应用执行
cd $DIFY_ON_WECHAT_PREFIX
$DIFY_ON_WECHAT_EXEC
  • 1
  • 2

脚本会改变当前目录到 DIFY_ON_WECHAT_PREFIX 指定的目录,然后执行 DIFY_ON_WECHAT_EXEC 指定的命令来启动应用。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小桥流水78/article/detail/839673
推荐阅读
相关标签
  

闽ICP备14008679号