# Use .env.local to change these variables
# DO NOT EDIT THIS FILE WITH SENSITIVE DATA

MONGODB_URL=#your mongodb URL here
MONGODB_DB_NAME=chat-ui
MONGODB_DIRECT_CONNECTION=false

COOKIE_NAME=blindchat
HF_ACCESS_TOKEN=#hf_<token> from from https://huggingface.co/settings/token
HF_API_ROOT=https://api-inference.huggingface.co/models

# used to activate search with web functionality. disabled if none are defined. choose one of the following:
SERPER_API_KEY=#your serper.dev api key here
SERPAPI_KEY=#your serpapi key here

# Parameters to enable "Sign in with HF"
OPENID_CLIENT_ID=
OPENID_CLIENT_SECRET=
OPENID_SCOPES="openid profile" # Add "email" for some providers like Google that do not provide preferred_username
OPENID_PROVIDER_URL=https://huggingface.co # for Google, use https://accounts.google.com

# Parameters to enable a global mTLS context for client fetch requests
USE_CLIENT_CERTIFICATE=false
CERT_PATH=#
KEY_PATH=#
CA_PATH=#
CLIENT_KEY_PASSWORD=#
REJECT_UNAUTHORIZED=true

# 'name', 'userMessageToken', 'assistantMessageToken' are required
MODELS=`[
  {
    "name": "Xenova/LaMini-Flan-T5-783M",
    "is_local": true,
    "is_code": false,
    "type": "text2text-generation",
    "userMessageToken": "<|prompter|>",
    "assistantMessageToken": "<|assistant|>",
    "messageEndToken": "</s>",
    "preprompt": "",
    "promptExamples": [
      {
        "title": "What is love?",
        "prompt": "What is love?"
      }, {
        "title": "Who is Ada Lovelace?",
        "prompt": "Who is Ada Lovelace?"
      }, {
        "title": "What does end-to-end protected mean?",
        "prompt": "What does end-to-end protected mean?"
      }
    ],
    "parameters": {
      "temperature": 0.8,
      "top_p": 0.95,
      "repetition_penalty": 1.2,
      "top_k": 50,
      "truncate": 1000,
      "max_new_tokens": 256
    }
  },
  {
    "name": "microsoft/phi-1_5",
    "is_local": true,
    "is_phi": true,
    "type": "text-generation",
    "userMessageToken": "<|prompter|>",
    "assistantMessageToken": "<|assistant|>",
    "messageEndToken": "</s>",
    "preprompt": "",
    "promptExamples": [
      {
        "title": "What is love?",
        "prompt": "Describe what love is in a few sentences."
      }, 
      {
        "title": "What does end-to-end protected mean?",
        "prompt": "Describe what does end-to-end protected mean in a few sentences."
      }
    ],
    "parameters": {
      "temperature": 0.5,
      "top_p": 0.95,
      "repetition_penalty": 1.2,
      "top_k": 50,
      "truncate": 1000,
      "max_new_tokens": 256
    }
  },
  {
    "name": "Xenova/codegen-350M-mono",
    "is_local": true,
    "is_code": true,
    "type": "text-generation",
    "userMessageToken": "<|prompter|>",
    "assistantMessageToken": "<|assistant|>",
    "messageEndToken": "</s>",
    "preprompt": "",
    "promptExamples": [
      {
        "title": "Calculates the nth Fibonacci number",
        "prompt": "def fib(n):\n    '''Calculates the nth Fibonacci number'''"
      },
      {
        "title": "Reimplement your own math.sqrt function",
        "prompt": "def sqrt(n):\n    '''Reimplement your own math.sqrt function'''"
      }
    ],
    "parameters": {
      "temperature": 0.5,
      "top_p": 0.95,
      "repetition_penalty": 1.2,
      "top_k": 50,
      "truncate": 1000,
      "max_new_tokens": 512
    }
  }
]`
OLD_MODELS=`[]`# any removed models, `{ name: string, displayName?: string, id?: string }`

PUBLIC_ORIGIN=#https://huggingface.co
PUBLIC_SHARE_PREFIX=#https://hf.co/chat
PUBLIC_GOOGLE_ANALYTICS_ID=#G-XXXXXXXX / Leave empty to disable
PUBLIC_DEPRECATED_GOOGLE_ANALYTICS_ID=#UA-XXXXXXXX-X / Leave empty to disable
PUBLIC_ANNOUNCEMENT_BANNERS=`[]`

PARQUET_EXPORT_DATASET=
PARQUET_EXPORT_HF_TOKEN=
PARQUET_EXPORT_SECRET=

RATE_LIMIT= # requests per minute
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

PUBLIC_APP_NAME=BlindChat # name used as title throughout the app
PUBLIC_APP_ASSETS=chatui # used to find logos & favicons in static/$PUBLIC_APP_ASSETS
PUBLIC_APP_COLOR=blue # can be any of tailwind colors: https://tailwindcss.com/docs/customizing-colors#default-color-palette
PUBLIC_APP_DATA_SHARING=0#set to 1 to enable options & text regarding data sharing
PUBLIC_APP_DISCLAIMER=#set to 1 to show a disclaimer on login page
PUBLIC_SHOW_LOCAL_MODELS_WARNING=true # show warning that advise not to use local models on mobile devices
PUBLIC_DISABLE_LOGIN=false
PUBLIC_API_KEY=""