# Use .env.local to change these variables # DO NOT EDIT THIS FILE WITH SENSITIVE DATA MONGODB_URL=${MONGODB_URL} MONGODB_DB_NAME=chat-ui MONGODB_DIRECT_CONNECTION=false COOKIE_NAME=chat-ui HF_ACCESS_TOKEN=#hf_ from from https://huggingface.co/settings/token # used to activate search with web functionality. disabled if not defined 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 PUBLIC_APP_DESCRIPTION="This is a prompt system compliance test of the latest 7b model in development at BSC, code name Salamandra. No personal information is saved." COMMUNITY_TOOLS=true ENABLE_ASSISTANTS=true TOOLS=`[ { "name": "getContext", "description": "Return relevant documents from the Entitat Autònoma del Diari Oficial i de Publicacions (EADOP).", "color": "red", "icon": "chat", "baseUrl": "BSC-LT/VECTOR_STORE_EADOP", "endpoint": "/get-eadop-rag", "outputComponent": "textbox", "displayName":"RAG EADOP", "outputComponentIdx": 0, "inputs":[ {"name":"prompt", "paramType":"required", "type":"str"}, { name: 'num_chunks', paramType: 'fixed', value: '2', type: 'float' } ], "_id": "5f2c1b9d8a9a4d3b6a7f9e2c", "showOutput": true } ]` # 'name', 'userMessageToken', 'assistantMessageToken' are required MODELS=`[ { "name": "${MODEL_NAME}", "chatPromptTemplate": "None", "preprompt": "The assistant is Salamandra, created by the Language Technologies Unit of the Barcelona Supercomputing Center. Salamandra's knowledge base was last updated on March 2024. Salamandra is a multilingual model, but for now it has been instructed only in Catalan, English and Spanish. It answers questions about events prior to and after March 2024 the way a highly informed individual would if they were talking to someone from the above date, and can let the human know this when relevant. It should give concise responses to very simple questions, but provide thorough responses to more complex and open-ended questions. It cannot open URLs, links, or videos, so if it seems as though the interlocutor is expecting Salamandra to do so, it clarifies the situation and asks the human to paste the relevant text or image content directly into the conversation. If it is asked to assist with tasks involving the expression of views held by a significant number of people, Salamandra provides assistance with the task even if it personally disagrees with the views being expressed, but follows this with a discussion of broader perspectives. Salamandra doesn't engage in stereotyping, including the negative stereotyping of majority groups. If asked about controversial topics, Salamandra tries to provide careful thoughts and objective information without downplaying its harmful content or implying that there are reasonable perspectives on both sides. If Salamandra's response contains a lot of precise information about a very obscure person, object, or topic - the kind of information that is unlikely to be found more than once or twice on the internet - Salamandra ends its response with a succinct reminder that it may hallucinate in response to questions like this, and it uses the term ‘hallucinate' to describe this as the user will understand what it means. It doesn't add this caveat if the information in its response is likely to exist on the internet many times, even if the person, object, or topic is relatively obscure. It is happy to help with writing, analysis, question answering, math, coding, and all sorts of other tasks. It uses markdown for coding. It does not mention this information about itself unless the information is directly pertinent to the human's query. The development of Salamandra was financed by the AINA project of the Generalitat de Catalunya", "promptExamples": [ { "title": "How does an airplane produce lift?", "prompt": "How does an airplane produce lift in order to fly?" }, { "title": "¿Qué és un meme?", "prompt": "¿Qué és un meme y qué historia hay detrás del nombre?" }, { "title": "Resumeix una notícia", "prompt": "Resumeix aquesta notícia en menys de 20 paraules: 'Tropes de l’exèrcit d’Israel han començat aquesta matinada la invasió del Líban, en una maniobra anticipada pels atacs de les darreres hores, tant a la capital, Beirut, com a la zona sud del país. Les tropes han començat a travessar la frontera internacional a les dues de la matinada, hora libanesa. Segons l’exèrcit israelià és una 'operació limitada' que pretén eliminar l’Hesbol·là, molt actiu en aquesta zona. Ara com ara, l’exèrcit libanès ha optat per recloure les tropes dins les casernes, a fi d’evitar un conflicte directe entre tots dos exèrcits. El Llevant podria entrar en una guerra regional de conseqüències impossibles de preveure. L’exèrcit israelià ha confirmat que les operacions havien estat aprovades pel gabinet de guerra, que ahir es va reunir fins tard. En un comunicat oficial ha avisat que l’artilleria i l’aviació es mantindrien actives en suport de les tropes que ja han travessat la frontera.' " } ], "tools": false, "endpoints": [ { "type": "openai", "baseURL": "${BASEURL}/v1", "apiKey": "${HF_TOKEN}" } ], "parameters": { "temperature": 0.4, "repetition_penalty": 2, "max_new_tokens": 2000, }, "extraBody":{ "presence_penalty":-0.9 } }, { "name": "BSC-LT/salamandra-7b-instruct_tools", "chatPromptTemplate": "None", "promptExamples": [ { "title": "How does an airplane produce lift?", "prompt": "How does an airplane produce lift in order to fly?" }, { "title": "¿Qué és un meme?", "prompt": "¿Qué és un meme y qué historia hay detrás del nombre?" }, { "title": "Resumeix una notícia", "prompt": "Resumeix aquesta notícia en menys de 20 paraules: 'Tropes de l’exèrcit d’Israel han començat aquesta matinada la invasió del Líban, en una maniobra anticipada pels atacs de les darreres hores, tant a la capital, Beirut, com a la zona sud del país. Les tropes han començat a travessar la frontera internacional a les dues de la matinada, hora libanesa. Segons l’exèrcit israelià és una 'operació limitada' que pretén eliminar l’Hesbol·là, molt actiu en aquesta zona. Ara com ara, l’exèrcit libanès ha optat per recloure les tropes dins les casernes, a fi d’evitar un conflicte directe entre tots dos exèrcits. El Llevant podria entrar en una guerra regional de conseqüències impossibles de preveure. L’exèrcit israelià ha confirmat que les operacions havien estat aprovades pel gabinet de guerra, que ahir es va reunir fins tard. En un comunicat oficial ha avisat que l’artilleria i l’aviació es mantindrien actives en suport de les tropes que ja han travessat la frontera.' " } ], "tools": true, "endpoints": [ { "type": "openai", "baseURL": "${BASEURL_SALAMANDRA_TOOLS}/v1", "apiKey": "${HF_TOKEN}" } ], "parameters": { "temperature": 0.3, "repetition_penalty": 2, "max_new_tokens": 4000, }, "extraBody":{ "presence_penalty":2 } } ]` #Repetition penality = presence_penalty + 2 # FOR TGI # TASK_MODEL=`{ # "name": "vllm", # "preprompt": "", # "chatPromptTemplate": "{{#if @root.preprompt}}system\n{{@root.preprompt}}\n{{/if}}{{#each messages}}{{#ifUser}}{{content}}\n\n{{/ifUser}}{{#ifAssistant}}{{content}}\n{{/ifAssistant}}{{/each}}", # "promptExamples": [ # { # "title": "Python Fibonacci", # "prompt": "¿Cómo puedo escribir una función en Python para generar el n-ésimo número de Fibonacci?" # }, # { # "title": "¿Qué es un meme?", # "prompt": "¿Qué es un meme y cuál es la historia detrás de esta palabra?" # }, # { # "title": "Expresiones regulares", # "prompt": "Crea una expresión regular para extraer fechas de registros" # } # ], # "endpoints": [ # { # "type": "openai", # "baseURL": "${BASEURL}/v1", # "apiKey": "${HF_TOKEN}" # } # ], # "parameters": { # "temperature": 0.4, # "repetition_penalty": 2.0, # "max_new_tokens": 200, # } # }` PUBLIC_ANNOUNCEMENT_BANNERS=`[ { "title": "We’ve integrated function calling! 🤖", "linkTitle": "", "linkHref": "" } ]` PARQUET_EXPORT_DATASET= PARQUET_EXPORT_HF_TOKEN= PARQUET_EXPORT_SECRET= PUBLIC_APP_NAME=${APP_NAME} # name used as title throughout the app PUBLIC_APP_ASSETS=chatui # used to find logos & favicons in static/$PUBLIC_APP_ASSETS PUBLIC_APP_COLOR=${APP_COLOR} # can be any of tailwind colors: https://tailwindcss.com/docs/customizing-colors#default-color-palette PUBLIC_APP_DATA_SHARING=#set to 1 to enable disclaimers & options about data sharing PUBLIC_APP_DATA_DISCLAIMER=#set to 1 to enable disclaimers about model outputs