From 057f21d8d7e254a31d3958bcaed7056c70b8fe7c Mon Sep 17 00:00:00 2001 From: 3x3cut0r Date: Sat, 9 Mar 2024 10:59:06 +0100 Subject: [PATCH] .env removed --- docker/compose/librechat/.env | 360 ------------------ .../librechat/docker-compose.override.yml | 53 ++- docker/compose/librechat/librechat.yaml | 112 ++++++ docker/compose/librechat/litellm/config.yaml | 20 - 4 files changed, 137 insertions(+), 408 deletions(-) delete mode 100644 docker/compose/librechat/.env create mode 100644 docker/compose/librechat/librechat.yaml delete mode 100644 docker/compose/librechat/litellm/config.yaml diff --git a/docker/compose/librechat/.env b/docker/compose/librechat/.env deleted file mode 100644 index 256b6a9..0000000 --- a/docker/compose/librechat/.env +++ /dev/null @@ -1,360 +0,0 @@ -#=====================================================================# -# LibreChat Configuration # -#=====================================================================# -# Please refer to the reference documentation for assistance # -# with configuring your LibreChat environment. The guide is # -# available both online and within your local LibreChat # -# directory: # -# Online: https://docs.librechat.ai/install/configuration/dotenv.html # -# Locally: ./docs/install/configuration/dotenv.md # -#=====================================================================# - -#==================================================# -# Server Configuration # -#==================================================# - -HOST=localhost -PORT=3080 - -MONGO_URI=mongodb://127.0.0.1:27017/LibreChat - -DOMAIN_CLIENT=http://localhost:3080 -DOMAIN_SERVER=http://localhost:3080 - -NO_INDEX=true - -#===============# -# Debug Logging # -#===============# - -DEBUG_LOGGING=true -DEBUG_CONSOLE=false - -#=============# -# Permissions # -#=============# - -UID=1000 -GID=1000 - -#===============# -# Configuration # -#===============# - -# CONFIG_PATH="/alternative/path/to/librechat.yaml" - -#===================================================# -# Endpoints # -#===================================================# - -# ENDPOINTS=openAI,assistants,azureOpenAI,bingAI,google,gptPlugins,anthropic - -PROXY= - -#===================================# -# Known Endpoints - librechat.yaml # -#===================================# -# https://docs.librechat.ai/install/configuration/ai_endpoints.html - -# GROQ_API_KEY= -# MISTRAL_API_KEY= -# OPENROUTER_KEY= -# ANYSCALE_API_KEY= -# FIREWORKS_API_KEY= -# PERPLEXITY_API_KEY= -# TOGETHERAI_API_KEY= - -#============# -# Anthropic # -#============# - -ANTHROPIC_API_KEY=user_provided -# ANTHROPIC_MODELS=claude-3-opus-20240229,claude-3-sonnet-20240229,claude-2.1,claude-2,claude-1.2,claude-1,claude-1-100k,claude-instant-1,claude-instant-1-100k - -#============# -# Azure # -#============# - - -# Note: these variables are DEPRECATED -# Use the `librechat.yaml` configuration for `azureOpenAI` instead -# You may also continue to use them if you opt out of using the `librechat.yaml` configuration - -# AZURE_OPENAI_DEFAULT_MODEL=gpt-3.5-turbo # Deprecated -# AZURE_OPENAI_MODELS=gpt-3.5-turbo,gpt-4 # Deprecated -# AZURE_USE_MODEL_AS_DEPLOYMENT_NAME=TRUE # Deprecated -# AZURE_API_KEY= # Deprecated -# AZURE_OPENAI_API_INSTANCE_NAME= # Deprecated -# AZURE_OPENAI_API_DEPLOYMENT_NAME= # Deprecated -# AZURE_OPENAI_API_VERSION= # Deprecated -# AZURE_OPENAI_API_COMPLETIONS_DEPLOYMENT_NAME= # Deprecated -# AZURE_OPENAI_API_EMBEDDINGS_DEPLOYMENT_NAME= # Deprecated -# PLUGINS_USE_AZURE="true" # Deprecated - -#============# -# BingAI # -#============# - -BINGAI_TOKEN=user_provided -# BINGAI_HOST=https://cn.bing.com - -#============# -# Google # -#============# - -GOOGLE_KEY=user_provided -# GOOGLE_MODELS=gemini-pro,gemini-pro-vision,chat-bison,chat-bison-32k,codechat-bison,codechat-bison-32k,text-bison,text-bison-32k,text-unicorn,code-gecko,code-bison,code-bison-32k -# GOOGLE_REVERSE_PROXY= - -#============# -# OpenAI # -#============# - -OPENAI_API_KEY=user_provided -OPENAI_MODELS=openai/mistral-medium,openai/mistral-small,openai/mistral-tiny,gpt-3.5-turbo-0125,gpt-3.5-turbo-0301,gpt-3.5-turbo,gpt-4,gpt-4-0613,gpt-4-vision-preview,gpt-3.5-turbo-0613,gpt-3.5-turbo-16k-0613,gpt-4-0125-preview,gpt-4-turbo-preview,gpt-4-1106-preview,gpt-3.5-turbo-1106,gpt-3.5-turbo-instruct,gpt-3.5-turbo-instruct-0914,gpt-3.5-turbo-16k - -DEBUG_OPENAI=false - -# TITLE_CONVO=false -# OPENAI_TITLE_MODEL=gpt-3.5-turbo - -# OPENAI_SUMMARIZE=true -# OPENAI_SUMMARY_MODEL=gpt-3.5-turbo - -# OPENAI_FORCE_PROMPT=true - -OPENAI_REVERSE_PROXY=http://litellm:8000/v1/chat/completions - -# OPENAI_ORGANIZATION= - -#====================# -# Assistants API # -#====================# - -# ASSISTANTS_API_KEY= -# ASSISTANTS_BASE_URL= -# ASSISTANTS_MODELS=gpt-3.5-turbo-0125,gpt-3.5-turbo-16k-0613,gpt-3.5-turbo-16k,gpt-3.5-turbo,gpt-4,gpt-4-0314,gpt-4-32k-0314,gpt-4-0613,gpt-3.5-turbo-0613,gpt-3.5-turbo-1106,gpt-4-0125-preview,gpt-4-turbo-preview,gpt-4-1106-preview - -#============# -# OpenRouter # -#============# - -# OPENROUTER_API_KEY= - -#============# -# Plugins # -#============# - -# PLUGIN_MODELS=gpt-4,gpt-4-turbo-preview,gpt-4-0125-preview,gpt-4-1106-preview,gpt-4-0613,gpt-3.5-turbo,gpt-3.5-turbo-0125,gpt-3.5-turbo-1106,gpt-3.5-turbo-0613 - -DEBUG_PLUGINS=true - -CREDS_KEY=f34be427ebb29de8d88c107a71546019685ed8b241d8f2ed00c3df97ad2566f0 -CREDS_IV=e2341419ec3dd3d19b13a1a87fafcbfb - -# Azure AI Search -#----------------- -AZURE_AI_SEARCH_SERVICE_ENDPOINT= -AZURE_AI_SEARCH_INDEX_NAME= -AZURE_AI_SEARCH_API_KEY= - -AZURE_AI_SEARCH_API_VERSION= -AZURE_AI_SEARCH_SEARCH_OPTION_QUERY_TYPE= -AZURE_AI_SEARCH_SEARCH_OPTION_TOP= -AZURE_AI_SEARCH_SEARCH_OPTION_SELECT= - -# DALL·E -#---------------- -# DALLE_API_KEY= -# DALLE3_API_KEY= -# DALLE2_API_KEY= -# DALLE3_SYSTEM_PROMPT= -# DALLE2_SYSTEM_PROMPT= -# DALLE_REVERSE_PROXY= -# DALLE3_BASEURL= -# DALLE2_BASEURL= - -# DALL·E (via Azure OpenAI) -# Note: requires some of the variables above to be set -#---------------- -# DALLE3_AZURE_API_VERSION= -# DALLE2_AZURE_API_VERSION= - -# Google -#----------------- -GOOGLE_API_KEY= -GOOGLE_CSE_ID= - -# SerpAPI -#----------------- -SERPAPI_API_KEY= - -# Stable Diffusion -#----------------- -SD_WEBUI_URL=http://host.docker.internal:7860 - -# Tavily -#----------------- -TAVILY_API_KEY= - -# Traversaal -#----------------- -TRAVERSAAL_API_KEY= - -# WolframAlpha -#----------------- -WOLFRAM_APP_ID= - -# Zapier -#----------------- -ZAPIER_NLA_API_KEY= - -#==================================================# -# Search # -#==================================================# - -SEARCH=true -MEILI_NO_ANALYTICS=true -MEILI_HOST=http://0.0.0.0:7700 -MEILI_MASTER_KEY=DrhYf7zENyR6AlUCKmnz0eYASOQdl6zxH7s7MKFSfFCt - -#===================================================# -# User System # -#===================================================# - -#========================# -# Moderation # -#========================# - -OPENAI_MODERATION=false -OPENAI_MODERATION_API_KEY= -# OPENAI_MODERATION_REVERSE_PROXY= - -BAN_VIOLATIONS=true -BAN_DURATION=1000 * 60 * 60 * 2 -BAN_INTERVAL=20 - -LOGIN_VIOLATION_SCORE=1 -REGISTRATION_VIOLATION_SCORE=1 -CONCURRENT_VIOLATION_SCORE=1 -MESSAGE_VIOLATION_SCORE=1 -NON_BROWSER_VIOLATION_SCORE=20 - -LOGIN_MAX=7 -LOGIN_WINDOW=5 -REGISTER_MAX=5 -REGISTER_WINDOW=60 - -LIMIT_CONCURRENT_MESSAGES=true -CONCURRENT_MESSAGE_MAX=2 - -LIMIT_MESSAGE_IP=true -MESSAGE_IP_MAX=40 -MESSAGE_IP_WINDOW=1 - -LIMIT_MESSAGE_USER=false -MESSAGE_USER_MAX=40 -MESSAGE_USER_WINDOW=1 - -ILLEGAL_MODEL_REQ_SCORE=5 - -#========================# -# Balance # -#========================# - -CHECK_BALANCE=false - -#========================# -# Registration and Login # -#========================# - -ALLOW_EMAIL_LOGIN=true -ALLOW_REGISTRATION=true -ALLOW_SOCIAL_LOGIN=false -ALLOW_SOCIAL_REGISTRATION=false - -SESSION_EXPIRY=1000 * 60 * 15 -REFRESH_TOKEN_EXPIRY=(1000 * 60 * 60 * 24) * 7 - -JWT_SECRET=16f8c0ef4a5d391b26034086c628469d3f9f497f08163ab9b40137092f2909ef -JWT_REFRESH_SECRET=eaa5191f2914e30b9387fd84e254e4ba6fc51b4654968a9b0803b456a54b8418 - -# Discord -DISCORD_CLIENT_ID= -DISCORD_CLIENT_SECRET= -DISCORD_CALLBACK_URL=/oauth/discord/callback - -# Facebook -FACEBOOK_CLIENT_ID= -FACEBOOK_CLIENT_SECRET= -FACEBOOK_CALLBACK_URL=/oauth/facebook/callback - -# GitHub -GITHUB_CLIENT_ID= -GITHUB_CLIENT_SECRET= -GITHUB_CALLBACK_URL=/oauth/github/callback - -# Google -GOOGLE_CLIENT_ID= -GOOGLE_CLIENT_SECRET= -GOOGLE_CALLBACK_URL=/oauth/google/callback - -# OpenID -OPENID_CLIENT_ID= -OPENID_CLIENT_SECRET= -OPENID_ISSUER= -OPENID_SESSION_SECRET= -OPENID_SCOPE="openid profile email" -OPENID_CALLBACK_URL=/oauth/openid/callback - -OPENID_BUTTON_LABEL= -OPENID_IMAGE_URL= - -#========================# -# Email Password Reset # -#========================# - -EMAIL_SERVICE= -EMAIL_HOST= -EMAIL_PORT=25 -EMAIL_ENCRYPTION= -EMAIL_ENCRYPTION_HOSTNAME= -EMAIL_ALLOW_SELFSIGNED= -EMAIL_USERNAME= -EMAIL_PASSWORD= -EMAIL_FROM_NAME= -EMAIL_FROM=noreply@librechat.ai - -#========================# -# Firebase CDN # -#========================# - -FIREBASE_API_KEY= -FIREBASE_AUTH_DOMAIN= -FIREBASE_PROJECT_ID= -FIREBASE_STORAGE_BUCKET= -FIREBASE_MESSAGING_SENDER_ID= -FIREBASE_APP_ID= - -#===================================================# -# UI # -#===================================================# - -APP_TITLE=LibreChat -# CUSTOM_FOOTER="My custom footer" -HELP_AND_FAQ_URL=https://librechat.ai - -# SHOW_BIRTHDAY_ICON=true - -#==================================================# -# Others # -#==================================================# -# You should leave the following commented out # - -# NODE_ENV= - -# REDIS_URI= -# USE_REDIS= - -# E2E_USER_EMAIL= -# E2E_USER_PASSWORD= \ No newline at end of file diff --git a/docker/compose/librechat/docker-compose.override.yml b/docker/compose/librechat/docker-compose.override.yml index 064865d..d84aa3c 100644 --- a/docker/compose/librechat/docker-compose.override.yml +++ b/docker/compose/librechat/docker-compose.override.yml @@ -1,35 +1,32 @@ version: '3.9' services: + api: + environment: + HOST: localhost + PORT: 3080 + MONGO_URI: 'mongodb://127.0.0.1:27017/LibreChat' + DOMAIN_CLIENT: 'http://localhost:3080' + DOMAIN_SERVER: 'http://localhost:3080' + UID: 1000 + GID: 1000 + APP_TITLE: 'LibreChat' + CONFIG_PATH: '/app/librechat.yaml' + SEARCH: true + MEILI_NO_ANALYTICS: true + MEILI_HOST: 'http://0.0.0.0:7700' + MEILI_MASTER_KEY: '' + ANTHROPIC_API_KEY: 'user_provided' + BINGAI_TOKEN: 'user_provided' + GOOGLE_KEY: 'user_provided' + OPENAI_API_KEY: 'user_provided' + # OPENAI_REVERSE_PROXY: 'http://litellm:8000/v1/chat/completions' + MISTRAL_API_KEY: 'user_provided' + OPENROUTER_KEY: 'user_provided' + volumes: + - ./librechat.yaml:/app/librechat.yaml meilisearch: container_name: chat-meilisearch image: getmeili/meilisearch:v1.6.2 - litellm: - container_name: litellm - platform: linux/amd64 - image: ghcr.io/berriai/litellm:main-v1.30.0 - volumes: - - ./litellm/config.yaml:/app/config.yaml - extra_hosts: - - 'host.docker.internal:host-gateway' - # ports: - # - "8000:8000" - command: --config /app/config.yaml - --port 8000 - --host 0.0.0.0 - --debug environment: - REDIS_HOST: 'redis' - REDIS_PORT: '6379' - REDIS_PASSWORD: '' - OPENAI_API_KEY: 'sk-1234' - HF_TOKEN: 'hf_abcd' - MISTRAL_API_KEY: 'MSx1234' - redis: - container_name: redis - image: redis:7-alpine - command: sh -c redis-server --appendonly yes --requirepass $$REDIS_PASSWORD - environment: - REDIS_PASSWORD: - volumes: - - ./redis:/data + MEILI_MASTER_KEY: 'MASTER_KEY' diff --git a/docker/compose/librechat/librechat.yaml b/docker/compose/librechat/librechat.yaml new file mode 100644 index 0000000..e403d80 --- /dev/null +++ b/docker/compose/librechat/librechat.yaml @@ -0,0 +1,112 @@ +# For more information, see the Configuration Guide: +# https://docs.librechat.ai/install/configuration/custom_config.html + +# Configuration version (required) +version: 1.0.4 + +# Cache settings: Set to true to enable caching +cache: true + +# Example Registration Object Structure (optional) +registration: + socialLogins: ['github', 'google', 'discord', 'openid', 'facebook'] + # allowedDomains: + # - "gmail.com" + +# fileConfig: +# endpoints: +# assistants: +# fileLimit: 5 +# fileSizeLimit: 10 # Maximum size for an individual file in MB +# totalSizeLimit: 50 # Maximum total size for all files in a single request in MB +# supportedMimeTypes: +# - "image/.*" +# - "application/pdf" +# openAI: +# disabled: true # Disables file uploading to the OpenAI endpoint +# default: +# totalSizeLimit: 20 +# YourCustomEndpointName: +# fileLimit: 2 +# fileSizeLimit: 5 +# serverFileSizeLimit: 100 # Global server file size limit in MB +# avatarSizeLimit: 2 # Limit for user avatar image size in MB +# rateLimits: +# fileUploads: +# ipMax: 100 +# ipWindowInMinutes: 60 # Rate limit window for file uploads per IP +# userMax: 50 +# userWindowInMinutes: 60 # Rate limit window for file uploads per user + +# Definition of custom endpoints +endpoints: + # assistants: + # disableBuilder: false # Disable Assistants Builder Interface by setting to `true` + # pollIntervalMs: 750 # Polling interval for checking assistant updates + # timeoutMs: 180000 # Timeout for assistant operations + # # Should only be one or the other, either `supportedIds` or `excludedIds` + # supportedIds: ["asst_supportedAssistantId1", "asst_supportedAssistantId2"] + # # excludedIds: ["asst_excludedAssistantId"] + custom: + # Mistral AI API + - name: 'Mistral' # Unique name for the endpoint + # For `apiKey` and `baseURL`, you can use environment variables that you define. + # recommended environment variables: + apiKey: '${MISTRAL_API_KEY}' + baseURL: 'https://api.mistral.ai/v1' + + # Models configuration + models: + # List of default models to use. At least one value is required. + default: ['mistral-tiny', 'mistral-small', 'mistral-medium'] + # Fetch option: Set to true to fetch models from API. + fetch: true # Defaults to false. + + # Optional configurations + + # Title Conversation setting + titleConvo: true # Set to true to enable title conversation + + # Title Method: Choose between "completion" or "functions". + # titleMethod: "completion" # Defaults to "completion" if omitted. + + # Title Model: Specify the model to use for titles. + titleModel: 'mistral-tiny' # Defaults to "gpt-3.5-turbo" if omitted. + + # Summarize setting: Set to true to enable summarization. + # summarize: false + + # Summary Model: Specify the model to use if summarization is enabled. + # summaryModel: "mistral-tiny" # Defaults to "gpt-3.5-turbo" if omitted. + + # Force Prompt setting: If true, sends a `prompt` parameter instead of `messages`. + # forcePrompt: false + + # The label displayed for the AI model in messages. + modelDisplayLabel: 'Mistral' # Default is "AI" when not set. + + # Add additional parameters to the request. Default params will be overwritten. + # addParams: + # safe_prompt: true # This field is specific to Mistral AI: https://docs.mistral.ai/api/ + + # Drop Default params parameters from the request. See default params in guide linked below. + # NOTE: For Mistral, it is necessary to drop the following parameters or you will encounter a 422 Error: + dropParams: ['stop', 'user', 'frequency_penalty', 'presence_penalty'] + + # OpenRouter.ai + - name: 'OpenRouter' + # For `apiKey` and `baseURL`, you can use environment variables that you define. + # recommended environment variables: + # Known issue: you should not use `OPENROUTER_API_KEY` as it will then override the `openAI` endpoint to use OpenRouter as well. + apiKey: '${OPENROUTER_KEY}' + baseURL: 'https://openrouter.ai/api/v1' + models: + default: ['gpt-3.5-turbo'] + fetch: true + titleConvo: true + titleModel: 'gpt-3.5-turbo' + # Recommended: Drop the stop parameter from the request as Openrouter models use a variety of stop tokens. + dropParams: ['stop'] + modelDisplayLabel: 'OpenRouter' +# See the Custom Configuration Guide for more information: +# https://docs.librechat.ai/install/configuration/custom_config.html diff --git a/docker/compose/librechat/litellm/config.yaml b/docker/compose/librechat/litellm/config.yaml deleted file mode 100644 index b250e5d..0000000 --- a/docker/compose/librechat/litellm/config.yaml +++ /dev/null @@ -1,20 +0,0 @@ -model_list: - - model_name: mistral-tiny - litellm_params: - model: openai/mistral-tiny - api_key: - api_base: https://api.mistral.ai/v1 - - model_name: mistral-small - litellm_params: - model: openai/mistral-small - api_key: - api_base: https://api.mistral.ai/v1 - - model_name: mistral-medium - litellm_params: - model: openai/mistral-medium - api_key: - api_base: https://api.mistral.ai/v1 - -litellm_settings: - drop_params: False - set_verbose: False