nsarrazin HF Staff commited on
Commit
adcc023
·
unverified ·
1 Parent(s): 483e9c9

feat: reorganized .env (#1566)

Browse files

* feat: reorganized .env

* Set a default model that works without token

Files changed (1) hide show
  1. .env +145 -98
.env CHANGED
@@ -1,18 +1,18 @@
1
  # Use .env.local to change these variables
2
  # DO NOT EDIT THIS FILE WITH SENSITIVE DATA
3
 
4
- MONGODB_URL=#your mongodb URL here
 
5
  MONGODB_DB_NAME=chat-ui
6
  MONGODB_DIRECT_CONNECTION=false
7
 
8
- COOKIE_NAME=hf-chat
9
- COOKIE_SAMESITE=
10
- COOKIE_SECURE=
11
- TRUSTED_EMAIL_HEADER= # only set this if you understand the implications
12
 
13
- HF_TOKEN=#hf_<token> from https://huggingface.co/settings/token
14
  HF_API_ROOT=https://api-inference.huggingface.co/models
15
-
 
 
 
16
  OPENAI_API_KEY=#your openai api key here
17
  ANTHROPIC_API_KEY=#your anthropic api key here
18
  CLOUDFLARE_ACCOUNT_ID=#your cloudflare account id here
@@ -20,59 +20,13 @@ CLOUDFLARE_API_TOKEN=#your cloudflare api token here
20
  COHERE_API_TOKEN=#your cohere api token here
21
  GOOGLE_GENAI_API_KEY=#your google genai api token here
22
 
23
- HF_ACCESS_TOKEN=#LEGACY! Use HF_TOKEN instead
24
-
25
- # used to activate search with web functionality. disabled if none are defined. choose one of the following:
26
- YDC_API_KEY=#your docs.you.com api key here
27
- SERPER_API_KEY=#your serper.dev api key here
28
- SERPAPI_KEY=#your serpapi key here
29
- SERPSTACK_API_KEY=#your serpstack api key here
30
- SEARCHAPI_KEY=#your searchapi api key here
31
- USE_LOCAL_WEBSEARCH=#set to true to parse google results yourself, overrides other API keys
32
- SEARXNG_QUERY_URL=# where '<query>' will be replaced with query keywords see https://docs.searxng.org/dev/search_api.html eg https://searxng.yourdomain.com/search?q=<query>&engines=duckduckgo,google&format=json
33
- BING_SUBSCRIPTION_KEY=#your key
34
- PLAYWRIGHT_ADBLOCKER=true
35
-
36
- WEBSEARCH_ALLOWLIST=`[]` # if it's defined, allow websites from only this list.
37
- WEBSEARCH_BLOCKLIST=`[]` # if it's defined, block websites from this list.
38
- WEBSEARCH_JAVASCRIPT=true # CPU usage reduces by 60% on average by disabling javascript. Enable to improve website compatibility
39
- WEBSEARCH_TIMEOUT = 3500 # in milliseconds, determines how long to wait to load a page before timing out
40
-
41
- # Parameters to enable open id login
42
- OPENID_CONFIG=`{
43
- "PROVIDER_URL": "",
44
- "CLIENT_ID": "",
45
- "CLIENT_SECRET": "",
46
- "SCOPES": "",
47
- "NAME_CLAIM": ""
48
- }`
49
-
50
- # /!\ legacy openid settings, prefer the config above
51
- OPENID_CLIENT_ID=
52
- OPENID_CLIENT_SECRET=
53
- OPENID_SCOPES="openid profile" # Add "email" for some providers like Google that do not provide preferred_username
54
- OPENID_NAME_CLAIM="name" # Change to "username" for some providers that do not provide name
55
- OPENID_PROVIDER_URL=https://huggingface.co # for Google, use https://accounts.google.com
56
- OPENID_TOLERANCE=
57
- OPENID_RESOURCE=
58
-
59
- TEXT_EMBEDDING_MODELS = `[
60
- {
61
- "name": "Xenova/gte-small",
62
- "displayName": "Xenova/gte-small",
63
- "description": "Local embedding model running on the server.",
64
- "chunkCharLength": 512,
65
- "endpoints": [
66
- { "type": "transformersjs" }
67
- ]
68
- }
69
- ]`
70
 
71
- # 'name', 'userMessageToken', 'assistantMessageToken' are required
 
72
  MODELS=`[
73
  {
74
- "name": "HuggingFaceTB/SmolLM2-1.7B-Instruct",
75
- "description": "SmolLM2-1.7B is the latest lightweight model from the Hugging Face TB Research team.",
76
  "promptExamples": [
77
  {
78
  "title": "Write an email from bullet list",
@@ -87,14 +41,79 @@ MODELS=`[
87
  ]
88
  }
89
  ]`
 
 
 
 
 
 
 
 
 
 
 
 
 
90
 
91
- OLD_MODELS=`[]`# any removed models, `{ name: string, displayName?: string, id?: string }`
92
- TASK_MODEL= # name of the model used for tasks such as summarizing title, creating query, etc.
 
93
 
94
- PUBLIC_ORIGIN=#https://huggingface.co
95
- PUBLIC_SHARE_PREFIX=#https://hf.co/chat
96
- PUBLIC_GOOGLE_ANALYTICS_ID=#G-XXXXXXXX / Leave empty to disable
97
- PUBLIC_PLAUSIBLE_SCRIPT_URL=#/js/script.js / Leave empty to disable
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
98
  PUBLIC_ANNOUNCEMENT_BANNERS=`[
99
  {
100
  "title": "chat-ui is now open source!",
@@ -102,58 +121,86 @@ PUBLIC_ANNOUNCEMENT_BANNERS=`[
102
  "linkHref": "https://github.com/huggingface/chat-ui"
103
  }
104
  ]`
 
 
 
105
 
 
 
 
106
  PUBLIC_APPLE_APP_ID=#1234567890 / Leave empty to disable
107
 
108
- PARQUET_EXPORT_DATASET=
109
- PARQUET_EXPORT_HF_TOKEN=
110
- ADMIN_API_SECRET=# secret to admin API calls, like computing usage stats or exporting parquet data
111
 
112
- PARQUET_EXPORT_SECRET=#DEPRECATED, use ADMIN_API_SECRET instead
 
 
 
 
 
 
 
113
 
114
- RATE_LIMIT= # /!\ Legacy definition of messages per minute. Use USAGE_LIMITS.messagesPerMinute instead
115
- MESSAGES_BEFORE_LOGIN=# how many messages a user can send in a conversation before having to login. set to 0 to force login right away
116
- PUBLIC_APP_GUEST_MESSAGE=# a message to the guest user. If not set, a default message will be used
117
 
118
- APP_BASE="" # base path of the app, e.g. /chat, left blank as default
119
- PUBLIC_APP_NAME=ChatUI # name used as title throughout the app
120
- PUBLIC_APP_ASSETS=chatui # used to find logos & favicons in static/$PUBLIC_APP_ASSETS
121
- PUBLIC_APP_COLOR=blue # can be any of tailwind colors: https://tailwindcss.com/docs/customizing-colors#default-color-palette
122
- PUBLIC_APP_DESCRIPTION=# description used throughout the app (if not set, a default one will be used)
123
- PUBLIC_APP_DATA_SHARING=#set to 1 to enable options & text regarding data sharing
124
- PUBLIC_APP_DISCLAIMER=#set to 1 to show a disclaimer on login page
125
- PUBLIC_APP_DISCLAIMER_MESSAGE="Disclaimer: AI is an area of active research with known problems such as biased generation and misinformation. Do not use this application for high-stakes decisions or advice. Do not insert your personal data, especially sensitive, like health data."
126
- LLM_SUMMARIZATION=true
127
 
128
- EXPOSE_API=true
129
- USE_HF_TOKEN_IN_API=false
 
 
 
 
 
 
 
 
 
130
 
131
 
132
- ENABLE_ASSISTANTS=false #set to true to enable assistants feature
133
- ENABLE_ASSISTANTS_RAG=false # /!\ This will let users specify arbitrary URLs that the server will then request. Make sure you have the proper firewall rules in place.
134
- REQUIRE_FEATURED_ASSISTANTS=false
135
- ENABLE_LOCAL_FETCH=false #set to true to disable the blocklist for local fetches. Only enable this if you have the proper firewall rules to prevent SSRF attacks and understand the implications.
136
- ALTERNATIVE_REDIRECT_URLS=`[]` #valide alternative redirect URL for OAuth
137
- WEBHOOK_URL_REPORT_ASSISTANT=#provide webhook url to get notified when an assistant gets reported
 
 
138
 
139
- ALLOWED_USER_EMAILS=`[]` # if it's defined, only these emails will be allowed to use the app
140
 
141
- USAGE_LIMITS=`{}`
142
 
143
- ALLOW_IFRAME=true
144
- ALLOW_INSECURE_COOKIES=false # recommended to keep this to false but set to true if you need to run over http without tls
145
  METRICS_ENABLED=false
146
  METRICS_PORT=5565
147
  LOG_LEVEL=info
148
 
149
 
150
- TOOLS=`[]`
151
- BODY_SIZE_LIMIT=15728640
 
 
 
152
 
153
- HF_ORG_ADMIN=
154
- HF_ORG_EARLY_ACCESS=
155
 
156
- PUBLIC_SMOOTH_UPDATES=false
157
- COMMUNITY_TOOLS=false
 
 
 
 
 
 
 
158
 
159
- PUBLIC_COMMIT_SHA=
 
 
 
 
 
 
 
 
 
 
 
 
1
  # Use .env.local to change these variables
2
  # DO NOT EDIT THIS FILE WITH SENSITIVE DATA
3
 
4
+ ### MongoDB ###
5
+ MONGODB_URL=#your mongodb URL here, use chat-ui-db image if you don't want to set this
6
  MONGODB_DB_NAME=chat-ui
7
  MONGODB_DIRECT_CONNECTION=false
8
 
 
 
 
 
9
 
10
+ ### Endpoints config ###
11
  HF_API_ROOT=https://api-inference.huggingface.co/models
12
+ # HF_TOKEN is used for a lot of things, not only for inference but also fetching tokenizers, etc.
13
+ # We recommend using an HF_TOKEN even if you use a local endpoint.
14
+ HF_TOKEN= #get it from https://huggingface.co/settings/token
15
+ # API Keys for providers, you will need to specify models in the MODELS section but these keys can be kept secret
16
  OPENAI_API_KEY=#your openai api key here
17
  ANTHROPIC_API_KEY=#your anthropic api key here
18
  CLOUDFLARE_ACCOUNT_ID=#your cloudflare account id here
 
20
  COHERE_API_TOKEN=#your cohere api token here
21
  GOOGLE_GENAI_API_KEY=#your google genai api token here
22
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
23
 
24
+ ### Models ###
25
+ ## Models can support many different endpoints, check the documentation for more details
26
  MODELS=`[
27
  {
28
+ "name": "NousResearch/Hermes-3-Llama-3.1-8B",
29
+ "description": "Nous Research's latest Hermes 3 release in 8B size.",
30
  "promptExamples": [
31
  {
32
  "title": "Write an email from bullet list",
 
41
  ]
42
  }
43
  ]`
44
+ ## Text Embedding Models used for websearch
45
+ # Default is a model that runs locally on CPU.
46
+ TEXT_EMBEDDING_MODELS = `[
47
+ {
48
+ "name": "Xenova/gte-small",
49
+ "displayName": "Xenova/gte-small",
50
+ "description": "Local embedding model running on the server.",
51
+ "chunkCharLength": 512,
52
+ "endpoints": [
53
+ { "type": "transformersjs" }
54
+ ]
55
+ }
56
+ ]`
57
 
58
+ ## Removed models, useful for migrating conversations
59
+ # { name: string, displayName?: string, id?: string, transferTo?: string }`
60
+ OLD_MODELS=`[]`
61
 
62
+ ## Task model
63
+ # name of the model used for tasks such as summarizing title, creating query, etc.
64
+ # if not set, the first model in MODELS will be used
65
+ TASK_MODEL=
66
+
67
+
68
+ ### Authentication ###
69
+ # Parameters to enable open id login
70
+ OPENID_CONFIG=`{
71
+ "PROVIDER_URL": "",
72
+ "CLIENT_ID": "",
73
+ "CLIENT_SECRET": "",
74
+ "SCOPES": "",
75
+ "NAME_CLAIM": ""
76
+ }`
77
+ MESSAGES_BEFORE_LOGIN=# how many messages a user can send in a conversation before having to login. set to 0 to force login right away
78
+ # if it's defined, only these emails will be allowed to use login
79
+ ALLOWED_USER_EMAILS=`[]`
80
+ # valid alternative redirect URLs for OAuth, used for HuggingChat apps
81
+ ALTERNATIVE_REDIRECT_URLS=`[]`
82
+ ### Cookies
83
+ # name of the cookie used to store the session
84
+ COOKIE_NAME=hf-chat
85
+ # specify secure behaviour for cookies
86
+ COOKIE_SAMESITE=# can be "lax", "strict", "none" or left empty
87
+ COOKIE_SECURE=# set to true to only allow cookies over https
88
+
89
+
90
+ ### Websearch ###
91
+ ## API Keys used to activate search with web functionality. websearch is disabled if none are defined. choose one of the following:
92
+ YDC_API_KEY=#your docs.you.com api key here
93
+ SERPER_API_KEY=#your serper.dev api key here
94
+ SERPAPI_KEY=#your serpapi key here
95
+ SERPSTACK_API_KEY=#your serpstack api key here
96
+ SEARCHAPI_KEY=#your searchapi api key here
97
+ USE_LOCAL_WEBSEARCH=#set to true to parse google results yourself, overrides other API keys
98
+ SEARXNG_QUERY_URL=# where '<query>' will be replaced with query keywords see https://docs.searxng.org/dev/search_api.html eg https://searxng.yourdomain.com/search?q=<query>&engines=duckduckgo,google&format=json
99
+ BING_SUBSCRIPTION_KEY=#your key
100
+ ## Websearch configuration
101
+ PLAYWRIGHT_ADBLOCKER=true
102
+ WEBSEARCH_ALLOWLIST=`[]` # if it's defined, allow websites from only this list.
103
+ WEBSEARCH_BLOCKLIST=`[]` # if it's defined, block websites from this list.
104
+ WEBSEARCH_JAVASCRIPT=true # CPU usage reduces by 60% on average by disabling javascript. Enable to improve website compatibility
105
+ WEBSEARCH_TIMEOUT = 3500 # in milliseconds, determines how long to wait to load a page before timing out
106
+ ENABLE_LOCAL_FETCH=false #set to true to allow fetches on the local network. /!\ Only enable this if you have the proper firewall rules to prevent SSRF attacks and understand the implications.
107
+
108
+
109
+ ## Public app configuration ##
110
+ PUBLIC_APP_GUEST_MESSAGE=# a message to the guest user. If not set, no message will be shown. Only used if you have authentication enabled.
111
+ PUBLIC_APP_NAME=ChatUI # name used as title throughout the app
112
+ PUBLIC_APP_ASSETS=chatui # used to find logos & favicons in static/$PUBLIC_APP_ASSETS
113
+ PUBLIC_APP_DESCRIPTION=# description used throughout the app
114
+ PUBLIC_APP_DATA_SHARING=# Set to 1 to enable an option in the user settings to share conversations with model authors
115
+ PUBLIC_APP_DISCLAIMER=# Set to 1 to show a disclaimer on login page
116
+ PUBLIC_APP_DISCLAIMER_MESSAGE=# Message to show on the login page
117
  PUBLIC_ANNOUNCEMENT_BANNERS=`[
118
  {
119
  "title": "chat-ui is now open source!",
 
121
  "linkHref": "https://github.com/huggingface/chat-ui"
122
  }
123
  ]`
124
+ PUBLIC_SMOOTH_UPDATES=false # set to true to enable smoothing of messages client-side, can be CPU intensive
125
+ PUBLIC_ORIGIN=#https://huggingface.co
126
+ PUBLIC_SHARE_PREFIX=#https://hf.co/chat
127
 
128
+ # mostly huggingchat specific
129
+ PUBLIC_GOOGLE_ANALYTICS_ID=#G-XXXXXXXX / Leave empty to disable
130
+ PUBLIC_PLAUSIBLE_SCRIPT_URL=#/js/script.js / Leave empty to disable
131
  PUBLIC_APPLE_APP_ID=#1234567890 / Leave empty to disable
132
 
 
 
 
133
 
134
+ ### Feature Flags ###
135
+ LLM_SUMMARIZATION=true # generate conversation titles with LLMs
136
+ ENABLE_ASSISTANTS=false #set to true to enable assistants feature
137
+ ENABLE_ASSISTANTS_RAG=false # /!\ This will let users specify arbitrary URLs that the server will then request. Make sure you have the proper firewall rules in place.
138
+ REQUIRE_FEATURED_ASSISTANTS=false # require featured assistants to show in the list
139
+ COMMUNITY_TOOLS=false # set to true to enable community tools
140
+ EXPOSE_API=true # make the /api routes available
141
+ ALLOW_IFRAME=true # Allow the app to be embedded in an iframe
142
 
 
 
 
143
 
144
+ ### Tools ###
145
+ # Check out public config in `chart/env/prod.yaml` for more details
146
+ TOOLS=`[]`
 
 
 
 
 
 
147
 
148
+ ### Rate limits ###
149
+ # See `src/lib/server/usageLimits.ts`
150
+ # {
151
+ # conversations: number, # how many conversations
152
+ # messages: number, # how many messages in a conversation
153
+ # assistants: number, # how many assistants
154
+ # messageLength: number, # how long can a message be before we cut it off
155
+ # messagesPerMinute: number, # how many messages per minute
156
+ # tools: number # how many tools
157
+ # }
158
+ USAGE_LIMITS=`{}`
159
 
160
 
161
+ ### HuggingFace specific ###
162
+ # Let user authenticate with their HF token in the /api routes. This is only useful if you have OAuth configured with huggingface.
163
+ USE_HF_TOKEN_IN_API=false
164
+ ## Feature flag & admin settings
165
+ # Used for setting early access & admin flags to users
166
+ HF_ORG_ADMIN=
167
+ HF_ORG_EARLY_ACCESS=
168
+ WEBHOOK_URL_REPORT_ASSISTANT=#provide slack webhook url to get notified for reports/feature requests
169
 
 
170
 
 
171
 
172
+ ### Metrics ###
 
173
  METRICS_ENABLED=false
174
  METRICS_PORT=5565
175
  LOG_LEVEL=info
176
 
177
 
178
+ ### Parquet export ###
179
+ # Not in use anymore but useful to export conversations to a parquet file as a HuggingFace dataset
180
+ PARQUET_EXPORT_DATASET=
181
+ PARQUET_EXPORT_HF_TOKEN=
182
+ ADMIN_API_SECRET=# secret to admin API calls, like computing usage stats or exporting parquet data
183
 
 
 
184
 
185
+ ### Docker build variables ###
186
+ # These values cannot be updated at runtime
187
+ # They need to be passed when building the docker image
188
+ # See https://github.com/huggingface/chat-ui/main/.github/workflows/deploy-prod.yml#L44-L47
189
+ APP_BASE="" # base path of the app, e.g. /chat, left blank as default
190
+ PUBLIC_APP_COLOR=blue # can be any of tailwind colors: https://tailwindcss.com/docs/customizing-colors#default-color-palette
191
+ ### Body size limit for SvelteKit https://svelte.dev/docs/kit/adapter-node#Environment-variables-BODY_SIZE_LIMIT
192
+ BODY_SIZE_LIMIT=15728640
193
+ PUBLIC_COMMIT_SHA=
194
 
195
+ ### LEGACY parameters
196
+ HF_ACCESS_TOKEN=#LEGACY! Use HF_TOKEN instead
197
+ ALLOW_INSECURE_COOKIES=false # LEGACY! Use COOKIE_SECURE and COOKIE_SAMESITE instead
198
+ PARQUET_EXPORT_SECRET=#DEPRECATED, use ADMIN_API_SECRET instead
199
+ RATE_LIMIT= # /!\ DEPRECATED definition of messages per minute. Use USAGE_LIMITS.messagesPerMinute instead
200
+ OPENID_CLIENT_ID=
201
+ OPENID_CLIENT_SECRET=
202
+ OPENID_SCOPES="openid profile" # Add "email" for some providers like Google that do not provide preferred_username
203
+ OPENID_NAME_CLAIM="name" # Change to "username" for some providers that do not provide name
204
+ OPENID_PROVIDER_URL=https://huggingface.co # for Google, use https://accounts.google.com
205
+ OPENID_TOLERANCE=
206
+ OPENID_RESOURCE=