Parcourir la source

Merge pull request #810 from open-webui/config

feat: config.json support
Timothy Jaeryang Baek il y a 1 an
Parent
commit
c2759a1141
3 fichiers modifiés avec 54 ajouts et 4 suppressions
  1. 1 0
      backend/.gitignore
  2. 19 4
      backend/config.py
  3. 34 0
      backend/data/config.json

+ 1 - 0
backend/.gitignore

@@ -7,4 +7,5 @@ uploads
 _test
 Pipfile
 data/*
+!data/config.json
 .webui_secret_key

+ 19 - 4
backend/config.py

@@ -5,6 +5,8 @@ from secrets import token_bytes
 from base64 import b64encode
 from constants import ERROR_MESSAGES
 from pathlib import Path
+import json
+
 
 try:
     from dotenv import load_dotenv, find_dotenv
@@ -28,6 +30,12 @@ ENV = os.environ.get("ENV", "dev")
 DATA_DIR = str(Path(os.getenv("DATA_DIR", "./data")).resolve())
 FRONTEND_BUILD_DIR = str(Path(os.getenv("FRONTEND_BUILD_DIR", "../build")))
 
+try:
+    with open(f"{DATA_DIR}/config.json", "r") as f:
+        CONFIG_DATA = json.load(f)
+except:
+    CONFIG_DATA = {}
+
 ####################################
 # File Upload DIR
 ####################################
@@ -80,9 +88,14 @@ if OPENAI_API_BASE_URL == "":
 
 ENABLE_SIGNUP = os.environ.get("ENABLE_SIGNUP", True)
 DEFAULT_MODELS = os.environ.get("DEFAULT_MODELS", None)
-DEFAULT_PROMPT_SUGGESTIONS = os.environ.get(
-    "DEFAULT_PROMPT_SUGGESTIONS",
-    [
+
+
+DEFAULT_PROMPT_SUGGESTIONS = (
+    CONFIG_DATA["ui"]["prompt_suggestions"]
+    if "ui" in CONFIG_DATA
+    and "prompt_suggestions" in CONFIG_DATA["ui"]
+    and type(CONFIG_DATA["ui"]["prompt_suggestions"]) is list
+    else [
         {
             "title": ["Help me study", "vocabulary for a college entrance exam"],
             "content": "Help me study vocabulary: write a sentence for me to fill in the blank, and I'll try to pick the correct option.",
@@ -99,8 +112,10 @@ DEFAULT_PROMPT_SUGGESTIONS = os.environ.get(
             "title": ["Show me a code snippet", "of a website's sticky header"],
             "content": "Show me a code snippet of a website's sticky header in CSS and JavaScript.",
         },
-    ],
+    ]
 )
+
+
 DEFAULT_USER_ROLE = "pending"
 USER_PERMISSIONS = {"chat": {"deletion": True}}
 

+ 34 - 0
backend/data/config.json

@@ -0,0 +1,34 @@
+{
+    "ui": {
+        "prompt_suggestions": [
+            {
+                "title": [
+                    "Help me study",
+                    "vocabulary for a college entrance exam"
+                ],
+                "content": "Help me study vocabulary: write a sentence for me to fill in the blank, and I'll try to pick the correct option."
+            },
+            {
+                "title": [
+                    "Give me ideas",
+                    "for what to do with my kids' art"
+                ],
+                "content": "What are 5 creative things I could do with my kids' art? I don't want to throw them away, but it's also so much clutter."
+            },
+            {
+                "title": [
+                    "Tell me a fun fact",
+                    "about the Roman Empire"
+                ],
+                "content": "Tell me a random fun fact about the Roman Empire"
+            },
+            {
+                "title": [
+                    "Show me a code snippet",
+                    "of a website's sticky header"
+                ],
+                "content": "Show me a code snippet of a website's sticky header in CSS and JavaScript."
+            },
+        ]
+    }
+}