joermd commited on
Commit
9a8dbe4
·
verified ·
1 Parent(s): f5273cf

Upload 5 files

Browse files
Files changed (5) hide show
  1. Dockerfile +131 -0
  2. README.md +8 -7
  3. entrypoint.sh.template +19 -0
  4. env.local.template +62 -0
  5. gitattributes +34 -0
Dockerfile ADDED
@@ -0,0 +1,131 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ARG MODEL_NAME
2
+ ARG MODEL_PARAMS
3
+ ARG MODEL_PROMPT_TEMPLATE
4
+ ARG APP_COLOR
5
+ ARG APP_NAME
6
+
7
+
8
+ FROM node:19 as chatui-builder
9
+ ARG MODEL_NAME
10
+ ARG MODEL_PARAMS
11
+ ARG APP_COLOR
12
+ ARG APP_NAME
13
+ ARG MODEL_PROMPT_TEMPLATE
14
+
15
+ WORKDIR /app
16
+
17
+ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
18
+ git gettext && \
19
+ rm -rf /var/lib/apt/lists/*
20
+
21
+
22
+ RUN git clone https://github.com/huggingface/chat-ui.git
23
+
24
+ WORKDIR /app/chat-ui
25
+
26
+
27
+ COPY .env.local.template .env.local.template
28
+
29
+ RUN mkdir defaults
30
+ ADD defaults /defaults
31
+ RUN chmod -R 777 /defaults
32
+
33
+ RUN --mount=type=secret,id=API_URL,mode=0444 \
34
+ API_URL=$(cat /run/secrets/API_URL) && export API_URL && echo "${API_URL}" >> "/defaults/.api_url" && cat /defaults/.api_url
35
+
36
+
37
+ RUN --mount=type=secret,id=MONGODB_URL,mode=0444 \
38
+ MODEL_NAME="${MODEL_NAME:="$(cat /defaults/MODEL_NAME)"}" && export MODEL_NAME \
39
+ && MODEL_PARAMS="${MODEL_PARAMS:="$(cat /defaults/MODEL_PARAMS)"}" && export MODEL_PARAMS \
40
+ && MODEL_PROMPT_TEMPLATE="${MODEL_PROMPT_TEMPLATE:="$(cat /defaults/MODEL_PROMPT_TEMPLATE)"}" && export MODEL_PROMPT_TEMPLATE \
41
+ && APP_COLOR="${APP_COLOR:="$(cat /defaults/APP_COLOR)"}" && export APP_COLOR \
42
+ && APP_NAME="${APP_NAME:="$(cat /defaults/APP_NAME)"}" && export APP_NAME \
43
+ && MONGODB_URL=$(cat /run/secrets/MONGODB_URL > /dev/null | grep '^' || cat /defaults/MONGODB_URL) && export MONGODB_URL && \
44
+ echo "${MONGODB_URL}" \
45
+ && API_URL=$(cat /defaults/.api_url) && export API_URL && echo "${API_URL}" && \
46
+ envsubst < ".env.local.template" > ".env.local" \
47
+ && rm .env.local.template && cat .env.local
48
+
49
+
50
+ RUN --mount=type=cache,target=/app/.npm \
51
+ npm set cache /app/.npm && \
52
+ npm ci
53
+
54
+ RUN npm run build
55
+
56
+ FROM ghcr.io/huggingface/text-generation-inference:latest
57
+
58
+ ARG MODEL_NAME
59
+ ARG MODEL_PARAMS
60
+ ARG MODEL_PROMPT_TEMPLATE
61
+ ARG APP_COLOR
62
+ ARG APP_NAME
63
+
64
+ ENV TZ=Europe/Paris \
65
+ PORT=3000
66
+
67
+
68
+
69
+ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
70
+ gnupg \
71
+ curl \
72
+ gettext && \
73
+ rm -rf /var/lib/apt/lists/*
74
+ COPY entrypoint.sh.template entrypoint.sh.template
75
+
76
+ RUN mkdir defaults
77
+ ADD defaults /defaults
78
+ RUN chmod -R 777 /defaults
79
+
80
+ RUN --mount=type=secret,id=MONGODB_URL,mode=0444 \
81
+ MODEL_NAME="${MODEL_NAME:="$(cat /defaults/MODEL_NAME)"}" && export MODEL_NAME \
82
+ && MODEL_PARAMS="${MODEL_PARAMS:="$(cat /defaults/MODEL_PARAMS)"}" && export MODEL_PARAMS \
83
+ && MODEL_PROMPT_TEMPLATE="${MODEL_PROMPT_TEMPLATE:="$(cat /defaults/MODEL_PROMPT_TEMPLATE)"}" && export MODEL_PROMPT_TEMPLATE \
84
+ && APP_COLOR="${APP_COLOR:="$(cat /defaults/APP_COLOR)"}" && export APP_COLOR \
85
+ && APP_NAME="${APP_NAME:="$(cat /defaults/APP_NAME)"}" && export APP_NAME \
86
+ && MONGODB_URL=$(cat /run/secrets/MONGODB_URL > /dev/null | grep '^' || cat /defaults/MONGODB_URL) && export MONGODB_URL && \
87
+ envsubst < "entrypoint.sh.template" > "entrypoint.sh" \
88
+ && rm entrypoint.sh.template
89
+
90
+
91
+ RUN curl -fsSL https://pgp.mongodb.com/server-6.0.asc | \
92
+ gpg -o /usr/share/keyrings/mongodb-server-6.0.gpg \
93
+ --dearmor
94
+
95
+ RUN echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-6.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/6.0 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-6.0.list
96
+
97
+ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
98
+ mongodb-org && \
99
+ rm -rf /var/lib/apt/lists/*
100
+
101
+ RUN mkdir -p /data/db
102
+ RUN chown -R 1000:1000 /data
103
+
104
+ RUN curl -fsSL https://deb.nodesource.com/setup_19.x | /bin/bash -
105
+
106
+ RUN apt-get update && DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends \
107
+ nodejs && \
108
+ rm -rf /var/lib/apt/lists/*
109
+
110
+ RUN mkdir /app
111
+ RUN chown -R 1000:1000 /app
112
+
113
+ RUN useradd -m -u 1000 user
114
+
115
+ # Switch to the "user" user
116
+ USER user
117
+
118
+ ENV HOME=/home/user \
119
+ PATH=/home/user/.local/bin:$PATH
120
+
121
+ RUN npm config set prefix /home/user/.local
122
+ RUN npm install -g pm2
123
+
124
+ COPY --from=chatui-builder --chown=1000 /app/chat-ui/node_modules /app/node_modules
125
+ COPY --from=chatui-builder --chown=1000 /app/chat-ui/package.json /app/package.json
126
+ COPY --from=chatui-builder --chown=1000 /app/chat-ui/build /app/build
127
+
128
+ ENTRYPOINT ["/bin/bash"]
129
+ CMD ["entrypoint.sh"]
130
+
131
+
README.md CHANGED
@@ -1,13 +1,14 @@
1
  ---
2
- title: Speedy
3
- emoji: 🏆
4
  colorFrom: indigo
5
- colorTo: indigo
6
- sdk: streamlit
7
- sdk_version: 1.40.0
8
- app_file: app.py
9
  pinned: false
10
- license: llama3
 
 
 
11
  ---
12
 
13
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
 
1
  ---
2
+ title: SUS-Chat-34B
3
+ emoji: 🐷
4
  colorFrom: indigo
5
+ colorTo: pink
6
+ sdk: docker
 
 
7
  pinned: false
8
+ app_port: 3000
9
+ suggested_hardware: a10g-small
10
+ models:
11
+ - SUSTech/SUS-Chat-34B
12
  ---
13
 
14
  Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
entrypoint.sh.template ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ #!/bin/bash
2
+
3
+ # Start the local Mongo database
4
+ mongod &
5
+
6
+ # Start the text-generation-inference process
7
+ #text-generation-launcher --model-id ${MODEL_NAME} --num-shard 1 --port 8080 --trust-remote-code &
8
+
9
+ # Wait for text-generation-inference to start
10
+ #curl --retry 60 --retry-delay 10 --retry-connrefused http://127.0.0.1:8080/health
11
+
12
+ # Start the chat-ui process
13
+ pm2 start /app/build/index.js -i $CPU_CORES --no-daemon &
14
+
15
+ # Wait for any process to exit
16
+ wait -n
17
+
18
+ # Exit with status of process that exited first
19
+ exit $?
env.local.template ADDED
@@ -0,0 +1,62 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ # Use .env.local to change these variables
2
+ # DO NOT EDIT THIS FILE WITH SENSITIVE DATA
3
+
4
+ MONGODB_URL=${MONGODB_URL}
5
+ MONGODB_DB_NAME=chat-ui
6
+ MONGODB_DIRECT_CONNECTION=false
7
+
8
+
9
+ COOKIE_NAME=chat-ui
10
+ HF_ACCESS_TOKEN=#hf_<token> from from https://huggingface.co/settings/token
11
+
12
+ # used to activate search with web functionality. disabled if not defined
13
+ SERPAPI_KEY=#your serpapi key here
14
+
15
+ # Parameters to enable "Sign in with HF"
16
+ OPENID_CLIENT_ID=
17
+ OPENID_CLIENT_SECRET=
18
+ OPENID_SCOPES="openid profile" # Add "email" for some providers like Google that do not provide preferred_username
19
+ OPENID_PROVIDER_URL=https://huggingface.co # for Google, use https://accounts.google.com
20
+
21
+
22
+ # 'name', 'userMessageToken', 'assistantMessageToken' are required
23
+ MODELS=`[
24
+ {
25
+ "name": "SUSTech/SUS-Chat-34B",
26
+ "parameters": {
27
+ "temperature": 0.2,
28
+ "top_p": 0.95,
29
+ "repetition_penalty": 0.1,
30
+ "max_tokens": 1024,
31
+ "top_k": 2048,
32
+ "max_new_tokens": 1024
33
+ },
34
+ "endpoints": [{
35
+ "type" : "openai",
36
+ "baseURL": "${API_URL}"
37
+ }]
38
+ }
39
+ ]`
40
+ OLD_MODELS=`[]`# any removed models, `{ name: string, displayName?: string, id?: string }`
41
+
42
+ PUBLIC_ORIGIN=${SPACE_HOST}
43
+ PUBLIC_SHARE_PREFIX=${SPACE_HOST}/r
44
+ PUBLIC_GOOGLE_ANALYTICS_ID=#G-XXXXXXXX / Leave empty to disable
45
+ PUBLIC_DEPRECATED_GOOGLE_ANALYTICS_ID=#UA-XXXXXXXX-X / Leave empty to disable
46
+ PUBLIC_ANNOUNCEMENT_BANNERS=`[
47
+ {
48
+ "title": "Chat UI is now open sourced on GitHub",
49
+ "linkTitle": "GitHub repo",
50
+ "linkHref": "https://github.com/huggingface/chat-ui"
51
+ }
52
+ ]`
53
+
54
+ PARQUET_EXPORT_DATASET=
55
+ PARQUET_EXPORT_HF_TOKEN=
56
+ PARQUET_EXPORT_SECRET=
57
+
58
+ PUBLIC_APP_NAME=${APP_NAME} # name used as title throughout the app
59
+ PUBLIC_APP_ASSETS=chatui # used to find logos & favicons in static/$PUBLIC_APP_ASSETS
60
+ PUBLIC_APP_COLOR=${APP_COLOR} # can be any of tailwind colors: https://tailwindcss.com/docs/customizing-colors#default-color-palette
61
+ PUBLIC_APP_DATA_SHARING=#set to 1 to enable disclaimers & options about data sharing
62
+ PUBLIC_APP_DATA_DISCLAIMER=#set to 1 to enable disclaimers about model outputs
gitattributes ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tflite filter=lfs diff=lfs merge=lfs -text
29
+ *.tgz filter=lfs diff=lfs merge=lfs -text
30
+ *.wasm filter=lfs diff=lfs merge=lfs -text
31
+ *.xz filter=lfs diff=lfs merge=lfs -text
32
+ *.zip filter=lfs diff=lfs merge=lfs -text
33
+ *.zst filter=lfs diff=lfs merge=lfs -text
34
+ *tfevents* filter=lfs diff=lfs merge=lfs -text