Spaces:
Sleeping
Sleeping
feat: reorganized .env (#1566)
Browse files* feat: reorganized .env
* Set a default model that works without token
.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 |
-
|
|
|
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 |
-
|
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 |
-
|
|
|
72 |
MODELS=`[
|
73 |
{
|
74 |
-
"name": "
|
75 |
-
"description": "
|
76 |
"promptExamples": [
|
77 |
{
|
78 |
"title": "Write an email from bullet list",
|
@@ -87,14 +41,79 @@ MODELS=`[
|
|
87 |
]
|
88 |
}
|
89 |
]`
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
90 |
|
91 |
-
|
92 |
-
|
|
|
93 |
|
94 |
-
|
95 |
-
|
96 |
-
|
97 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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 |
-
|
119 |
-
|
120 |
-
|
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 |
-
|
129 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
130 |
|
131 |
|
132 |
-
|
133 |
-
|
134 |
-
|
135 |
-
|
136 |
-
|
137 |
-
|
|
|
|
|
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 |
-
|
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 |
-
|
151 |
-
|
|
|
|
|
|
|
152 |
|
153 |
-
HF_ORG_ADMIN=
|
154 |
-
HF_ORG_EARLY_ACCESS=
|
155 |
|
156 |
-
|
157 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
158 |
|
159 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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=
|