Browse Source

Merge branch 'dev' into feat/backend-web-search

Timothy Jaeryang Baek 1 year ago
parent
commit
635951b55c
56 changed files with 2110 additions and 1015 deletions
  1. 10 1
      .github/workflows/integration-test.yml
  2. 37 10
      backend/apps/rag/main.py
  3. 27 22
      backend/apps/rag/utils.py
  4. 20 11
      backend/config.py
  5. 36 3
      backend/main.py
  6. 9 0
      src/app.css
  7. 5 1
      src/lib/apis/ollama/index.ts
  8. 3 1
      src/lib/apis/openai/index.ts
  9. 3 2
      src/lib/apis/rag/index.ts
  10. 11 0
      src/lib/apis/streaming/index.ts
  11. 77 0
      src/lib/components/chat/Messages/CitationsModal.svelte
  12. 473 420
      src/lib/components/chat/Messages/ResponseMessage.svelte
  13. 1 1
      src/lib/components/chat/ModelSelector.svelte
  14. 2 2
      src/lib/components/chat/ModelSelector/Selector.svelte
  15. 2 2
      src/lib/components/chat/Settings/Account.svelte
  16. 1 1
      src/lib/components/chat/Settings/Connections.svelte
  17. 10 6
      src/lib/components/chat/ShareChatModal.svelte
  18. 1 1
      src/lib/components/common/ImagePreview.svelte
  19. 126 0
      src/lib/components/documents/Settings/ChunkParams.svelte
  20. 209 393
      src/lib/components/documents/Settings/General.svelte
  21. 119 0
      src/lib/components/documents/Settings/QueryParams.svelte
  22. 74 0
      src/lib/components/documents/Settings/WebParams.svelte
  23. 102 8
      src/lib/components/documents/SettingsModal.svelte
  24. 1 1
      src/lib/components/layout/Sidebar.svelte
  25. 3 1
      src/lib/components/layout/Sidebar/ArchivedChatsModal.svelte
  26. 3 3
      src/lib/components/layout/Sidebar/ChatMenu.svelte
  27. 26 4
      src/lib/i18n/locales/ar-BH/translation.json
  28. 26 4
      src/lib/i18n/locales/bg-BG/translation.json
  29. 26 4
      src/lib/i18n/locales/bn-BD/translation.json
  30. 26 4
      src/lib/i18n/locales/ca-ES/translation.json
  31. 33 11
      src/lib/i18n/locales/de-DE/translation.json
  32. 26 4
      src/lib/i18n/locales/dg-DG/translation.json
  33. 26 4
      src/lib/i18n/locales/en-GB/translation.json
  34. 26 4
      src/lib/i18n/locales/en-US/translation.json
  35. 26 4
      src/lib/i18n/locales/es-ES/translation.json
  36. 26 4
      src/lib/i18n/locales/fa-IR/translation.json
  37. 26 4
      src/lib/i18n/locales/fr-CA/translation.json
  38. 26 4
      src/lib/i18n/locales/fr-FR/translation.json
  39. 26 4
      src/lib/i18n/locales/it-IT/translation.json
  40. 26 4
      src/lib/i18n/locales/ja-JP/translation.json
  41. 26 4
      src/lib/i18n/locales/ka-GE/translation.json
  42. 26 4
      src/lib/i18n/locales/ko-KR/translation.json
  43. 26 4
      src/lib/i18n/locales/nl-NL/translation.json
  44. 26 4
      src/lib/i18n/locales/pl-PL/translation.json
  45. 26 4
      src/lib/i18n/locales/pt-BR/translation.json
  46. 26 4
      src/lib/i18n/locales/pt-PT/translation.json
  47. 26 4
      src/lib/i18n/locales/ru-RU/translation.json
  48. 26 4
      src/lib/i18n/locales/sv-SE/translation.json
  49. 26 4
      src/lib/i18n/locales/tr-TR/translation.json
  50. 26 4
      src/lib/i18n/locales/uk-UA/translation.json
  51. 26 4
      src/lib/i18n/locales/vi-VN/translation.json
  52. 26 4
      src/lib/i18n/locales/zh-CN/translation.json
  53. 26 4
      src/lib/i18n/locales/zh-TW/translation.json
  54. 15 3
      src/routes/(app)/+page.svelte
  55. 6 4
      src/routes/(app)/admin/+page.svelte
  56. 15 3
      src/routes/(app)/c/[id]/+page.svelte

+ 10 - 1
.github/workflows/integration-test.yml

@@ -20,7 +20,16 @@ jobs:
 
 
       - name: Build and run Compose Stack
       - name: Build and run Compose Stack
         run: |
         run: |
-          docker compose up --detach --build
+          docker compose --file docker-compose.yaml --file docker-compose.api.yaml up --detach --build
+          
+      - name: Wait for Ollama to be up
+        timeout-minutes: 5
+        run: |
+          until curl --output /dev/null --silent --fail http://localhost:11434; do
+            printf '.'
+            sleep 1
+          done
+          echo "Service is up!"
 
 
       - name: Preload Ollama model
       - name: Preload Ollama model
         run: |
         run: |

+ 37 - 10
backend/apps/rag/main.py

@@ -80,6 +80,7 @@ from config import (
     RAG_EMBEDDING_MODEL_AUTO_UPDATE,
     RAG_EMBEDDING_MODEL_AUTO_UPDATE,
     RAG_EMBEDDING_MODEL_TRUST_REMOTE_CODE,
     RAG_EMBEDDING_MODEL_TRUST_REMOTE_CODE,
     ENABLE_RAG_HYBRID_SEARCH,
     ENABLE_RAG_HYBRID_SEARCH,
+    ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION,
     RAG_RERANKING_MODEL,
     RAG_RERANKING_MODEL,
     PDF_EXTRACT_IMAGES,
     PDF_EXTRACT_IMAGES,
     RAG_RERANKING_MODEL_AUTO_UPDATE,
     RAG_RERANKING_MODEL_AUTO_UPDATE,
@@ -91,7 +92,7 @@ from config import (
     CHUNK_SIZE,
     CHUNK_SIZE,
     CHUNK_OVERLAP,
     CHUNK_OVERLAP,
     RAG_TEMPLATE,
     RAG_TEMPLATE,
-    ENABLE_LOCAL_WEB_FETCH,
+    ENABLE_RAG_LOCAL_WEB_FETCH,
 )
 )
 
 
 from constants import ERROR_MESSAGES
 from constants import ERROR_MESSAGES
@@ -105,6 +106,9 @@ app.state.TOP_K = RAG_TOP_K
 app.state.RELEVANCE_THRESHOLD = RAG_RELEVANCE_THRESHOLD
 app.state.RELEVANCE_THRESHOLD = RAG_RELEVANCE_THRESHOLD
 
 
 app.state.ENABLE_RAG_HYBRID_SEARCH = ENABLE_RAG_HYBRID_SEARCH
 app.state.ENABLE_RAG_HYBRID_SEARCH = ENABLE_RAG_HYBRID_SEARCH
+app.state.ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION = (
+    ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION
+)
 
 
 app.state.CHUNK_SIZE = CHUNK_SIZE
 app.state.CHUNK_SIZE = CHUNK_SIZE
 app.state.CHUNK_OVERLAP = CHUNK_OVERLAP
 app.state.CHUNK_OVERLAP = CHUNK_OVERLAP
@@ -114,6 +118,7 @@ app.state.RAG_EMBEDDING_MODEL = RAG_EMBEDDING_MODEL
 app.state.RAG_RERANKING_MODEL = RAG_RERANKING_MODEL
 app.state.RAG_RERANKING_MODEL = RAG_RERANKING_MODEL
 app.state.RAG_TEMPLATE = RAG_TEMPLATE
 app.state.RAG_TEMPLATE = RAG_TEMPLATE
 
 
+
 app.state.OPENAI_API_BASE_URL = RAG_OPENAI_API_BASE_URL
 app.state.OPENAI_API_BASE_URL = RAG_OPENAI_API_BASE_URL
 app.state.OPENAI_API_KEY = RAG_OPENAI_API_KEY
 app.state.OPENAI_API_KEY = RAG_OPENAI_API_KEY
 
 
@@ -313,6 +318,7 @@ async def get_rag_config(user=Depends(get_admin_user)):
             "chunk_size": app.state.CHUNK_SIZE,
             "chunk_size": app.state.CHUNK_SIZE,
             "chunk_overlap": app.state.CHUNK_OVERLAP,
             "chunk_overlap": app.state.CHUNK_OVERLAP,
         },
         },
+        "web_loader_ssl_verification": app.state.ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION,
     }
     }
 
 
 
 
@@ -322,15 +328,34 @@ class ChunkParamUpdateForm(BaseModel):
 
 
 
 
 class ConfigUpdateForm(BaseModel):
 class ConfigUpdateForm(BaseModel):
-    pdf_extract_images: bool
-    chunk: ChunkParamUpdateForm
+    pdf_extract_images: Optional[bool] = None
+    chunk: Optional[ChunkParamUpdateForm] = None
+    web_loader_ssl_verification: Optional[bool] = None
 
 
 
 
 @app.post("/config/update")
 @app.post("/config/update")
 async def update_rag_config(form_data: ConfigUpdateForm, user=Depends(get_admin_user)):
 async def update_rag_config(form_data: ConfigUpdateForm, user=Depends(get_admin_user)):
-    app.state.PDF_EXTRACT_IMAGES = form_data.pdf_extract_images
-    app.state.CHUNK_SIZE = form_data.chunk.chunk_size
-    app.state.CHUNK_OVERLAP = form_data.chunk.chunk_overlap
+    app.state.PDF_EXTRACT_IMAGES = (
+        form_data.pdf_extract_images
+        if form_data.pdf_extract_images != None
+        else app.state.PDF_EXTRACT_IMAGES
+    )
+
+    app.state.CHUNK_SIZE = (
+        form_data.chunk.chunk_size if form_data.chunk != None else app.state.CHUNK_SIZE
+    )
+
+    app.state.CHUNK_OVERLAP = (
+        form_data.chunk.chunk_overlap
+        if form_data.chunk != None
+        else app.state.CHUNK_OVERLAP
+    )
+
+    app.state.ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION = (
+        form_data.web_loader_ssl_verification
+        if form_data.web_loader_ssl_verification != None
+        else app.state.ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION
+    )
 
 
     return {
     return {
         "status": True,
         "status": True,
@@ -339,6 +364,7 @@ async def update_rag_config(form_data: ConfigUpdateForm, user=Depends(get_admin_
             "chunk_size": app.state.CHUNK_SIZE,
             "chunk_size": app.state.CHUNK_SIZE,
             "chunk_overlap": app.state.CHUNK_OVERLAP,
             "chunk_overlap": app.state.CHUNK_OVERLAP,
         },
         },
+        "web_loader_ssl_verification": app.state.ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION,
     }
     }
 
 
 
 
@@ -490,7 +516,9 @@ def store_youtube_video(form_data: UrlForm, user=Depends(get_current_user)):
 def store_web(form_data: UrlForm, user=Depends(get_current_user)):
 def store_web(form_data: UrlForm, user=Depends(get_current_user)):
     # "https://www.gutenberg.org/files/1727/1727-h/1727-h.htm"
     # "https://www.gutenberg.org/files/1727/1727-h/1727-h.htm"
     try:
     try:
-        loader = get_web_loader(form_data.url)
+        loader = get_web_loader(
+            form_data.url, verify_ssl=app.state.ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION
+        )
         data = loader.load()
         data = loader.load()
 
 
         collection_name = form_data.collection_name
         collection_name = form_data.collection_name
@@ -510,12 +538,11 @@ def store_web(form_data: UrlForm, user=Depends(get_current_user)):
             detail=ERROR_MESSAGES.DEFAULT(e),
             detail=ERROR_MESSAGES.DEFAULT(e),
         )
         )
 
 
-
-def get_web_loader(url: Union[str, Sequence[str]]):
+def get_web_loader(url: Union[str, Sequence[str]], verify_ssl: bool = True):
     # Check if the URL is valid
     # Check if the URL is valid
     if not validate_url(url):
     if not validate_url(url):
         raise ValueError(ERROR_MESSAGES.INVALID_URL)
         raise ValueError(ERROR_MESSAGES.INVALID_URL)
-    return WebBaseLoader(url)
+    return WebBaseLoader(url, verify_ssl=verify_ssl)
 
 
 
 
 def validate_url(url: Union[str, Sequence[str]]):
 def validate_url(url: Union[str, Sequence[str]]):

+ 27 - 22
backend/apps/rag/utils.py

@@ -287,14 +287,14 @@ def rag_messages(
     for doc in docs:
     for doc in docs:
         context = None
         context = None
 
 
-        collection = doc.get("collection_name")
-        if collection:
-            collection = [collection]
-        else:
-            collection = doc.get("collection_names", [])
+        collection_names = (
+            doc["collection_names"]
+            if doc["type"] == "collection"
+            else [doc["collection_name"]]
+        )
 
 
-        collection = set(collection).difference(extracted_collections)
-        if not collection:
+        collection_names = set(collection_names).difference(extracted_collections)
+        if not collection_names:
             log.debug(f"skipping {doc} as it has already been extracted")
             log.debug(f"skipping {doc} as it has already been extracted")
             continue
             continue
 
 
@@ -304,11 +304,7 @@ def rag_messages(
             else:
             else:
                 if hybrid_search:
                 if hybrid_search:
                     context = query_collection_with_hybrid_search(
                     context = query_collection_with_hybrid_search(
-                        collection_names=(
-                            doc["collection_names"]
-                            if doc["type"] == "collection"
-                            else [doc["collection_name"]]
-                        ),
+                        collection_names=collection_names,
                         query=query,
                         query=query,
                         embedding_function=embedding_function,
                         embedding_function=embedding_function,
                         k=k,
                         k=k,
@@ -317,11 +313,7 @@ def rag_messages(
                     )
                     )
                 else:
                 else:
                     context = query_collection(
                     context = query_collection(
-                        collection_names=(
-                            doc["collection_names"]
-                            if doc["type"] == "collection"
-                            else [doc["collection_name"]]
-                        ),
+                        collection_names=collection_names,
                         query=query,
                         query=query,
                         embedding_function=embedding_function,
                         embedding_function=embedding_function,
                         k=k,
                         k=k,
@@ -331,18 +323,31 @@ def rag_messages(
             context = None
             context = None
 
 
         if context:
         if context:
-            relevant_contexts.append(context)
+            relevant_contexts.append({**context, "source": doc})
 
 
-        extracted_collections.extend(collection)
+        extracted_collections.extend(collection_names)
 
 
     context_string = ""
     context_string = ""
+
+    citations = []
     for context in relevant_contexts:
     for context in relevant_contexts:
         try:
         try:
             if "documents" in context:
             if "documents" in context:
-                items = [item for item in context["documents"][0] if item is not None]
-                context_string += "\n\n".join(items)
+                context_string += "\n\n".join(
+                    [text for text in context["documents"][0] if text is not None]
+                )
+
+                if "metadatas" in context:
+                    citations.append(
+                        {
+                            "source": context["source"],
+                            "document": context["documents"][0],
+                            "metadata": context["metadatas"][0],
+                        }
+                    )
         except Exception as e:
         except Exception as e:
             log.exception(e)
             log.exception(e)
+
     context_string = context_string.strip()
     context_string = context_string.strip()
 
 
     ra_content = rag_template(
     ra_content = rag_template(
@@ -371,7 +376,7 @@ def rag_messages(
 
 
     messages[last_user_message_idx] = new_user_message
     messages[last_user_message_idx] = new_user_message
 
 
-    return messages
+    return messages, citations
 
 
 
 
 def get_model_path(model: str, update_model: bool = False):
 def get_model_path(model: str, update_model: bool = False):

+ 20 - 11
backend/config.py

@@ -18,6 +18,18 @@ from secrets import token_bytes
 from constants import ERROR_MESSAGES
 from constants import ERROR_MESSAGES
 
 
 
 
+####################################
+# Load .env file
+####################################
+
+try:
+    from dotenv import load_dotenv, find_dotenv
+
+    load_dotenv(find_dotenv("../.env"))
+except ImportError:
+    print("dotenv not installed, skipping...")
+
+
 ####################################
 ####################################
 # LOGGING
 # LOGGING
 ####################################
 ####################################
@@ -59,16 +71,6 @@ for source in log_sources:
 
 
 log.setLevel(SRC_LOG_LEVELS["CONFIG"])
 log.setLevel(SRC_LOG_LEVELS["CONFIG"])
 
 
-####################################
-# Load .env file
-####################################
-
-try:
-    from dotenv import load_dotenv, find_dotenv
-
-    load_dotenv(find_dotenv("../.env"))
-except ImportError:
-    log.warning("dotenv not installed, skipping...")
 
 
 WEBUI_NAME = os.environ.get("WEBUI_NAME", "Open WebUI")
 WEBUI_NAME = os.environ.get("WEBUI_NAME", "Open WebUI")
 if WEBUI_NAME != "Open WebUI":
 if WEBUI_NAME != "Open WebUI":
@@ -454,6 +456,11 @@ ENABLE_RAG_HYBRID_SEARCH = (
     os.environ.get("ENABLE_RAG_HYBRID_SEARCH", "").lower() == "true"
     os.environ.get("ENABLE_RAG_HYBRID_SEARCH", "").lower() == "true"
 )
 )
 
 
+
+ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION = (
+    os.environ.get("ENABLE_RAG_WEB_LOADER_SSL_VERIFICATION", "True").lower() == "true"
+)
+
 RAG_EMBEDDING_ENGINE = os.environ.get("RAG_EMBEDDING_ENGINE", "")
 RAG_EMBEDDING_ENGINE = os.environ.get("RAG_EMBEDDING_ENGINE", "")
 
 
 PDF_EXTRACT_IMAGES = os.environ.get("PDF_EXTRACT_IMAGES", "False").lower() == "true"
 PDF_EXTRACT_IMAGES = os.environ.get("PDF_EXTRACT_IMAGES", "False").lower() == "true"
@@ -531,7 +538,9 @@ RAG_TEMPLATE = os.environ.get("RAG_TEMPLATE", DEFAULT_RAG_TEMPLATE)
 RAG_OPENAI_API_BASE_URL = os.getenv("RAG_OPENAI_API_BASE_URL", OPENAI_API_BASE_URL)
 RAG_OPENAI_API_BASE_URL = os.getenv("RAG_OPENAI_API_BASE_URL", OPENAI_API_BASE_URL)
 RAG_OPENAI_API_KEY = os.getenv("RAG_OPENAI_API_KEY", OPENAI_API_KEY)
 RAG_OPENAI_API_KEY = os.getenv("RAG_OPENAI_API_KEY", OPENAI_API_KEY)
 
 
-ENABLE_LOCAL_WEB_FETCH = os.getenv("ENABLE_LOCAL_WEB_FETCH", "False").lower() == "true"
+ENABLE_RAG_LOCAL_WEB_FETCH = (
+    os.getenv("ENABLE_RAG_LOCAL_WEB_FETCH", "False").lower() == "true"
+)
 
 
 SEARXNG_QUERY_URL = os.getenv("SEARXNG_QUERY_URL", "")
 SEARXNG_QUERY_URL = os.getenv("SEARXNG_QUERY_URL", "")
 GOOGLE_PSE_API_KEY = os.getenv("GOOGLE_PSE_API_KEY", "")
 GOOGLE_PSE_API_KEY = os.getenv("GOOGLE_PSE_API_KEY", "")

+ 36 - 3
backend/main.py

@@ -15,7 +15,7 @@ from fastapi.middleware.wsgi import WSGIMiddleware
 from fastapi.middleware.cors import CORSMiddleware
 from fastapi.middleware.cors import CORSMiddleware
 from starlette.exceptions import HTTPException as StarletteHTTPException
 from starlette.exceptions import HTTPException as StarletteHTTPException
 from starlette.middleware.base import BaseHTTPMiddleware
 from starlette.middleware.base import BaseHTTPMiddleware
-
+from starlette.responses import StreamingResponse
 
 
 from apps.ollama.main import app as ollama_app
 from apps.ollama.main import app as ollama_app
 from apps.openai.main import app as openai_app
 from apps.openai.main import app as openai_app
@@ -102,6 +102,8 @@ origins = ["*"]
 
 
 class RAGMiddleware(BaseHTTPMiddleware):
 class RAGMiddleware(BaseHTTPMiddleware):
     async def dispatch(self, request: Request, call_next):
     async def dispatch(self, request: Request, call_next):
+        return_citations = False
+
         if request.method == "POST" and (
         if request.method == "POST" and (
             "/api/chat" in request.url.path or "/chat/completions" in request.url.path
             "/api/chat" in request.url.path or "/chat/completions" in request.url.path
         ):
         ):
@@ -114,11 +116,15 @@ class RAGMiddleware(BaseHTTPMiddleware):
             # Parse string to JSON
             # Parse string to JSON
             data = json.loads(body_str) if body_str else {}
             data = json.loads(body_str) if body_str else {}
 
 
+            return_citations = data.get("citations", False)
+            if "citations" in data:
+                del data["citations"]
+
             # Example: Add a new key-value pair or modify existing ones
             # Example: Add a new key-value pair or modify existing ones
             # data["modified"] = True  # Example modification
             # data["modified"] = True  # Example modification
             if "docs" in data:
             if "docs" in data:
                 data = {**data}
                 data = {**data}
-                data["messages"] = rag_messages(
+                data["messages"], citations = rag_messages(
                     docs=data["docs"],
                     docs=data["docs"],
                     messages=data["messages"],
                     messages=data["messages"],
                     template=rag_app.state.RAG_TEMPLATE,
                     template=rag_app.state.RAG_TEMPLATE,
@@ -130,7 +136,9 @@ class RAGMiddleware(BaseHTTPMiddleware):
                 )
                 )
                 del data["docs"]
                 del data["docs"]
 
 
-                log.debug(f"data['messages']: {data['messages']}")
+                log.debug(
+                    f"data['messages']: {data['messages']}, citations: {citations}"
+                )
 
 
             modified_body_bytes = json.dumps(data).encode("utf-8")
             modified_body_bytes = json.dumps(data).encode("utf-8")
 
 
@@ -148,11 +156,36 @@ class RAGMiddleware(BaseHTTPMiddleware):
             ]
             ]
 
 
         response = await call_next(request)
         response = await call_next(request)
+
+        if return_citations:
+            # Inject the citations into the response
+            if isinstance(response, StreamingResponse):
+                # If it's a streaming response, inject it as SSE event or NDJSON line
+                content_type = response.headers.get("Content-Type")
+                if "text/event-stream" in content_type:
+                    return StreamingResponse(
+                        self.openai_stream_wrapper(response.body_iterator, citations),
+                    )
+                if "application/x-ndjson" in content_type:
+                    return StreamingResponse(
+                        self.ollama_stream_wrapper(response.body_iterator, citations),
+                    )
+
         return response
         return response
 
 
     async def _receive(self, body: bytes):
     async def _receive(self, body: bytes):
         return {"type": "http.request", "body": body, "more_body": False}
         return {"type": "http.request", "body": body, "more_body": False}
 
 
+    async def openai_stream_wrapper(self, original_generator, citations):
+        yield f"data: {json.dumps({'citations': citations})}\n\n"
+        async for data in original_generator:
+            yield data
+
+    async def ollama_stream_wrapper(self, original_generator, citations):
+        yield f"{json.dumps({'citations': citations})}\n"
+        async for data in original_generator:
+            yield data
+
 
 
 app.add_middleware(RAGMiddleware)
 app.add_middleware(RAGMiddleware)
 
 

+ 9 - 0
src/app.css

@@ -82,3 +82,12 @@ select {
 .katex-mathml {
 .katex-mathml {
 	display: none;
 	display: none;
 }
 }
+
+.scrollbar-none:active::-webkit-scrollbar-thumb,
+.scrollbar-none:focus::-webkit-scrollbar-thumb,
+.scrollbar-none:hover::-webkit-scrollbar-thumb {
+	visibility: visible;
+}
+.scrollbar-none::-webkit-scrollbar-thumb {
+	visibility: hidden;
+}

+ 5 - 1
src/lib/apis/ollama/index.ts

@@ -159,7 +159,11 @@ export const generateTitle = async (
 		body: JSON.stringify({
 		body: JSON.stringify({
 			model: model,
 			model: model,
 			prompt: template,
 			prompt: template,
-			stream: false
+			stream: false,
+			options: {
+				// Restrict the number of tokens generated to 50
+				num_predict: 50
+			}
 		})
 		})
 	})
 	})
 		.then(async (res) => {
 		.then(async (res) => {

+ 3 - 1
src/lib/apis/openai/index.ts

@@ -295,7 +295,9 @@ export const generateTitle = async (
 					content: template
 					content: template
 				}
 				}
 			],
 			],
-			stream: false
+			stream: false,
+			// Restricting the max tokens to 50 to avoid long titles
+			max_tokens: 50
 		})
 		})
 	})
 	})
 		.then(async (res) => {
 		.then(async (res) => {

+ 3 - 2
src/lib/apis/rag/index.ts

@@ -33,8 +33,9 @@ type ChunkConfigForm = {
 };
 };
 
 
 type RAGConfigForm = {
 type RAGConfigForm = {
-	pdf_extract_images: boolean;
-	chunk: ChunkConfigForm;
+	pdf_extract_images?: boolean;
+	chunk?: ChunkConfigForm;
+	web_loader_ssl_verification?: boolean;
 };
 };
 
 
 export const updateRAGConfig = async (token: string, payload: RAGConfigForm) => {
 export const updateRAGConfig = async (token: string, payload: RAGConfigForm) => {

+ 11 - 0
src/lib/apis/streaming/index.ts

@@ -4,6 +4,8 @@ import type { ParsedEvent } from 'eventsource-parser';
 type TextStreamUpdate = {
 type TextStreamUpdate = {
 	done: boolean;
 	done: boolean;
 	value: string;
 	value: string;
+	// eslint-disable-next-line @typescript-eslint/no-explicit-any
+	citations?: any;
 };
 };
 
 
 // createOpenAITextStream takes a responseBody with a SSE response,
 // createOpenAITextStream takes a responseBody with a SSE response,
@@ -45,6 +47,11 @@ async function* openAIStreamToIterator(
 			const parsedData = JSON.parse(data);
 			const parsedData = JSON.parse(data);
 			console.log(parsedData);
 			console.log(parsedData);
 
 
+			if (parsedData.citations) {
+				yield { done: false, value: '', citations: parsedData.citations };
+				continue;
+			}
+
 			yield { done: false, value: parsedData.choices?.[0]?.delta?.content ?? '' };
 			yield { done: false, value: parsedData.choices?.[0]?.delta?.content ?? '' };
 		} catch (e) {
 		} catch (e) {
 			console.error('Error extracting delta from SSE event:', e);
 			console.error('Error extracting delta from SSE event:', e);
@@ -62,6 +69,10 @@ async function* streamLargeDeltasAsRandomChunks(
 			yield textStreamUpdate;
 			yield textStreamUpdate;
 			return;
 			return;
 		}
 		}
+		if (textStreamUpdate.citations) {
+			yield textStreamUpdate;
+			continue;
+		}
 		let content = textStreamUpdate.value;
 		let content = textStreamUpdate.value;
 		if (content.length < 5) {
 		if (content.length < 5) {
 			yield { done: false, value: content };
 			yield { done: false, value: content };

+ 77 - 0
src/lib/components/chat/Messages/CitationsModal.svelte

@@ -0,0 +1,77 @@
+<script lang="ts">
+	import { getContext, onMount, tick } from 'svelte';
+
+	import Modal from '$lib/components/common/Modal.svelte';
+	const i18n = getContext('i18n');
+
+	export let show = false;
+	export let citation;
+
+	let mergedDocuments = [];
+
+	$: if (citation) {
+		mergedDocuments = citation.document?.map((c, i) => {
+			return {
+				source: citation.source,
+				document: c,
+				metadata: citation.metadata?.[i]
+			};
+		});
+	}
+</script>
+
+<Modal size="lg" bind:show>
+	<div>
+		<div class=" flex justify-between dark:text-gray-300 px-5 pt-4 pb-2">
+			<div class=" text-lg font-medium self-center capitalize">
+				{$i18n.t('Citation')}
+			</div>
+			<button
+				class="self-center"
+				on:click={() => {
+					show = false;
+				}}
+			>
+				<svg
+					xmlns="http://www.w3.org/2000/svg"
+					viewBox="0 0 20 20"
+					fill="currentColor"
+					class="w-5 h-5"
+				>
+					<path
+						d="M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"
+					/>
+				</svg>
+			</button>
+		</div>
+
+		<div class="flex flex-col md:flex-row w-full px-6 pb-5 md:space-x-4">
+			<div
+				class="flex flex-col w-full dark:text-gray-200 overflow-y-scroll max-h-[22rem] scrollbar-none"
+			>
+				{#each mergedDocuments as document, documentIdx}
+					<div class="flex flex-col w-full">
+						<div class="text-sm font-medium dark:text-gray-300">
+							{$i18n.t('Source')}
+						</div>
+						<div class="text-sm dark:text-gray-400">
+							{document.source?.name ?? $i18n.t('No source available')}
+						</div>
+					</div>
+					<div class="flex flex-col w-full">
+						<div class=" text-sm font-medium dark:text-gray-300">
+							{$i18n.t('Content')}
+						</div>
+						<pre class="text-sm dark:text-gray-400 whitespace-pre-line">
+							{document.document}
+						</pre>
+					</div>
+
+					{#if documentIdx !== mergedDocuments.length - 1}
+						<hr class=" dark:border-gray-850 my-3" />
+					{/if}
+				{/each}
+			</div>
+		</div>
+	</div>
+</Modal>

+ 473 - 420
src/lib/components/chat/Messages/ResponseMessage.svelte

@@ -32,6 +32,7 @@
 	import { WEBUI_BASE_URL } from '$lib/constants';
 	import { WEBUI_BASE_URL } from '$lib/constants';
 	import Tooltip from '$lib/components/common/Tooltip.svelte';
 	import Tooltip from '$lib/components/common/Tooltip.svelte';
 	import RateComment from './RateComment.svelte';
 	import RateComment from './RateComment.svelte';
+	import CitationsModal from '$lib/components/chat/Messages/CitationsModal.svelte';
 
 
 	export let modelfiles = [];
 	export let modelfiles = [];
 	export let message;
 	export let message;
@@ -65,6 +66,9 @@
 
 
 	let showRateComment = false;
 	let showRateComment = false;
 
 
+	let showCitationModal = false;
+	let selectedCitation = null;
+
 	$: tokens = marked.lexer(sanitizeResponseContent(message.content));
 	$: tokens = marked.lexer(sanitizeResponseContent(message.content));
 
 
 	const renderer = new marked.Renderer();
 	const renderer = new marked.Renderer();
@@ -324,6 +328,8 @@
 	});
 	});
 </script>
 </script>
 
 
+<CitationsModal bind:show={showCitationModal} citation={selectedCitation} />
+
 {#key message.id}
 {#key message.id}
 	<div class=" flex w-full message-{message.id}" id="message-{message.id}">
 	<div class=" flex w-full message-{message.id}" id="message-{message.id}">
 		<ProfileImage
 		<ProfileImage
@@ -360,7 +366,6 @@
 						{/each}
 						{/each}
 					</div>
 					</div>
 				{/if}
 				{/if}
-
 				<div
 				<div
 					class="prose chat-{message.role} w-full max-w-full dark:prose-invert prose-headings:my-0 prose-p:m-0 prose-p:-mb-6 prose-pre:my-0 prose-table:my-0 prose-blockquote:my-0 prose-img:my-0 prose-ul:-my-4 prose-ol:-my-4 prose-li:-my-3 prose-ul:-mb-6 prose-ol:-mb-8 prose-ol:p-0 prose-li:-mb-4 whitespace-pre-line"
 					class="prose chat-{message.role} w-full max-w-full dark:prose-invert prose-headings:my-0 prose-p:m-0 prose-p:-mb-6 prose-pre:my-0 prose-table:my-0 prose-blockquote:my-0 prose-img:my-0 prose-ul:-my-4 prose-ol:-my-4 prose-li:-my-3 prose-ul:-mb-6 prose-ol:-mb-8 prose-ol:p-0 prose-li:-mb-4 whitespace-pre-line"
 				>
 				>
@@ -441,436 +446,484 @@
 									{/each}
 									{/each}
 									<!-- {@html marked(message.content.replaceAll('\\', '\\\\'))} -->
 									<!-- {@html marked(message.content.replaceAll('\\', '\\\\'))} -->
 								{/if}
 								{/if}
+							</div>
+						{/if}
+					</div>
+				</div>
 
 
-								{#if message.done}
-									<div
-										class=" flex justify-start space-x-1 overflow-x-auto buttons text-gray-700 dark:text-gray-500"
-									>
-										{#if siblings.length > 1}
-											<div class="flex self-center min-w-fit">
-												<button
-													class="self-center dark:hover:text-white hover:text-black transition"
-													on:click={() => {
-														showPreviousMessage(message);
-													}}
-												>
-													<svg
-														xmlns="http://www.w3.org/2000/svg"
-														viewBox="0 0 20 20"
-														fill="currentColor"
-														class="w-4 h-4"
-													>
-														<path
-															fill-rule="evenodd"
-															d="M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z"
-															clip-rule="evenodd"
-														/>
-													</svg>
-												</button>
-
-												<div class="text-xs font-bold self-center min-w-fit dark:text-gray-100">
-													{siblings.indexOf(message.id) + 1} / {siblings.length}
-												</div>
-
-												<button
-													class="self-center dark:hover:text-white hover:text-black transition"
-													on:click={() => {
-														showNextMessage(message);
-													}}
-												>
-													<svg
-														xmlns="http://www.w3.org/2000/svg"
-														viewBox="0 0 20 20"
-														fill="currentColor"
-														class="w-4 h-4"
-													>
-														<path
-															fill-rule="evenodd"
-															d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z"
-															clip-rule="evenodd"
-														/>
-													</svg>
-												</button>
-											</div>
-										{/if}
+				<!-- if (message.citations) {
+					citations = message.citations.forEach((citation) => {
+						citation.document.forEach((document, index) => {
+							const metadata = citation.metadata?.[index];
+							const source = citation?.source?.name ?? metadata?.source ?? 'N/A';
+		
+							citations[source] = citations[source] || {
+								source: citation.source,
+								document: [],
+								metadata: []
+							};
+		
+							citations[source].document.push(document);
+							citations[source].metadata.push(metadata);
+						});
+					});
+				} -->
 
 
-										{#if !readOnly}
-											<Tooltip content={$i18n.t('Edit')} placement="bottom">
-												<button
-													class="{isLastMessage
-														? 'visible'
-														: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition"
-													on:click={() => {
-														editMessageHandler();
-													}}
-												>
-													<svg
-														xmlns="http://www.w3.org/2000/svg"
-														fill="none"
-														viewBox="0 0 24 24"
-														stroke-width="2"
-														stroke="currentColor"
-														class="w-4 h-4"
-													>
-														<path
-															stroke-linecap="round"
-															stroke-linejoin="round"
-															d="M16.862 4.487l1.687-1.688a1.875 1.875 0 112.652 2.652L6.832 19.82a4.5 4.5 0 01-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 011.13-1.897L16.863 4.487zm0 0L19.5 7.125"
-														/>
-													</svg>
-												</button>
-											</Tooltip>
-										{/if}
+				{#if message.citations}
+					<hr class="  dark:border-gray-800" />
+					<div class="my-2.5 w-full flex overflow-x-auto gap-2 flex-wrap">
+						{#each message.citations.reduce((acc, citation) => {
+							citation.document.forEach((document, index) => {
+								const metadata = citation.metadata?.[index];
+								const id = metadata?.source ?? 'N/A';
+
+								const existingSource = acc.find((item) => item.id === id);
+
+								if (existingSource) {
+									existingSource.document.push(document);
+									existingSource.metadata.push(metadata);
+								} else {
+									acc.push( { id: id, source: citation?.source, document: [document], metadata: metadata ? [metadata] : [] } );
+								}
+							});
+							return acc;
+						}, []) as citation, idx}
+							<div class="flex gap-1 text-xs font-semibold">
+								<div>
+									[{idx + 1}]
+								</div>
 
 
-										<Tooltip content={$i18n.t('Copy')} placement="bottom">
-											<button
-												class="{isLastMessage
-													? 'visible'
-													: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition copy-response-button"
-												on:click={() => {
-													copyToClipboard(message.content);
-												}}
-											>
-												<svg
-													xmlns="http://www.w3.org/2000/svg"
-													fill="none"
-													viewBox="0 0 24 24"
-													stroke-width="2"
-													stroke="currentColor"
-													class="w-4 h-4"
-												>
-													<path
-														stroke-linecap="round"
-														stroke-linejoin="round"
-														d="M15.666 3.888A2.25 2.25 0 0013.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 01-.75.75H9a.75.75 0 01-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 01-2.25 2.25H6.75A2.25 2.25 0 014.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 011.927-.184"
-													/>
-												</svg>
-											</button>
-										</Tooltip>
-
-										{#if !readOnly}
-											<Tooltip content={$i18n.t('Good Response')} placement="bottom">
-												<button
-													class="{isLastMessage
-														? 'visible'
-														: 'invisible group-hover:visible'} p-1 rounded {message?.annotation
-														?.rating === 1
-														? 'bg-gray-100 dark:bg-gray-800'
-														: ''} dark:hover:text-white hover:text-black transition"
-													on:click={() => {
-														rateMessage(message.id, 1);
-														showRateComment = true;
-
-														window.setTimeout(() => {
-															document
-																.getElementById(`message-feedback-${message.id}`)
-																?.scrollIntoView();
-														}, 0);
-													}}
-												>
-													<svg
-														stroke="currentColor"
-														fill="none"
-														stroke-width="2"
-														viewBox="0 0 24 24"
-														stroke-linecap="round"
-														stroke-linejoin="round"
-														class="w-4 h-4"
-														xmlns="http://www.w3.org/2000/svg"
-														><path
-															d="M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3"
-														/></svg
-													>
-												</button>
-											</Tooltip>
-
-											<Tooltip content={$i18n.t('Bad Response')} placement="bottom">
-												<button
-													class="{isLastMessage
-														? 'visible'
-														: 'invisible group-hover:visible'} p-1 rounded {message?.annotation
-														?.rating === -1
-														? 'bg-gray-100 dark:bg-gray-800'
-														: ''} dark:hover:text-white hover:text-black transition"
-													on:click={() => {
-														rateMessage(message.id, -1);
-														showRateComment = true;
-														window.setTimeout(() => {
-															document
-																.getElementById(`message-feedback-${message.id}`)
-																?.scrollIntoView();
-														}, 0);
-													}}
-												>
-													<svg
-														stroke="currentColor"
-														fill="none"
-														stroke-width="2"
-														viewBox="0 0 24 24"
-														stroke-linecap="round"
-														stroke-linejoin="round"
-														class="w-4 h-4"
-														xmlns="http://www.w3.org/2000/svg"
-														><path
-															d="M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17"
-														/></svg
-													>
-												</button>
-											</Tooltip>
-										{/if}
+								<button
+									class="dark:text-gray-500 underline"
+									on:click={() => {
+										showCitationModal = true;
+										selectedCitation = citation;
+									}}
+								>
+									{citation.source.name}
+								</button>
+							</div>
+						{/each}
+					</div>
+				{/if}
 
 
-										<Tooltip content={$i18n.t('Read Aloud')} placement="bottom">
-											<button
-												id="speak-button-{message.id}"
-												class="{isLastMessage
-													? 'visible'
-													: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition"
-												on:click={() => {
-													if (!loadingSpeech) {
-														toggleSpeakMessage(message);
-													}
-												}}
-											>
-												{#if loadingSpeech}
-													<svg
-														class=" w-4 h-4"
-														fill="currentColor"
-														viewBox="0 0 24 24"
-														xmlns="http://www.w3.org/2000/svg"
-														><style>
-															.spinner_S1WN {
-																animation: spinner_MGfb 0.8s linear infinite;
-																animation-delay: -0.8s;
-															}
-															.spinner_Km9P {
-																animation-delay: -0.65s;
-															}
-															.spinner_JApP {
-																animation-delay: -0.5s;
-															}
-															@keyframes spinner_MGfb {
-																93.75%,
-																100% {
-																	opacity: 0.2;
-																}
-															}
-														</style><circle class="spinner_S1WN" cx="4" cy="12" r="3" /><circle
-															class="spinner_S1WN spinner_Km9P"
-															cx="12"
-															cy="12"
-															r="3"
-														/><circle
-															class="spinner_S1WN spinner_JApP"
-															cx="20"
-															cy="12"
-															r="3"
-														/></svg
-													>
-												{:else if speaking}
-													<svg
-														xmlns="http://www.w3.org/2000/svg"
-														fill="none"
-														viewBox="0 0 24 24"
-														stroke-width="2"
-														stroke="currentColor"
-														class="w-4 h-4"
-													>
-														<path
-															stroke-linecap="round"
-															stroke-linejoin="round"
-															d="M17.25 9.75 19.5 12m0 0 2.25 2.25M19.5 12l2.25-2.25M19.5 12l-2.25 2.25m-10.5-6 4.72-4.72a.75.75 0 0 1 1.28.53v15.88a.75.75 0 0 1-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.009 9.009 0 0 1 2.25 12c0-.83.112-1.633.322-2.396C2.806 8.756 3.63 8.25 4.51 8.25H6.75Z"
-														/>
-													</svg>
-												{:else}
-													<svg
-														xmlns="http://www.w3.org/2000/svg"
-														fill="none"
-														viewBox="0 0 24 24"
-														stroke-width="2"
-														stroke="currentColor"
-														class="w-4 h-4"
-													>
-														<path
-															stroke-linecap="round"
-															stroke-linejoin="round"
-															d="M19.114 5.636a9 9 0 010 12.728M16.463 8.288a5.25 5.25 0 010 7.424M6.75 8.25l4.72-4.72a.75.75 0 011.28.53v15.88a.75.75 0 01-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.01 9.01 0 012.25 12c0-.83.112-1.633.322-2.396C2.806 8.756 3.63 8.25 4.51 8.25H6.75z"
-														/>
-													</svg>
-												{/if}
-											</button>
-										</Tooltip>
-
-										{#if $config.images && !readOnly}
-											<Tooltip content="Generate Image" placement="bottom">
-												<button
-													class="{isLastMessage
-														? 'visible'
-														: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition"
-													on:click={() => {
-														if (!generatingImage) {
-															generateImage(message);
-														}
-													}}
-												>
-													{#if generatingImage}
-														<svg
-															class=" w-4 h-4"
-															fill="currentColor"
-															viewBox="0 0 24 24"
-															xmlns="http://www.w3.org/2000/svg"
-															><style>
-																.spinner_S1WN {
-																	animation: spinner_MGfb 0.8s linear infinite;
-																	animation-delay: -0.8s;
-																}
-																.spinner_Km9P {
-																	animation-delay: -0.65s;
-																}
-																.spinner_JApP {
-																	animation-delay: -0.5s;
-																}
-																@keyframes spinner_MGfb {
-																	93.75%,
-																	100% {
-																		opacity: 0.2;
-																	}
-																}
-															</style><circle class="spinner_S1WN" cx="4" cy="12" r="3" /><circle
-																class="spinner_S1WN spinner_Km9P"
-																cx="12"
-																cy="12"
-																r="3"
-															/><circle
-																class="spinner_S1WN spinner_JApP"
-																cx="20"
-																cy="12"
-																r="3"
-															/></svg
-														>
-													{:else}
-														<svg
-															xmlns="http://www.w3.org/2000/svg"
-															fill="none"
-															viewBox="0 0 24 24"
-															stroke-width="2"
-															stroke="currentColor"
-															class="w-4 h-4"
-														>
-															<path
-																stroke-linecap="round"
-																stroke-linejoin="round"
-																d="m2.25 15.75 5.159-5.159a2.25 2.25 0 0 1 3.182 0l5.159 5.159m-1.5-1.5 1.409-1.409a2.25 2.25 0 0 1 3.182 0l2.909 2.909m-18 3.75h16.5a1.5 1.5 0 0 0 1.5-1.5V6a1.5 1.5 0 0 0-1.5-1.5H3.75A1.5 1.5 0 0 0 2.25 6v12a1.5 1.5 0 0 0 1.5 1.5Zm10.5-11.25h.008v.008h-.008V8.25Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"
-															/>
-														</svg>
-													{/if}
-												</button>
-											</Tooltip>
-										{/if}
+				{#if message.done}
+					<div
+						class=" flex justify-start space-x-1 overflow-x-auto buttons text-gray-700 dark:text-gray-500"
+					>
+						{#if siblings.length > 1}
+							<div class="flex self-center min-w-fit">
+								<button
+									class="self-center dark:hover:text-white hover:text-black transition"
+									on:click={() => {
+										showPreviousMessage(message);
+									}}
+								>
+									<svg
+										xmlns="http://www.w3.org/2000/svg"
+										viewBox="0 0 20 20"
+										fill="currentColor"
+										class="w-4 h-4"
+									>
+										<path
+											fill-rule="evenodd"
+											d="M12.79 5.23a.75.75 0 01-.02 1.06L8.832 10l3.938 3.71a.75.75 0 11-1.04 1.08l-4.5-4.25a.75.75 0 010-1.08l4.5-4.25a.75.75 0 011.06.02z"
+											clip-rule="evenodd"
+										/>
+									</svg>
+								</button>
+
+								<div class="text-xs font-bold self-center min-w-fit dark:text-gray-100">
+									{siblings.indexOf(message.id) + 1} / {siblings.length}
+								</div>
 
 
-										{#if message.info}
-											<Tooltip content={$i18n.t('Generation Info')} placement="bottom">
-												<button
-													class=" {isLastMessage
-														? 'visible'
-														: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition whitespace-pre-wrap"
-													on:click={() => {
-														console.log(message);
-													}}
-													id="info-{message.id}"
-												>
-													<svg
-														xmlns="http://www.w3.org/2000/svg"
-														fill="none"
-														viewBox="0 0 24 24"
-														stroke-width="2"
-														stroke="currentColor"
-														class="w-4 h-4"
-													>
-														<path
-															stroke-linecap="round"
-															stroke-linejoin="round"
-															d="M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z"
-														/>
-													</svg>
-												</button>
-											</Tooltip>
-										{/if}
+								<button
+									class="self-center dark:hover:text-white hover:text-black transition"
+									on:click={() => {
+										showNextMessage(message);
+									}}
+								>
+									<svg
+										xmlns="http://www.w3.org/2000/svg"
+										viewBox="0 0 20 20"
+										fill="currentColor"
+										class="w-4 h-4"
+									>
+										<path
+											fill-rule="evenodd"
+											d="M7.21 14.77a.75.75 0 01.02-1.06L11.168 10 7.23 6.29a.75.75 0 111.04-1.08l4.5 4.25a.75.75 0 010 1.08l-4.5 4.25a.75.75 0 01-1.06-.02z"
+											clip-rule="evenodd"
+										/>
+									</svg>
+								</button>
+							</div>
+						{/if}
 
 
-										{#if isLastMessage && !readOnly}
-											<Tooltip content={$i18n.t('Continue Response')} placement="bottom">
-												<button
-													type="button"
-													class="{isLastMessage
-														? 'visible'
-														: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition regenerate-response-button"
-													on:click={() => {
-														continueGeneration();
-													}}
-												>
-													<svg
-														xmlns="http://www.w3.org/2000/svg"
-														fill="none"
-														viewBox="0 0 24 24"
-														stroke-width="2"
-														stroke="currentColor"
-														class="w-4 h-4"
-													>
-														<path
-															stroke-linecap="round"
-															stroke-linejoin="round"
-															d="M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"
-														/>
-														<path
-															stroke-linecap="round"
-															stroke-linejoin="round"
-															d="M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112Z"
-														/>
-													</svg>
-												</button>
-											</Tooltip>
-
-											<Tooltip content={$i18n.t('Regenerate')} placement="bottom">
-												<button
-													type="button"
-													class="{isLastMessage
-														? 'visible'
-														: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition regenerate-response-button"
-													on:click={regenerateResponse}
-												>
-													<svg
-														xmlns="http://www.w3.org/2000/svg"
-														fill="none"
-														viewBox="0 0 24 24"
-														stroke-width="2"
-														stroke="currentColor"
-														class="w-4 h-4"
-													>
-														<path
-															stroke-linecap="round"
-															stroke-linejoin="round"
-															d="M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7M4.031 9.865a8.25 8.25 0 0113.803-3.7l3.181 3.182m0-4.991v4.99"
-														/>
-													</svg>
-												</button>
-											</Tooltip>
-										{/if}
-									</div>
-								{/if}
+						{#if !readOnly}
+							<Tooltip content={$i18n.t('Edit')} placement="bottom">
+								<button
+									class="{isLastMessage
+										? 'visible'
+										: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition"
+									on:click={() => {
+										editMessageHandler();
+									}}
+								>
+									<svg
+										xmlns="http://www.w3.org/2000/svg"
+										fill="none"
+										viewBox="0 0 24 24"
+										stroke-width="2"
+										stroke="currentColor"
+										class="w-4 h-4"
+									>
+										<path
+											stroke-linecap="round"
+											stroke-linejoin="round"
+											d="M16.862 4.487l1.687-1.688a1.875 1.875 0 112.652 2.652L6.832 19.82a4.5 4.5 0 01-1.897 1.13l-2.685.8.8-2.685a4.5 4.5 0 011.13-1.897L16.863 4.487zm0 0L19.5 7.125"
+										/>
+									</svg>
+								</button>
+							</Tooltip>
+						{/if}
 
 
-								{#if showRateComment}
-									<RateComment
-										messageId={message.id}
-										bind:show={showRateComment}
-										bind:message
-										on:submit={() => {
-											updateChatMessages();
-										}}
+						<Tooltip content={$i18n.t('Copy')} placement="bottom">
+							<button
+								class="{isLastMessage
+									? 'visible'
+									: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition copy-response-button"
+								on:click={() => {
+									copyToClipboard(message.content);
+								}}
+							>
+								<svg
+									xmlns="http://www.w3.org/2000/svg"
+									fill="none"
+									viewBox="0 0 24 24"
+									stroke-width="2"
+									stroke="currentColor"
+									class="w-4 h-4"
+								>
+									<path
+										stroke-linecap="round"
+										stroke-linejoin="round"
+										d="M15.666 3.888A2.25 2.25 0 0013.5 2.25h-3c-1.03 0-1.9.693-2.166 1.638m7.332 0c.055.194.084.4.084.612v0a.75.75 0 01-.75.75H9a.75.75 0 01-.75-.75v0c0-.212.03-.418.084-.612m7.332 0c.646.049 1.288.11 1.927.184 1.1.128 1.907 1.077 1.907 2.185V19.5a2.25 2.25 0 01-2.25 2.25H6.75A2.25 2.25 0 014.5 19.5V6.257c0-1.108.806-2.057 1.907-2.185a48.208 48.208 0 011.927-.184"
 									/>
 									/>
+								</svg>
+							</button>
+						</Tooltip>
+
+						{#if !readOnly}
+							<Tooltip content={$i18n.t('Good Response')} placement="bottom">
+								<button
+									class="{isLastMessage
+										? 'visible'
+										: 'invisible group-hover:visible'} p-1 rounded {message?.annotation?.rating ===
+									1
+										? 'bg-gray-100 dark:bg-gray-800'
+										: ''} dark:hover:text-white hover:text-black transition"
+									on:click={() => {
+										rateMessage(message.id, 1);
+										showRateComment = true;
+
+										window.setTimeout(() => {
+											document.getElementById(`message-feedback-${message.id}`)?.scrollIntoView();
+										}, 0);
+									}}
+								>
+									<svg
+										stroke="currentColor"
+										fill="none"
+										stroke-width="2"
+										viewBox="0 0 24 24"
+										stroke-linecap="round"
+										stroke-linejoin="round"
+										class="w-4 h-4"
+										xmlns="http://www.w3.org/2000/svg"
+									>
+										<path
+											d="M14 9V5a3 3 0 0 0-3-3l-4 9v11h11.28a2 2 0 0 0 2-1.7l1.38-9a2 2 0 0 0-2-2.3zM7 22H4a2 2 0 0 1-2-2v-7a2 2 0 0 1 2-2h3"
+										/>
+									</svg>
+								</button>
+							</Tooltip>
+
+							<Tooltip content={$i18n.t('Bad Response')} placement="bottom">
+								<button
+									class="{isLastMessage
+										? 'visible'
+										: 'invisible group-hover:visible'} p-1 rounded {message?.annotation?.rating ===
+									-1
+										? 'bg-gray-100 dark:bg-gray-800'
+										: ''} dark:hover:text-white hover:text-black transition"
+									on:click={() => {
+										rateMessage(message.id, -1);
+										showRateComment = true;
+										window.setTimeout(() => {
+											document.getElementById(`message-feedback-${message.id}`)?.scrollIntoView();
+										}, 0);
+									}}
+								>
+									<svg
+										stroke="currentColor"
+										fill="none"
+										stroke-width="2"
+										viewBox="0 0 24 24"
+										stroke-linecap="round"
+										stroke-linejoin="round"
+										class="w-4 h-4"
+										xmlns="http://www.w3.org/2000/svg"
+									>
+										<path
+											d="M10 15v4a3 3 0 0 0 3 3l4-9V2H5.72a2 2 0 0 0-2 1.7l-1.38 9a2 2 0 0 0 2 2.3zm7-13h2.67A2.31 2.31 0 0 1 22 4v7a2.31 2.31 0 0 1-2.33 2H17"
+										/>
+									</svg>
+								</button>
+							</Tooltip>
+						{/if}
+
+						<Tooltip content={$i18n.t('Read Aloud')} placement="bottom">
+							<button
+								id="speak-button-{message.id}"
+								class="{isLastMessage
+									? 'visible'
+									: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition"
+								on:click={() => {
+									if (!loadingSpeech) {
+										toggleSpeakMessage(message);
+									}
+								}}
+							>
+								{#if loadingSpeech}
+									<svg
+										class=" w-4 h-4"
+										fill="currentColor"
+										viewBox="0 0 24 24"
+										xmlns="http://www.w3.org/2000/svg"
+									>
+										<style>
+											.spinner_S1WN {
+												animation: spinner_MGfb 0.8s linear infinite;
+												animation-delay: -0.8s;
+											}
+
+											.spinner_Km9P {
+												animation-delay: -0.65s;
+											}
+
+											.spinner_JApP {
+												animation-delay: -0.5s;
+											}
+
+											@keyframes spinner_MGfb {
+												93.75%,
+												100% {
+													opacity: 0.2;
+												}
+											}
+										</style>
+										<circle class="spinner_S1WN" cx="4" cy="12" r="3" />
+										<circle class="spinner_S1WN spinner_Km9P" cx="12" cy="12" r="3" />
+										<circle class="spinner_S1WN spinner_JApP" cx="20" cy="12" r="3" />
+									</svg>
+								{:else if speaking}
+									<svg
+										xmlns="http://www.w3.org/2000/svg"
+										fill="none"
+										viewBox="0 0 24 24"
+										stroke-width="2"
+										stroke="currentColor"
+										class="w-4 h-4"
+									>
+										<path
+											stroke-linecap="round"
+											stroke-linejoin="round"
+											d="M17.25 9.75 19.5 12m0 0 2.25 2.25M19.5 12l2.25-2.25M19.5 12l-2.25 2.25m-10.5-6 4.72-4.72a.75.75 0 0 1 1.28.53v15.88a.75.75 0 0 1-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.009 9.009 0 0 1 2.25 12c0-.83.112-1.633.322-2.396C2.806 8.756 3.63 8.25 4.51 8.25H6.75Z"
+										/>
+									</svg>
+								{:else}
+									<svg
+										xmlns="http://www.w3.org/2000/svg"
+										fill="none"
+										viewBox="0 0 24 24"
+										stroke-width="2"
+										stroke="currentColor"
+										class="w-4 h-4"
+									>
+										<path
+											stroke-linecap="round"
+											stroke-linejoin="round"
+											d="M19.114 5.636a9 9 0 010 12.728M16.463 8.288a5.25 5.25 0 010 7.424M6.75 8.25l4.72-4.72a.75.75 0 011.28.53v15.88a.75.75 0 01-1.28.53l-4.72-4.72H4.51c-.88 0-1.704-.507-1.938-1.354A9.01 9.01 0 012.25 12c0-.83.112-1.633.322-2.396C2.806 8.756 3.63 8.25 4.51 8.25H6.75z"
+										/>
+									</svg>
 								{/if}
 								{/if}
-							</div>
+							</button>
+						</Tooltip>
+
+						{#if $config.images && !readOnly}
+							<Tooltip content="Generate Image" placement="bottom">
+								<button
+									class="{isLastMessage
+										? 'visible'
+										: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition"
+									on:click={() => {
+										if (!generatingImage) {
+											generateImage(message);
+										}
+									}}
+								>
+									{#if generatingImage}
+										<svg
+											class=" w-4 h-4"
+											fill="currentColor"
+											viewBox="0 0 24 24"
+											xmlns="http://www.w3.org/2000/svg"
+										>
+											<style>
+												.spinner_S1WN {
+													animation: spinner_MGfb 0.8s linear infinite;
+													animation-delay: -0.8s;
+												}
+
+												.spinner_Km9P {
+													animation-delay: -0.65s;
+												}
+
+												.spinner_JApP {
+													animation-delay: -0.5s;
+												}
+
+												@keyframes spinner_MGfb {
+													93.75%,
+													100% {
+														opacity: 0.2;
+													}
+												}
+											</style>
+											<circle class="spinner_S1WN" cx="4" cy="12" r="3" />
+											<circle class="spinner_S1WN spinner_Km9P" cx="12" cy="12" r="3" />
+											<circle class="spinner_S1WN spinner_JApP" cx="20" cy="12" r="3" />
+										</svg>
+									{:else}
+										<svg
+											xmlns="http://www.w3.org/2000/svg"
+											fill="none"
+											viewBox="0 0 24 24"
+											stroke-width="2"
+											stroke="currentColor"
+											class="w-4 h-4"
+										>
+											<path
+												stroke-linecap="round"
+												stroke-linejoin="round"
+												d="m2.25 15.75 5.159-5.159a2.25 2.25 0 0 1 3.182 0l5.159 5.159m-1.5-1.5 1.409-1.409a2.25 2.25 0 0 1 3.182 0l2.909 2.909m-18 3.75h16.5a1.5 1.5 0 0 0 1.5-1.5V6a1.5 1.5 0 0 0-1.5-1.5H3.75A1.5 1.5 0 0 0 2.25 6v12a1.5 1.5 0 0 0 1.5 1.5Zm10.5-11.25h.008v.008h-.008V8.25Zm.375 0a.375.375 0 1 1-.75 0 .375.375 0 0 1 .75 0Z"
+											/>
+										</svg>
+									{/if}
+								</button>
+							</Tooltip>
+						{/if}
+
+						{#if message.info}
+							<Tooltip content={$i18n.t('Generation Info')} placement="bottom">
+								<button
+									class=" {isLastMessage
+										? 'visible'
+										: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition whitespace-pre-wrap"
+									on:click={() => {
+										console.log(message);
+									}}
+									id="info-{message.id}"
+								>
+									<svg
+										xmlns="http://www.w3.org/2000/svg"
+										fill="none"
+										viewBox="0 0 24 24"
+										stroke-width="2"
+										stroke="currentColor"
+										class="w-4 h-4"
+									>
+										<path
+											stroke-linecap="round"
+											stroke-linejoin="round"
+											d="M11.25 11.25l.041-.02a.75.75 0 011.063.852l-.708 2.836a.75.75 0 001.063.853l.041-.021M21 12a9 9 0 11-18 0 9 9 0 0118 0zm-9-3.75h.008v.008H12V8.25z"
+										/>
+									</svg>
+								</button>
+							</Tooltip>
+						{/if}
+
+						{#if isLastMessage && !readOnly}
+							<Tooltip content={$i18n.t('Continue Response')} placement="bottom">
+								<button
+									type="button"
+									class="{isLastMessage
+										? 'visible'
+										: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition regenerate-response-button"
+									on:click={() => {
+										continueGeneration();
+									}}
+								>
+									<svg
+										xmlns="http://www.w3.org/2000/svg"
+										fill="none"
+										viewBox="0 0 24 24"
+										stroke-width="2"
+										stroke="currentColor"
+										class="w-4 h-4"
+									>
+										<path
+											stroke-linecap="round"
+											stroke-linejoin="round"
+											d="M21 12a9 9 0 1 1-18 0 9 9 0 0 1 18 0Z"
+										/>
+										<path
+											stroke-linecap="round"
+											stroke-linejoin="round"
+											d="M15.91 11.672a.375.375 0 0 1 0 .656l-5.603 3.113a.375.375 0 0 1-.557-.328V8.887c0-.286.307-.466.557-.327l5.603 3.112Z"
+										/>
+									</svg>
+								</button>
+							</Tooltip>
+
+							<Tooltip content={$i18n.t('Regenerate')} placement="bottom">
+								<button
+									type="button"
+									class="{isLastMessage
+										? 'visible'
+										: 'invisible group-hover:visible'} p-1 rounded dark:hover:text-white hover:text-black transition regenerate-response-button"
+									on:click={regenerateResponse}
+								>
+									<svg
+										xmlns="http://www.w3.org/2000/svg"
+										fill="none"
+										viewBox="0 0 24 24"
+										stroke-width="2"
+										stroke="currentColor"
+										class="w-4 h-4"
+									>
+										<path
+											stroke-linecap="round"
+											stroke-linejoin="round"
+											d="M16.023 9.348h4.992v-.001M2.985 19.644v-4.992m0 0h4.992m-4.993 0l3.181 3.183a8.25 8.25 0 0013.803-3.7M4.031 9.865a8.25 8.25 0 0113.803-3.7l3.181 3.182m0-4.991v4.99"
+										/>
+									</svg>
+								</button>
+							</Tooltip>
 						{/if}
 						{/if}
 					</div>
 					</div>
-				</div>
+				{/if}
+
+				{#if showRateComment}
+					<RateComment
+						messageId={message.id}
+						bind:show={showRateComment}
+						bind:message
+						on:submit={() => {
+							updateChatMessages();
+						}}
+					/>
+				{/if}
 			{/if}
 			{/if}
 		</div>
 		</div>
 	</div>
 	</div>

+ 1 - 1
src/lib/components/chat/ModelSelector.svelte

@@ -82,7 +82,7 @@
 				</div>
 				</div>
 			{:else}
 			{:else}
 				<div class="  self-center disabled:text-gray-600 disabled:hover:text-gray-600 mr-2">
 				<div class="  self-center disabled:text-gray-600 disabled:hover:text-gray-600 mr-2">
-					<Tooltip content="Remove Model">
+					<Tooltip content={$i18n.t('Remove Model')}>
 						<button
 						<button
 							{disabled}
 							{disabled}
 							on:click={() => {
 							on:click={() => {

+ 2 - 2
src/lib/components/chat/ModelSelector/Selector.svelte

@@ -305,7 +305,7 @@
 				{:else}
 				{:else}
 					<div>
 					<div>
 						<div class="block px-3 py-2 text-sm text-gray-700 dark:text-gray-100">
 						<div class="block px-3 py-2 text-sm text-gray-700 dark:text-gray-100">
-							No results found
+							{$i18n.t('No results found')}
 						</div>
 						</div>
 					</div>
 					</div>
 				{/each}
 				{/each}
@@ -317,7 +317,7 @@
 							pullModelHandler();
 							pullModelHandler();
 						}}
 						}}
 					>
 					>
-						Pull "{searchValue}" from Ollama.com
+						{$i18n.t(`Pull "{{searchValue}}" from Ollama.com`, { searchValue: searchValue })}
 					</button>
 					</button>
 				{/if}
 				{/if}
 
 

+ 2 - 2
src/lib/components/chat/Settings/Account.svelte

@@ -447,7 +447,7 @@
 								{/if}
 								{/if}
 							</button>
 							</button>
 
 
-							<Tooltip content="Create new key">
+							<Tooltip content={$i18n.t('Create new key')}>
 								<button
 								<button
 									class=" px-1.5 py-1 dark:hover:bg-gray-850transition rounded-lg"
 									class=" px-1.5 py-1 dark:hover:bg-gray-850transition rounded-lg"
 									on:click={() => {
 									on:click={() => {
@@ -479,7 +479,7 @@
 							>
 							>
 								<Plus strokeWidth="2" className=" size-3.5" />
 								<Plus strokeWidth="2" className=" size-3.5" />
 
 
-								Create new secret key</button
+								{$i18n.t('Create new secret key')}</button
 							>
 							>
 						{/if}
 						{/if}
 					</div>
 					</div>

+ 1 - 1
src/lib/components/chat/Settings/Connections.svelte

@@ -164,7 +164,7 @@
 						<div class="flex gap-1.5">
 						<div class="flex gap-1.5">
 							<input
 							<input
 								class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
 								class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
-								placeholder="Enter URL (e.g. http://localhost:11434)"
+								placeholder={$i18n.t('Enter URL (e.g. http://localhost:11434)')}
 								bind:value={url}
 								bind:value={url}
 							/>
 							/>
 
 

+ 10 - 6
src/lib/components/chat/ShareChatModal.svelte

@@ -97,9 +97,10 @@
 				<div class=" text-sm dark:text-gray-300 mb-1">
 				<div class=" text-sm dark:text-gray-300 mb-1">
 					{#if chat.share_id}
 					{#if chat.share_id}
 						<a href="/s/{chat.share_id}" target="_blank"
 						<a href="/s/{chat.share_id}" target="_blank"
-							>You have shared this chat <span class=" underline">before</span>.</a
+							>{$i18n.t('You have shared this chat')}
+							<span class=" underline">{$i18n.t('before')}</span>.</a
 						>
 						>
-						Click here to
+						{$i18n.t('Click here to')}
 						<button
 						<button
 							class="underline"
 							class="underline"
 							on:click={async () => {
 							on:click={async () => {
@@ -108,11 +109,14 @@
 								if (res) {
 								if (res) {
 									chat = await getChatById(localStorage.token, chatId);
 									chat = await getChatById(localStorage.token, chatId);
 								}
 								}
-							}}>delete this link</button
-						> and create a new shared link.
+							}}
+							>{$i18n.t('delete this link')}
+						</button>
+						{$i18n.t('and create a new shared link.')}
 					{:else}
 					{:else}
-						Messages you send after creating your link won't be shared. Users with the URL will be
-						able to view the shared chat.
+						{$i18n.t(
+							"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat."
+						)}
 					{/if}
 					{/if}
 				</div>
 				</div>
 
 

+ 1 - 1
src/lib/components/common/ImagePreview.svelte

@@ -51,7 +51,7 @@
 				<button
 				<button
 					class=" p-5"
 					class=" p-5"
 					on:click={() => {
 					on:click={() => {
-						downloadImage(src, 'Image.png');
+						downloadImage(src, src.substring(src.lastIndexOf('/') + 1));
 					}}
 					}}
 				>
 				>
 					<svg
 					<svg

+ 126 - 0
src/lib/components/documents/Settings/ChunkParams.svelte

@@ -0,0 +1,126 @@
+<script lang="ts">
+	import { getDocs } from '$lib/apis/documents';
+	import {
+		getRAGConfig,
+		updateRAGConfig,
+		getQuerySettings,
+		scanDocs,
+		updateQuerySettings,
+		resetVectorDB,
+		getEmbeddingConfig,
+		updateEmbeddingConfig,
+		getRerankingConfig,
+		updateRerankingConfig
+	} from '$lib/apis/rag';
+
+	import { documents, models } from '$lib/stores';
+	import { onMount, getContext } from 'svelte';
+	import { toast } from 'svelte-sonner';
+
+	import Tooltip from '$lib/components/common/Tooltip.svelte';
+
+	const i18n = getContext('i18n');
+
+	export let saveHandler: Function;
+
+	let scanDirLoading = false;
+	let updateEmbeddingModelLoading = false;
+	let updateRerankingModelLoading = false;
+
+	let showResetConfirm = false;
+
+	let chunkSize = 0;
+	let chunkOverlap = 0;
+	let pdfExtractImages = true;
+
+	const submitHandler = async () => {
+		const res = await updateRAGConfig(localStorage.token, {
+			pdf_extract_images: pdfExtractImages,
+			chunk: {
+				chunk_overlap: chunkOverlap,
+				chunk_size: chunkSize
+			}
+		});
+	};
+
+	onMount(async () => {
+		const res = await getRAGConfig(localStorage.token);
+
+		if (res) {
+			pdfExtractImages = res.pdf_extract_images;
+
+			chunkSize = res.chunk.chunk_size;
+			chunkOverlap = res.chunk.chunk_overlap;
+		}
+	});
+</script>
+
+<form
+	class="flex flex-col h-full justify-between space-y-3 text-sm"
+	on:submit|preventDefault={() => {
+		submitHandler();
+		saveHandler();
+	}}
+>
+	<div class=" space-y-3 pr-1.5 overflow-y-scroll h-full max-h-[22rem]">
+		<div class=" ">
+			<div class=" text-sm font-medium">{$i18n.t('Chunk Params')}</div>
+
+			<div class=" flex">
+				<div class="  flex w-full justify-between">
+					<div class="self-center text-xs font-medium min-w-fit">{$i18n.t('Chunk Size')}</div>
+
+					<div class="self-center p-3">
+						<input
+							class=" w-full rounded-lg py-1.5 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
+							type="number"
+							placeholder={$i18n.t('Enter Chunk Size')}
+							bind:value={chunkSize}
+							autocomplete="off"
+							min="0"
+						/>
+					</div>
+				</div>
+
+				<div class="flex w-full">
+					<div class=" self-center text-xs font-medium min-w-fit">
+						{$i18n.t('Chunk Overlap')}
+					</div>
+
+					<div class="self-center p-3">
+						<input
+							class="w-full rounded-lg py-1.5 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
+							type="number"
+							placeholder={$i18n.t('Enter Chunk Overlap')}
+							bind:value={chunkOverlap}
+							autocomplete="off"
+							min="0"
+						/>
+					</div>
+				</div>
+			</div>
+
+			<div class="pr-2">
+				<div class="flex justify-between items-center text-xs">
+					<div class=" text-xs font-medium">{$i18n.t('PDF Extract Images (OCR)')}</div>
+
+					<button
+						class=" text-xs font-medium text-gray-500"
+						type="button"
+						on:click={() => {
+							pdfExtractImages = !pdfExtractImages;
+						}}>{pdfExtractImages ? $i18n.t('On') : $i18n.t('Off')}</button
+					>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="flex justify-end pt-3 text-sm font-medium">
+		<button
+			class=" px-4 py-2 bg-emerald-700 hover:bg-emerald-800 text-gray-100 transition rounded-lg"
+			type="submit"
+		>
+			{$i18n.t('Save')}
+		</button>
+	</div>
+</form>

+ 209 - 393
src/lib/components/documents/Settings/General.svelte

@@ -1,8 +1,6 @@
 <script lang="ts">
 <script lang="ts">
 	import { getDocs } from '$lib/apis/documents';
 	import { getDocs } from '$lib/apis/documents';
 	import {
 	import {
-		getRAGConfig,
-		updateRAGConfig,
 		getQuerySettings,
 		getQuerySettings,
 		scanDocs,
 		scanDocs,
 		updateQuerySettings,
 		updateQuerySettings,
@@ -17,8 +15,6 @@
 	import { onMount, getContext } from 'svelte';
 	import { onMount, getContext } from 'svelte';
 	import { toast } from 'svelte-sonner';
 	import { toast } from 'svelte-sonner';
 
 
-	import Tooltip from '$lib/components/common/Tooltip.svelte';
-
 	const i18n = getContext('i18n');
 	const i18n = getContext('i18n');
 
 
 	export let saveHandler: Function;
 	export let saveHandler: Function;
@@ -36,10 +32,6 @@
 	let OpenAIKey = '';
 	let OpenAIKey = '';
 	let OpenAIUrl = '';
 	let OpenAIUrl = '';
 
 
-	let chunkSize = 0;
-	let chunkOverlap = 0;
-	let pdfExtractImages = true;
-
 	let querySettings = {
 	let querySettings = {
 		template: '',
 		template: '',
 		r: 0.0,
 		r: 0.0,
@@ -151,14 +143,11 @@
 	};
 	};
 
 
 	const submitHandler = async () => {
 	const submitHandler = async () => {
-		const res = await updateRAGConfig(localStorage.token, {
-			pdf_extract_images: pdfExtractImages,
-			chunk: {
-				chunk_overlap: chunkOverlap,
-				chunk_size: chunkSize
-			}
-		});
-		querySettings = await updateQuerySettings(localStorage.token, querySettings);
+		embeddingModelUpdateHandler();
+
+		if (querySettings.hybrid) {
+			rerankingModelUpdateHandler();
+		}
 	};
 	};
 
 
 	const setEmbeddingConfig = async () => {
 	const setEmbeddingConfig = async () => {
@@ -183,20 +172,10 @@
 
 
 	const toggleHybridSearch = async () => {
 	const toggleHybridSearch = async () => {
 		querySettings.hybrid = !querySettings.hybrid;
 		querySettings.hybrid = !querySettings.hybrid;
-
 		querySettings = await updateQuerySettings(localStorage.token, querySettings);
 		querySettings = await updateQuerySettings(localStorage.token, querySettings);
 	};
 	};
 
 
 	onMount(async () => {
 	onMount(async () => {
-		const res = await getRAGConfig(localStorage.token);
-
-		if (res) {
-			pdfExtractImages = res.pdf_extract_images;
-
-			chunkSize = res.chunk.chunk_size;
-			chunkOverlap = res.chunk.chunk_overlap;
-		}
-
 		await setEmbeddingConfig();
 		await setEmbeddingConfig();
 		await setRerankingConfig();
 		await setRerankingConfig();
 
 
@@ -211,24 +190,54 @@
 		saveHandler();
 		saveHandler();
 	}}
 	}}
 >
 >
-	<div class=" space-y-3 pr-1.5 overflow-y-scroll max-h-[22rem]">
-		<div>
-			<div class=" mb-2 text-sm font-medium">{$i18n.t('General Settings')}</div>
+	<div class=" space-y-2.5 pr-1.5 overflow-y-scroll max-h-[22rem]">
+		<div class="flex flex-col gap-0.5">
+			<div class=" mb-0.5 text-sm font-medium">{$i18n.t('General Settings')}</div>
 
 
-			<div class=" flex w-full justify-between">
-				<div class=" self-center text-xs font-medium">{$i18n.t('Hybrid Search')}</div>
+			<div class="  flex w-full justify-between">
+				<div class=" self-center text-xs font-medium">
+					{$i18n.t('Scan for documents from {{path}}', { path: '/data/docs' })}
+				</div>
 
 
 				<button
 				<button
-					class="p-1 px-3 text-xs flex rounded transition"
+					class=" self-center text-xs p-1 px-3 bg-gray-100 dark:bg-gray-800 dark:hover:bg-gray-700 rounded-lg flex flex-row space-x-1 items-center {scanDirLoading
+						? ' cursor-not-allowed'
+						: ''}"
 					on:click={() => {
 					on:click={() => {
-						toggleHybridSearch();
+						scanHandler();
+						console.log('check');
 					}}
 					}}
 					type="button"
 					type="button"
+					disabled={scanDirLoading}
 				>
 				>
-					{#if querySettings.hybrid === true}
-						<span class="ml-2 self-center">{$i18n.t('On')}</span>
-					{:else}
-						<span class="ml-2 self-center">{$i18n.t('Off')}</span>
+					<div class="self-center font-medium">{$i18n.t('Scan')}</div>
+
+					{#if scanDirLoading}
+						<div class="ml-3 self-center">
+							<svg
+								class=" w-3 h-3"
+								viewBox="0 0 24 24"
+								fill="currentColor"
+								xmlns="http://www.w3.org/2000/svg"
+								><style>
+									.spinner_ajPY {
+										transform-origin: center;
+										animation: spinner_AtaB 0.75s infinite linear;
+									}
+									@keyframes spinner_AtaB {
+										100% {
+											transform: rotate(360deg);
+										}
+									}
+								</style><path
+									d="M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z"
+									opacity=".25"
+								/><path
+									d="M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z"
+									class="spinner_ajPY"
+								/></svg
+							>
+						</div>
 					{/if}
 					{/if}
 				</button>
 				</button>
 			</div>
 			</div>
@@ -256,7 +265,7 @@
 			</div>
 			</div>
 
 
 			{#if embeddingEngine === 'openai'}
 			{#if embeddingEngine === 'openai'}
-				<div class="mt-1 flex gap-2">
+				<div class="my-0.5 flex gap-2">
 					<input
 					<input
 						class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
 						class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
 						placeholder={$i18n.t('API Base URL')}
 						placeholder={$i18n.t('API Base URL')}
@@ -272,31 +281,65 @@
 					/>
 					/>
 				</div>
 				</div>
 			{/if}
 			{/if}
+
+			<div class=" flex w-full justify-between">
+				<div class=" self-center text-xs font-medium">{$i18n.t('Hybrid Search')}</div>
+
+				<button
+					class="p-1 px-3 text-xs flex rounded transition"
+					on:click={() => {
+						toggleHybridSearch();
+					}}
+					type="button"
+				>
+					{#if querySettings.hybrid === true}
+						<span class="ml-2 self-center">{$i18n.t('On')}</span>
+					{:else}
+						<span class="ml-2 self-center">{$i18n.t('Off')}</span>
+					{/if}
+				</button>
+			</div>
 		</div>
 		</div>
 
 
-		<div class="space-y-2">
-			<div>
-				<div class=" mb-2 text-sm font-medium">{$i18n.t('Update Embedding Model')}</div>
+		<hr class=" dark:border-gray-700 my-1" />
 
 
-				{#if embeddingEngine === 'ollama'}
-					<div class="flex w-full">
-						<div class="flex-1 mr-2">
-							<select
-								class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
-								bind:value={embeddingModel}
-								placeholder={$i18n.t('Select a model')}
-								required
-							>
-								{#if !embeddingModel}
-									<option value="" disabled selected>{$i18n.t('Select a model')}</option>
-								{/if}
-								{#each $models.filter((m) => m.id && !m.external) as model}
-									<option value={model.name} class="bg-gray-100 dark:bg-gray-700"
-										>{model.name + ' (' + (model.size / 1024 ** 3).toFixed(1) + ' GB)'}</option
-									>
-								{/each}
-							</select>
-						</div>
+		<div class="space-y-2" />
+		<div>
+			<div class=" mb-2 text-sm font-medium">{$i18n.t('Embedding Model')}</div>
+
+			{#if embeddingEngine === 'ollama'}
+				<div class="flex w-full">
+					<div class="flex-1 mr-2">
+						<select
+							class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
+							bind:value={embeddingModel}
+							placeholder={$i18n.t('Select a model')}
+							required
+						>
+							{#if !embeddingModel}
+								<option value="" disabled selected>{$i18n.t('Select a model')}</option>
+							{/if}
+							{#each $models.filter((m) => m.id && !m.external) as model}
+								<option value={model.name} class="bg-gray-100 dark:bg-gray-700"
+									>{model.name + ' (' + (model.size / 1024 ** 3).toFixed(1) + ' GB)'}</option
+								>
+							{/each}
+						</select>
+					</div>
+				</div>
+			{:else}
+				<div class="flex w-full">
+					<div class="flex-1 mr-2">
+						<input
+							class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
+							placeholder={$i18n.t('Set embedding model (e.g. {{model}})', {
+								model: embeddingModel.slice(-40)
+							})}
+							bind:value={embeddingModel}
+						/>
+					</div>
+
+					{#if embeddingEngine === ''}
 						<button
 						<button
 							class="px-2.5 bg-gray-100 hover:bg-gray-200 text-gray-800 dark:bg-gray-850 dark:hover:bg-gray-800 dark:text-gray-100 rounded-lg transition"
 							class="px-2.5 bg-gray-100 hover:bg-gray-200 text-gray-800 dark:bg-gray-850 dark:hover:bg-gray-800 dark:text-gray-100 rounded-lg transition"
 							on:click={() => {
 							on:click={() => {
@@ -338,33 +381,46 @@
 									class="w-4 h-4"
 									class="w-4 h-4"
 								>
 								>
 									<path
 									<path
-										fill-rule="evenodd"
-										d="M12.416 3.376a.75.75 0 0 1 .208 1.04l-5 7.5a.75.75 0 0 1-1.154.114l-3-3a.75.75 0 0 1 1.06-1.06l2.353 2.353 4.493-6.74a.75.75 0 0 1 1.04-.207Z"
-										clip-rule="evenodd"
+										d="M8.75 2.75a.75.75 0 0 0-1.5 0v5.69L5.03 6.22a.75.75 0 0 0-1.06 1.06l3.5 3.5a.75.75 0 0 0 1.06 0l3.5-3.5a.75.75 0 0 0-1.06-1.06L8.75 8.44V2.75Z"
+									/>
+									<path
+										d="M3.5 9.75a.75.75 0 0 0-1.5 0v1.5A2.75 2.75 0 0 0 4.75 14h6.5A2.75 2.75 0 0 0 14 11.25v-1.5a.75.75 0 0 0-1.5 0v1.5c0 .69-.56 1.25-1.25 1.25h-6.5c-.69 0-1.25-.56-1.25-1.25v-1.5Z"
 									/>
 									/>
 								</svg>
 								</svg>
 							{/if}
 							{/if}
 						</button>
 						</button>
-					</div>
-				{:else}
+					{/if}
+				</div>
+			{/if}
+
+			<div class="mt-2 mb-1 text-xs text-gray-400 dark:text-gray-500">
+				{$i18n.t(
+					'Warning: If you update or change your embedding model, you will need to re-import all documents.'
+				)}
+			</div>
+
+			{#if querySettings.hybrid === true}
+				<div class=" ">
+					<div class=" mb-2 text-sm font-medium">{$i18n.t('Reranking Model')}</div>
+
 					<div class="flex w-full">
 					<div class="flex w-full">
 						<div class="flex-1 mr-2">
 						<div class="flex-1 mr-2">
 							<input
 							<input
 								class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
 								class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
-								placeholder={$i18n.t('Update embedding model (e.g. {{model}})', {
-									model: embeddingModel.slice(-40)
+								placeholder={$i18n.t('Set reranking model (e.g. {{model}})', {
+									model: 'BAAI/bge-reranker-v2-m3'
 								})}
 								})}
-								bind:value={embeddingModel}
+								bind:value={rerankingModel}
 							/>
 							/>
 						</div>
 						</div>
 						<button
 						<button
 							class="px-2.5 bg-gray-100 hover:bg-gray-200 text-gray-800 dark:bg-gray-850 dark:hover:bg-gray-800 dark:text-gray-100 rounded-lg transition"
 							class="px-2.5 bg-gray-100 hover:bg-gray-200 text-gray-800 dark:bg-gray-850 dark:hover:bg-gray-800 dark:text-gray-100 rounded-lg transition"
 							on:click={() => {
 							on:click={() => {
-								embeddingModelUpdateHandler();
+								rerankingModelUpdateHandler();
 							}}
 							}}
-							disabled={updateEmbeddingModelLoading}
+							disabled={updateRerankingModelLoading}
 						>
 						>
-							{#if updateEmbeddingModelLoading}
+							{#if updateRerankingModelLoading}
 								<div class="self-center">
 								<div class="self-center">
 									<svg
 									<svg
 										class=" w-4 h-4"
 										class=" w-4 h-4"
@@ -407,343 +463,103 @@
 							{/if}
 							{/if}
 						</button>
 						</button>
 					</div>
 					</div>
-				{/if}
-
-				<div class="mt-2 mb-1 text-xs text-gray-400 dark:text-gray-500">
-					{$i18n.t(
-						'Warning: If you update or change your embedding model, you will need to re-import all documents.'
-					)}
 				</div>
 				</div>
+			{/if}
+		</div>
 
 
-				<hr class=" dark:border-gray-700 my-3" />
-
-				{#if querySettings.hybrid === true}
-					<div class=" ">
-						<div class=" mb-2 text-sm font-medium">{$i18n.t('Update Reranking Model')}</div>
-
-						<div class="flex w-full">
-							<div class="flex-1 mr-2">
-								<input
-									class="w-full rounded-lg py-2 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
-									placeholder={$i18n.t('Update reranking model (e.g. {{model}})', {
-										model: rerankingModel.slice(-40)
-									})}
-									bind:value={rerankingModel}
-								/>
-							</div>
-							<button
-								class="px-2.5 bg-gray-100 hover:bg-gray-200 text-gray-800 dark:bg-gray-850 dark:hover:bg-gray-800 dark:text-gray-100 rounded-lg transition"
-								on:click={() => {
-									rerankingModelUpdateHandler();
-								}}
-								disabled={updateRerankingModelLoading}
-							>
-								{#if updateRerankingModelLoading}
-									<div class="self-center">
-										<svg
-											class=" w-4 h-4"
-											viewBox="0 0 24 24"
-											fill="currentColor"
-											xmlns="http://www.w3.org/2000/svg"
-											><style>
-												.spinner_ajPY {
-													transform-origin: center;
-													animation: spinner_AtaB 0.75s infinite linear;
-												}
-												@keyframes spinner_AtaB {
-													100% {
-														transform: rotate(360deg);
-													}
-												}
-											</style><path
-												d="M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z"
-												opacity=".25"
-											/><path
-												d="M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z"
-												class="spinner_ajPY"
-											/></svg
-										>
-									</div>
-								{:else}
-									<svg
-										xmlns="http://www.w3.org/2000/svg"
-										viewBox="0 0 16 16"
-										fill="currentColor"
-										class="w-4 h-4"
-									>
-										<path
-											d="M8.75 2.75a.75.75 0 0 0-1.5 0v5.69L5.03 6.22a.75.75 0 0 0-1.06 1.06l3.5 3.5a.75.75 0 0 0 1.06 0l3.5-3.5a.75.75 0 0 0-1.06-1.06L8.75 8.44V2.75Z"
-										/>
-										<path
-											d="M3.5 9.75a.75.75 0 0 0-1.5 0v1.5A2.75 2.75 0 0 0 4.75 14h6.5A2.75 2.75 0 0 0 14 11.25v-1.5a.75.75 0 0 0-1.5 0v1.5c0 .69-.56 1.25-1.25 1.25h-6.5c-.69 0-1.25-.56-1.25-1.25v-1.5Z"
-										/>
-									</svg>
-								{/if}
-							</button>
-						</div>
-					</div>
-
-					<hr class=" dark:border-gray-700 my-3" />
-				{/if}
-
-				<div class="  flex w-full justify-between">
-					<div class=" self-center text-xs font-medium">
-						{$i18n.t('Scan for documents from {{path}}', { path: '/data/docs' })}
-					</div>
+		<hr class=" dark:border-gray-700" />
 
 
-					<button
-						class=" self-center text-xs p-1 px-3 bg-gray-100 dark:bg-gray-800 dark:hover:bg-gray-700 rounded-lg flex flex-row space-x-1 items-center {scanDirLoading
-							? ' cursor-not-allowed'
-							: ''}"
-						on:click={() => {
-							scanHandler();
-							console.log('check');
-						}}
-						type="button"
-						disabled={scanDirLoading}
+		{#if showResetConfirm}
+			<div class="flex justify-between rounded-md items-center py-2 px-3.5 w-full transition">
+				<div class="flex items-center space-x-3">
+					<svg
+						xmlns="http://www.w3.org/2000/svg"
+						viewBox="0 0 16 16"
+						fill="currentColor"
+						class="w-4 h-4"
 					>
 					>
-						<div class="self-center font-medium">{$i18n.t('Scan')}</div>
-
-						{#if scanDirLoading}
-							<div class="ml-3 self-center">
-								<svg
-									class=" w-3 h-3"
-									viewBox="0 0 24 24"
-									fill="currentColor"
-									xmlns="http://www.w3.org/2000/svg"
-									><style>
-										.spinner_ajPY {
-											transform-origin: center;
-											animation: spinner_AtaB 0.75s infinite linear;
-										}
-										@keyframes spinner_AtaB {
-											100% {
-												transform: rotate(360deg);
-											}
-										}
-									</style><path
-										d="M12,1A11,11,0,1,0,23,12,11,11,0,0,0,12,1Zm0,19a8,8,0,1,1,8-8A8,8,0,0,1,12,20Z"
-										opacity=".25"
-									/><path
-										d="M10.14,1.16a11,11,0,0,0-9,8.92A1.59,1.59,0,0,0,2.46,12,1.52,1.52,0,0,0,4.11,10.7a8,8,0,0,1,6.66-6.61A1.42,1.42,0,0,0,12,2.69h0A1.57,1.57,0,0,0,10.14,1.16Z"
-										class="spinner_ajPY"
-									/></svg
-								>
-							</div>
-						{/if}
-					</button>
-				</div>
-
-				<hr class=" dark:border-gray-700 my-3" />
-
-				<div class=" ">
-					<div class=" text-sm font-medium">{$i18n.t('Chunk Params')}</div>
-
-					<div class=" flex">
-						<div class="  flex w-full justify-between">
-							<div class="self-center text-xs font-medium min-w-fit">{$i18n.t('Chunk Size')}</div>
-
-							<div class="self-center p-3">
-								<input
-									class=" w-full rounded-lg py-1.5 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
-									type="number"
-									placeholder={$i18n.t('Enter Chunk Size')}
-									bind:value={chunkSize}
-									autocomplete="off"
-									min="0"
-								/>
-							</div>
-						</div>
-
-						<div class="flex w-full">
-							<div class=" self-center text-xs font-medium min-w-fit">
-								{$i18n.t('Chunk Overlap')}
-							</div>
-
-							<div class="self-center p-3">
-								<input
-									class="w-full rounded-lg py-1.5 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
-									type="number"
-									placeholder={$i18n.t('Enter Chunk Overlap')}
-									bind:value={chunkOverlap}
-									autocomplete="off"
-									min="0"
-								/>
-							</div>
-						</div>
-					</div>
-
-					<div class="pr-2">
-						<div class="flex justify-between items-center text-xs">
-							<div class=" text-xs font-medium">{$i18n.t('PDF Extract Images (OCR)')}</div>
-
-							<button
-								class=" text-xs font-medium text-gray-500"
-								type="button"
-								on:click={() => {
-									pdfExtractImages = !pdfExtractImages;
-								}}>{pdfExtractImages ? $i18n.t('On') : $i18n.t('Off')}</button
-							>
-						</div>
-					</div>
-				</div>
-
-				<hr class=" dark:border-gray-700 my-3" />
-
-				<div class=" ">
-					<div class=" text-sm font-medium">{$i18n.t('Query Params')}</div>
-
-					<div class=" flex">
-						<div class="  flex w-full justify-between">
-							<div class="self-center text-xs font-medium min-w-fit">{$i18n.t('Top K')}</div>
-
-							<div class="self-center p-3">
-								<input
-									class=" w-full rounded-lg py-1.5 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
-									type="number"
-									placeholder={$i18n.t('Enter Top K')}
-									bind:value={querySettings.k}
-									autocomplete="off"
-									min="0"
-								/>
-							</div>
-						</div>
-
-						{#if querySettings.hybrid === true}
-							<div class="flex w-full">
-								<div class=" self-center text-xs font-medium min-w-fit">
-									{$i18n.t('Minimum Score')}
-								</div>
-
-								<div class="self-center p-3">
-									<input
-										class=" w-full rounded-lg py-1.5 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
-										type="number"
-										step="0.01"
-										placeholder={$i18n.t('Enter Score')}
-										bind:value={querySettings.r}
-										autocomplete="off"
-										min="0.0"
-										title={$i18n.t('The score should be a value between 0.0 (0%) and 1.0 (100%).')}
-									/>
-								</div>
-							</div>
-						{/if}
-					</div>
-
-					{#if querySettings.hybrid === true}
-						<div class="mt-2 mb-1 text-xs text-gray-400 dark:text-gray-500">
-							{$i18n.t(
-								'Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.'
-							)}
-						</div>
-
-						<hr class=" dark:border-gray-700 my-3" />
-					{/if}
-
-					<div>
-						<div class=" mb-2.5 text-sm font-medium">{$i18n.t('RAG Template')}</div>
-						<textarea
-							bind:value={querySettings.template}
-							class="w-full rounded-lg px-4 py-3 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none resize-none"
-							rows="4"
+						<path d="M2 3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3Z" />
+						<path
+							fill-rule="evenodd"
+							d="M13 6H3v6a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V6ZM5.72 7.47a.75.75 0 0 1 1.06 0L8 8.69l1.22-1.22a.75.75 0 1 1 1.06 1.06L9.06 9.75l1.22 1.22a.75.75 0 1 1-1.06 1.06L8 10.81l-1.22 1.22a.75.75 0 0 1-1.06-1.06l1.22-1.22-1.22-1.22a.75.75 0 0 1 0-1.06Z"
+							clip-rule="evenodd"
 						/>
 						/>
-					</div>
+					</svg>
+					<span>{$i18n.t('Are you sure?')}</span>
 				</div>
 				</div>
 
 
-				{#if showResetConfirm}
-					<div class="flex justify-between rounded-md items-center py-2 px-3.5 w-full transition">
-						<div class="flex items-center space-x-3">
-							<svg
-								xmlns="http://www.w3.org/2000/svg"
-								viewBox="0 0 16 16"
-								fill="currentColor"
-								class="w-4 h-4"
-							>
-								<path d="M2 3a1 1 0 0 1 1-1h10a1 1 0 0 1 1 1v1a1 1 0 0 1-1 1H3a1 1 0 0 1-1-1V3Z" />
-								<path
-									fill-rule="evenodd"
-									d="M13 6H3v6a2 2 0 0 0 2 2h6a2 2 0 0 0 2-2V6ZM5.72 7.47a.75.75 0 0 1 1.06 0L8 8.69l1.22-1.22a.75.75 0 1 1 1.06 1.06L9.06 9.75l1.22 1.22a.75.75 0 1 1-1.06 1.06L8 10.81l-1.22 1.22a.75.75 0 0 1-1.06-1.06l1.22-1.22-1.22-1.22a.75.75 0 0 1 0-1.06Z"
-									clip-rule="evenodd"
-								/>
-							</svg>
-							<span>{$i18n.t('Are you sure?')}</span>
-						</div>
+				<div class="flex space-x-1.5 items-center">
+					<button
+						class="hover:text-white transition"
+						on:click={() => {
+							const res = resetVectorDB(localStorage.token).catch((error) => {
+								toast.error(error);
+								return null;
+							});
 
 
-						<div class="flex space-x-1.5 items-center">
-							<button
-								class="hover:text-white transition"
-								on:click={() => {
-									const res = resetVectorDB(localStorage.token).catch((error) => {
-										toast.error(error);
-										return null;
-									});
-
-									if (res) {
-										toast.success($i18n.t('Success'));
-									}
+							if (res) {
+								toast.success($i18n.t('Success'));
+							}
 
 
-									showResetConfirm = false;
-								}}
-							>
-								<svg
-									xmlns="http://www.w3.org/2000/svg"
-									viewBox="0 0 20 20"
-									fill="currentColor"
-									class="w-4 h-4"
-								>
-									<path
-										fill-rule="evenodd"
-										d="M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z"
-										clip-rule="evenodd"
-									/>
-								</svg>
-							</button>
-							<button
-								class="hover:text-white transition"
-								on:click={() => {
-									showResetConfirm = false;
-								}}
-							>
-								<svg
-									xmlns="http://www.w3.org/2000/svg"
-									viewBox="0 0 20 20"
-									fill="currentColor"
-									class="w-4 h-4"
-								>
-									<path
-										d="M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"
-									/>
-								</svg>
-							</button>
-						</div>
-					</div>
-				{:else}
+							showResetConfirm = false;
+						}}
+					>
+						<svg
+							xmlns="http://www.w3.org/2000/svg"
+							viewBox="0 0 20 20"
+							fill="currentColor"
+							class="w-4 h-4"
+						>
+							<path
+								fill-rule="evenodd"
+								d="M16.704 4.153a.75.75 0 01.143 1.052l-8 10.5a.75.75 0 01-1.127.075l-4.5-4.5a.75.75 0 011.06-1.06l3.894 3.893 7.48-9.817a.75.75 0 011.05-.143z"
+								clip-rule="evenodd"
+							/>
+						</svg>
+					</button>
 					<button
 					<button
-						class=" flex rounded-md py-2 px-3.5 w-full hover:bg-gray-200 dark:hover:bg-gray-800 transition"
+						class="hover:text-white transition"
 						on:click={() => {
 						on:click={() => {
-							showResetConfirm = true;
+							showResetConfirm = false;
 						}}
 						}}
 					>
 					>
-						<div class=" self-center mr-3">
-							<svg
-								xmlns="http://www.w3.org/2000/svg"
-								viewBox="0 0 16 16"
-								fill="currentColor"
-								class="w-4 h-4"
-							>
-								<path
-									fill-rule="evenodd"
-									d="M3.5 2A1.5 1.5 0 0 0 2 3.5v9A1.5 1.5 0 0 0 3.5 14h9a1.5 1.5 0 0 0 1.5-1.5v-7A1.5 1.5 0 0 0 12.5 4H9.621a1.5 1.5 0 0 1-1.06-.44L7.439 2.44A1.5 1.5 0 0 0 6.38 2H3.5Zm6.75 7.75a.75.75 0 0 0 0-1.5h-4.5a.75.75 0 0 0 0 1.5h4.5Z"
-									clip-rule="evenodd"
-								/>
-							</svg>
-						</div>
-						<div class=" self-center text-sm font-medium">{$i18n.t('Reset Vector Storage')}</div>
+						<svg
+							xmlns="http://www.w3.org/2000/svg"
+							viewBox="0 0 20 20"
+							fill="currentColor"
+							class="w-4 h-4"
+						>
+							<path
+								d="M6.28 5.22a.75.75 0 00-1.06 1.06L8.94 10l-3.72 3.72a.75.75 0 101.06 1.06L10 11.06l3.72 3.72a.75.75 0 101.06-1.06L11.06 10l3.72-3.72a.75.75 0 00-1.06-1.06L10 8.94 6.28 5.22z"
+							/>
+						</svg>
 					</button>
 					</button>
-				{/if}
+				</div>
 			</div>
 			</div>
-		</div>
+		{:else}
+			<button
+				class=" flex rounded-md py-2 px-3.5 w-full hover:bg-gray-200 dark:hover:bg-gray-800 transition"
+				on:click={() => {
+					showResetConfirm = true;
+				}}
+			>
+				<div class=" self-center mr-3">
+					<svg
+						xmlns="http://www.w3.org/2000/svg"
+						viewBox="0 0 16 16"
+						fill="currentColor"
+						class="w-4 h-4"
+					>
+						<path
+							fill-rule="evenodd"
+							d="M3.5 2A1.5 1.5 0 0 0 2 3.5v9A1.5 1.5 0 0 0 3.5 14h9a1.5 1.5 0 0 0 1.5-1.5v-7A1.5 1.5 0 0 0 12.5 4H9.621a1.5 1.5 0 0 1-1.06-.44L7.439 2.44A1.5 1.5 0 0 0 6.38 2H3.5Zm6.75 7.75a.75.75 0 0 0 0-1.5h-4.5a.75.75 0 0 0 0 1.5h4.5Z"
+							clip-rule="evenodd"
+						/>
+					</svg>
+				</div>
+				<div class=" self-center text-sm font-medium">{$i18n.t('Reset Vector Storage')}</div>
+			</button>
+		{/if}
 	</div>
 	</div>
 	<div class="flex justify-end pt-3 text-sm font-medium">
 	<div class="flex justify-end pt-3 text-sm font-medium">
 		<button
 		<button

+ 119 - 0
src/lib/components/documents/Settings/QueryParams.svelte

@@ -0,0 +1,119 @@
+<script lang="ts">
+	import { getDocs } from '$lib/apis/documents';
+	import {
+		getRAGConfig,
+		updateRAGConfig,
+		getQuerySettings,
+		scanDocs,
+		updateQuerySettings,
+		resetVectorDB,
+		getEmbeddingConfig,
+		updateEmbeddingConfig,
+		getRerankingConfig,
+		updateRerankingConfig
+	} from '$lib/apis/rag';
+
+	import { documents, models } from '$lib/stores';
+	import { onMount, getContext } from 'svelte';
+	import { toast } from 'svelte-sonner';
+
+	import Tooltip from '$lib/components/common/Tooltip.svelte';
+
+	const i18n = getContext('i18n');
+
+	export let saveHandler: Function;
+
+	let querySettings = {
+		template: '',
+		r: 0.0,
+		k: 4,
+		hybrid: false
+	};
+
+	const submitHandler = async () => {
+		querySettings = await updateQuerySettings(localStorage.token, querySettings);
+	};
+
+	onMount(async () => {
+		querySettings = await getQuerySettings(localStorage.token);
+	});
+</script>
+
+<form
+	class="flex flex-col h-full justify-between space-y-3 text-sm"
+	on:submit|preventDefault={() => {
+		submitHandler();
+		saveHandler();
+	}}
+>
+	<div class=" space-y-3 pr-1.5 overflow-y-scroll max-h-[22rem]">
+		<div class=" ">
+			<div class=" text-sm font-medium">{$i18n.t('Query Params')}</div>
+
+			<div class=" flex">
+				<div class="  flex w-full justify-between">
+					<div class="self-center text-xs font-medium min-w-fit">{$i18n.t('Top K')}</div>
+
+					<div class="self-center p-3">
+						<input
+							class=" w-full rounded-lg py-1.5 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
+							type="number"
+							placeholder={$i18n.t('Enter Top K')}
+							bind:value={querySettings.k}
+							autocomplete="off"
+							min="0"
+						/>
+					</div>
+				</div>
+
+				{#if querySettings.hybrid === true}
+					<div class="flex w-full">
+						<div class=" self-center text-xs font-medium min-w-fit">
+							{$i18n.t('Minimum Score')}
+						</div>
+
+						<div class="self-center p-3">
+							<input
+								class=" w-full rounded-lg py-1.5 px-4 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none"
+								type="number"
+								step="0.01"
+								placeholder={$i18n.t('Enter Score')}
+								bind:value={querySettings.r}
+								autocomplete="off"
+								min="0.0"
+								title={$i18n.t('The score should be a value between 0.0 (0%) and 1.0 (100%).')}
+							/>
+						</div>
+					</div>
+				{/if}
+			</div>
+
+			{#if querySettings.hybrid === true}
+				<div class="mt-2 mb-1 text-xs text-gray-400 dark:text-gray-500">
+					{$i18n.t(
+						'Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.'
+					)}
+				</div>
+
+				<hr class=" dark:border-gray-700 my-3" />
+			{/if}
+
+			<div>
+				<div class=" mb-2.5 text-sm font-medium">{$i18n.t('RAG Template')}</div>
+				<textarea
+					bind:value={querySettings.template}
+					class="w-full rounded-lg px-4 py-3 text-sm dark:text-gray-300 dark:bg-gray-850 outline-none resize-none"
+					rows="4"
+				/>
+			</div>
+		</div>
+	</div>
+	<div class="flex justify-end pt-3 text-sm font-medium">
+		<button
+			class=" px-4 py-2 bg-emerald-700 hover:bg-emerald-800 text-gray-100 transition rounded-lg"
+			type="submit"
+		>
+			{$i18n.t('Save')}
+		</button>
+	</div>
+</form>

+ 74 - 0
src/lib/components/documents/Settings/WebParams.svelte

@@ -0,0 +1,74 @@
+<script lang="ts">
+	import { getRAGConfig, updateRAGConfig } from '$lib/apis/rag';
+
+	import { documents, models } from '$lib/stores';
+	import { onMount, getContext } from 'svelte';
+	import { toast } from 'svelte-sonner';
+
+	const i18n = getContext('i18n');
+
+	export let saveHandler: Function;
+
+	let webLoaderSSLVerification = true;
+
+	const submitHandler = async () => {
+		const res = await updateRAGConfig(localStorage.token, {
+			web_loader_ssl_verification: webLoaderSSLVerification
+		});
+	};
+
+	onMount(async () => {
+		const res = await getRAGConfig(localStorage.token);
+
+		if (res) {
+			webLoaderSSLVerification = res.web_loader_ssl_verification;
+		}
+	});
+</script>
+
+<form
+	class="flex flex-col h-full justify-between space-y-3 text-sm"
+	on:submit|preventDefault={() => {
+		submitHandler();
+		saveHandler();
+	}}
+>
+	<div class=" space-y-3 pr-1.5 overflow-y-scroll h-full max-h-[22rem]">
+		<div>
+			<div class=" mb-1 text-sm font-medium">
+				{$i18n.t('Retrieval Augmented Generation Settings')}
+			</div>
+
+			<div>
+				<div class=" py-0.5 flex w-full justify-between">
+					<div class=" self-center text-xs font-medium">
+						{$i18n.t('Bypass SSL verification for Websites')}
+					</div>
+
+					<button
+						class="p-1 px-3 text-xs flex rounded transition"
+						on:click={() => {
+							webLoaderSSLVerification = !webLoaderSSLVerification;
+							submitHandler();
+						}}
+						type="button"
+					>
+						{#if webLoaderSSLVerification === true}
+							<span class="ml-2 self-center">{$i18n.t('On')}</span>
+						{:else}
+							<span class="ml-2 self-center">{$i18n.t('Off')}</span>
+						{/if}
+					</button>
+				</div>
+			</div>
+		</div>
+	</div>
+	<div class="flex justify-end pt-3 text-sm font-medium">
+		<button
+			class=" px-4 py-2 bg-emerald-700 hover:bg-emerald-800 text-gray-100 transition rounded-lg"
+			type="submit"
+		>
+			{$i18n.t('Save')}
+		</button>
+	</div>
+</form>

+ 102 - 8
src/lib/components/documents/SettingsModal.svelte

@@ -2,6 +2,10 @@
 	import { getContext } from 'svelte';
 	import { getContext } from 'svelte';
 	import Modal from '../common/Modal.svelte';
 	import Modal from '../common/Modal.svelte';
 	import General from './Settings/General.svelte';
 	import General from './Settings/General.svelte';
+	import ChunkParams from './Settings/ChunkParams.svelte';
+	import QueryParams from './Settings/QueryParams.svelte';
+	import WebParams from './Settings/WebParams.svelte';
+	import { toast } from 'svelte-sonner';
 
 
 	const i18n = getContext('i18n');
 	const i18n = getContext('i18n');
 
 
@@ -62,25 +66,115 @@
 					</div>
 					</div>
 					<div class=" self-center">{$i18n.t('General')}</div>
 					<div class=" self-center">{$i18n.t('General')}</div>
 				</button>
 				</button>
+
+				<button
+					class="px-2.5 py-2.5 min-w-fit rounded-lg flex-1 md:flex-none flex text-right transition {selectedTab ===
+					'chunk'
+						? 'bg-gray-200 dark:bg-gray-700'
+						: ' hover:bg-gray-300 dark:hover:bg-gray-800'}"
+					on:click={() => {
+						selectedTab = 'chunk';
+					}}
+				>
+					<div class=" self-center mr-2">
+						<svg
+							xmlns="http://www.w3.org/2000/svg"
+							viewBox="0 0 24 24"
+							fill="currentColor"
+							class="w-4 h-4"
+						>
+							<path
+								fill-rule="evenodd"
+								d="M5.625 1.5H9a3.75 3.75 0 0 1 3.75 3.75v1.875c0 1.036.84 1.875 1.875 1.875H16.5a3.75 3.75 0 0 1 3.75 3.75v7.875c0 1.035-.84 1.875-1.875 1.875H5.625a1.875 1.875 0 0 1-1.875-1.875V3.375c0-1.036.84-1.875 1.875-1.875ZM12.75 12a.75.75 0 0 0-1.5 0v2.25H9a.75.75 0 0 0 0 1.5h2.25V18a.75.75 0 0 0 1.5 0v-2.25H15a.75.75 0 0 0 0-1.5h-2.25V12Z"
+								clip-rule="evenodd"
+							/>
+							<path
+								d="M14.25 5.25a5.23 5.23 0 0 0-1.279-3.434 9.768 9.768 0 0 1 6.963 6.963A5.23 5.23 0 0 0 16.5 7.5h-1.875a.375.375 0 0 1-.375-.375V5.25Z"
+							/>
+						</svg>
+					</div>
+					<div class=" self-center">{$i18n.t('Chunk Params')}</div>
+				</button>
+
+				<button
+					class="px-2.5 py-2.5 min-w-fit rounded-lg flex-1 md:flex-none flex text-right transition {selectedTab ===
+					'query'
+						? 'bg-gray-200 dark:bg-gray-700'
+						: ' hover:bg-gray-300 dark:hover:bg-gray-800'}"
+					on:click={() => {
+						selectedTab = 'query';
+					}}
+				>
+					<div class=" self-center mr-2">
+						<svg
+							xmlns="http://www.w3.org/2000/svg"
+							viewBox="0 0 24 24"
+							fill="currentColor"
+							class="w-4 h-4"
+						>
+							<path d="M11.625 16.5a1.875 1.875 0 1 0 0-3.75 1.875 1.875 0 0 0 0 3.75Z" />
+							<path
+								fill-rule="evenodd"
+								d="M5.625 1.5H9a3.75 3.75 0 0 1 3.75 3.75v1.875c0 1.036.84 1.875 1.875 1.875H16.5a3.75 3.75 0 0 1 3.75 3.75v7.875c0 1.035-.84 1.875-1.875 1.875H5.625a1.875 1.875 0 0 1-1.875-1.875V3.375c0-1.036.84-1.875 1.875-1.875Zm6 16.5c.66 0 1.277-.19 1.797-.518l1.048 1.048a.75.75 0 0 0 1.06-1.06l-1.047-1.048A3.375 3.375 0 1 0 11.625 18Z"
+								clip-rule="evenodd"
+							/>
+							<path
+								d="M14.25 5.25a5.23 5.23 0 0 0-1.279-3.434 9.768 9.768 0 0 1 6.963 6.963A5.23 5.23 0 0 0 16.5 7.5h-1.875a.375.375 0 0 1-.375-.375V5.25Z"
+							/>
+						</svg>
+					</div>
+					<div class=" self-center">{$i18n.t('Query Params')}</div>
+				</button>
+
+				<button
+					class="px-2.5 py-2.5 min-w-fit rounded-lg flex-1 md:flex-none flex text-right transition {selectedTab ===
+					'web'
+						? 'bg-gray-200 dark:bg-gray-700'
+						: ' hover:bg-gray-300 dark:hover:bg-gray-800'}"
+					on:click={() => {
+						selectedTab = 'web';
+					}}
+				>
+					<div class=" self-center mr-2">
+						<svg
+							xmlns="http://www.w3.org/2000/svg"
+							viewBox="0 0 24 24"
+							fill="currentColor"
+							class="w-4 h-4"
+						>
+							<path
+								d="M21.721 12.752a9.711 9.711 0 0 0-.945-5.003 12.754 12.754 0 0 1-4.339 2.708 18.991 18.991 0 0 1-.214 4.772 17.165 17.165 0 0 0 5.498-2.477ZM14.634 15.55a17.324 17.324 0 0 0 .332-4.647c-.952.227-1.945.347-2.966.347-1.021 0-2.014-.12-2.966-.347a17.515 17.515 0 0 0 .332 4.647 17.385 17.385 0 0 0 5.268 0ZM9.772 17.119a18.963 18.963 0 0 0 4.456 0A17.182 17.182 0 0 1 12 21.724a17.18 17.18 0 0 1-2.228-4.605ZM7.777 15.23a18.87 18.87 0 0 1-.214-4.774 12.753 12.753 0 0 1-4.34-2.708 9.711 9.711 0 0 0-.944 5.004 17.165 17.165 0 0 0 5.498 2.477ZM21.356 14.752a9.765 9.765 0 0 1-7.478 6.817 18.64 18.64 0 0 0 1.988-4.718 18.627 18.627 0 0 0 5.49-2.098ZM2.644 14.752c1.682.971 3.53 1.688 5.49 2.099a18.64 18.64 0 0 0 1.988 4.718 9.765 9.765 0 0 1-7.478-6.816ZM13.878 2.43a9.755 9.755 0 0 1 6.116 3.986 11.267 11.267 0 0 1-3.746 2.504 18.63 18.63 0 0 0-2.37-6.49ZM12 2.276a17.152 17.152 0 0 1 2.805 7.121c-.897.23-1.837.353-2.805.353-.968 0-1.908-.122-2.805-.353A17.151 17.151 0 0 1 12 2.276ZM10.122 2.43a18.629 18.629 0 0 0-2.37 6.49 11.266 11.266 0 0 1-3.746-2.504 9.754 9.754 0 0 1 6.116-3.985Z"
+							/>
+						</svg>
+					</div>
+					<div class=" self-center">{$i18n.t('Web Params')}</div>
+				</button>
 			</div>
 			</div>
 			<div class="flex-1 md:min-h-[380px]">
 			<div class="flex-1 md:min-h-[380px]">
 				{#if selectedTab === 'general'}
 				{#if selectedTab === 'general'}
 					<General
 					<General
 						saveHandler={() => {
 						saveHandler={() => {
-							show = false;
+							toast.success($i18n.t('Settings saved successfully!'));
+						}}
+					/>
+				{:else if selectedTab === 'chunk'}
+					<ChunkParams
+						saveHandler={() => {
+							toast.success($i18n.t('Settings saved successfully!'));
 						}}
 						}}
 					/>
 					/>
-					<!-- <General
+				{:else if selectedTab === 'query'}
+					<QueryParams
 						saveHandler={() => {
 						saveHandler={() => {
-							show = false;
+							toast.success($i18n.t('Settings saved successfully!'));
 						}}
 						}}
-					/> -->
-					<!-- {:else if selectedTab === 'users'}
-					<Users
+					/>
+				{:else if selectedTab === 'web'}
+					<WebParams
 						saveHandler={() => {
 						saveHandler={() => {
-							show = false;
+							toast.success($i18n.t('Settings saved successfully!'));
 						}}
 						}}
-					/> -->
+					/>
 				{/if}
 				{/if}
 			</div>
 			</div>
 		</div>
 		</div>

+ 1 - 1
src/lib/components/layout/Sidebar.svelte

@@ -419,7 +419,7 @@
 							await chats.set(await getChatList(localStorage.token));
 							await chats.set(await getChatList(localStorage.token));
 						}}
 						}}
 					>
 					>
-						all
+						{$i18n.t('all')}
 					</button>
 					</button>
 					{#each $tags as tag}
 					{#each $tags as tag}
 						<button
 						<button

+ 3 - 1
src/lib/components/layout/Sidebar/ArchivedChatsModal.svelte

@@ -161,7 +161,9 @@
 						{/each} -->
 						{/each} -->
 					</div>
 					</div>
 				{:else}
 				{:else}
-					<div class="text-left text-sm w-full mb-8">You have no archived conversations.</div>
+					<div class="text-left text-sm w-full mb-8">
+						{$i18n.t('You have no archived conversations.')}
+					</div>
 				{/if}
 				{/if}
 			</div>
 			</div>
 		</div>
 		</div>

+ 3 - 3
src/lib/components/layout/Sidebar/ChatMenu.svelte

@@ -49,7 +49,7 @@
 				}}
 				}}
 			>
 			>
 				<Share />
 				<Share />
-				<div class="flex items-center">Share</div>
+				<div class="flex items-center">{$i18n.t('Share')}</div>
 			</DropdownMenu.Item>
 			</DropdownMenu.Item>
 
 
 			<DropdownMenu.Item
 			<DropdownMenu.Item
@@ -59,7 +59,7 @@
 				}}
 				}}
 			>
 			>
 				<Pencil strokeWidth="2" />
 				<Pencil strokeWidth="2" />
-				<div class="flex items-center">Rename</div>
+				<div class="flex items-center">{$i18n.t('Rename')}</div>
 			</DropdownMenu.Item>
 			</DropdownMenu.Item>
 
 
 			<DropdownMenu.Item
 			<DropdownMenu.Item
@@ -69,7 +69,7 @@
 				}}
 				}}
 			>
 			>
 				<GarbageBin strokeWidth="2" />
 				<GarbageBin strokeWidth="2" />
-				<div class="flex items-center">Delete</div>
+				<div class="flex items-center">{$i18n.t('Delete')}</div>
 			</DropdownMenu.Item>
 			</DropdownMenu.Item>
 
 
 			<hr class="border-gray-100 dark:border-gray-800 mt-2.5 mb-1.5" />
 			<hr class="border-gray-100 dark:border-gray-800 mt-2.5 mb-1.5" />

+ 26 - 4
src/lib/i18n/locales/ar-BH/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "هل تملك حساب ؟",
 	"Already have an account?": "هل تملك حساب ؟",
 	"an assistant": "مساعد",
 	"an assistant": "مساعد",
 	"and": "و",
 	"and": "و",
+	"and create a new shared link.": "",
 	"API Base URL": "API الرابط الرئيسي",
 	"API Base URL": "API الرابط الرئيسي",
 	"API Key": "API مفتاح",
 	"API Key": "API مفتاح",
 	"API Key created.": "API تم أنشاء المفتاح",
 	"API Key created.": "API تم أنشاء المفتاح",
@@ -54,8 +55,10 @@
 	"available!": "متاح",
 	"available!": "متاح",
 	"Back": "خلف",
 	"Back": "خلف",
 	"Bad Response": "استجابة خطاء",
 	"Bad Response": "استجابة خطاء",
+	"before": "",
 	"Being lazy": "كون كسول",
 	"Being lazy": "كون كسول",
 	"Builder Mode": "بناء الموديل",
 	"Builder Mode": "بناء الموديل",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "اللغاء",
 	"Cancel": "اللغاء",
 	"Categories": "التصنيفات",
 	"Categories": "التصنيفات",
 	"Change Password": "تغير الباسورد",
 	"Change Password": "تغير الباسورد",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "Chunk تداخل",
 	"Chunk Overlap": "Chunk تداخل",
 	"Chunk Params": "Chunk المتغيرات",
 	"Chunk Params": "Chunk المتغيرات",
 	"Chunk Size": "Chunk حجم",
 	"Chunk Size": "Chunk حجم",
+	"Citation": "",
 	"Click here for help.": "أضغط هنا للمساعدة",
 	"Click here for help.": "أضغط هنا للمساعدة",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "انقر هنا للتحقق من ملفات الموديلات الأخرى.",
 	"Click here to check other modelfiles.": "انقر هنا للتحقق من ملفات الموديلات الأخرى.",
 	"Click here to select": "أضغط هنا للاختيار",
 	"Click here to select": "أضغط هنا للاختيار",
 	"Click here to select a csv file.": "أضغط هنا للاختيار ملف csv",
 	"Click here to select a csv file.": "أضغط هنا للاختيار ملف csv",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "قم بإنشاء عبارة موجزة مكونة من 3-5 كلمات كرأس للاستعلام التالي، مع الالتزام الصارم بالحد الأقصى لعدد الكلمات الذي يتراوح بين 3-5 كلمات وتجنب استخدام الكلمة 'عنوان':",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "قم بإنشاء عبارة موجزة مكونة من 3-5 كلمات كرأس للاستعلام التالي، مع الالتزام الصارم بالحد الأقصى لعدد الكلمات الذي يتراوح بين 3-5 كلمات وتجنب استخدام الكلمة 'عنوان':",
 	"Create a modelfile": "إنشاء ملف نموذجي",
 	"Create a modelfile": "إنشاء ملف نموذجي",
 	"Create Account": "إنشاء حساب",
 	"Create Account": "إنشاء حساب",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "أنشئت في",
 	"Created at": "أنشئت في",
 	"Created At": "أنشئت من",
 	"Created At": "أنشئت من",
 	"Current Model": "الموديل المختار",
 	"Current Model": "الموديل المختار",
@@ -105,6 +112,7 @@
 	"Custom": "مخصص",
 	"Custom": "مخصص",
 	"Customize Ollama models for a specific purpose": "تخصيص الموديل Ollama لغرض محدد",
 	"Customize Ollama models for a specific purpose": "تخصيص الموديل Ollama لغرض محدد",
 	"Dark": "مظلم",
 	"Dark": "مظلم",
+	"Dashboard": "",
 	"Database": "قاعدة البيانات",
 	"Database": "قاعدة البيانات",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"Default": "الإفتراضي",
 	"Default": "الإفتراضي",
@@ -120,6 +128,7 @@
 	"Delete chat": "حذف المحادثه",
 	"Delete chat": "حذف المحادثه",
 	"Delete Chat": "حذف المحادثه.",
 	"Delete Chat": "حذف المحادثه.",
 	"Delete Chats": "حذ المحادثات",
 	"Delete Chats": "حذ المحادثات",
+	"delete this link": "",
 	"Delete User": "حذف المستخدم",
 	"Delete User": "حذف المستخدم",
 	"Deleted {{deleteModelTag}}": "حذف {{deleteModelTag}}",
 	"Deleted {{deleteModelTag}}": "حذف {{deleteModelTag}}",
 	"Deleted {{tagName}}": "حذف {{tagName}}",
 	"Deleted {{tagName}}": "حذف {{tagName}}",
@@ -146,6 +155,7 @@
 	"Edit Doc": "تعديل الملف",
 	"Edit Doc": "تعديل الملف",
 	"Edit User": "تعديل المستخدم",
 	"Edit User": "تعديل المستخدم",
 	"Email": "البريد",
 	"Email": "البريد",
+	"Embedding Model": "",
 	"Embedding Model Engine": "تضمين محرك النموذج",
 	"Embedding Model Engine": "تضمين محرك النموذج",
 	"Embedding model set to \"{{embedding_model}}\"": "تم تعيين نموذج التضمين على \"{{embedding_model}}\"",
 	"Embedding model set to \"{{embedding_model}}\"": "تم تعيين نموذج التضمين على \"{{embedding_model}}\"",
 	"Enable Chat History": "تمكين سجل الدردشة",
 	"Enable Chat History": "تمكين سجل الدردشة",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "أدخل تسلسل التوقف",
 	"Enter stop sequence": "أدخل تسلسل التوقف",
 	"Enter Top K": "Enter Top K",
 	"Enter Top K": "Enter Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "الرابط (e.g. http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "الرابط (e.g. http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "أدخل البريد الاكتروني",
 	"Enter Your Email": "أدخل البريد الاكتروني",
 	"Enter Your Full Name": "أدخل الاسم كامل",
 	"Enter Your Full Name": "أدخل الاسم كامل",
 	"Enter Your Password": "ادخل كلمة المرور",
 	"Enter Your Password": "ادخل كلمة المرور",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "إدارة موديلات Ollama",
 	"Manage Ollama Models": "إدارة موديلات Ollama",
 	"Max Tokens": "Max Tokens",
 	"Max Tokens": "Max Tokens",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "يمكن تنزيل 3 نماذج كحد أقصى في وقت واحد. الرجاء معاودة المحاولة في وقت لاحق.",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "يمكن تنزيل 3 نماذج كحد أقصى في وقت واحد. الرجاء معاودة المحاولة في وقت لاحق.",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "الحد الأدنى من النقاط",
 	"Minimum Score": "الحد الأدنى من النقاط",
 	"Mirostat": "Mirostat",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Eta": "Mirostat Eta",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "قم بتسمية ملف النموذج الخاص بك",
 	"Name your modelfile": "قم بتسمية ملف النموذج الخاص بك",
 	"New Chat": "دردشة جديدة",
 	"New Chat": "دردشة جديدة",
 	"New Password": "كلمة المرور الجديدة",
 	"New Password": "كلمة المرور الجديدة",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "ليس صحيحا من حيث الواقع",
 	"Not factually correct": "ليس صحيحا من حيث الواقع",
 	"Not sure what to add?": "لست متأكدا ما يجب إضافته؟",
 	"Not sure what to add?": "لست متأكدا ما يجب إضافته؟",
 	"Not sure what to write? Switch to": "لست متأكدا ماذا أكتب؟ التبديل إلى",
 	"Not sure what to write? Switch to": "لست متأكدا ماذا أكتب؟ التبديل إلى",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "مطلوب عنوان URL/مفتاح OpenAI.",
 	"OpenAI URL/Key required.": "مطلوب عنوان URL/مفتاح OpenAI.",
 	"or": "أو",
 	"or": "أو",
 	"Other": "آخر",
 	"Other": "آخر",
+	"Overview": "",
 	"Parameters": "Parameters",
 	"Parameters": "Parameters",
 	"Password": "الباسورد",
 	"Password": "الباسورد",
 	"PDF document (.pdf)": "PDF ملف (.pdf)",
 	"PDF document (.pdf)": "PDF ملف (.pdf)",
@@ -300,6 +315,7 @@
 	"Prompt Content": "محتوى عاجل",
 	"Prompt Content": "محتوى عاجل",
 	"Prompt suggestions": "اقتراحات سريعة",
 	"Prompt suggestions": "اقتراحات سريعة",
 	"Prompts": "حث",
 	"Prompts": "حث",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "سحب الموديل من Ollama.com",
 	"Pull a model from Ollama.com": "سحب الموديل من Ollama.com",
 	"Pull Progress": "سحب التقدم",
 	"Pull Progress": "سحب التقدم",
 	"Query Params": "Query Params",
 	"Query Params": "Query Params",
@@ -312,13 +328,17 @@
 	"Regenerate": "تجديد",
 	"Regenerate": "تجديد",
 	"Release Notes": "ملاحظات الإصدار",
 	"Release Notes": "ملاحظات الإصدار",
 	"Remove": "إزالة",
 	"Remove": "إزالة",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "كرر آخر N",
 	"Repeat Last N": "كرر آخر N",
 	"Repeat Penalty": "كرر المخالفة",
 	"Repeat Penalty": "كرر المخالفة",
 	"Request Mode": "وضع الطلب",
 	"Request Mode": "وضع الطلب",
+	"Reranking Model": "",
 	"Reranking model disabled": "تم تعطيل نموذج إعادة الترتيب",
 	"Reranking model disabled": "تم تعطيل نموذج إعادة الترتيب",
 	"Reranking model set to \"{{reranking_model}}\"": "تم ضبط نموذج إعادة الترتيب على \"{{reranking_model}}\"",
 	"Reranking model set to \"{{reranking_model}}\"": "تم ضبط نموذج إعادة الترتيب على \"{{reranking_model}}\"",
 	"Reset Vector Storage": "إعادة تعيين تخزين المتجهات",
 	"Reset Vector Storage": "إعادة تعيين تخزين المتجهات",
 	"Response AutoCopy to Clipboard": "النسخ التلقائي للاستجابة إلى الحافظة",
 	"Response AutoCopy to Clipboard": "النسخ التلقائي للاستجابة إلى الحافظة",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "منصب",
 	"Role": "منصب",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
@@ -346,7 +366,9 @@
 	"Server connection verified": "تم التحقق من اتصال الخادم",
 	"Server connection verified": "تم التحقق من اتصال الخادم",
 	"Set as default": "الافتراضي",
 	"Set as default": "الافتراضي",
 	"Set Default Model": "تفعيد الموديل الافتراضي",
 	"Set Default Model": "تفعيد الموديل الافتراضي",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "حجم الصورة",
 	"Set Image Size": "حجم الصورة",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "ضبط الخطوات",
 	"Set Steps": "ضبط الخطوات",
 	"Set Title Auto-Generation Model": "قم بتعيين نموذج إنشاء العنوان تلقائيًا",
 	"Set Title Auto-Generation Model": "قم بتعيين نموذج إنشاء العنوان تلقائيًا",
 	"Set Voice": "ضبط الصوت",
 	"Set Voice": "ضبط الصوت",
@@ -365,6 +387,7 @@
 	"Sign Out": "تسجيل الخروج",
 	"Sign Out": "تسجيل الخروج",
 	"Sign up": "تسجيل",
 	"Sign up": "تسجيل",
 	"Signing in": "جاري الدخول",
 	"Signing in": "جاري الدخول",
+	"Source": "",
 	"Speech recognition error: {{error}}": "خطأ في التعرف على الكلام: {{error}}",
 	"Speech recognition error: {{error}}": "خطأ في التعرف على الكلام: {{error}}",
 	"Speech-to-Text Engine": "محرك تحويل الكلام إلى نص",
 	"Speech-to-Text Engine": "محرك تحويل الكلام إلى نص",
 	"SpeechRecognition API is not supported in this browser.": "API SpeechRecognition غير مدعومة في هذا المتصفح.",
 	"SpeechRecognition API is not supported in this browser.": "API SpeechRecognition غير مدعومة في هذا المتصفح.",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "خطاء أوه! حدثت مشكلة في الاتصال بـ {{provider}}.",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "خطاء أوه! حدثت مشكلة في الاتصال بـ {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "نوع ملف غير معروف '{{file_type}}', ولكن القبول والتعامل كنص عادي ",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "نوع ملف غير معروف '{{file_type}}', ولكن القبول والتعامل كنص عادي ",
 	"Update and Copy Link": "تحديث ونسخ الرابط",
 	"Update and Copy Link": "تحديث ونسخ الرابط",
-	"Update Embedding Model": "تحديث الموديل التضمين",
-	"Update embedding model (e.g. {{model}})": "تحديث الموديلات التضمين (e.g. {{model}})",
 	"Update password": "تحديث كلمة المرور",
 	"Update password": "تحديث كلمة المرور",
-	"Update Reranking Model": "تحديث الموديل إعادة الترتيب",
-	"Update reranking model (e.g. {{model}})": "تحديث الموديل إعادة الترتيب (e.g. {{model}})",
 	"Upload a GGUF model": "رفع موديل نوع GGUF",
 	"Upload a GGUF model": "رفع موديل نوع GGUF",
 	"Upload files": "رفع الملفات",
 	"Upload files": "رفع الملفات",
 	"Upload Progress": "جاري التحميل",
 	"Upload Progress": "جاري التحميل",
@@ -431,6 +450,7 @@
 	"Version": "إصدار",
 	"Version": "إصدار",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "تحذير: إذا قمت بتحديث أو تغيير نموذج التضمين الخاص بك، فستحتاج إلى إعادة استيراد كافة المستندات.",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "تحذير: إذا قمت بتحديث أو تغيير نموذج التضمين الخاص بك، فستحتاج إلى إعادة استيراد كافة المستندات.",
 	"Web": "Web",
 	"Web": "Web",
+	"Web Params": "",
 	"Webhook URL": "Webhook الرابط",
 	"Webhook URL": "Webhook الرابط",
 	"WebUI Add-ons": "WebUI الأضافات",
 	"WebUI Add-ons": "WebUI الأضافات",
 	"WebUI Settings": "WebUI اعدادات",
 	"WebUI Settings": "WebUI اعدادات",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "اكتب اقتراحًا سريعًا (على سبيل المثال، من أنت؟)",
 	"Write a prompt suggestion (e.g. Who are you?)": "اكتب اقتراحًا سريعًا (على سبيل المثال، من أنت؟)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "اكتب ملخصًا في 50 كلمة يلخص [الموضوع أو الكلمة الرئيسية].",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "اكتب ملخصًا في 50 كلمة يلخص [الموضوع أو الكلمة الرئيسية].",
 	"You": "أنت",
 	"You": "أنت",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "مساعدك المفيد هنا",
 	"You're a helpful assistant.": "مساعدك المفيد هنا",
 	"You're now logged in.": "لقد قمت الآن بتسجيل الدخول.",
 	"You're now logged in.": "لقد قمت الآن بتسجيل الدخول.",
 	"Youtube": "Youtube"
 	"Youtube": "Youtube"

+ 26 - 4
src/lib/i18n/locales/bg-BG/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "Вече имате акаунт? ",
 	"Already have an account?": "Вече имате акаунт? ",
 	"an assistant": "асистент",
 	"an assistant": "асистент",
 	"and": "и",
 	"and": "и",
+	"and create a new shared link.": "",
 	"API Base URL": "API Базов URL",
 	"API Base URL": "API Базов URL",
 	"API Key": "API Ключ",
 	"API Key": "API Ключ",
 	"API Key created.": "",
 	"API Key created.": "",
@@ -54,8 +55,10 @@
 	"available!": "наличен!",
 	"available!": "наличен!",
 	"Back": "Назад",
 	"Back": "Назад",
 	"Bad Response": "",
 	"Bad Response": "",
+	"before": "",
 	"Being lazy": "",
 	"Being lazy": "",
 	"Builder Mode": "Режим на Създаване",
 	"Builder Mode": "Режим на Създаване",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "Отказ",
 	"Cancel": "Отказ",
 	"Categories": "Категории",
 	"Categories": "Категории",
 	"Change Password": "Промяна на Парола",
 	"Change Password": "Промяна на Парола",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "Chunk Overlap",
 	"Chunk Overlap": "Chunk Overlap",
 	"Chunk Params": "Chunk Params",
 	"Chunk Params": "Chunk Params",
 	"Chunk Size": "Chunk Size",
 	"Chunk Size": "Chunk Size",
+	"Citation": "",
 	"Click here for help.": "Натиснете тук за помощ.",
 	"Click here for help.": "Натиснете тук за помощ.",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "Натиснете тук за проверка на други моделфайлове.",
 	"Click here to check other modelfiles.": "Натиснете тук за проверка на други моделфайлове.",
 	"Click here to select": "Натиснете тук, за да изберете",
 	"Click here to select": "Натиснете тук, за да изберете",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Създайте кратка фраза от 3-5 думи като заглавие за следващото запитване, като стриктно спазвате ограничението от 3-5 думи и избягвате използването на думата 'заглавие':",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Създайте кратка фраза от 3-5 думи като заглавие за следващото запитване, като стриктно спазвате ограничението от 3-5 думи и избягвате използването на думата 'заглавие':",
 	"Create a modelfile": "Създаване на модфайл",
 	"Create a modelfile": "Създаване на модфайл",
 	"Create Account": "Създаване на Акаунт",
 	"Create Account": "Създаване на Акаунт",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "Създадено на",
 	"Created at": "Създадено на",
 	"Created At": "",
 	"Created At": "",
 	"Current Model": "Текущ модел",
 	"Current Model": "Текущ модел",
@@ -105,6 +112,7 @@
 	"Custom": "Персонализиран",
 	"Custom": "Персонализиран",
 	"Customize Ollama models for a specific purpose": "Персонализиране на Ollama моделите за конкретна цел",
 	"Customize Ollama models for a specific purpose": "Персонализиране на Ollama моделите за конкретна цел",
 	"Dark": "Тъмен",
 	"Dark": "Тъмен",
+	"Dashboard": "",
 	"Database": "База данни",
 	"Database": "База данни",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"Default": "По подразбиране",
 	"Default": "По подразбиране",
@@ -120,6 +128,7 @@
 	"Delete chat": "Изтриване на чат",
 	"Delete chat": "Изтриване на чат",
 	"Delete Chat": "",
 	"Delete Chat": "",
 	"Delete Chats": "Изтриване на Чатове",
 	"Delete Chats": "Изтриване на Чатове",
+	"delete this link": "",
 	"Delete User": "",
 	"Delete User": "",
 	"Deleted {{deleteModelTag}}": "Изтрито {{deleteModelTag}}",
 	"Deleted {{deleteModelTag}}": "Изтрито {{deleteModelTag}}",
 	"Deleted {{tagName}}": "",
 	"Deleted {{tagName}}": "",
@@ -146,6 +155,7 @@
 	"Edit Doc": "Редактиране на документ",
 	"Edit Doc": "Редактиране на документ",
 	"Edit User": "Редактиране на потребител",
 	"Edit User": "Редактиране на потребител",
 	"Email": "Имейл",
 	"Email": "Имейл",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "Вклюване на Чат История",
 	"Enable Chat History": "Вклюване на Чат История",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "Въведете стоп последователност",
 	"Enter stop sequence": "Въведете стоп последователност",
 	"Enter Top K": "Въведете Top K",
 	"Enter Top K": "Въведете Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Въведете URL (напр. http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Въведете URL (напр. http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "Въведете имейл",
 	"Enter Your Email": "Въведете имейл",
 	"Enter Your Full Name": "Въведете вашето пълно име",
 	"Enter Your Full Name": "Въведете вашето пълно име",
 	"Enter Your Password": "Въведете вашата парола",
 	"Enter Your Password": "Въведете вашата парола",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "Управление на Ollama Моделите",
 	"Manage Ollama Models": "Управление на Ollama Моделите",
 	"Max Tokens": "Max Tokens",
 	"Max Tokens": "Max Tokens",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Максимум 3 модели могат да бъдат сваляни едновременно. Моля, опитайте отново по-късно.",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Максимум 3 модели могат да бъдат сваляни едновременно. Моля, опитайте отново по-късно.",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "Mirostat",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Eta": "Mirostat Eta",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "Име на модфайла",
 	"Name your modelfile": "Име на модфайла",
 	"New Chat": "Нов чат",
 	"New Chat": "Нов чат",
 	"New Password": "Нова парола",
 	"New Password": "Нова парола",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "",
 	"Not factually correct": "",
 	"Not sure what to add?": "Не сте сигурни, какво да добавите?",
 	"Not sure what to add?": "Не сте сигурни, какво да добавите?",
 	"Not sure what to write? Switch to": "Не сте сигурни, какво да напишете? Превключете към",
 	"Not sure what to write? Switch to": "Не сте сигурни, какво да напишете? Превключете към",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "",
 	"OpenAI URL/Key required.": "",
 	"or": "или",
 	"or": "или",
 	"Other": "",
 	"Other": "",
+	"Overview": "",
 	"Parameters": "Параметри",
 	"Parameters": "Параметри",
 	"Password": "Парола",
 	"Password": "Парола",
 	"PDF document (.pdf)": "",
 	"PDF document (.pdf)": "",
@@ -300,6 +315,7 @@
 	"Prompt Content": "Съдържание на промпта",
 	"Prompt Content": "Съдържание на промпта",
 	"Prompt suggestions": "Промпт предложения",
 	"Prompt suggestions": "Промпт предложения",
 	"Prompts": "Промптове",
 	"Prompts": "Промптове",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "Издърпайте модел от Ollama.com",
 	"Pull a model from Ollama.com": "Издърпайте модел от Ollama.com",
 	"Pull Progress": "Прогрес на издърпването",
 	"Pull Progress": "Прогрес на издърпването",
 	"Query Params": "Query Параметри",
 	"Query Params": "Query Параметри",
@@ -312,13 +328,17 @@
 	"Regenerate": "",
 	"Regenerate": "",
 	"Release Notes": "Бележки по изданието",
 	"Release Notes": "Бележки по изданието",
 	"Remove": "",
 	"Remove": "",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "Repeat Last N",
 	"Repeat Last N": "Repeat Last N",
 	"Repeat Penalty": "Repeat Penalty",
 	"Repeat Penalty": "Repeat Penalty",
 	"Request Mode": "Request Mode",
 	"Request Mode": "Request Mode",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "Ресет Vector Storage",
 	"Reset Vector Storage": "Ресет Vector Storage",
 	"Response AutoCopy to Clipboard": "Аувтоматично копиране на отговор в клипборда",
 	"Response AutoCopy to Clipboard": "Аувтоматично копиране на отговор в клипборда",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "Роля",
 	"Role": "Роля",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
@@ -346,7 +366,9 @@
 	"Server connection verified": "Server connection verified",
 	"Server connection verified": "Server connection verified",
 	"Set as default": "Задай по подразбиране",
 	"Set as default": "Задай по подразбиране",
 	"Set Default Model": "Задай Модел По Подразбиране",
 	"Set Default Model": "Задай Модел По Подразбиране",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "Задай Размер на Изображението",
 	"Set Image Size": "Задай Размер на Изображението",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "Задай Стъпки",
 	"Set Steps": "Задай Стъпки",
 	"Set Title Auto-Generation Model": "Задай Модел за Автоматично Генериране на Заглавие",
 	"Set Title Auto-Generation Model": "Задай Модел за Автоматично Генериране на Заглавие",
 	"Set Voice": "Задай Глас",
 	"Set Voice": "Задай Глас",
@@ -365,6 +387,7 @@
 	"Sign Out": "Изход",
 	"Sign Out": "Изход",
 	"Sign up": "Регистрация",
 	"Sign up": "Регистрация",
 	"Signing in": "",
 	"Signing in": "",
+	"Source": "",
 	"Speech recognition error: {{error}}": "Speech recognition error: {{error}}",
 	"Speech recognition error: {{error}}": "Speech recognition error: {{error}}",
 	"Speech-to-Text Engine": "Speech-to-Text Engine",
 	"Speech-to-Text Engine": "Speech-to-Text Engine",
 	"SpeechRecognition API is not supported in this browser.": "SpeechRecognition API is not supported in this browser.",
 	"SpeechRecognition API is not supported in this browser.": "SpeechRecognition API is not supported in this browser.",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "О, не! Възникна проблем при свързването с {{provider}}.",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "О, не! Възникна проблем при свързването с {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Непознат файлов тип '{{file_type}}', но се приема и обработва като текст",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Непознат файлов тип '{{file_type}}', но се приема и обработва като текст",
 	"Update and Copy Link": "",
 	"Update and Copy Link": "",
-	"Update Embedding Model": "",
-	"Update embedding model (e.g. {{model}})": "",
 	"Update password": "Обновяване на парола",
 	"Update password": "Обновяване на парола",
-	"Update Reranking Model": "",
-	"Update reranking model (e.g. {{model}})": "",
 	"Upload a GGUF model": "Качване на GGUF модел",
 	"Upload a GGUF model": "Качване на GGUF модел",
 	"Upload files": "Качване на файлове",
 	"Upload files": "Качване на файлове",
 	"Upload Progress": "Прогрес на качването",
 	"Upload Progress": "Прогрес на качването",
@@ -431,6 +450,7 @@
 	"Version": "Версия",
 	"Version": "Версия",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Web": "Уеб",
 	"Web": "Уеб",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "WebUI Добавки",
 	"WebUI Add-ons": "WebUI Добавки",
 	"WebUI Settings": "WebUI Настройки",
 	"WebUI Settings": "WebUI Настройки",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "Напиши предложение за промпт (напр. Кой сте вие?)",
 	"Write a prompt suggestion (e.g. Who are you?)": "Напиши предложение за промпт (напр. Кой сте вие?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Напиши описание в 50 знака, което описва [тема или ключова дума].",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Напиши описание в 50 знака, което описва [тема или ключова дума].",
 	"You": "Вие",
 	"You": "Вие",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "Вие сте полезен асистент.",
 	"You're a helpful assistant.": "Вие сте полезен асистент.",
 	"You're now logged in.": "Сега, вие влязохте в системата.",
 	"You're now logged in.": "Сега, вие влязохте в системата.",
 	"Youtube": ""
 	"Youtube": ""

+ 26 - 4
src/lib/i18n/locales/bn-BD/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "আগে থেকেই একাউন্ট আছে?",
 	"Already have an account?": "আগে থেকেই একাউন্ট আছে?",
 	"an assistant": "একটা এসিস্ট্যান্ট",
 	"an assistant": "একটা এসিস্ট্যান্ট",
 	"and": "এবং",
 	"and": "এবং",
+	"and create a new shared link.": "",
 	"API Base URL": "এপিআই বেজ ইউআরএল",
 	"API Base URL": "এপিআই বেজ ইউআরএল",
 	"API Key": "এপিআই কোড",
 	"API Key": "এপিআই কোড",
 	"API Key created.": "",
 	"API Key created.": "",
@@ -54,8 +55,10 @@
 	"available!": "উপলব্ধ!",
 	"available!": "উপলব্ধ!",
 	"Back": "পেছনে",
 	"Back": "পেছনে",
 	"Bad Response": "",
 	"Bad Response": "",
+	"before": "",
 	"Being lazy": "",
 	"Being lazy": "",
 	"Builder Mode": "বিল্ডার মোড",
 	"Builder Mode": "বিল্ডার মোড",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "বাতিল",
 	"Cancel": "বাতিল",
 	"Categories": "ক্যাটাগরিসমূহ",
 	"Categories": "ক্যাটাগরিসমূহ",
 	"Change Password": "পাসওয়ার্ড পরিবর্তন করুন",
 	"Change Password": "পাসওয়ার্ড পরিবর্তন করুন",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "চাঙ্ক ওভারল্যাপ",
 	"Chunk Overlap": "চাঙ্ক ওভারল্যাপ",
 	"Chunk Params": "চাঙ্ক প্যারামিটার্স",
 	"Chunk Params": "চাঙ্ক প্যারামিটার্স",
 	"Chunk Size": "চাঙ্ক সাইজ",
 	"Chunk Size": "চাঙ্ক সাইজ",
+	"Citation": "",
 	"Click here for help.": "সাহায্যের জন্য এখানে ক্লিক করুন",
 	"Click here for help.": "সাহায্যের জন্য এখানে ক্লিক করুন",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "অন্যান্য মডেলফাইল চেক করার জন্য এখানে ক্লিক করুন",
 	"Click here to check other modelfiles.": "অন্যান্য মডেলফাইল চেক করার জন্য এখানে ক্লিক করুন",
 	"Click here to select": "নির্বাচন করার জন্য এখানে ক্লিক করুন",
 	"Click here to select": "নির্বাচন করার জন্য এখানে ক্লিক করুন",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "'title' শব্দটি ব্যবহার না করে নিম্মোক্ত অনুসন্ধানের জন্য সংক্ষেপে সর্বোচ্চ ৩-৫ শব্দের একটি হেডার তৈরি করুন",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "'title' শব্দটি ব্যবহার না করে নিম্মোক্ত অনুসন্ধানের জন্য সংক্ষেপে সর্বোচ্চ ৩-৫ শব্দের একটি হেডার তৈরি করুন",
 	"Create a modelfile": "একটি মডেলফাইল তৈরি করুন",
 	"Create a modelfile": "একটি মডেলফাইল তৈরি করুন",
 	"Create Account": "একাউন্ট তৈরি করুন",
 	"Create Account": "একাউন্ট তৈরি করুন",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "নির্মানকাল",
 	"Created at": "নির্মানকাল",
 	"Created At": "",
 	"Created At": "",
 	"Current Model": "বর্তমান মডেল",
 	"Current Model": "বর্তমান মডেল",
@@ -105,6 +112,7 @@
 	"Custom": "কাস্টম",
 	"Custom": "কাস্টম",
 	"Customize Ollama models for a specific purpose": "নির্দিষ্ট উদ্দেশ্যে Ollama মডেল পরিবর্তন করুন",
 	"Customize Ollama models for a specific purpose": "নির্দিষ্ট উদ্দেশ্যে Ollama মডেল পরিবর্তন করুন",
 	"Dark": "ডার্ক",
 	"Dark": "ডার্ক",
+	"Dashboard": "",
 	"Database": "ডেটাবেজ",
 	"Database": "ডেটাবেজ",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"Default": "ডিফল্ট",
 	"Default": "ডিফল্ট",
@@ -120,6 +128,7 @@
 	"Delete chat": "চ্যাট মুছে ফেলুন",
 	"Delete chat": "চ্যাট মুছে ফেলুন",
 	"Delete Chat": "",
 	"Delete Chat": "",
 	"Delete Chats": "চ্যাটগুলো মুছে ফেলুন",
 	"Delete Chats": "চ্যাটগুলো মুছে ফেলুন",
+	"delete this link": "",
 	"Delete User": "",
 	"Delete User": "",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} মুছে ফেলা হয়েছে",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} মুছে ফেলা হয়েছে",
 	"Deleted {{tagName}}": "",
 	"Deleted {{tagName}}": "",
@@ -146,6 +155,7 @@
 	"Edit Doc": "ডকুমেন্ট এডিট করুন",
 	"Edit Doc": "ডকুমেন্ট এডিট করুন",
 	"Edit User": "ইউজার এডিট করুন",
 	"Edit User": "ইউজার এডিট করুন",
 	"Email": "ইমেইল",
 	"Email": "ইমেইল",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "চ্যাট হিস্টোরি চালু করুন",
 	"Enable Chat History": "চ্যাট হিস্টোরি চালু করুন",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "স্টপ সিকোয়েন্স লিখুন",
 	"Enter stop sequence": "স্টপ সিকোয়েন্স লিখুন",
 	"Enter Top K": "Top K লিখুন",
 	"Enter Top K": "Top K লিখুন",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "ইউআরএল দিন (যেমন http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "ইউআরএল দিন (যেমন http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "আপনার ইমেইল লিখুন",
 	"Enter Your Email": "আপনার ইমেইল লিখুন",
 	"Enter Your Full Name": "আপনার পূর্ণ নাম লিখুন",
 	"Enter Your Full Name": "আপনার পূর্ণ নাম লিখুন",
 	"Enter Your Password": "আপনার পাসওয়ার্ড লিখুন",
 	"Enter Your Password": "আপনার পাসওয়ার্ড লিখুন",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "Ollama মডেলসূহ ব্যবস্থাপনা করুন",
 	"Manage Ollama Models": "Ollama মডেলসূহ ব্যবস্থাপনা করুন",
 	"Max Tokens": "সর্বোচ্চ টোকন",
 	"Max Tokens": "সর্বোচ্চ টোকন",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "একসঙ্গে সর্বোচ্চ তিনটি মডেল ডাউনলোড করা যায়। দয়া করে পরে আবার চেষ্টা করুন।",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "একসঙ্গে সর্বোচ্চ তিনটি মডেল ডাউনলোড করা যায়। দয়া করে পরে আবার চেষ্টা করুন।",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "Mirostat",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Eta": "Mirostat Eta",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "আপনার মডেলফাইলের নাম দিন",
 	"Name your modelfile": "আপনার মডেলফাইলের নাম দিন",
 	"New Chat": "নতুন চ্যাট",
 	"New Chat": "নতুন চ্যাট",
 	"New Password": "নতুন পাসওয়ার্ড",
 	"New Password": "নতুন পাসওয়ার্ড",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "",
 	"Not factually correct": "",
 	"Not sure what to add?": "কী যুক্ত করতে হবে নিশ্চিত না?",
 	"Not sure what to add?": "কী যুক্ত করতে হবে নিশ্চিত না?",
 	"Not sure what to write? Switch to": "কী লিখতে হবে নিশ্চিত না? পরিবর্তন করুন:",
 	"Not sure what to write? Switch to": "কী লিখতে হবে নিশ্চিত না? পরিবর্তন করুন:",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "",
 	"OpenAI URL/Key required.": "",
 	"or": "অথবা",
 	"or": "অথবা",
 	"Other": "",
 	"Other": "",
+	"Overview": "",
 	"Parameters": "প্যারামিটারসমূহ",
 	"Parameters": "প্যারামিটারসমূহ",
 	"Password": "পাসওয়ার্ড",
 	"Password": "পাসওয়ার্ড",
 	"PDF document (.pdf)": "",
 	"PDF document (.pdf)": "",
@@ -300,6 +315,7 @@
 	"Prompt Content": "প্রম্পট কন্টেন্ট",
 	"Prompt Content": "প্রম্পট কন্টেন্ট",
 	"Prompt suggestions": "প্রম্পট সাজেশনসমূহ",
 	"Prompt suggestions": "প্রম্পট সাজেশনসমূহ",
 	"Prompts": "প্রম্পটসমূহ",
 	"Prompts": "প্রম্পটসমূহ",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "Ollama.com থেকে একটি টেনে আনুন আনুন",
 	"Pull a model from Ollama.com": "Ollama.com থেকে একটি টেনে আনুন আনুন",
 	"Pull Progress": "Pull চলমান",
 	"Pull Progress": "Pull চলমান",
 	"Query Params": "Query প্যারামিটারসমূহ",
 	"Query Params": "Query প্যারামিটারসমূহ",
@@ -312,13 +328,17 @@
 	"Regenerate": "",
 	"Regenerate": "",
 	"Release Notes": "রিলিজ নোটসমূহ",
 	"Release Notes": "রিলিজ নোটসমূহ",
 	"Remove": "",
 	"Remove": "",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "রিপিট Last N",
 	"Repeat Last N": "রিপিট Last N",
 	"Repeat Penalty": "রিপিট প্যানাল্টি",
 	"Repeat Penalty": "রিপিট প্যানাল্টি",
 	"Request Mode": "রিকোয়েস্ট মোড",
 	"Request Mode": "রিকোয়েস্ট মোড",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "ভেক্টর স্টোরেজ রিসেট করুন",
 	"Reset Vector Storage": "ভেক্টর স্টোরেজ রিসেট করুন",
 	"Response AutoCopy to Clipboard": "রেসপন্সগুলো স্বয়ংক্রিভাবে ক্লিপবোর্ডে কপি হবে",
 	"Response AutoCopy to Clipboard": "রেসপন্সগুলো স্বয়ংক্রিভাবে ক্লিপবোর্ডে কপি হবে",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "পদবি",
 	"Role": "পদবি",
 	"Rosé Pine": "রোজ পাইন",
 	"Rosé Pine": "রোজ পাইন",
 	"Rosé Pine Dawn": "ভোরের রোজ পাইন",
 	"Rosé Pine Dawn": "ভোরের রোজ পাইন",
@@ -346,7 +366,9 @@
 	"Server connection verified": "সার্ভার কানেকশন যাচাই করা হয়েছে",
 	"Server connection verified": "সার্ভার কানেকশন যাচাই করা হয়েছে",
 	"Set as default": "ডিফল্ট হিসেবে নির্ধারণ করুন",
 	"Set as default": "ডিফল্ট হিসেবে নির্ধারণ করুন",
 	"Set Default Model": "ডিফল্ট মডেল নির্ধারণ করুন",
 	"Set Default Model": "ডিফল্ট মডেল নির্ধারণ করুন",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "ছবির সাইজ নির্ধারণ করুন",
 	"Set Image Size": "ছবির সাইজ নির্ধারণ করুন",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "পরবর্তী ধাপসমূহ",
 	"Set Steps": "পরবর্তী ধাপসমূহ",
 	"Set Title Auto-Generation Model": "শিরোনাম অটোজেনারেশন মডেন নির্ধারণ করুন",
 	"Set Title Auto-Generation Model": "শিরোনাম অটোজেনারেশন মডেন নির্ধারণ করুন",
 	"Set Voice": "কন্ঠস্বর নির্ধারণ করুন",
 	"Set Voice": "কন্ঠস্বর নির্ধারণ করুন",
@@ -365,6 +387,7 @@
 	"Sign Out": "সাইন আউট",
 	"Sign Out": "সাইন আউট",
 	"Sign up": "সাইন আপ",
 	"Sign up": "সাইন আপ",
 	"Signing in": "",
 	"Signing in": "",
+	"Source": "",
 	"Speech recognition error: {{error}}": "স্পিচ রিকগনিশনে সমস্যা: {{error}}",
 	"Speech recognition error: {{error}}": "স্পিচ রিকগনিশনে সমস্যা: {{error}}",
 	"Speech-to-Text Engine": "স্পিচ-টু-টেক্সট ইঞ্জিন",
 	"Speech-to-Text Engine": "স্পিচ-টু-টেক্সট ইঞ্জিন",
 	"SpeechRecognition API is not supported in this browser.": "এই ব্রাউজার স্পিচরিকগনিশন এপিআই সাপোর্ট করে না।",
 	"SpeechRecognition API is not supported in this browser.": "এই ব্রাউজার স্পিচরিকগনিশন এপিআই সাপোর্ট করে না।",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "ওহ-হো! {{provider}} এর সাথে কানেকশনে সমস্যা হয়েছে।",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "ওহ-হো! {{provider}} এর সাথে কানেকশনে সমস্যা হয়েছে।",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "অপরিচিত ফাইল ফরম্যাট '{{file_type}}', তবে প্লেইন টেক্সট হিসেবে গ্রহণ করা হলো",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "অপরিচিত ফাইল ফরম্যাট '{{file_type}}', তবে প্লেইন টেক্সট হিসেবে গ্রহণ করা হলো",
 	"Update and Copy Link": "",
 	"Update and Copy Link": "",
-	"Update Embedding Model": "",
-	"Update embedding model (e.g. {{model}})": "",
 	"Update password": "পাসওয়ার্ড আপডেট করুন",
 	"Update password": "পাসওয়ার্ড আপডেট করুন",
-	"Update Reranking Model": "",
-	"Update reranking model (e.g. {{model}})": "",
 	"Upload a GGUF model": "একটি GGUF মডেল আপলোড করুন",
 	"Upload a GGUF model": "একটি GGUF মডেল আপলোড করুন",
 	"Upload files": "ফাইলগুলো আপলোড করুন",
 	"Upload files": "ফাইলগুলো আপলোড করুন",
 	"Upload Progress": "আপলোড হচ্ছে",
 	"Upload Progress": "আপলোড হচ্ছে",
@@ -431,6 +450,7 @@
 	"Version": "ভার্সন",
 	"Version": "ভার্সন",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Web": "ওয়েব",
 	"Web": "ওয়েব",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "WebUI এড-অনসমূহ",
 	"WebUI Add-ons": "WebUI এড-অনসমূহ",
 	"WebUI Settings": "WebUI সেটিংসমূহ",
 	"WebUI Settings": "WebUI সেটিংসমূহ",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "একটি প্রম্পট সাজেশন লিখুন (যেমন Who are you?)",
 	"Write a prompt suggestion (e.g. Who are you?)": "একটি প্রম্পট সাজেশন লিখুন (যেমন Who are you?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "৫০ শব্দের মধ্যে [topic or keyword] এর একটি সারসংক্ষেপ লিখুন।",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "৫০ শব্দের মধ্যে [topic or keyword] এর একটি সারসংক্ষেপ লিখুন।",
 	"You": "আপনি",
 	"You": "আপনি",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "আপনি একজন উপকারী এসিস্ট্যান্ট",
 	"You're a helpful assistant.": "আপনি একজন উপকারী এসিস্ট্যান্ট",
 	"You're now logged in.": "আপনি এখন লগইন করা অবস্থায় আছেন",
 	"You're now logged in.": "আপনি এখন লগইন করা অবস্থায় আছেন",
 	"Youtube": ""
 	"Youtube": ""

+ 26 - 4
src/lib/i18n/locales/ca-ES/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "Ja tens un compte?",
 	"Already have an account?": "Ja tens un compte?",
 	"an assistant": "un assistent",
 	"an assistant": "un assistent",
 	"and": "i",
 	"and": "i",
+	"and create a new shared link.": "",
 	"API Base URL": "URL Base de l'API",
 	"API Base URL": "URL Base de l'API",
 	"API Key": "Clau de l'API",
 	"API Key": "Clau de l'API",
 	"API Key created.": "",
 	"API Key created.": "",
@@ -54,8 +55,10 @@
 	"available!": "disponible!",
 	"available!": "disponible!",
 	"Back": "Enrere",
 	"Back": "Enrere",
 	"Bad Response": "",
 	"Bad Response": "",
+	"before": "",
 	"Being lazy": "",
 	"Being lazy": "",
 	"Builder Mode": "Mode Constructor",
 	"Builder Mode": "Mode Constructor",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "Cancel·la",
 	"Cancel": "Cancel·la",
 	"Categories": "Categories",
 	"Categories": "Categories",
 	"Change Password": "Canvia la Contrasenya",
 	"Change Password": "Canvia la Contrasenya",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "Solapament de Blocs",
 	"Chunk Overlap": "Solapament de Blocs",
 	"Chunk Params": "Paràmetres de Blocs",
 	"Chunk Params": "Paràmetres de Blocs",
 	"Chunk Size": "Mida del Bloc",
 	"Chunk Size": "Mida del Bloc",
+	"Citation": "",
 	"Click here for help.": "Fes clic aquí per ajuda.",
 	"Click here for help.": "Fes clic aquí per ajuda.",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "Fes clic aquí per comprovar altres fitxers de model.",
 	"Click here to check other modelfiles.": "Fes clic aquí per comprovar altres fitxers de model.",
 	"Click here to select": "Fes clic aquí per seleccionar",
 	"Click here to select": "Fes clic aquí per seleccionar",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Crea una frase concisa de 3-5 paraules com a capçalera per a la següent consulta, seguint estrictament el límit de 3-5 paraules i evitant l'ús de la paraula 'títol':",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Crea una frase concisa de 3-5 paraules com a capçalera per a la següent consulta, seguint estrictament el límit de 3-5 paraules i evitant l'ús de la paraula 'títol':",
 	"Create a modelfile": "Crea un fitxer de model",
 	"Create a modelfile": "Crea un fitxer de model",
 	"Create Account": "Crea un Compte",
 	"Create Account": "Crea un Compte",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "Creat el",
 	"Created at": "Creat el",
 	"Created At": "",
 	"Created At": "",
 	"Current Model": "Model Actual",
 	"Current Model": "Model Actual",
@@ -105,6 +112,7 @@
 	"Custom": "Personalitzat",
 	"Custom": "Personalitzat",
 	"Customize Ollama models for a specific purpose": "Personalitza els models Ollama per a un propòsit específic",
 	"Customize Ollama models for a specific purpose": "Personalitza els models Ollama per a un propòsit específic",
 	"Dark": "Fosc",
 	"Dark": "Fosc",
+	"Dashboard": "",
 	"Database": "Base de Dades",
 	"Database": "Base de Dades",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"Default": "Per defecte",
 	"Default": "Per defecte",
@@ -120,6 +128,7 @@
 	"Delete chat": "Esborra xat",
 	"Delete chat": "Esborra xat",
 	"Delete Chat": "",
 	"Delete Chat": "",
 	"Delete Chats": "Esborra Xats",
 	"Delete Chats": "Esborra Xats",
+	"delete this link": "",
 	"Delete User": "",
 	"Delete User": "",
 	"Deleted {{deleteModelTag}}": "Esborrat {{deleteModelTag}}",
 	"Deleted {{deleteModelTag}}": "Esborrat {{deleteModelTag}}",
 	"Deleted {{tagName}}": "",
 	"Deleted {{tagName}}": "",
@@ -146,6 +155,7 @@
 	"Edit Doc": "Edita Document",
 	"Edit Doc": "Edita Document",
 	"Edit User": "Edita Usuari",
 	"Edit User": "Edita Usuari",
 	"Email": "Correu electrònic",
 	"Email": "Correu electrònic",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "Activa Historial de Xat",
 	"Enable Chat History": "Activa Historial de Xat",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "Introdueix la seqüència de parada",
 	"Enter stop sequence": "Introdueix la seqüència de parada",
 	"Enter Top K": "Introdueix Top K",
 	"Enter Top K": "Introdueix Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Introdueix l'URL (p. ex. http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Introdueix l'URL (p. ex. http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "Introdueix el Teu Correu Electrònic",
 	"Enter Your Email": "Introdueix el Teu Correu Electrònic",
 	"Enter Your Full Name": "Introdueix el Teu Nom Complet",
 	"Enter Your Full Name": "Introdueix el Teu Nom Complet",
 	"Enter Your Password": "Introdueix la Teva Contrasenya",
 	"Enter Your Password": "Introdueix la Teva Contrasenya",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "Gestiona Models Ollama",
 	"Manage Ollama Models": "Gestiona Models Ollama",
 	"Max Tokens": "Màxim de Tokens",
 	"Max Tokens": "Màxim de Tokens",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Es poden descarregar un màxim de 3 models simultàniament. Si us plau, prova-ho més tard.",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Es poden descarregar un màxim de 3 models simultàniament. Si us plau, prova-ho més tard.",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "Mirostat",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Eta de Mirostat",
 	"Mirostat Eta": "Eta de Mirostat",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "Nomena el teu fitxer de model",
 	"Name your modelfile": "Nomena el teu fitxer de model",
 	"New Chat": "Xat Nou",
 	"New Chat": "Xat Nou",
 	"New Password": "Nova Contrasenya",
 	"New Password": "Nova Contrasenya",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "",
 	"Not factually correct": "",
 	"Not sure what to add?": "No estàs segur del que afegir?",
 	"Not sure what to add?": "No estàs segur del que afegir?",
 	"Not sure what to write? Switch to": "No estàs segur del que escriure? Canvia a",
 	"Not sure what to write? Switch to": "No estàs segur del que escriure? Canvia a",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "",
 	"OpenAI URL/Key required.": "",
 	"or": "o",
 	"or": "o",
 	"Other": "",
 	"Other": "",
+	"Overview": "",
 	"Parameters": "Paràmetres",
 	"Parameters": "Paràmetres",
 	"Password": "Contrasenya",
 	"Password": "Contrasenya",
 	"PDF document (.pdf)": "",
 	"PDF document (.pdf)": "",
@@ -300,6 +315,7 @@
 	"Prompt Content": "Contingut del Prompt",
 	"Prompt Content": "Contingut del Prompt",
 	"Prompt suggestions": "Suggeriments de Prompt",
 	"Prompt suggestions": "Suggeriments de Prompt",
 	"Prompts": "Prompts",
 	"Prompts": "Prompts",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "Treu un model d'Ollama.com",
 	"Pull a model from Ollama.com": "Treu un model d'Ollama.com",
 	"Pull Progress": "Progrés de Tracció",
 	"Pull Progress": "Progrés de Tracció",
 	"Query Params": "Paràmetres de Consulta",
 	"Query Params": "Paràmetres de Consulta",
@@ -312,13 +328,17 @@
 	"Regenerate": "",
 	"Regenerate": "",
 	"Release Notes": "Notes de la Versió",
 	"Release Notes": "Notes de la Versió",
 	"Remove": "",
 	"Remove": "",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "Repeteix Últim N",
 	"Repeat Last N": "Repeteix Últim N",
 	"Repeat Penalty": "Penalització de Repetició",
 	"Repeat Penalty": "Penalització de Repetició",
 	"Request Mode": "Mode de Sol·licitud",
 	"Request Mode": "Mode de Sol·licitud",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "Reinicia l'Emmagatzematge de Vectors",
 	"Reset Vector Storage": "Reinicia l'Emmagatzematge de Vectors",
 	"Response AutoCopy to Clipboard": "Resposta AutoCopiar al Portapapers",
 	"Response AutoCopy to Clipboard": "Resposta AutoCopiar al Portapapers",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "Rol",
 	"Role": "Rol",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Albada Rosé Pine",
 	"Rosé Pine Dawn": "Albada Rosé Pine",
@@ -346,7 +366,9 @@
 	"Server connection verified": "Connexió al servidor verificada",
 	"Server connection verified": "Connexió al servidor verificada",
 	"Set as default": "Estableix com a predeterminat",
 	"Set as default": "Estableix com a predeterminat",
 	"Set Default Model": "Estableix Model Predeterminat",
 	"Set Default Model": "Estableix Model Predeterminat",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "Estableix Mida de la Imatge",
 	"Set Image Size": "Estableix Mida de la Imatge",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "Estableix Passos",
 	"Set Steps": "Estableix Passos",
 	"Set Title Auto-Generation Model": "Estableix Model d'Auto-Generació de Títol",
 	"Set Title Auto-Generation Model": "Estableix Model d'Auto-Generació de Títol",
 	"Set Voice": "Estableix Veu",
 	"Set Voice": "Estableix Veu",
@@ -365,6 +387,7 @@
 	"Sign Out": "Tanca sessió",
 	"Sign Out": "Tanca sessió",
 	"Sign up": "Registra't",
 	"Sign up": "Registra't",
 	"Signing in": "",
 	"Signing in": "",
+	"Source": "",
 	"Speech recognition error: {{error}}": "Error de reconeixement de veu: {{error}}",
 	"Speech recognition error: {{error}}": "Error de reconeixement de veu: {{error}}",
 	"Speech-to-Text Engine": "Motor de Veu a Text",
 	"Speech-to-Text Engine": "Motor de Veu a Text",
 	"SpeechRecognition API is not supported in this browser.": "L'API de Reconèixer Veu no és compatible amb aquest navegador.",
 	"SpeechRecognition API is not supported in this browser.": "L'API de Reconèixer Veu no és compatible amb aquest navegador.",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Uf! Hi va haver un problema connectant-se a {{provider}}.",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Uf! Hi va haver un problema connectant-se a {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipus d'Arxiu Desconegut '{{file_type}}', però acceptant i tractant com a text pla",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipus d'Arxiu Desconegut '{{file_type}}', però acceptant i tractant com a text pla",
 	"Update and Copy Link": "",
 	"Update and Copy Link": "",
-	"Update Embedding Model": "",
-	"Update embedding model (e.g. {{model}})": "",
 	"Update password": "Actualitza contrasenya",
 	"Update password": "Actualitza contrasenya",
-	"Update Reranking Model": "",
-	"Update reranking model (e.g. {{model}})": "",
 	"Upload a GGUF model": "Puja un model GGUF",
 	"Upload a GGUF model": "Puja un model GGUF",
 	"Upload files": "Puja arxius",
 	"Upload files": "Puja arxius",
 	"Upload Progress": "Progrés de Càrrega",
 	"Upload Progress": "Progrés de Càrrega",
@@ -431,6 +450,7 @@
 	"Version": "Versió",
 	"Version": "Versió",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Web": "Web",
 	"Web": "Web",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "Complements de WebUI",
 	"WebUI Add-ons": "Complements de WebUI",
 	"WebUI Settings": "Configuració de WebUI",
 	"WebUI Settings": "Configuració de WebUI",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "Escriu una suggerència de prompt (p. ex. Qui ets tu?)",
 	"Write a prompt suggestion (e.g. Who are you?)": "Escriu una suggerència de prompt (p. ex. Qui ets tu?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Escriu un resum en 50 paraules que resumeixi [tema o paraula clau].",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Escriu un resum en 50 paraules que resumeixi [tema o paraula clau].",
 	"You": "Tu",
 	"You": "Tu",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "Ets un assistent útil.",
 	"You're a helpful assistant.": "Ets un assistent útil.",
 	"You're now logged in.": "Ara estàs connectat.",
 	"You're now logged in.": "Ara estàs connectat.",
 	"Youtube": ""
 	"Youtube": ""

+ 33 - 11
src/lib/i18n/locales/de-DE/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "Hast du vielleicht schon ein Account?",
 	"Already have an account?": "Hast du vielleicht schon ein Account?",
 	"an assistant": "ein Assistent",
 	"an assistant": "ein Assistent",
 	"and": "und",
 	"and": "und",
+	"and create a new shared link.": "und einen neuen geteilten Link zu erstellen.",
 	"API Base URL": "API Basis URL",
 	"API Base URL": "API Basis URL",
 	"API Key": "API Key",
 	"API Key": "API Key",
 	"API Key created.": "API Key erstellt",
 	"API Key created.": "API Key erstellt",
@@ -54,8 +55,10 @@
 	"available!": "verfügbar!",
 	"available!": "verfügbar!",
 	"Back": "Zurück",
 	"Back": "Zurück",
 	"Bad Response": "Schlechte Antwort",
 	"Bad Response": "Schlechte Antwort",
+	"before": "",
 	"Being lazy": "Faul sein",
 	"Being lazy": "Faul sein",
 	"Builder Mode": "Builder Modus",
 	"Builder Mode": "Builder Modus",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "Abbrechen",
 	"Cancel": "Abbrechen",
 	"Categories": "Kategorien",
 	"Categories": "Kategorien",
 	"Change Password": "Passwort ändern",
 	"Change Password": "Passwort ändern",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "Chunk Overlap",
 	"Chunk Overlap": "Chunk Overlap",
 	"Chunk Params": "Chunk Parameter",
 	"Chunk Params": "Chunk Parameter",
 	"Chunk Size": "Chunk Size",
 	"Chunk Size": "Chunk Size",
+	"Citation": "",
 	"Click here for help.": "Klicke hier für Hilfe.",
 	"Click here for help.": "Klicke hier für Hilfe.",
+	"Click here to": "Klicke hier, um",
 	"Click here to check other modelfiles.": "Klicke hier, um andere Modelfiles zu überprüfen.",
 	"Click here to check other modelfiles.": "Klicke hier, um andere Modelfiles zu überprüfen.",
 	"Click here to select": "Klicke hier um auszuwählen",
 	"Click here to select": "Klicke hier um auszuwählen",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -93,11 +98,13 @@
 	"Copy": "Kopieren",
 	"Copy": "Kopieren",
 	"Copy last code block": "Letzten Codeblock kopieren",
 	"Copy last code block": "Letzten Codeblock kopieren",
 	"Copy last response": "Letzte Antwort kopieren",
 	"Copy last response": "Letzte Antwort kopieren",
-	"Copy Link": "kopiere Link",
+	"Copy Link": "Link kopieren",
 	"Copying to clipboard was successful!": "Das Kopieren in die Zwischenablage war erfolgreich!",
 	"Copying to clipboard was successful!": "Das Kopieren in die Zwischenablage war erfolgreich!",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Erstelle einen prägnanten Satz mit 3-5 Wörtern als Überschrift für die folgende Abfrage. Halte dich dabei strikt an die 3-5-Wort-Grenze und vermeide die Verwendung des Wortes Titel:",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Erstelle einen prägnanten Satz mit 3-5 Wörtern als Überschrift für die folgende Abfrage. Halte dich dabei strikt an die 3-5-Wort-Grenze und vermeide die Verwendung des Wortes Titel:",
 	"Create a modelfile": "Modelfiles erstellen",
 	"Create a modelfile": "Modelfiles erstellen",
 	"Create Account": "Konto erstellen",
 	"Create Account": "Konto erstellen",
+	"Create new key": "Neuen Schlüssel erstellen",
+	"Create new secret key": "Neuen API Schlüssel erstellen",
 	"Created at": "Erstellt am",
 	"Created at": "Erstellt am",
 	"Created At": "Erstellt am",
 	"Created At": "Erstellt am",
 	"Current Model": "Aktuelles Modell",
 	"Current Model": "Aktuelles Modell",
@@ -105,6 +112,7 @@
 	"Custom": "Benutzerdefiniert",
 	"Custom": "Benutzerdefiniert",
 	"Customize Ollama models for a specific purpose": "Ollama-Modelle für einen bestimmten Zweck anpassen",
 	"Customize Ollama models for a specific purpose": "Ollama-Modelle für einen bestimmten Zweck anpassen",
 	"Dark": "Dunkel",
 	"Dark": "Dunkel",
+	"Dashboard": "",
 	"Database": "Datenbank",
 	"Database": "Datenbank",
 	"DD/MM/YYYY HH:mm": "DD.MM.YYYY HH:mm",
 	"DD/MM/YYYY HH:mm": "DD.MM.YYYY HH:mm",
 	"Default": "Standard",
 	"Default": "Standard",
@@ -120,6 +128,7 @@
 	"Delete chat": "Chat löschen",
 	"Delete chat": "Chat löschen",
 	"Delete Chat": "Chat löschen",
 	"Delete Chat": "Chat löschen",
 	"Delete Chats": "Chats löschen",
 	"Delete Chats": "Chats löschen",
+	"delete this link": "diesen Link zu löschen",
 	"Delete User": "Benutzer löschen",
 	"Delete User": "Benutzer löschen",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} gelöscht",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} gelöscht",
 	"Deleted {{tagName}}": "{{tagName}} gelöscht",
 	"Deleted {{tagName}}": "{{tagName}} gelöscht",
@@ -146,8 +155,9 @@
 	"Edit Doc": "Dokument bearbeiten",
 	"Edit Doc": "Dokument bearbeiten",
 	"Edit User": "Benutzer bearbeiten",
 	"Edit User": "Benutzer bearbeiten",
 	"Email": "E-Mail",
 	"Email": "E-Mail",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
-	"Embedding model set to \"{{embedding_model}}\"": "Das Embedding Modell wurde auf \"{{embedding_model}}\" gesetzt",
+	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "Chat-Verlauf aktivieren",
 	"Enable Chat History": "Chat-Verlauf aktivieren",
 	"Enable New Sign Ups": "Neue Anmeldungen aktivieren",
 	"Enable New Sign Ups": "Neue Anmeldungen aktivieren",
 	"Enabled": "Aktiviert",
 	"Enabled": "Aktiviert",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "Stop-Sequenz eingeben",
 	"Enter stop sequence": "Stop-Sequenz eingeben",
 	"Enter Top K": "Gib Top K ein",
 	"Enter Top K": "Gib Top K ein",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Gib die URL ein (z.B. http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Gib die URL ein (z.B. http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "Gib die URL ein (z.B. http://localhost:11434)",
 	"Enter Your Email": "Gib deine E-Mail-Adresse ein",
 	"Enter Your Email": "Gib deine E-Mail-Adresse ein",
 	"Enter Your Full Name": "Gib deinen vollständigen Namen ein",
 	"Enter Your Full Name": "Gib deinen vollständigen Namen ein",
 	"Enter Your Password": "Gib dein Passwort ein",
 	"Enter Your Password": "Gib dein Passwort ein",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "Ollama-Modelle verwalten",
 	"Manage Ollama Models": "Ollama-Modelle verwalten",
 	"Max Tokens": "Maximale Tokens",
 	"Max Tokens": "Maximale Tokens",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Es können maximal 3 Modelle gleichzeitig heruntergeladen werden. Bitte versuche es später erneut.",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Es können maximal 3 Modelle gleichzeitig heruntergeladen werden. Bitte versuche es später erneut.",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "Fortlaudende Nachrichten in diesem Chat werden nicht automatisch geteilt. Benutzer mit dem Link können den Chat einsehen.",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "Mirostat",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Eta": "Mirostat Eta",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "Benenne dein modelfile",
 	"Name your modelfile": "Benenne dein modelfile",
 	"New Chat": "Neuer Chat",
 	"New Chat": "Neuer Chat",
 	"New Password": "Neues Passwort",
 	"New Password": "Neues Passwort",
+	"No results found": "Keine Ergebnisse gefunden",
+	"No source available": "",
 	"Not factually correct": "Nicht sachlich korrekt.",
 	"Not factually correct": "Nicht sachlich korrekt.",
 	"Not sure what to add?": "Nicht sicher, was hinzugefügt werden soll?",
 	"Not sure what to add?": "Nicht sicher, was hinzugefügt werden soll?",
 	"Not sure what to write? Switch to": "Nicht sicher, was Du schreiben sollst? Wechsel zu",
 	"Not sure what to write? Switch to": "Nicht sicher, was Du schreiben sollst? Wechsel zu",
@@ -265,7 +279,7 @@
 	"Notifications": "Desktop-Benachrichtigungen",
 	"Notifications": "Desktop-Benachrichtigungen",
 	"Off": "Aus",
 	"Off": "Aus",
 	"Okay, Let's Go!": "Okay, los geht's!",
 	"Okay, Let's Go!": "Okay, los geht's!",
-	"OLED Dark": "",
+	"OLED Dark": "OLED Dunkel",
 	"Ollama": "",
 	"Ollama": "",
 	"Ollama Base URL": "Ollama Basis URL",
 	"Ollama Base URL": "Ollama Basis URL",
 	"Ollama Version": "Ollama-Version",
 	"Ollama Version": "Ollama-Version",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "OpenAI URL/Key erforderlich.",
 	"OpenAI URL/Key required.": "OpenAI URL/Key erforderlich.",
 	"or": "oder",
 	"or": "oder",
 	"Other": "Andere",
 	"Other": "Andere",
+	"Overview": "Übersicht",
 	"Parameters": "Parameter",
 	"Parameters": "Parameter",
 	"Password": "Passwort",
 	"Password": "Passwort",
 	"PDF document (.pdf)": "PDF-Dokument (.pdf)",
 	"PDF document (.pdf)": "PDF-Dokument (.pdf)",
@@ -293,13 +308,14 @@
 	"pending": "ausstehend",
 	"pending": "ausstehend",
 	"Permission denied when accessing microphone: {{error}}": "Zugriff auf das Mikrofon verweigert: {{error}}",
 	"Permission denied when accessing microphone: {{error}}": "Zugriff auf das Mikrofon verweigert: {{error}}",
 	"Plain text (.txt)": "Nur Text (.txt)",
 	"Plain text (.txt)": "Nur Text (.txt)",
-	"Playground": "Spielplatz",
+	"Playground": "Testumgebung",
 	"Positive attitude": "Positive Einstellung",
 	"Positive attitude": "Positive Einstellung",
 	"Profile Image": "Profilbild",
 	"Profile Image": "Profilbild",
 	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Prompt (z.B. Erzähle mir eine interessante Tatsache über das Römische Reich.",
 	"Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Prompt (z.B. Erzähle mir eine interessante Tatsache über das Römische Reich.",
 	"Prompt Content": "Prompt-Inhalt",
 	"Prompt Content": "Prompt-Inhalt",
 	"Prompt suggestions": "Prompt-Vorschläge",
 	"Prompt suggestions": "Prompt-Vorschläge",
 	"Prompts": "Prompts",
 	"Prompts": "Prompts",
+	"Pull \"{{searchValue}}\" from Ollama.com": "\"{{searchValue}}\" von Ollama.com herunterladen",
 	"Pull a model from Ollama.com": "Ein Modell von Ollama.com abrufen",
 	"Pull a model from Ollama.com": "Ein Modell von Ollama.com abrufen",
 	"Pull Progress": "Fortschritt abrufen",
 	"Pull Progress": "Fortschritt abrufen",
 	"Query Params": "Query Parameter",
 	"Query Params": "Query Parameter",
@@ -312,13 +328,17 @@
 	"Regenerate": "Neu generieren",
 	"Regenerate": "Neu generieren",
 	"Release Notes": "Versionshinweise",
 	"Release Notes": "Versionshinweise",
 	"Remove": "Entfernen",
 	"Remove": "Entfernen",
+	"Remove Model": "Modell entfernen",
+	"Rename": "Umbenennen",
 	"Repeat Last N": "Repeat Last N",
 	"Repeat Last N": "Repeat Last N",
 	"Repeat Penalty": "Repeat Penalty",
 	"Repeat Penalty": "Repeat Penalty",
 	"Request Mode": "Request-Modus",
 	"Request Mode": "Request-Modus",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "Vektorspeicher zurücksetzen",
 	"Reset Vector Storage": "Vektorspeicher zurücksetzen",
 	"Response AutoCopy to Clipboard": "Antwort automatisch in die Zwischenablage kopieren",
 	"Response AutoCopy to Clipboard": "Antwort automatisch in die Zwischenablage kopieren",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "Rolle",
 	"Role": "Rolle",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
@@ -331,7 +351,7 @@
 	"Scan complete!": "Scan abgeschlossen!",
 	"Scan complete!": "Scan abgeschlossen!",
 	"Scan for documents from {{path}}": "Dokumente von {{path}} scannen",
 	"Scan for documents from {{path}}": "Dokumente von {{path}} scannen",
 	"Search": "Suchen",
 	"Search": "Suchen",
-	"Search a model": "Ein Modell suchen",
+	"Search a model": "Nach einem Modell suchen",
 	"Search Documents": "Dokumente suchen",
 	"Search Documents": "Dokumente suchen",
 	"Search Prompts": "Prompts suchen",
 	"Search Prompts": "Prompts suchen",
 	"See readme.md for instructions": "Anleitung in readme.md anzeigen",
 	"See readme.md for instructions": "Anleitung in readme.md anzeigen",
@@ -346,7 +366,9 @@
 	"Server connection verified": "Serververbindung überprüft",
 	"Server connection verified": "Serververbindung überprüft",
 	"Set as default": "Als Standard festlegen",
 	"Set as default": "Als Standard festlegen",
 	"Set Default Model": "Standardmodell festlegen",
 	"Set Default Model": "Standardmodell festlegen",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "Bildgröße festlegen",
 	"Set Image Size": "Bildgröße festlegen",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "Schritte festlegen",
 	"Set Steps": "Schritte festlegen",
 	"Set Title Auto-Generation Model": "Modell für automatische Titelgenerierung festlegen",
 	"Set Title Auto-Generation Model": "Modell für automatische Titelgenerierung festlegen",
 	"Set Voice": "Stimme festlegen",
 	"Set Voice": "Stimme festlegen",
@@ -365,6 +387,7 @@
 	"Sign Out": "Abmelden",
 	"Sign Out": "Abmelden",
 	"Sign up": "Registrieren",
 	"Sign up": "Registrieren",
 	"Signing in": "Anmeldung",
 	"Signing in": "Anmeldung",
+	"Source": "",
 	"Speech recognition error: {{error}}": "Spracherkennungsfehler: {{error}}",
 	"Speech recognition error: {{error}}": "Spracherkennungsfehler: {{error}}",
 	"Speech-to-Text Engine": "Sprache-zu-Text-Engine",
 	"Speech-to-Text Engine": "Sprache-zu-Text-Engine",
 	"SpeechRecognition API is not supported in this browser.": "Die Spracherkennungs-API wird in diesem Browser nicht unterstützt.",
 	"SpeechRecognition API is not supported in this browser.": "Die Spracherkennungs-API wird in diesem Browser nicht unterstützt.",
@@ -409,18 +432,14 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Ups! Es gab ein Problem bei der Verbindung mit {{provider}}.",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Ups! Es gab ein Problem bei der Verbindung mit {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Unbekannter Dateityp '{{file_type}}', wird jedoch akzeptiert und als einfacher Text behandelt.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Unbekannter Dateityp '{{file_type}}', wird jedoch akzeptiert und als einfacher Text behandelt.",
 	"Update and Copy Link": "Erneuern und kopieren",
 	"Update and Copy Link": "Erneuern und kopieren",
-	"Update Embedding Model": "Embedding Modell aktualisieren",
-	"Update embedding model (e.g. {{model}})": "Embedding Modell aktualisieren (z.B. {{model}})",
 	"Update password": "Passwort aktualisieren",
 	"Update password": "Passwort aktualisieren",
-	"Update Reranking Model": "Reranking Model aktualisieren",
-	"Update reranking model (e.g. {{model}})": "Reranking Model aktualisieren (z.B. {{model}})",
 	"Upload a GGUF model": "GGUF Model hochladen",
 	"Upload a GGUF model": "GGUF Model hochladen",
 	"Upload files": "Dateien hochladen",
 	"Upload files": "Dateien hochladen",
 	"Upload Progress": "Upload Progress",
 	"Upload Progress": "Upload Progress",
 	"URL Mode": "URL Modus",
 	"URL Mode": "URL Modus",
 	"Use '#' in the prompt input to load and select your documents.": "Verwende '#' in der Prompt-Eingabe, um deine Dokumente zu laden und auszuwählen.",
 	"Use '#' in the prompt input to load and select your documents.": "Verwende '#' in der Prompt-Eingabe, um deine Dokumente zu laden und auszuwählen.",
-	"Use Gravatar": "verwende Gravatar ",
-	"Use Initials": "verwende Initialen",
+	"Use Gravatar": "Gravatar verwenden",
+	"Use Initials": "Initialen verwenden",
 	"user": "Benutzer",
 	"user": "Benutzer",
 	"User Permissions": "Benutzerberechtigungen",
 	"User Permissions": "Benutzerberechtigungen",
 	"Users": "Benutzer",
 	"Users": "Benutzer",
@@ -431,6 +450,7 @@
 	"Version": "Version",
 	"Version": "Version",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Warnung: Wenn du dein Einbettungsmodell aktualisierst oder änderst, musst du alle Dokumente erneut importieren.",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Warnung: Wenn du dein Einbettungsmodell aktualisierst oder änderst, musst du alle Dokumente erneut importieren.",
 	"Web": "Web",
 	"Web": "Web",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "WebUI-Add-Ons",
 	"WebUI Add-ons": "WebUI-Add-Ons",
 	"WebUI Settings": "WebUI-Einstellungen",
 	"WebUI Settings": "WebUI-Einstellungen",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "Gebe einen Prompt-Vorschlag ein (z.B. Wer bist du?)",
 	"Write a prompt suggestion (e.g. Who are you?)": "Gebe einen Prompt-Vorschlag ein (z.B. Wer bist du?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Schreibe eine kurze Zusammenfassung in 50 Wörtern, die [Thema oder Schlüsselwort] zusammenfasst.",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Schreibe eine kurze Zusammenfassung in 50 Wörtern, die [Thema oder Schlüsselwort] zusammenfasst.",
 	"You": "Du",
 	"You": "Du",
+	"You have no archived conversations.": "Du hast keine archivierten Unterhaltungen.",
+	"You have shared this chat": "Du hast diesen Chat",
 	"You're a helpful assistant.": "Du bist ein hilfreicher Assistent.",
 	"You're a helpful assistant.": "Du bist ein hilfreicher Assistent.",
 	"You're now logged in.": "Du bist nun eingeloggt.",
 	"You're now logged in.": "Du bist nun eingeloggt.",
 	"Youtube": ""
 	"Youtube": ""

+ 26 - 4
src/lib/i18n/locales/dg-DG/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "Such account exists?",
 	"Already have an account?": "Such account exists?",
 	"an assistant": "such assistant",
 	"an assistant": "such assistant",
 	"and": "and",
 	"and": "and",
+	"and create a new shared link.": "",
 	"API Base URL": "API Base URL",
 	"API Base URL": "API Base URL",
 	"API Key": "API Key",
 	"API Key": "API Key",
 	"API Key created.": "",
 	"API Key created.": "",
@@ -54,8 +55,10 @@
 	"available!": "available! So excite!",
 	"available!": "available! So excite!",
 	"Back": "Back",
 	"Back": "Back",
 	"Bad Response": "",
 	"Bad Response": "",
+	"before": "",
 	"Being lazy": "",
 	"Being lazy": "",
 	"Builder Mode": "Builder Mode",
 	"Builder Mode": "Builder Mode",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "Cancel",
 	"Cancel": "Cancel",
 	"Categories": "Categories",
 	"Categories": "Categories",
 	"Change Password": "Change Password",
 	"Change Password": "Change Password",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "Chunk Overlap",
 	"Chunk Overlap": "Chunk Overlap",
 	"Chunk Params": "Chunk Params",
 	"Chunk Params": "Chunk Params",
 	"Chunk Size": "Chunk Size",
 	"Chunk Size": "Chunk Size",
+	"Citation": "",
 	"Click here for help.": "Click for help. Much assist.",
 	"Click here for help.": "Click for help. Much assist.",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "Click to check other modelfiles.",
 	"Click here to check other modelfiles.": "Click to check other modelfiles.",
 	"Click here to select": "Click to select",
 	"Click here to select": "Click to select",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Create short phrase, 3-5 word, as header for query, much strict, avoid 'title':",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Create short phrase, 3-5 word, as header for query, much strict, avoid 'title':",
 	"Create a modelfile": "Create modelfile",
 	"Create a modelfile": "Create modelfile",
 	"Create Account": "Create Account",
 	"Create Account": "Create Account",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "Created at",
 	"Created at": "Created at",
 	"Created At": "",
 	"Created At": "",
 	"Current Model": "Current Model",
 	"Current Model": "Current Model",
@@ -105,6 +112,7 @@
 	"Custom": "Custom",
 	"Custom": "Custom",
 	"Customize Ollama models for a specific purpose": "Customize Ollama models for purpose",
 	"Customize Ollama models for a specific purpose": "Customize Ollama models for purpose",
 	"Dark": "Dark",
 	"Dark": "Dark",
+	"Dashboard": "",
 	"Database": "Database",
 	"Database": "Database",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"Default": "Default",
 	"Default": "Default",
@@ -120,6 +128,7 @@
 	"Delete chat": "Delete chat",
 	"Delete chat": "Delete chat",
 	"Delete Chat": "",
 	"Delete Chat": "",
 	"Delete Chats": "Delete Chats",
 	"Delete Chats": "Delete Chats",
+	"delete this link": "",
 	"Delete User": "",
 	"Delete User": "",
 	"Deleted {{deleteModelTag}}": "Deleted {{deleteModelTag}}",
 	"Deleted {{deleteModelTag}}": "Deleted {{deleteModelTag}}",
 	"Deleted {{tagName}}": "",
 	"Deleted {{tagName}}": "",
@@ -146,6 +155,7 @@
 	"Edit Doc": "Edit Doge",
 	"Edit Doc": "Edit Doge",
 	"Edit User": "Edit Wowser",
 	"Edit User": "Edit Wowser",
 	"Email": "Email",
 	"Email": "Email",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "Activate Chat Story",
 	"Enable Chat History": "Activate Chat Story",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "Enter stop bark",
 	"Enter stop sequence": "Enter stop bark",
 	"Enter Top K": "Enter Top Wow",
 	"Enter Top K": "Enter Top Wow",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Enter URL (e.g. http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Enter URL (e.g. http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "Enter Your Dogemail",
 	"Enter Your Email": "Enter Your Dogemail",
 	"Enter Your Full Name": "Enter Your Full Wow",
 	"Enter Your Full Name": "Enter Your Full Wow",
 	"Enter Your Password": "Enter Your Barkword",
 	"Enter Your Password": "Enter Your Barkword",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "Manage Ollama Wowdels",
 	"Manage Ollama Models": "Manage Ollama Wowdels",
 	"Max Tokens": "Max Tokens",
 	"Max Tokens": "Max Tokens",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Maximum of 3 models can be downloaded simultaneously. Please try again later.",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Maximum of 3 models can be downloaded simultaneously. Please try again later.",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "Mirostat",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Eta": "Mirostat Eta",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "Name your modelfile",
 	"Name your modelfile": "Name your modelfile",
 	"New Chat": "New Bark",
 	"New Chat": "New Bark",
 	"New Password": "New Barkword",
 	"New Password": "New Barkword",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "",
 	"Not factually correct": "",
 	"Not sure what to add?": "Not sure what to add?",
 	"Not sure what to add?": "Not sure what to add?",
 	"Not sure what to write? Switch to": "Not sure what to write? Switch to",
 	"Not sure what to write? Switch to": "Not sure what to write? Switch to",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "",
 	"OpenAI URL/Key required.": "",
 	"or": "or",
 	"or": "or",
 	"Other": "",
 	"Other": "",
+	"Overview": "",
 	"Parameters": "Parametos",
 	"Parameters": "Parametos",
 	"Password": "Barkword",
 	"Password": "Barkword",
 	"PDF document (.pdf)": "",
 	"PDF document (.pdf)": "",
@@ -300,6 +315,7 @@
 	"Prompt Content": "Prompt Content",
 	"Prompt Content": "Prompt Content",
 	"Prompt suggestions": "Prompt wowgestions",
 	"Prompt suggestions": "Prompt wowgestions",
 	"Prompts": "Promptos",
 	"Prompts": "Promptos",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "Pull a wowdel from Ollama.com",
 	"Pull a model from Ollama.com": "Pull a wowdel from Ollama.com",
 	"Pull Progress": "Pull Progress",
 	"Pull Progress": "Pull Progress",
 	"Query Params": "Query Bark",
 	"Query Params": "Query Bark",
@@ -312,13 +328,17 @@
 	"Regenerate": "",
 	"Regenerate": "",
 	"Release Notes": "Release Borks",
 	"Release Notes": "Release Borks",
 	"Remove": "",
 	"Remove": "",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "Repeat Last N",
 	"Repeat Last N": "Repeat Last N",
 	"Repeat Penalty": "Repeat Penalty",
 	"Repeat Penalty": "Repeat Penalty",
 	"Request Mode": "Request Bark",
 	"Request Mode": "Request Bark",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "Reset Vector Storage",
 	"Reset Vector Storage": "Reset Vector Storage",
 	"Response AutoCopy to Clipboard": "Copy Bark Auto Bark",
 	"Response AutoCopy to Clipboard": "Copy Bark Auto Bark",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "Role",
 	"Role": "Role",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
@@ -346,7 +366,9 @@
 	"Server connection verified": "Server connection verified much secure",
 	"Server connection verified": "Server connection verified much secure",
 	"Set as default": "Set as default very default",
 	"Set as default": "Set as default very default",
 	"Set Default Model": "Set Default Model much model",
 	"Set Default Model": "Set Default Model much model",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "Set Image Size very size",
 	"Set Image Size": "Set Image Size very size",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "Set Steps so many steps",
 	"Set Steps": "Set Steps so many steps",
 	"Set Title Auto-Generation Model": "Set Title Auto-Generation Model very auto-generate",
 	"Set Title Auto-Generation Model": "Set Title Auto-Generation Model very auto-generate",
 	"Set Voice": "Set Voice so speak",
 	"Set Voice": "Set Voice so speak",
@@ -365,6 +387,7 @@
 	"Sign Out": "Sign Out much logout",
 	"Sign Out": "Sign Out much logout",
 	"Sign up": "Sign up much join",
 	"Sign up": "Sign up much join",
 	"Signing in": "",
 	"Signing in": "",
+	"Source": "",
 	"Speech recognition error: {{error}}": "Speech recognition error: {{error}} so error",
 	"Speech recognition error: {{error}}": "Speech recognition error: {{error}} so error",
 	"Speech-to-Text Engine": "Speech-to-Text Engine much speak",
 	"Speech-to-Text Engine": "Speech-to-Text Engine much speak",
 	"SpeechRecognition API is not supported in this browser.": "SpeechRecognition API is not supported in this browser. Much sad.",
 	"SpeechRecognition API is not supported in this browser.": "SpeechRecognition API is not supported in this browser. Much sad.",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh! There was an issue connecting to {{provider}}. Much uh-oh!",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh! There was an issue connecting to {{provider}}. Much uh-oh!",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Unknown File Type '{{file_type}}', but accepting and treating as plain text very unknown",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Unknown File Type '{{file_type}}', but accepting and treating as plain text very unknown",
 	"Update and Copy Link": "",
 	"Update and Copy Link": "",
-	"Update Embedding Model": "",
-	"Update embedding model (e.g. {{model}})": "",
 	"Update password": "Update password much change",
 	"Update password": "Update password much change",
-	"Update Reranking Model": "",
-	"Update reranking model (e.g. {{model}})": "",
 	"Upload a GGUF model": "Upload a GGUF model very upload",
 	"Upload a GGUF model": "Upload a GGUF model very upload",
 	"Upload files": "Upload files very upload",
 	"Upload files": "Upload files very upload",
 	"Upload Progress": "Upload Progress much progress",
 	"Upload Progress": "Upload Progress much progress",
@@ -431,6 +450,7 @@
 	"Version": "Version much version",
 	"Version": "Version much version",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Web": "Web very web",
 	"Web": "Web very web",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "WebUI Add-ons very add-ons",
 	"WebUI Add-ons": "WebUI Add-ons very add-ons",
 	"WebUI Settings": "WebUI Settings much settings",
 	"WebUI Settings": "WebUI Settings much settings",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "Write a prompt suggestion (e.g. Who are you?) much suggest",
 	"Write a prompt suggestion (e.g. Who are you?)": "Write a prompt suggestion (e.g. Who are you?) much suggest",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Write a summary in 50 words that summarizes [topic or keyword]. Much summarize.",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Write a summary in 50 words that summarizes [topic or keyword]. Much summarize.",
 	"You": "You very you",
 	"You": "You very you",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "You're a helpful assistant. Much helpful.",
 	"You're a helpful assistant.": "You're a helpful assistant. Much helpful.",
 	"You're now logged in.": "You're now logged in. Much logged.",
 	"You're now logged in.": "You're now logged in. Much logged.",
 	"Youtube": ""
 	"Youtube": ""

+ 26 - 4
src/lib/i18n/locales/en-GB/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "",
 	"Already have an account?": "",
 	"an assistant": "",
 	"an assistant": "",
 	"and": "",
 	"and": "",
+	"and create a new shared link.": "",
 	"API Base URL": "",
 	"API Base URL": "",
 	"API Key": "",
 	"API Key": "",
 	"API Key created.": "",
 	"API Key created.": "",
@@ -54,8 +55,10 @@
 	"available!": "",
 	"available!": "",
 	"Back": "",
 	"Back": "",
 	"Bad Response": "",
 	"Bad Response": "",
+	"before": "",
 	"Being lazy": "",
 	"Being lazy": "",
 	"Builder Mode": "",
 	"Builder Mode": "",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "",
 	"Cancel": "",
 	"Categories": "",
 	"Categories": "",
 	"Change Password": "",
 	"Change Password": "",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "",
 	"Chunk Overlap": "",
 	"Chunk Params": "",
 	"Chunk Params": "",
 	"Chunk Size": "",
 	"Chunk Size": "",
+	"Citation": "",
 	"Click here for help.": "",
 	"Click here for help.": "",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "",
 	"Click here to check other modelfiles.": "",
 	"Click here to select": "",
 	"Click here to select": "",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "",
 	"Create a modelfile": "",
 	"Create a modelfile": "",
 	"Create Account": "",
 	"Create Account": "",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "",
 	"Created at": "",
 	"Created At": "",
 	"Created At": "",
 	"Current Model": "",
 	"Current Model": "",
@@ -105,6 +112,7 @@
 	"Custom": "",
 	"Custom": "",
 	"Customize Ollama models for a specific purpose": "",
 	"Customize Ollama models for a specific purpose": "",
 	"Dark": "",
 	"Dark": "",
+	"Dashboard": "",
 	"Database": "",
 	"Database": "",
 	"DD/MM/YYYY HH:mm": "",
 	"DD/MM/YYYY HH:mm": "",
 	"Default": "",
 	"Default": "",
@@ -120,6 +128,7 @@
 	"Delete chat": "",
 	"Delete chat": "",
 	"Delete Chat": "",
 	"Delete Chat": "",
 	"Delete Chats": "",
 	"Delete Chats": "",
+	"delete this link": "",
 	"Delete User": "",
 	"Delete User": "",
 	"Deleted {{deleteModelTag}}": "",
 	"Deleted {{deleteModelTag}}": "",
 	"Deleted {{tagName}}": "",
 	"Deleted {{tagName}}": "",
@@ -146,6 +155,7 @@
 	"Edit Doc": "",
 	"Edit Doc": "",
 	"Edit User": "",
 	"Edit User": "",
 	"Email": "",
 	"Email": "",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "",
 	"Enable Chat History": "",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "",
 	"Enter stop sequence": "",
 	"Enter Top K": "",
 	"Enter Top K": "",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "",
 	"Enter Your Email": "",
 	"Enter Your Full Name": "",
 	"Enter Your Full Name": "",
 	"Enter Your Password": "",
 	"Enter Your Password": "",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "",
 	"Manage Ollama Models": "",
 	"Max Tokens": "",
 	"Max Tokens": "",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "",
 	"Mirostat": "",
 	"Mirostat Eta": "",
 	"Mirostat Eta": "",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "",
 	"Name your modelfile": "",
 	"New Chat": "",
 	"New Chat": "",
 	"New Password": "",
 	"New Password": "",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "",
 	"Not factually correct": "",
 	"Not sure what to add?": "",
 	"Not sure what to add?": "",
 	"Not sure what to write? Switch to": "",
 	"Not sure what to write? Switch to": "",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "",
 	"OpenAI URL/Key required.": "",
 	"or": "",
 	"or": "",
 	"Other": "",
 	"Other": "",
+	"Overview": "",
 	"Parameters": "",
 	"Parameters": "",
 	"Password": "",
 	"Password": "",
 	"PDF document (.pdf)": "",
 	"PDF document (.pdf)": "",
@@ -300,6 +315,7 @@
 	"Prompt Content": "",
 	"Prompt Content": "",
 	"Prompt suggestions": "",
 	"Prompt suggestions": "",
 	"Prompts": "",
 	"Prompts": "",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "",
 	"Pull a model from Ollama.com": "",
 	"Pull Progress": "",
 	"Pull Progress": "",
 	"Query Params": "",
 	"Query Params": "",
@@ -312,13 +328,17 @@
 	"Regenerate": "",
 	"Regenerate": "",
 	"Release Notes": "",
 	"Release Notes": "",
 	"Remove": "",
 	"Remove": "",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "",
 	"Repeat Last N": "",
 	"Repeat Penalty": "",
 	"Repeat Penalty": "",
 	"Request Mode": "",
 	"Request Mode": "",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "",
 	"Reset Vector Storage": "",
 	"Response AutoCopy to Clipboard": "",
 	"Response AutoCopy to Clipboard": "",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "",
 	"Role": "",
 	"Rosé Pine": "",
 	"Rosé Pine": "",
 	"Rosé Pine Dawn": "",
 	"Rosé Pine Dawn": "",
@@ -346,7 +366,9 @@
 	"Server connection verified": "",
 	"Server connection verified": "",
 	"Set as default": "",
 	"Set as default": "",
 	"Set Default Model": "",
 	"Set Default Model": "",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "",
 	"Set Image Size": "",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "",
 	"Set Steps": "",
 	"Set Title Auto-Generation Model": "",
 	"Set Title Auto-Generation Model": "",
 	"Set Voice": "",
 	"Set Voice": "",
@@ -365,6 +387,7 @@
 	"Sign Out": "",
 	"Sign Out": "",
 	"Sign up": "",
 	"Sign up": "",
 	"Signing in": "",
 	"Signing in": "",
+	"Source": "",
 	"Speech recognition error: {{error}}": "",
 	"Speech recognition error: {{error}}": "",
 	"Speech-to-Text Engine": "",
 	"Speech-to-Text Engine": "",
 	"SpeechRecognition API is not supported in this browser.": "",
 	"SpeechRecognition API is not supported in this browser.": "",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "",
 	"Update and Copy Link": "",
 	"Update and Copy Link": "",
-	"Update Embedding Model": "",
-	"Update embedding model (e.g. {{model}})": "",
 	"Update password": "",
 	"Update password": "",
-	"Update Reranking Model": "",
-	"Update reranking model (e.g. {{model}})": "",
 	"Upload a GGUF model": "",
 	"Upload a GGUF model": "",
 	"Upload files": "",
 	"Upload files": "",
 	"Upload Progress": "",
 	"Upload Progress": "",
@@ -431,6 +450,7 @@
 	"Version": "",
 	"Version": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Web": "",
 	"Web": "",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "",
 	"WebUI Add-ons": "",
 	"WebUI Settings": "",
 	"WebUI Settings": "",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "",
 	"Write a prompt suggestion (e.g. Who are you?)": "",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "",
 	"You": "",
 	"You": "",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "",
 	"You're a helpful assistant.": "",
 	"You're now logged in.": "",
 	"You're now logged in.": "",
 	"Youtube": ""
 	"Youtube": ""

+ 26 - 4
src/lib/i18n/locales/en-US/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "",
 	"Already have an account?": "",
 	"an assistant": "",
 	"an assistant": "",
 	"and": "",
 	"and": "",
+	"and create a new shared link.": "",
 	"API Base URL": "",
 	"API Base URL": "",
 	"API Key": "",
 	"API Key": "",
 	"API Key created.": "",
 	"API Key created.": "",
@@ -54,8 +55,10 @@
 	"available!": "",
 	"available!": "",
 	"Back": "",
 	"Back": "",
 	"Bad Response": "",
 	"Bad Response": "",
+	"before": "",
 	"Being lazy": "",
 	"Being lazy": "",
 	"Builder Mode": "",
 	"Builder Mode": "",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "",
 	"Cancel": "",
 	"Categories": "",
 	"Categories": "",
 	"Change Password": "",
 	"Change Password": "",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "",
 	"Chunk Overlap": "",
 	"Chunk Params": "",
 	"Chunk Params": "",
 	"Chunk Size": "",
 	"Chunk Size": "",
+	"Citation": "",
 	"Click here for help.": "",
 	"Click here for help.": "",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "",
 	"Click here to check other modelfiles.": "",
 	"Click here to select": "",
 	"Click here to select": "",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "",
 	"Create a modelfile": "",
 	"Create a modelfile": "",
 	"Create Account": "",
 	"Create Account": "",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "",
 	"Created at": "",
 	"Created At": "",
 	"Created At": "",
 	"Current Model": "",
 	"Current Model": "",
@@ -105,6 +112,7 @@
 	"Custom": "",
 	"Custom": "",
 	"Customize Ollama models for a specific purpose": "",
 	"Customize Ollama models for a specific purpose": "",
 	"Dark": "",
 	"Dark": "",
+	"Dashboard": "",
 	"Database": "",
 	"Database": "",
 	"DD/MM/YYYY HH:mm": "",
 	"DD/MM/YYYY HH:mm": "",
 	"Default": "",
 	"Default": "",
@@ -120,6 +128,7 @@
 	"Delete chat": "",
 	"Delete chat": "",
 	"Delete Chat": "",
 	"Delete Chat": "",
 	"Delete Chats": "",
 	"Delete Chats": "",
+	"delete this link": "",
 	"Delete User": "",
 	"Delete User": "",
 	"Deleted {{deleteModelTag}}": "",
 	"Deleted {{deleteModelTag}}": "",
 	"Deleted {{tagName}}": "",
 	"Deleted {{tagName}}": "",
@@ -146,6 +155,7 @@
 	"Edit Doc": "",
 	"Edit Doc": "",
 	"Edit User": "",
 	"Edit User": "",
 	"Email": "",
 	"Email": "",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "",
 	"Enable Chat History": "",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "",
 	"Enter stop sequence": "",
 	"Enter Top K": "",
 	"Enter Top K": "",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "",
 	"Enter Your Email": "",
 	"Enter Your Full Name": "",
 	"Enter Your Full Name": "",
 	"Enter Your Password": "",
 	"Enter Your Password": "",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "",
 	"Manage Ollama Models": "",
 	"Max Tokens": "",
 	"Max Tokens": "",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "",
 	"Mirostat": "",
 	"Mirostat Eta": "",
 	"Mirostat Eta": "",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "",
 	"Name your modelfile": "",
 	"New Chat": "",
 	"New Chat": "",
 	"New Password": "",
 	"New Password": "",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "",
 	"Not factually correct": "",
 	"Not sure what to add?": "",
 	"Not sure what to add?": "",
 	"Not sure what to write? Switch to": "",
 	"Not sure what to write? Switch to": "",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "",
 	"OpenAI URL/Key required.": "",
 	"or": "",
 	"or": "",
 	"Other": "",
 	"Other": "",
+	"Overview": "",
 	"Parameters": "",
 	"Parameters": "",
 	"Password": "",
 	"Password": "",
 	"PDF document (.pdf)": "",
 	"PDF document (.pdf)": "",
@@ -300,6 +315,7 @@
 	"Prompt Content": "",
 	"Prompt Content": "",
 	"Prompt suggestions": "",
 	"Prompt suggestions": "",
 	"Prompts": "",
 	"Prompts": "",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "",
 	"Pull a model from Ollama.com": "",
 	"Pull Progress": "",
 	"Pull Progress": "",
 	"Query Params": "",
 	"Query Params": "",
@@ -312,13 +328,17 @@
 	"Regenerate": "",
 	"Regenerate": "",
 	"Release Notes": "",
 	"Release Notes": "",
 	"Remove": "",
 	"Remove": "",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "",
 	"Repeat Last N": "",
 	"Repeat Penalty": "",
 	"Repeat Penalty": "",
 	"Request Mode": "",
 	"Request Mode": "",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "",
 	"Reset Vector Storage": "",
 	"Response AutoCopy to Clipboard": "",
 	"Response AutoCopy to Clipboard": "",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "",
 	"Role": "",
 	"Rosé Pine": "",
 	"Rosé Pine": "",
 	"Rosé Pine Dawn": "",
 	"Rosé Pine Dawn": "",
@@ -346,7 +366,9 @@
 	"Server connection verified": "",
 	"Server connection verified": "",
 	"Set as default": "",
 	"Set as default": "",
 	"Set Default Model": "",
 	"Set Default Model": "",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "",
 	"Set Image Size": "",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "",
 	"Set Steps": "",
 	"Set Title Auto-Generation Model": "",
 	"Set Title Auto-Generation Model": "",
 	"Set Voice": "",
 	"Set Voice": "",
@@ -365,6 +387,7 @@
 	"Sign Out": "",
 	"Sign Out": "",
 	"Sign up": "",
 	"Sign up": "",
 	"Signing in": "",
 	"Signing in": "",
+	"Source": "",
 	"Speech recognition error: {{error}}": "",
 	"Speech recognition error: {{error}}": "",
 	"Speech-to-Text Engine": "",
 	"Speech-to-Text Engine": "",
 	"SpeechRecognition API is not supported in this browser.": "",
 	"SpeechRecognition API is not supported in this browser.": "",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "",
 	"Update and Copy Link": "",
 	"Update and Copy Link": "",
-	"Update Embedding Model": "",
-	"Update embedding model (e.g. {{model}})": "",
 	"Update password": "",
 	"Update password": "",
-	"Update Reranking Model": "",
-	"Update reranking model (e.g. {{model}})": "",
 	"Upload a GGUF model": "",
 	"Upload a GGUF model": "",
 	"Upload files": "",
 	"Upload files": "",
 	"Upload Progress": "",
 	"Upload Progress": "",
@@ -431,6 +450,7 @@
 	"Version": "",
 	"Version": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Web": "",
 	"Web": "",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "",
 	"WebUI Add-ons": "",
 	"WebUI Settings": "",
 	"WebUI Settings": "",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "",
 	"Write a prompt suggestion (e.g. Who are you?)": "",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "",
 	"You": "",
 	"You": "",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "",
 	"You're a helpful assistant.": "",
 	"You're now logged in.": "",
 	"You're now logged in.": "",
 	"Youtube": ""
 	"Youtube": ""

+ 26 - 4
src/lib/i18n/locales/es-ES/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "¿Ya tienes una cuenta?",
 	"Already have an account?": "¿Ya tienes una cuenta?",
 	"an assistant": "un asistente",
 	"an assistant": "un asistente",
 	"and": "y",
 	"and": "y",
+	"and create a new shared link.": "",
 	"API Base URL": "Dirección URL de la API",
 	"API Base URL": "Dirección URL de la API",
 	"API Key": "Clave de la API ",
 	"API Key": "Clave de la API ",
 	"API Key created.": "",
 	"API Key created.": "",
@@ -54,8 +55,10 @@
 	"available!": "¡disponible!",
 	"available!": "¡disponible!",
 	"Back": "Volver",
 	"Back": "Volver",
 	"Bad Response": "",
 	"Bad Response": "",
+	"before": "",
 	"Being lazy": "",
 	"Being lazy": "",
 	"Builder Mode": "Modo de Constructor",
 	"Builder Mode": "Modo de Constructor",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "Cancelar",
 	"Cancel": "Cancelar",
 	"Categories": "Categorías",
 	"Categories": "Categorías",
 	"Change Password": "Cambia la Contraseña",
 	"Change Password": "Cambia la Contraseña",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "Superposición de fragmentos",
 	"Chunk Overlap": "Superposición de fragmentos",
 	"Chunk Params": "Parámetros de fragmentos",
 	"Chunk Params": "Parámetros de fragmentos",
 	"Chunk Size": "Tamaño de fragmentos",
 	"Chunk Size": "Tamaño de fragmentos",
+	"Citation": "",
 	"Click here for help.": "Presiona aquí para obtener ayuda.",
 	"Click here for help.": "Presiona aquí para obtener ayuda.",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "Presiona aquí para consultar otros modelfiles.",
 	"Click here to check other modelfiles.": "Presiona aquí para consultar otros modelfiles.",
 	"Click here to select": "Presiona aquí para seleccionar",
 	"Click here to select": "Presiona aquí para seleccionar",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Cree una frase concisa de 3 a 5 palabras como encabezado para la siguiente consulta, respetando estrictamente el límite de 3 a 5 palabras y evitando el uso de la palabra 'título':",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Cree una frase concisa de 3 a 5 palabras como encabezado para la siguiente consulta, respetando estrictamente el límite de 3 a 5 palabras y evitando el uso de la palabra 'título':",
 	"Create a modelfile": "Crea un modelfile",
 	"Create a modelfile": "Crea un modelfile",
 	"Create Account": "Crear una cuenta",
 	"Create Account": "Crear una cuenta",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "Creado en",
 	"Created at": "Creado en",
 	"Created At": "",
 	"Created At": "",
 	"Current Model": "Modelo Actual",
 	"Current Model": "Modelo Actual",
@@ -105,6 +112,7 @@
 	"Custom": "Personalizado",
 	"Custom": "Personalizado",
 	"Customize Ollama models for a specific purpose": "Personaliza los modelos de Ollama para un propósito específico",
 	"Customize Ollama models for a specific purpose": "Personaliza los modelos de Ollama para un propósito específico",
 	"Dark": "Oscuro",
 	"Dark": "Oscuro",
+	"Dashboard": "",
 	"Database": "Base de datos",
 	"Database": "Base de datos",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"Default": "Por defecto",
 	"Default": "Por defecto",
@@ -120,6 +128,7 @@
 	"Delete chat": "Borrar chat",
 	"Delete chat": "Borrar chat",
 	"Delete Chat": "",
 	"Delete Chat": "",
 	"Delete Chats": "Borrar Chats",
 	"Delete Chats": "Borrar Chats",
+	"delete this link": "",
 	"Delete User": "",
 	"Delete User": "",
 	"Deleted {{deleteModelTag}}": "Se borró {{deleteModelTag}}",
 	"Deleted {{deleteModelTag}}": "Se borró {{deleteModelTag}}",
 	"Deleted {{tagName}}": "",
 	"Deleted {{tagName}}": "",
@@ -146,6 +155,7 @@
 	"Edit Doc": "Editar Documento",
 	"Edit Doc": "Editar Documento",
 	"Edit User": "Editar Usuario",
 	"Edit User": "Editar Usuario",
 	"Email": "Email",
 	"Email": "Email",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "Activa el Historial de Chat",
 	"Enable Chat History": "Activa el Historial de Chat",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "Ingrese la secuencia de parada",
 	"Enter stop sequence": "Ingrese la secuencia de parada",
 	"Enter Top K": "Ingrese el Top K",
 	"Enter Top K": "Ingrese el Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Ingrese la URL (p.ej., http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Ingrese la URL (p.ej., http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "Ingrese su correo electrónico",
 	"Enter Your Email": "Ingrese su correo electrónico",
 	"Enter Your Full Name": "Ingrese su nombre completo",
 	"Enter Your Full Name": "Ingrese su nombre completo",
 	"Enter Your Password": "Ingrese su contraseña",
 	"Enter Your Password": "Ingrese su contraseña",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "Administrar Modelos Ollama",
 	"Manage Ollama Models": "Administrar Modelos Ollama",
 	"Max Tokens": "Máximo de Tokens",
 	"Max Tokens": "Máximo de Tokens",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Se pueden descargar un máximo de 3 modelos simultáneamente. Por favor, inténtelo de nuevo más tarde.",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Se pueden descargar un máximo de 3 modelos simultáneamente. Por favor, inténtelo de nuevo más tarde.",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "Mirostat",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Eta": "Mirostat Eta",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "Nombra tu modelfile",
 	"Name your modelfile": "Nombra tu modelfile",
 	"New Chat": "Nuevo Chat",
 	"New Chat": "Nuevo Chat",
 	"New Password": "Nueva Contraseña",
 	"New Password": "Nueva Contraseña",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "",
 	"Not factually correct": "",
 	"Not sure what to add?": "¿No sabes qué añadir?",
 	"Not sure what to add?": "¿No sabes qué añadir?",
 	"Not sure what to write? Switch to": "¿No sabes qué escribir? Cambia a",
 	"Not sure what to write? Switch to": "¿No sabes qué escribir? Cambia a",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "",
 	"OpenAI URL/Key required.": "",
 	"or": "o",
 	"or": "o",
 	"Other": "",
 	"Other": "",
+	"Overview": "",
 	"Parameters": "Parámetros",
 	"Parameters": "Parámetros",
 	"Password": "Contraseña",
 	"Password": "Contraseña",
 	"PDF document (.pdf)": "",
 	"PDF document (.pdf)": "",
@@ -300,6 +315,7 @@
 	"Prompt Content": "Contenido del Prompt",
 	"Prompt Content": "Contenido del Prompt",
 	"Prompt suggestions": "Sugerencias de Prompts",
 	"Prompt suggestions": "Sugerencias de Prompts",
 	"Prompts": "Prompts",
 	"Prompts": "Prompts",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "Obtener un modelo de Ollama.com",
 	"Pull a model from Ollama.com": "Obtener un modelo de Ollama.com",
 	"Pull Progress": "Progreso de extracción",
 	"Pull Progress": "Progreso de extracción",
 	"Query Params": "Parámetros de consulta",
 	"Query Params": "Parámetros de consulta",
@@ -312,13 +328,17 @@
 	"Regenerate": "",
 	"Regenerate": "",
 	"Release Notes": "Notas de la versión",
 	"Release Notes": "Notas de la versión",
 	"Remove": "",
 	"Remove": "",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "Repetir las últimas N",
 	"Repeat Last N": "Repetir las últimas N",
 	"Repeat Penalty": "Penalidad de repetición",
 	"Repeat Penalty": "Penalidad de repetición",
 	"Request Mode": "Modo de petición",
 	"Request Mode": "Modo de petición",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "Restablecer almacenamiento vectorial",
 	"Reset Vector Storage": "Restablecer almacenamiento vectorial",
 	"Response AutoCopy to Clipboard": "Copiar respuesta automáticamente al portapapeles",
 	"Response AutoCopy to Clipboard": "Copiar respuesta automáticamente al portapapeles",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "Rol",
 	"Role": "Rol",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
@@ -346,7 +366,9 @@
 	"Server connection verified": "Conexión del servidor verificada",
 	"Server connection verified": "Conexión del servidor verificada",
 	"Set as default": "Establecer por defecto",
 	"Set as default": "Establecer por defecto",
 	"Set Default Model": "Establecer modelo predeterminado",
 	"Set Default Model": "Establecer modelo predeterminado",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "Establecer tamaño de imagen",
 	"Set Image Size": "Establecer tamaño de imagen",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "Establecer Pasos",
 	"Set Steps": "Establecer Pasos",
 	"Set Title Auto-Generation Model": "Establecer modelo de generación automática de títulos",
 	"Set Title Auto-Generation Model": "Establecer modelo de generación automática de títulos",
 	"Set Voice": "Establecer la voz",
 	"Set Voice": "Establecer la voz",
@@ -365,6 +387,7 @@
 	"Sign Out": "Cerrar sesión",
 	"Sign Out": "Cerrar sesión",
 	"Sign up": "Crear una cuenta",
 	"Sign up": "Crear una cuenta",
 	"Signing in": "",
 	"Signing in": "",
+	"Source": "",
 	"Speech recognition error: {{error}}": "Error de reconocimiento de voz: {{error}}",
 	"Speech recognition error: {{error}}": "Error de reconocimiento de voz: {{error}}",
 	"Speech-to-Text Engine": "Motor de voz a texto",
 	"Speech-to-Text Engine": "Motor de voz a texto",
 	"SpeechRecognition API is not supported in this browser.": "La API SpeechRecognition no es compatible con este navegador.",
 	"SpeechRecognition API is not supported in this browser.": "La API SpeechRecognition no es compatible con este navegador.",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "¡Uh oh! Hubo un problema al conectarse a {{provider}}.",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "¡Uh oh! Hubo un problema al conectarse a {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipo de archivo desconocido '{{file_type}}', pero se acepta y se trata como texto sin formato",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipo de archivo desconocido '{{file_type}}', pero se acepta y se trata como texto sin formato",
 	"Update and Copy Link": "",
 	"Update and Copy Link": "",
-	"Update Embedding Model": "",
-	"Update embedding model (e.g. {{model}})": "",
 	"Update password": "Actualizar contraseña",
 	"Update password": "Actualizar contraseña",
-	"Update Reranking Model": "",
-	"Update reranking model (e.g. {{model}})": "",
 	"Upload a GGUF model": "Subir un modelo GGUF",
 	"Upload a GGUF model": "Subir un modelo GGUF",
 	"Upload files": "Subir archivos",
 	"Upload files": "Subir archivos",
 	"Upload Progress": "Progreso de carga",
 	"Upload Progress": "Progreso de carga",
@@ -431,6 +450,7 @@
 	"Version": "Versión",
 	"Version": "Versión",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Web": "Web",
 	"Web": "Web",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "WebUI Add-ons",
 	"WebUI Add-ons": "WebUI Add-ons",
 	"WebUI Settings": "Configuración del WebUI",
 	"WebUI Settings": "Configuración del WebUI",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "Escribe una sugerencia para un prompt (por ejemplo, ¿quién eres?)",
 	"Write a prompt suggestion (e.g. Who are you?)": "Escribe una sugerencia para un prompt (por ejemplo, ¿quién eres?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Escribe un resumen en 50 palabras que resuma [tema o palabra clave].",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Escribe un resumen en 50 palabras que resuma [tema o palabra clave].",
 	"You": "Usted",
 	"You": "Usted",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "Eres un asistente útil.",
 	"You're a helpful assistant.": "Eres un asistente útil.",
 	"You're now logged in.": "Has iniciado sesión.",
 	"You're now logged in.": "Has iniciado sesión.",
 	"Youtube": ""
 	"Youtube": ""

+ 26 - 4
src/lib/i18n/locales/fa-IR/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "از قبل حساب کاربری دارید؟",
 	"Already have an account?": "از قبل حساب کاربری دارید؟",
 	"an assistant": "یک دستیار",
 	"an assistant": "یک دستیار",
 	"and": "و",
 	"and": "و",
+	"and create a new shared link.": "",
 	"API Base URL": "API Base URL",
 	"API Base URL": "API Base URL",
 	"API Key": "API Key",
 	"API Key": "API Key",
 	"API Key created.": "",
 	"API Key created.": "",
@@ -54,8 +55,10 @@
 	"available!": "در دسترس!",
 	"available!": "در دسترس!",
 	"Back": "بازگشت",
 	"Back": "بازگشت",
 	"Bad Response": "",
 	"Bad Response": "",
+	"before": "",
 	"Being lazy": "",
 	"Being lazy": "",
 	"Builder Mode": "حالت سازنده",
 	"Builder Mode": "حالت سازنده",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "لغو",
 	"Cancel": "لغو",
 	"Categories": "دسته\u200cبندی\u200cها",
 	"Categories": "دسته\u200cبندی\u200cها",
 	"Change Password": "تغییر رمز عبور",
 	"Change Password": "تغییر رمز عبور",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "همپوشانی تکه",
 	"Chunk Overlap": "همپوشانی تکه",
 	"Chunk Params": "پارامترهای تکه",
 	"Chunk Params": "پارامترهای تکه",
 	"Chunk Size": "اندازه تکه",
 	"Chunk Size": "اندازه تکه",
+	"Citation": "",
 	"Click here for help.": "برای کمک اینجا را کلیک کنید.",
 	"Click here for help.": "برای کمک اینجا را کلیک کنید.",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "برای بررسی سایر فایل\u200cهای مدل اینجا را کلیک کنید.",
 	"Click here to check other modelfiles.": "برای بررسی سایر فایل\u200cهای مدل اینجا را کلیک کنید.",
 	"Click here to select": "برای انتخاب اینجا کلیک کنید",
 	"Click here to select": "برای انتخاب اینجا کلیک کنید",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "یک عبارت مختصر و ۳ تا ۵ کلمه ای را به عنوان سرفصل برای پرس و جو زیر ایجاد کنید، به شدت محدودیت ۳-۵ کلمه را رعایت کنید و از استفاده از کلمه 'عنوان' خودداری کنید:",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "یک عبارت مختصر و ۳ تا ۵ کلمه ای را به عنوان سرفصل برای پرس و جو زیر ایجاد کنید، به شدت محدودیت ۳-۵ کلمه را رعایت کنید و از استفاده از کلمه 'عنوان' خودداری کنید:",
 	"Create a modelfile": "ایجاد یک فایل مدل",
 	"Create a modelfile": "ایجاد یک فایل مدل",
 	"Create Account": "ساخت حساب کاربری",
 	"Create Account": "ساخت حساب کاربری",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "ایجاد شده در",
 	"Created at": "ایجاد شده در",
 	"Created At": "",
 	"Created At": "",
 	"Current Model": "مدل فعلی",
 	"Current Model": "مدل فعلی",
@@ -105,6 +112,7 @@
 	"Custom": "دلخواه",
 	"Custom": "دلخواه",
 	"Customize Ollama models for a specific purpose": "مدل های اولاما را برای یک هدف خاص سفارشی کنید",
 	"Customize Ollama models for a specific purpose": "مدل های اولاما را برای یک هدف خاص سفارشی کنید",
 	"Dark": "تیره",
 	"Dark": "تیره",
+	"Dashboard": "",
 	"Database": "پایگاه داده",
 	"Database": "پایگاه داده",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"Default": "پیشفرض",
 	"Default": "پیشفرض",
@@ -120,6 +128,7 @@
 	"Delete chat": "حذف گپ",
 	"Delete chat": "حذف گپ",
 	"Delete Chat": "",
 	"Delete Chat": "",
 	"Delete Chats": "حذف گپ\u200cها",
 	"Delete Chats": "حذف گپ\u200cها",
+	"delete this link": "",
 	"Delete User": "",
 	"Delete User": "",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} پاک شد",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} پاک شد",
 	"Deleted {{tagName}}": "",
 	"Deleted {{tagName}}": "",
@@ -146,6 +155,7 @@
 	"Edit Doc": "ویرایش سند",
 	"Edit Doc": "ویرایش سند",
 	"Edit User": "ویرایش کاربر",
 	"Edit User": "ویرایش کاربر",
 	"Email": "ایمیل",
 	"Email": "ایمیل",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "تاریخچه چت را فعال کنید",
 	"Enable Chat History": "تاریخچه چت را فعال کنید",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "توالی توقف را وارد کنید",
 	"Enter stop sequence": "توالی توقف را وارد کنید",
 	"Enter Top K": "مقدار Top K را وارد کنید",
 	"Enter Top K": "مقدار Top K را وارد کنید",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "مقدار URL را وارد کنید (مثال http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "مقدار URL را وارد کنید (مثال http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "ایمیل خود را وارد کنید",
 	"Enter Your Email": "ایمیل خود را وارد کنید",
 	"Enter Your Full Name": "نام کامل خود را وارد کنید",
 	"Enter Your Full Name": "نام کامل خود را وارد کنید",
 	"Enter Your Password": "رمز عبور خود را وارد کنید",
 	"Enter Your Password": "رمز عبور خود را وارد کنید",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "مدیریت مدل\u200cهای اولاما",
 	"Manage Ollama Models": "مدیریت مدل\u200cهای اولاما",
 	"Max Tokens": "حداکثر توکن",
 	"Max Tokens": "حداکثر توکن",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "حداکثر 3 مدل را می توان به طور همزمان دانلود کرد. لطفاً بعداً دوباره امتحان کنید.",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "حداکثر 3 مدل را می توان به طور همزمان دانلود کرد. لطفاً بعداً دوباره امتحان کنید.",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "Mirostat",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Eta": "Mirostat Eta",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "فایل مدل را نام\u200cگذاری کنید",
 	"Name your modelfile": "فایل مدل را نام\u200cگذاری کنید",
 	"New Chat": "گپ جدید",
 	"New Chat": "گپ جدید",
 	"New Password": "رمز عبور جدید",
 	"New Password": "رمز عبور جدید",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "",
 	"Not factually correct": "",
 	"Not sure what to add?": "مطمئن نیستید چه چیزی را اضافه کنید؟",
 	"Not sure what to add?": "مطمئن نیستید چه چیزی را اضافه کنید؟",
 	"Not sure what to write? Switch to": "مطمئن نیستید چه بنویسید؟ تغییر به",
 	"Not sure what to write? Switch to": "مطمئن نیستید چه بنویسید؟ تغییر به",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "",
 	"OpenAI URL/Key required.": "",
 	"or": "روشن",
 	"or": "روشن",
 	"Other": "",
 	"Other": "",
+	"Overview": "",
 	"Parameters": "پارامترها",
 	"Parameters": "پارامترها",
 	"Password": "رمز عبور",
 	"Password": "رمز عبور",
 	"PDF document (.pdf)": "",
 	"PDF document (.pdf)": "",
@@ -300,6 +315,7 @@
 	"Prompt Content": "محتویات پرامپت",
 	"Prompt Content": "محتویات پرامپت",
 	"Prompt suggestions": "پیشنهادات پرامپت",
 	"Prompt suggestions": "پیشنهادات پرامپت",
 	"Prompts": "پرامپت\u200cها",
 	"Prompts": "پرامپت\u200cها",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "دریافت یک مدل از Ollama.com",
 	"Pull a model from Ollama.com": "دریافت یک مدل از Ollama.com",
 	"Pull Progress": "پیشرفت دریافت",
 	"Pull Progress": "پیشرفت دریافت",
 	"Query Params": "پارامترهای پرس و جو",
 	"Query Params": "پارامترهای پرس و جو",
@@ -312,13 +328,17 @@
 	"Regenerate": "",
 	"Regenerate": "",
 	"Release Notes": "یادداشت\u200cهای انتشار",
 	"Release Notes": "یادداشت\u200cهای انتشار",
 	"Remove": "",
 	"Remove": "",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "Repeat Last N",
 	"Repeat Last N": "Repeat Last N",
 	"Repeat Penalty": "Repeat Penalty",
 	"Repeat Penalty": "Repeat Penalty",
 	"Request Mode": "حالت درخواست",
 	"Request Mode": "حالت درخواست",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "بازنشانی ذخیره سازی برداری",
 	"Reset Vector Storage": "بازنشانی ذخیره سازی برداری",
 	"Response AutoCopy to Clipboard": "کپی خودکار پاسخ به کلیپ بورد",
 	"Response AutoCopy to Clipboard": "کپی خودکار پاسخ به کلیپ بورد",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "نقش",
 	"Role": "نقش",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
@@ -346,7 +366,9 @@
 	"Server connection verified": "اتصال سرور تأیید شد",
 	"Server connection verified": "اتصال سرور تأیید شد",
 	"Set as default": "تنظیم به عنوان پیشفرض",
 	"Set as default": "تنظیم به عنوان پیشفرض",
 	"Set Default Model": "تنظیم مدل پیش فرض",
 	"Set Default Model": "تنظیم مدل پیش فرض",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "تنظیم اندازه تصویر",
 	"Set Image Size": "تنظیم اندازه تصویر",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "تنظیم گام\u200cها",
 	"Set Steps": "تنظیم گام\u200cها",
 	"Set Title Auto-Generation Model": "تنظیم مدل تولید خودکار عنوان",
 	"Set Title Auto-Generation Model": "تنظیم مدل تولید خودکار عنوان",
 	"Set Voice": "تنظیم صدا",
 	"Set Voice": "تنظیم صدا",
@@ -365,6 +387,7 @@
 	"Sign Out": "خروج",
 	"Sign Out": "خروج",
 	"Sign up": "ثبت نام",
 	"Sign up": "ثبت نام",
 	"Signing in": "",
 	"Signing in": "",
+	"Source": "",
 	"Speech recognition error: {{error}}": "خطای تشخیص گفتار: {{error}}",
 	"Speech recognition error: {{error}}": "خطای تشخیص گفتار: {{error}}",
 	"Speech-to-Text Engine": "موتور گفتار به متن",
 	"Speech-to-Text Engine": "موتور گفتار به متن",
 	"SpeechRecognition API is not supported in this browser.": "API تشخیص گفتار در این مرورگر پشتیبانی نمی شود.",
 	"SpeechRecognition API is not supported in this browser.": "API تشخیص گفتار در این مرورگر پشتیبانی نمی شود.",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "اوه اوه! مشکلی در اتصال به {{provider}} وجود داشت.",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "اوه اوه! مشکلی در اتصال به {{provider}} وجود داشت.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "نوع فایل '{{file_type}}' ناشناخته است، به عنوان یک فایل متنی ساده با آن برخورد می شود.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "نوع فایل '{{file_type}}' ناشناخته است، به عنوان یک فایل متنی ساده با آن برخورد می شود.",
 	"Update and Copy Link": "",
 	"Update and Copy Link": "",
-	"Update Embedding Model": "",
-	"Update embedding model (e.g. {{model}})": "",
 	"Update password": "به روزرسانی رمزعبور",
 	"Update password": "به روزرسانی رمزعبور",
-	"Update Reranking Model": "",
-	"Update reranking model (e.g. {{model}})": "",
 	"Upload a GGUF model": "آپلود یک مدل GGUF",
 	"Upload a GGUF model": "آپلود یک مدل GGUF",
 	"Upload files": "بارگذاری فایل\u200cها",
 	"Upload files": "بارگذاری فایل\u200cها",
 	"Upload Progress": "پیشرفت آپلود",
 	"Upload Progress": "پیشرفت آپلود",
@@ -431,6 +450,7 @@
 	"Version": "نسخه",
 	"Version": "نسخه",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Web": "وب",
 	"Web": "وب",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "WebUI افزونه\u200cهای",
 	"WebUI Add-ons": "WebUI افزونه\u200cهای",
 	"WebUI Settings": "تنظیمات WebUI",
 	"WebUI Settings": "تنظیمات WebUI",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "یک پیشنهاد پرامپت بنویسید (مثلاً شما کی هستید؟)",
 	"Write a prompt suggestion (e.g. Who are you?)": "یک پیشنهاد پرامپت بنویسید (مثلاً شما کی هستید؟)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "خلاصه ای در 50 کلمه بنویسید که [موضوع یا کلمه کلیدی] را خلاصه کند.",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "خلاصه ای در 50 کلمه بنویسید که [موضوع یا کلمه کلیدی] را خلاصه کند.",
 	"You": "شما",
 	"You": "شما",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "تو یک دستیار سودمند هستی.",
 	"You're a helpful assistant.": "تو یک دستیار سودمند هستی.",
 	"You're now logged in.": "شما اکنون وارد شده\u200cاید.",
 	"You're now logged in.": "شما اکنون وارد شده\u200cاید.",
 	"Youtube": ""
 	"Youtube": ""

+ 26 - 4
src/lib/i18n/locales/fr-CA/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "Vous avez déjà un compte ?",
 	"Already have an account?": "Vous avez déjà un compte ?",
 	"an assistant": "un assistant",
 	"an assistant": "un assistant",
 	"and": "et",
 	"and": "et",
+	"and create a new shared link.": "",
 	"API Base URL": "URL de base de l'API",
 	"API Base URL": "URL de base de l'API",
 	"API Key": "Clé API",
 	"API Key": "Clé API",
 	"API Key created.": "",
 	"API Key created.": "",
@@ -54,8 +55,10 @@
 	"available!": "disponible !",
 	"available!": "disponible !",
 	"Back": "Retour",
 	"Back": "Retour",
 	"Bad Response": "",
 	"Bad Response": "",
+	"before": "",
 	"Being lazy": "",
 	"Being lazy": "",
 	"Builder Mode": "Mode Constructeur",
 	"Builder Mode": "Mode Constructeur",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "Annuler",
 	"Cancel": "Annuler",
 	"Categories": "Catégories",
 	"Categories": "Catégories",
 	"Change Password": "Changer le mot de passe",
 	"Change Password": "Changer le mot de passe",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "Chevauchement de bloc",
 	"Chunk Overlap": "Chevauchement de bloc",
 	"Chunk Params": "Paramètres de bloc",
 	"Chunk Params": "Paramètres de bloc",
 	"Chunk Size": "Taille de bloc",
 	"Chunk Size": "Taille de bloc",
+	"Citation": "",
 	"Click here for help.": "Cliquez ici pour de l'aide.",
 	"Click here for help.": "Cliquez ici pour de l'aide.",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "Cliquez ici pour vérifier d'autres fichiers de modèle.",
 	"Click here to check other modelfiles.": "Cliquez ici pour vérifier d'autres fichiers de modèle.",
 	"Click here to select": "Cliquez ici pour sélectionner",
 	"Click here to select": "Cliquez ici pour sélectionner",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Créez une phrase concise de 3 à 5 mots comme en-tête pour la requête suivante, en respectant strictement la limite de 3 à 5 mots et en évitant l'utilisation du mot 'titre' :",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Créez une phrase concise de 3 à 5 mots comme en-tête pour la requête suivante, en respectant strictement la limite de 3 à 5 mots et en évitant l'utilisation du mot 'titre' :",
 	"Create a modelfile": "Créer un fichier de modèle",
 	"Create a modelfile": "Créer un fichier de modèle",
 	"Create Account": "Créer un compte",
 	"Create Account": "Créer un compte",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "Créé le",
 	"Created at": "Créé le",
 	"Created At": "",
 	"Created At": "",
 	"Current Model": "Modèle actuel",
 	"Current Model": "Modèle actuel",
@@ -105,6 +112,7 @@
 	"Custom": "Personnalisé",
 	"Custom": "Personnalisé",
 	"Customize Ollama models for a specific purpose": "Personnaliser les modèles Ollama pour un objectif spécifique",
 	"Customize Ollama models for a specific purpose": "Personnaliser les modèles Ollama pour un objectif spécifique",
 	"Dark": "Sombre",
 	"Dark": "Sombre",
+	"Dashboard": "",
 	"Database": "Base de données",
 	"Database": "Base de données",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"Default": "Par défaut",
 	"Default": "Par défaut",
@@ -120,6 +128,7 @@
 	"Delete chat": "Supprimer la discussion",
 	"Delete chat": "Supprimer la discussion",
 	"Delete Chat": "",
 	"Delete Chat": "",
 	"Delete Chats": "Supprimer les discussions",
 	"Delete Chats": "Supprimer les discussions",
+	"delete this link": "",
 	"Delete User": "",
 	"Delete User": "",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} supprimé",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} supprimé",
 	"Deleted {{tagName}}": "",
 	"Deleted {{tagName}}": "",
@@ -146,6 +155,7 @@
 	"Edit Doc": "Éditer le document",
 	"Edit Doc": "Éditer le document",
 	"Edit User": "Éditer l'utilisateur",
 	"Edit User": "Éditer l'utilisateur",
 	"Email": "Email",
 	"Email": "Email",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "Activer l'historique des discussions",
 	"Enable Chat History": "Activer l'historique des discussions",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "Entrez la séquence de fin",
 	"Enter stop sequence": "Entrez la séquence de fin",
 	"Enter Top K": "Entrez Top K",
 	"Enter Top K": "Entrez Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Entrez l'URL (p. ex. http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Entrez l'URL (p. ex. http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "Entrez votre adresse email",
 	"Enter Your Email": "Entrez votre adresse email",
 	"Enter Your Full Name": "Entrez votre nom complet",
 	"Enter Your Full Name": "Entrez votre nom complet",
 	"Enter Your Password": "Entrez votre mot de passe",
 	"Enter Your Password": "Entrez votre mot de passe",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "Gérer les modèles Ollama",
 	"Manage Ollama Models": "Gérer les modèles Ollama",
 	"Max Tokens": "Tokens maximaux",
 	"Max Tokens": "Tokens maximaux",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Un maximum de 3 modèles peut être téléchargé simultanément. Veuillez réessayer plus tard.",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Un maximum de 3 modèles peut être téléchargé simultanément. Veuillez réessayer plus tard.",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "Mirostat",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Eta": "Mirostat Eta",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "Nommez votre fichier de modèle",
 	"Name your modelfile": "Nommez votre fichier de modèle",
 	"New Chat": "Nouvelle discussion",
 	"New Chat": "Nouvelle discussion",
 	"New Password": "Nouveau mot de passe",
 	"New Password": "Nouveau mot de passe",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "",
 	"Not factually correct": "",
 	"Not sure what to add?": "Pas sûr de quoi ajouter ?",
 	"Not sure what to add?": "Pas sûr de quoi ajouter ?",
 	"Not sure what to write? Switch to": "Pas sûr de quoi écrire ? Changez pour",
 	"Not sure what to write? Switch to": "Pas sûr de quoi écrire ? Changez pour",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "",
 	"OpenAI URL/Key required.": "",
 	"or": "ou",
 	"or": "ou",
 	"Other": "",
 	"Other": "",
+	"Overview": "",
 	"Parameters": "Paramètres",
 	"Parameters": "Paramètres",
 	"Password": "Mot de passe",
 	"Password": "Mot de passe",
 	"PDF document (.pdf)": "",
 	"PDF document (.pdf)": "",
@@ -300,6 +315,7 @@
 	"Prompt Content": "Contenu du prompt",
 	"Prompt Content": "Contenu du prompt",
 	"Prompt suggestions": "Suggestions de prompt",
 	"Prompt suggestions": "Suggestions de prompt",
 	"Prompts": "Prompts",
 	"Prompts": "Prompts",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "Tirer un modèle de Ollama.com",
 	"Pull a model from Ollama.com": "Tirer un modèle de Ollama.com",
 	"Pull Progress": "Progression du téléchargement",
 	"Pull Progress": "Progression du téléchargement",
 	"Query Params": "Paramètres de requête",
 	"Query Params": "Paramètres de requête",
@@ -312,13 +328,17 @@
 	"Regenerate": "",
 	"Regenerate": "",
 	"Release Notes": "Notes de version",
 	"Release Notes": "Notes de version",
 	"Remove": "",
 	"Remove": "",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "Répéter les N derniers",
 	"Repeat Last N": "Répéter les N derniers",
 	"Repeat Penalty": "Pénalité de répétition",
 	"Repeat Penalty": "Pénalité de répétition",
 	"Request Mode": "Mode de requête",
 	"Request Mode": "Mode de requête",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "Réinitialiser le stockage vectoriel",
 	"Reset Vector Storage": "Réinitialiser le stockage vectoriel",
 	"Response AutoCopy to Clipboard": "Copie automatique de la réponse vers le presse-papiers",
 	"Response AutoCopy to Clipboard": "Copie automatique de la réponse vers le presse-papiers",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "Rôle",
 	"Role": "Rôle",
 	"Rosé Pine": "Pin Rosé",
 	"Rosé Pine": "Pin Rosé",
 	"Rosé Pine Dawn": "Aube Pin Rosé",
 	"Rosé Pine Dawn": "Aube Pin Rosé",
@@ -346,7 +366,9 @@
 	"Server connection verified": "Connexion au serveur vérifiée",
 	"Server connection verified": "Connexion au serveur vérifiée",
 	"Set as default": "Définir par défaut",
 	"Set as default": "Définir par défaut",
 	"Set Default Model": "Définir le modèle par défaut",
 	"Set Default Model": "Définir le modèle par défaut",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "Définir la taille de l'image",
 	"Set Image Size": "Définir la taille de l'image",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "Définir les étapes",
 	"Set Steps": "Définir les étapes",
 	"Set Title Auto-Generation Model": "Définir le modèle de génération automatique de titre",
 	"Set Title Auto-Generation Model": "Définir le modèle de génération automatique de titre",
 	"Set Voice": "Définir la voix",
 	"Set Voice": "Définir la voix",
@@ -365,6 +387,7 @@
 	"Sign Out": "Se déconnecter",
 	"Sign Out": "Se déconnecter",
 	"Sign up": "S'inscrire",
 	"Sign up": "S'inscrire",
 	"Signing in": "",
 	"Signing in": "",
+	"Source": "",
 	"Speech recognition error: {{error}}": "Erreur de reconnaissance vocale : {{error}}",
 	"Speech recognition error: {{error}}": "Erreur de reconnaissance vocale : {{error}}",
 	"Speech-to-Text Engine": "Moteur reconnaissance vocale",
 	"Speech-to-Text Engine": "Moteur reconnaissance vocale",
 	"SpeechRecognition API is not supported in this browser.": "L'API SpeechRecognition n'est pas prise en charge dans ce navigateur.",
 	"SpeechRecognition API is not supported in this browser.": "L'API SpeechRecognition n'est pas prise en charge dans ce navigateur.",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh ! Il y a eu un problème de connexion à {{provider}}.",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh ! Il y a eu un problème de connexion à {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Type de fichier inconnu '{{file_type}}', mais accepté et traité comme du texte brut",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Type de fichier inconnu '{{file_type}}', mais accepté et traité comme du texte brut",
 	"Update and Copy Link": "",
 	"Update and Copy Link": "",
-	"Update Embedding Model": "",
-	"Update embedding model (e.g. {{model}})": "",
 	"Update password": "Mettre à jour le mot de passe",
 	"Update password": "Mettre à jour le mot de passe",
-	"Update Reranking Model": "",
-	"Update reranking model (e.g. {{model}})": "",
 	"Upload a GGUF model": "Téléverser un modèle GGUF",
 	"Upload a GGUF model": "Téléverser un modèle GGUF",
 	"Upload files": "Téléverser des fichiers",
 	"Upload files": "Téléverser des fichiers",
 	"Upload Progress": "Progression du Téléversement",
 	"Upload Progress": "Progression du Téléversement",
@@ -431,6 +450,7 @@
 	"Version": "Version",
 	"Version": "Version",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Web": "Web",
 	"Web": "Web",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "Add-ons WebUI",
 	"WebUI Add-ons": "Add-ons WebUI",
 	"WebUI Settings": "Paramètres WebUI",
 	"WebUI Settings": "Paramètres WebUI",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "Rédigez une suggestion de prompt (p. ex. Qui êtes-vous ?)",
 	"Write a prompt suggestion (e.g. Who are you?)": "Rédigez une suggestion de prompt (p. ex. Qui êtes-vous ?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Rédigez un résumé en 50 mots qui résume [sujet ou mot-clé].",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Rédigez un résumé en 50 mots qui résume [sujet ou mot-clé].",
 	"You": "You",
 	"You": "You",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "Vous êtes un assistant utile",
 	"You're a helpful assistant.": "Vous êtes un assistant utile",
 	"You're now logged in.": "Vous êtes maintenant connecté.",
 	"You're now logged in.": "Vous êtes maintenant connecté.",
 	"Youtube": ""
 	"Youtube": ""

+ 26 - 4
src/lib/i18n/locales/fr-FR/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "Vous avez déjà un compte ?",
 	"Already have an account?": "Vous avez déjà un compte ?",
 	"an assistant": "un assistant",
 	"an assistant": "un assistant",
 	"and": "et",
 	"and": "et",
+	"and create a new shared link.": "",
 	"API Base URL": "URL de base de l'API",
 	"API Base URL": "URL de base de l'API",
 	"API Key": "Clé API",
 	"API Key": "Clé API",
 	"API Key created.": "",
 	"API Key created.": "",
@@ -54,8 +55,10 @@
 	"available!": "disponible !",
 	"available!": "disponible !",
 	"Back": "Retour",
 	"Back": "Retour",
 	"Bad Response": "",
 	"Bad Response": "",
+	"before": "",
 	"Being lazy": "",
 	"Being lazy": "",
 	"Builder Mode": "Mode Constructeur",
 	"Builder Mode": "Mode Constructeur",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "Annuler",
 	"Cancel": "Annuler",
 	"Categories": "Catégories",
 	"Categories": "Catégories",
 	"Change Password": "Changer le mot de passe",
 	"Change Password": "Changer le mot de passe",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "Chevauchement de bloc",
 	"Chunk Overlap": "Chevauchement de bloc",
 	"Chunk Params": "Paramètres de bloc",
 	"Chunk Params": "Paramètres de bloc",
 	"Chunk Size": "Taille de bloc",
 	"Chunk Size": "Taille de bloc",
+	"Citation": "",
 	"Click here for help.": "Cliquez ici pour de l'aide.",
 	"Click here for help.": "Cliquez ici pour de l'aide.",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "Cliquez ici pour vérifier d'autres fichiers de modèle.",
 	"Click here to check other modelfiles.": "Cliquez ici pour vérifier d'autres fichiers de modèle.",
 	"Click here to select": "Cliquez ici pour sélectionner",
 	"Click here to select": "Cliquez ici pour sélectionner",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Créez une phrase concise de 3-5 mots comme en-tête pour la requête suivante, en respectant strictement la limite de 3-5 mots et en évitant l'utilisation du mot 'titre' :",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Créez une phrase concise de 3-5 mots comme en-tête pour la requête suivante, en respectant strictement la limite de 3-5 mots et en évitant l'utilisation du mot 'titre' :",
 	"Create a modelfile": "Créer un fichier de modèle",
 	"Create a modelfile": "Créer un fichier de modèle",
 	"Create Account": "Créer un compte",
 	"Create Account": "Créer un compte",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "Créé le",
 	"Created at": "Créé le",
 	"Created At": "",
 	"Created At": "",
 	"Current Model": "Modèle actuel",
 	"Current Model": "Modèle actuel",
@@ -105,6 +112,7 @@
 	"Custom": "Personnalisé",
 	"Custom": "Personnalisé",
 	"Customize Ollama models for a specific purpose": "Personnaliser les modèles Ollama pour un objectif spécifique",
 	"Customize Ollama models for a specific purpose": "Personnaliser les modèles Ollama pour un objectif spécifique",
 	"Dark": "Sombre",
 	"Dark": "Sombre",
+	"Dashboard": "",
 	"Database": "Base de données",
 	"Database": "Base de données",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"Default": "Par défaut",
 	"Default": "Par défaut",
@@ -120,6 +128,7 @@
 	"Delete chat": "Supprimer le chat",
 	"Delete chat": "Supprimer le chat",
 	"Delete Chat": "",
 	"Delete Chat": "",
 	"Delete Chats": "Supprimer les chats",
 	"Delete Chats": "Supprimer les chats",
+	"delete this link": "",
 	"Delete User": "",
 	"Delete User": "",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} supprimé",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} supprimé",
 	"Deleted {{tagName}}": "",
 	"Deleted {{tagName}}": "",
@@ -146,6 +155,7 @@
 	"Edit Doc": "Éditer le document",
 	"Edit Doc": "Éditer le document",
 	"Edit User": "Éditer l'utilisateur",
 	"Edit User": "Éditer l'utilisateur",
 	"Email": "Email",
 	"Email": "Email",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "Activer l'historique du chat",
 	"Enable Chat History": "Activer l'historique du chat",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "Entrez la séquence de fin",
 	"Enter stop sequence": "Entrez la séquence de fin",
 	"Enter Top K": "Entrez Top K",
 	"Enter Top K": "Entrez Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Entrez l'URL (p. ex. http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Entrez l'URL (p. ex. http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "Entrez votre email",
 	"Enter Your Email": "Entrez votre email",
 	"Enter Your Full Name": "Entrez votre nom complet",
 	"Enter Your Full Name": "Entrez votre nom complet",
 	"Enter Your Password": "Entrez votre mot de passe",
 	"Enter Your Password": "Entrez votre mot de passe",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "Gérer les modèles Ollama",
 	"Manage Ollama Models": "Gérer les modèles Ollama",
 	"Max Tokens": "Tokens maximaux",
 	"Max Tokens": "Tokens maximaux",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Un maximum de 3 modèles peut être téléchargé simultanément. Veuillez réessayer plus tard.",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Un maximum de 3 modèles peut être téléchargé simultanément. Veuillez réessayer plus tard.",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "Mirostat",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Eta": "Mirostat Eta",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "Nommez votre fichier de modèle",
 	"Name your modelfile": "Nommez votre fichier de modèle",
 	"New Chat": "Nouveau chat",
 	"New Chat": "Nouveau chat",
 	"New Password": "Nouveau mot de passe",
 	"New Password": "Nouveau mot de passe",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "",
 	"Not factually correct": "",
 	"Not sure what to add?": "Vous ne savez pas quoi ajouter ?",
 	"Not sure what to add?": "Vous ne savez pas quoi ajouter ?",
 	"Not sure what to write? Switch to": "Vous ne savez pas quoi écrire ? Basculer vers",
 	"Not sure what to write? Switch to": "Vous ne savez pas quoi écrire ? Basculer vers",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "",
 	"OpenAI URL/Key required.": "",
 	"or": "ou",
 	"or": "ou",
 	"Other": "",
 	"Other": "",
+	"Overview": "",
 	"Parameters": "Paramètres",
 	"Parameters": "Paramètres",
 	"Password": "Mot de passe",
 	"Password": "Mot de passe",
 	"PDF document (.pdf)": "",
 	"PDF document (.pdf)": "",
@@ -300,6 +315,7 @@
 	"Prompt Content": "Contenu du prompt",
 	"Prompt Content": "Contenu du prompt",
 	"Prompt suggestions": "Suggestions de prompt",
 	"Prompt suggestions": "Suggestions de prompt",
 	"Prompts": "Prompts",
 	"Prompts": "Prompts",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "Tirer un modèle de Ollama.com",
 	"Pull a model from Ollama.com": "Tirer un modèle de Ollama.com",
 	"Pull Progress": "Progression du tirage",
 	"Pull Progress": "Progression du tirage",
 	"Query Params": "Paramètres de requête",
 	"Query Params": "Paramètres de requête",
@@ -312,13 +328,17 @@
 	"Regenerate": "",
 	"Regenerate": "",
 	"Release Notes": "Notes de version",
 	"Release Notes": "Notes de version",
 	"Remove": "",
 	"Remove": "",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "Répéter les derniers N",
 	"Repeat Last N": "Répéter les derniers N",
 	"Repeat Penalty": "Pénalité de répétition",
 	"Repeat Penalty": "Pénalité de répétition",
 	"Request Mode": "Mode de demande",
 	"Request Mode": "Mode de demande",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "Réinitialiser le stockage de vecteur",
 	"Reset Vector Storage": "Réinitialiser le stockage de vecteur",
 	"Response AutoCopy to Clipboard": "Copie automatique de la réponse dans le presse-papiers",
 	"Response AutoCopy to Clipboard": "Copie automatique de la réponse dans le presse-papiers",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "Rôle",
 	"Role": "Rôle",
 	"Rosé Pine": "Pin Rosé",
 	"Rosé Pine": "Pin Rosé",
 	"Rosé Pine Dawn": "Aube Pin Rosé",
 	"Rosé Pine Dawn": "Aube Pin Rosé",
@@ -346,7 +366,9 @@
 	"Server connection verified": "Connexion au serveur vérifiée",
 	"Server connection verified": "Connexion au serveur vérifiée",
 	"Set as default": "Définir par défaut",
 	"Set as default": "Définir par défaut",
 	"Set Default Model": "Définir le modèle par défaut",
 	"Set Default Model": "Définir le modèle par défaut",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "Définir la taille de l'image",
 	"Set Image Size": "Définir la taille de l'image",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "Définir les étapes",
 	"Set Steps": "Définir les étapes",
 	"Set Title Auto-Generation Model": "Définir le modèle de génération automatique de titre",
 	"Set Title Auto-Generation Model": "Définir le modèle de génération automatique de titre",
 	"Set Voice": "Définir la voix",
 	"Set Voice": "Définir la voix",
@@ -365,6 +387,7 @@
 	"Sign Out": "Se déconnecter",
 	"Sign Out": "Se déconnecter",
 	"Sign up": "S'inscrire",
 	"Sign up": "S'inscrire",
 	"Signing in": "",
 	"Signing in": "",
+	"Source": "",
 	"Speech recognition error: {{error}}": "Erreur de reconnaissance vocale : {{error}}",
 	"Speech recognition error: {{error}}": "Erreur de reconnaissance vocale : {{error}}",
 	"Speech-to-Text Engine": "Moteur de reconnaissance vocale",
 	"Speech-to-Text Engine": "Moteur de reconnaissance vocale",
 	"SpeechRecognition API is not supported in this browser.": "L'API SpeechRecognition n'est pas prise en charge dans ce navigateur.",
 	"SpeechRecognition API is not supported in this browser.": "L'API SpeechRecognition n'est pas prise en charge dans ce navigateur.",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh ! Il y a eu un problème de connexion à {{provider}}.",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh ! Il y a eu un problème de connexion à {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Type de fichier inconnu '{{file_type}}', mais accepté et traité comme du texte brut",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Type de fichier inconnu '{{file_type}}', mais accepté et traité comme du texte brut",
 	"Update and Copy Link": "",
 	"Update and Copy Link": "",
-	"Update Embedding Model": "",
-	"Update embedding model (e.g. {{model}})": "",
 	"Update password": "Mettre à jour le mot de passe",
 	"Update password": "Mettre à jour le mot de passe",
-	"Update Reranking Model": "",
-	"Update reranking model (e.g. {{model}})": "",
 	"Upload a GGUF model": "Téléverser un modèle GGUF",
 	"Upload a GGUF model": "Téléverser un modèle GGUF",
 	"Upload files": "Téléverser des fichiers",
 	"Upload files": "Téléverser des fichiers",
 	"Upload Progress": "Progression du Téléversement",
 	"Upload Progress": "Progression du Téléversement",
@@ -431,6 +450,7 @@
 	"Version": "Version",
 	"Version": "Version",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Web": "Web",
 	"Web": "Web",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "Add-ons WebUI",
 	"WebUI Add-ons": "Add-ons WebUI",
 	"WebUI Settings": "Paramètres WebUI",
 	"WebUI Settings": "Paramètres WebUI",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "Écrivez un prompt (e.x. Qui est-tu ?)",
 	"Write a prompt suggestion (e.g. Who are you?)": "Écrivez un prompt (e.x. Qui est-tu ?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Ecrivez un résumé en 50 mots [sujet ou mot-clé]",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Ecrivez un résumé en 50 mots [sujet ou mot-clé]",
 	"You": "You",
 	"You": "You",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "Vous êtes un assistant utile",
 	"You're a helpful assistant.": "Vous êtes un assistant utile",
 	"You're now logged in.": "Vous êtes maintenant connecté.",
 	"You're now logged in.": "Vous êtes maintenant connecté.",
 	"Youtube": ""
 	"Youtube": ""

+ 26 - 4
src/lib/i18n/locales/it-IT/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "Hai già un account?",
 	"Already have an account?": "Hai già un account?",
 	"an assistant": "un assistente",
 	"an assistant": "un assistente",
 	"and": "e",
 	"and": "e",
+	"and create a new shared link.": "",
 	"API Base URL": "URL base API",
 	"API Base URL": "URL base API",
 	"API Key": "Chiave API",
 	"API Key": "Chiave API",
 	"API Key created.": "",
 	"API Key created.": "",
@@ -54,8 +55,10 @@
 	"available!": "disponibile!",
 	"available!": "disponibile!",
 	"Back": "Indietro",
 	"Back": "Indietro",
 	"Bad Response": "",
 	"Bad Response": "",
+	"before": "",
 	"Being lazy": "",
 	"Being lazy": "",
 	"Builder Mode": "Modalità costruttore",
 	"Builder Mode": "Modalità costruttore",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "Annulla",
 	"Cancel": "Annulla",
 	"Categories": "Categorie",
 	"Categories": "Categorie",
 	"Change Password": "Cambia password",
 	"Change Password": "Cambia password",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "Sovrapposizione chunk",
 	"Chunk Overlap": "Sovrapposizione chunk",
 	"Chunk Params": "Parametri chunk",
 	"Chunk Params": "Parametri chunk",
 	"Chunk Size": "Dimensione chunk",
 	"Chunk Size": "Dimensione chunk",
+	"Citation": "",
 	"Click here for help.": "Clicca qui per aiuto.",
 	"Click here for help.": "Clicca qui per aiuto.",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "Clicca qui per controllare altri file modello.",
 	"Click here to check other modelfiles.": "Clicca qui per controllare altri file modello.",
 	"Click here to select": "Clicca qui per selezionare",
 	"Click here to select": "Clicca qui per selezionare",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Crea una frase concisa di 3-5 parole come intestazione per la seguente query, aderendo rigorosamente al limite di 3-5 parole ed evitando l'uso della parola 'titolo':",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Crea una frase concisa di 3-5 parole come intestazione per la seguente query, aderendo rigorosamente al limite di 3-5 parole ed evitando l'uso della parola 'titolo':",
 	"Create a modelfile": "Crea un file modello",
 	"Create a modelfile": "Crea un file modello",
 	"Create Account": "Crea account",
 	"Create Account": "Crea account",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "Creato il",
 	"Created at": "Creato il",
 	"Created At": "",
 	"Created At": "",
 	"Current Model": "Modello corrente",
 	"Current Model": "Modello corrente",
@@ -105,6 +112,7 @@
 	"Custom": "Personalizzato",
 	"Custom": "Personalizzato",
 	"Customize Ollama models for a specific purpose": "Personalizza i modelli Ollama per uno scopo specifico",
 	"Customize Ollama models for a specific purpose": "Personalizza i modelli Ollama per uno scopo specifico",
 	"Dark": "Scuro",
 	"Dark": "Scuro",
+	"Dashboard": "",
 	"Database": "Database",
 	"Database": "Database",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"Default": "Predefinito",
 	"Default": "Predefinito",
@@ -120,6 +128,7 @@
 	"Delete chat": "Elimina chat",
 	"Delete chat": "Elimina chat",
 	"Delete Chat": "",
 	"Delete Chat": "",
 	"Delete Chats": "Elimina chat",
 	"Delete Chats": "Elimina chat",
+	"delete this link": "",
 	"Delete User": "",
 	"Delete User": "",
 	"Deleted {{deleteModelTag}}": "Eliminato {{deleteModelTag}}",
 	"Deleted {{deleteModelTag}}": "Eliminato {{deleteModelTag}}",
 	"Deleted {{tagName}}": "",
 	"Deleted {{tagName}}": "",
@@ -146,6 +155,7 @@
 	"Edit Doc": "Modifica documento",
 	"Edit Doc": "Modifica documento",
 	"Edit User": "Modifica utente",
 	"Edit User": "Modifica utente",
 	"Email": "Email",
 	"Email": "Email",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "Abilita cronologia chat",
 	"Enable Chat History": "Abilita cronologia chat",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "Inserisci la sequenza di arresto",
 	"Enter stop sequence": "Inserisci la sequenza di arresto",
 	"Enter Top K": "Inserisci Top K",
 	"Enter Top K": "Inserisci Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Inserisci URL (ad esempio http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Inserisci URL (ad esempio http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "Inserisci la tua email",
 	"Enter Your Email": "Inserisci la tua email",
 	"Enter Your Full Name": "Inserisci il tuo nome completo",
 	"Enter Your Full Name": "Inserisci il tuo nome completo",
 	"Enter Your Password": "Inserisci la tua password",
 	"Enter Your Password": "Inserisci la tua password",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "Gestisci modelli Ollama",
 	"Manage Ollama Models": "Gestisci modelli Ollama",
 	"Max Tokens": "Max token",
 	"Max Tokens": "Max token",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "È possibile scaricare un massimo di 3 modelli contemporaneamente. Riprova più tardi.",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "È possibile scaricare un massimo di 3 modelli contemporaneamente. Riprova più tardi.",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "Mirostat",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Eta": "Mirostat Eta",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "Assegna un nome al tuo file modello",
 	"Name your modelfile": "Assegna un nome al tuo file modello",
 	"New Chat": "Nuova chat",
 	"New Chat": "Nuova chat",
 	"New Password": "Nuova password",
 	"New Password": "Nuova password",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "",
 	"Not factually correct": "",
 	"Not sure what to add?": "Non sei sicuro di cosa aggiungere?",
 	"Not sure what to add?": "Non sei sicuro di cosa aggiungere?",
 	"Not sure what to write? Switch to": "Non sei sicuro di cosa scrivere? Passa a",
 	"Not sure what to write? Switch to": "Non sei sicuro di cosa scrivere? Passa a",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "",
 	"OpenAI URL/Key required.": "",
 	"or": "o",
 	"or": "o",
 	"Other": "",
 	"Other": "",
+	"Overview": "",
 	"Parameters": "Parametri",
 	"Parameters": "Parametri",
 	"Password": "Password",
 	"Password": "Password",
 	"PDF document (.pdf)": "",
 	"PDF document (.pdf)": "",
@@ -300,6 +315,7 @@
 	"Prompt Content": "Contenuto del prompt",
 	"Prompt Content": "Contenuto del prompt",
 	"Prompt suggestions": "Suggerimenti prompt",
 	"Prompt suggestions": "Suggerimenti prompt",
 	"Prompts": "Prompt",
 	"Prompts": "Prompt",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "Estrai un modello da Ollama.com",
 	"Pull a model from Ollama.com": "Estrai un modello da Ollama.com",
 	"Pull Progress": "Avanzamento estrazione",
 	"Pull Progress": "Avanzamento estrazione",
 	"Query Params": "Parametri query",
 	"Query Params": "Parametri query",
@@ -312,13 +328,17 @@
 	"Regenerate": "",
 	"Regenerate": "",
 	"Release Notes": "Note di rilascio",
 	"Release Notes": "Note di rilascio",
 	"Remove": "",
 	"Remove": "",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "Ripeti ultimi N",
 	"Repeat Last N": "Ripeti ultimi N",
 	"Repeat Penalty": "Penalità di ripetizione",
 	"Repeat Penalty": "Penalità di ripetizione",
 	"Request Mode": "Modalità richiesta",
 	"Request Mode": "Modalità richiesta",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "Reimposta archivio vettoriale",
 	"Reset Vector Storage": "Reimposta archivio vettoriale",
 	"Response AutoCopy to Clipboard": "Copia automatica della risposta negli appunti",
 	"Response AutoCopy to Clipboard": "Copia automatica della risposta negli appunti",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "Ruolo",
 	"Role": "Ruolo",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
@@ -346,7 +366,9 @@
 	"Server connection verified": "Connessione al server verificata",
 	"Server connection verified": "Connessione al server verificata",
 	"Set as default": "Imposta come predefinito",
 	"Set as default": "Imposta come predefinito",
 	"Set Default Model": "Imposta modello predefinito",
 	"Set Default Model": "Imposta modello predefinito",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "Imposta dimensione immagine",
 	"Set Image Size": "Imposta dimensione immagine",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "Imposta passaggi",
 	"Set Steps": "Imposta passaggi",
 	"Set Title Auto-Generation Model": "Imposta modello di generazione automatica del titolo",
 	"Set Title Auto-Generation Model": "Imposta modello di generazione automatica del titolo",
 	"Set Voice": "Imposta voce",
 	"Set Voice": "Imposta voce",
@@ -365,6 +387,7 @@
 	"Sign Out": "Esci",
 	"Sign Out": "Esci",
 	"Sign up": "Registrati",
 	"Sign up": "Registrati",
 	"Signing in": "",
 	"Signing in": "",
+	"Source": "",
 	"Speech recognition error: {{error}}": "Errore di riconoscimento vocale: {{error}}",
 	"Speech recognition error: {{error}}": "Errore di riconoscimento vocale: {{error}}",
 	"Speech-to-Text Engine": "Motore da voce a testo",
 	"Speech-to-Text Engine": "Motore da voce a testo",
 	"SpeechRecognition API is not supported in this browser.": "L'API SpeechRecognition non è supportata in questo browser.",
 	"SpeechRecognition API is not supported in this browser.": "L'API SpeechRecognition non è supportata in questo browser.",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh! Si è verificato un problema durante la connessione a {{provider}}.",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh! Si è verificato un problema durante la connessione a {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipo di file sconosciuto '{{file_type}}', ma accettato e trattato come testo normale",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipo di file sconosciuto '{{file_type}}', ma accettato e trattato come testo normale",
 	"Update and Copy Link": "",
 	"Update and Copy Link": "",
-	"Update Embedding Model": "",
-	"Update embedding model (e.g. {{model}})": "",
 	"Update password": "Aggiorna password",
 	"Update password": "Aggiorna password",
-	"Update Reranking Model": "",
-	"Update reranking model (e.g. {{model}})": "",
 	"Upload a GGUF model": "Carica un modello GGUF",
 	"Upload a GGUF model": "Carica un modello GGUF",
 	"Upload files": "Carica file",
 	"Upload files": "Carica file",
 	"Upload Progress": "Avanzamento caricamento",
 	"Upload Progress": "Avanzamento caricamento",
@@ -431,6 +450,7 @@
 	"Version": "Versione",
 	"Version": "Versione",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Web": "Web",
 	"Web": "Web",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "Componenti aggiuntivi WebUI",
 	"WebUI Add-ons": "Componenti aggiuntivi WebUI",
 	"WebUI Settings": "Impostazioni WebUI",
 	"WebUI Settings": "Impostazioni WebUI",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "Scrivi un suggerimento per il prompt (ad esempio Chi sei?)",
 	"Write a prompt suggestion (e.g. Who are you?)": "Scrivi un suggerimento per il prompt (ad esempio Chi sei?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Scrivi un riassunto in 50 parole che riassume [argomento o parola chiave].",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Scrivi un riassunto in 50 parole che riassume [argomento o parola chiave].",
 	"You": "Tu",
 	"You": "Tu",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "Sei un assistente utile.",
 	"You're a helpful assistant.": "Sei un assistente utile.",
 	"You're now logged in.": "Ora hai effettuato l'accesso.",
 	"You're now logged in.": "Ora hai effettuato l'accesso.",
 	"Youtube": ""
 	"Youtube": ""

+ 26 - 4
src/lib/i18n/locales/ja-JP/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "すでにアカウントをお持ちですか?",
 	"Already have an account?": "すでにアカウントをお持ちですか?",
 	"an assistant": "アシスタント",
 	"an assistant": "アシスタント",
 	"and": "および",
 	"and": "および",
+	"and create a new shared link.": "",
 	"API Base URL": "API ベース URL",
 	"API Base URL": "API ベース URL",
 	"API Key": "API キー",
 	"API Key": "API キー",
 	"API Key created.": "",
 	"API Key created.": "",
@@ -54,8 +55,10 @@
 	"available!": "利用可能!",
 	"available!": "利用可能!",
 	"Back": "戻る",
 	"Back": "戻る",
 	"Bad Response": "",
 	"Bad Response": "",
+	"before": "",
 	"Being lazy": "",
 	"Being lazy": "",
 	"Builder Mode": "ビルダーモード",
 	"Builder Mode": "ビルダーモード",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "キャンセル",
 	"Cancel": "キャンセル",
 	"Categories": "カテゴリ",
 	"Categories": "カテゴリ",
 	"Change Password": "パスワードを変更",
 	"Change Password": "パスワードを変更",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "チャンクオーバーラップ",
 	"Chunk Overlap": "チャンクオーバーラップ",
 	"Chunk Params": "チャンクパラメーター",
 	"Chunk Params": "チャンクパラメーター",
 	"Chunk Size": "チャンクサイズ",
 	"Chunk Size": "チャンクサイズ",
+	"Citation": "",
 	"Click here for help.": "ヘルプについてはここをクリックしてください。",
 	"Click here for help.": "ヘルプについてはここをクリックしてください。",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "他のモデルファイルを確認するにはここをクリックしてください。",
 	"Click here to check other modelfiles.": "他のモデルファイルを確認するにはここをクリックしてください。",
 	"Click here to select": "選択するにはここをクリックしてください",
 	"Click here to select": "選択するにはここをクリックしてください",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "次のクエリの見出しとして、3〜5語の簡潔なフレーズを作成してください。3〜5語の制限を厳守し、「タイトル」という単語の使用を避けてください。",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "次のクエリの見出しとして、3〜5語の簡潔なフレーズを作成してください。3〜5語の制限を厳守し、「タイトル」という単語の使用を避けてください。",
 	"Create a modelfile": "モデルファイルを作成",
 	"Create a modelfile": "モデルファイルを作成",
 	"Create Account": "アカウントを作成",
 	"Create Account": "アカウントを作成",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "作成日時",
 	"Created at": "作成日時",
 	"Created At": "",
 	"Created At": "",
 	"Current Model": "現在のモデル",
 	"Current Model": "現在のモデル",
@@ -105,6 +112,7 @@
 	"Custom": "カスタム",
 	"Custom": "カスタム",
 	"Customize Ollama models for a specific purpose": "特定の目的に合わせて Ollama モデルをカスタマイズ",
 	"Customize Ollama models for a specific purpose": "特定の目的に合わせて Ollama モデルをカスタマイズ",
 	"Dark": "ダーク",
 	"Dark": "ダーク",
+	"Dashboard": "",
 	"Database": "データベース",
 	"Database": "データベース",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"Default": "デフォルト",
 	"Default": "デフォルト",
@@ -120,6 +128,7 @@
 	"Delete chat": "チャットを削除",
 	"Delete chat": "チャットを削除",
 	"Delete Chat": "",
 	"Delete Chat": "",
 	"Delete Chats": "チャットを削除",
 	"Delete Chats": "チャットを削除",
+	"delete this link": "",
 	"Delete User": "",
 	"Delete User": "",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} を削除しました",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} を削除しました",
 	"Deleted {{tagName}}": "",
 	"Deleted {{tagName}}": "",
@@ -146,6 +155,7 @@
 	"Edit Doc": "ドキュメントを編集",
 	"Edit Doc": "ドキュメントを編集",
 	"Edit User": "ユーザーを編集",
 	"Edit User": "ユーザーを編集",
 	"Email": "メールアドレス",
 	"Email": "メールアドレス",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "チャット履歴を有効化",
 	"Enable Chat History": "チャット履歴を有効化",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "ストップシーケンスを入力してください",
 	"Enter stop sequence": "ストップシーケンスを入力してください",
 	"Enter Top K": "トップ K を入力してください",
 	"Enter Top K": "トップ K を入力してください",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "URL を入力してください (例: http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "URL を入力してください (例: http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "メールアドレスを入力してください",
 	"Enter Your Email": "メールアドレスを入力してください",
 	"Enter Your Full Name": "フルネームを入力してください",
 	"Enter Your Full Name": "フルネームを入力してください",
 	"Enter Your Password": "パスワードを入力してください",
 	"Enter Your Password": "パスワードを入力してください",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "Ollama モデルを管理",
 	"Manage Ollama Models": "Ollama モデルを管理",
 	"Max Tokens": "最大トークン数",
 	"Max Tokens": "最大トークン数",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "同時にダウンロードできるモデルは最大 3 つです。後でもう一度お試しください。",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "同時にダウンロードできるモデルは最大 3 つです。後でもう一度お試しください。",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "ミロスタット",
 	"Mirostat": "ミロスタット",
 	"Mirostat Eta": "ミロスタット Eta",
 	"Mirostat Eta": "ミロスタット Eta",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "モデルファイルに名前を付ける",
 	"Name your modelfile": "モデルファイルに名前を付ける",
 	"New Chat": "新しいチャット",
 	"New Chat": "新しいチャット",
 	"New Password": "新しいパスワード",
 	"New Password": "新しいパスワード",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "",
 	"Not factually correct": "",
 	"Not sure what to add?": "何を追加すればよいかわからない?",
 	"Not sure what to add?": "何を追加すればよいかわからない?",
 	"Not sure what to write? Switch to": "何を書けばよいかわからない? 次に切り替える",
 	"Not sure what to write? Switch to": "何を書けばよいかわからない? 次に切り替える",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "",
 	"OpenAI URL/Key required.": "",
 	"or": "または",
 	"or": "または",
 	"Other": "",
 	"Other": "",
+	"Overview": "",
 	"Parameters": "パラメーター",
 	"Parameters": "パラメーター",
 	"Password": "パスワード",
 	"Password": "パスワード",
 	"PDF document (.pdf)": "",
 	"PDF document (.pdf)": "",
@@ -300,6 +315,7 @@
 	"Prompt Content": "プロンプトの内容",
 	"Prompt Content": "プロンプトの内容",
 	"Prompt suggestions": "プロンプトの提案",
 	"Prompt suggestions": "プロンプトの提案",
 	"Prompts": "プロンプト",
 	"Prompts": "プロンプト",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "Ollama.com からモデルをプル",
 	"Pull a model from Ollama.com": "Ollama.com からモデルをプル",
 	"Pull Progress": "プルの進行状況",
 	"Pull Progress": "プルの進行状況",
 	"Query Params": "クエリパラメーター",
 	"Query Params": "クエリパラメーター",
@@ -312,13 +328,17 @@
 	"Regenerate": "",
 	"Regenerate": "",
 	"Release Notes": "リリースノート",
 	"Release Notes": "リリースノート",
 	"Remove": "",
 	"Remove": "",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "最後の N を繰り返す",
 	"Repeat Last N": "最後の N を繰り返す",
 	"Repeat Penalty": "繰り返しペナルティ",
 	"Repeat Penalty": "繰り返しペナルティ",
 	"Request Mode": "リクエストモード",
 	"Request Mode": "リクエストモード",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "ベクトルストレージをリセット",
 	"Reset Vector Storage": "ベクトルストレージをリセット",
 	"Response AutoCopy to Clipboard": "クリップボードへの応答の自動コピー",
 	"Response AutoCopy to Clipboard": "クリップボードへの応答の自動コピー",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "役割",
 	"Role": "役割",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
@@ -346,7 +366,9 @@
 	"Server connection verified": "サーバー接続が確認されました",
 	"Server connection verified": "サーバー接続が確認されました",
 	"Set as default": "デフォルトに設定",
 	"Set as default": "デフォルトに設定",
 	"Set Default Model": "デフォルトモデルを設定",
 	"Set Default Model": "デフォルトモデルを設定",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "画像サイズを設定",
 	"Set Image Size": "画像サイズを設定",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "ステップを設定",
 	"Set Steps": "ステップを設定",
 	"Set Title Auto-Generation Model": "タイトル自動生成モデルを設定",
 	"Set Title Auto-Generation Model": "タイトル自動生成モデルを設定",
 	"Set Voice": "音声を設定",
 	"Set Voice": "音声を設定",
@@ -365,6 +387,7 @@
 	"Sign Out": "サインアウト",
 	"Sign Out": "サインアウト",
 	"Sign up": "サインアップ",
 	"Sign up": "サインアップ",
 	"Signing in": "",
 	"Signing in": "",
+	"Source": "",
 	"Speech recognition error: {{error}}": "音声認識エラー: {{error}}",
 	"Speech recognition error: {{error}}": "音声認識エラー: {{error}}",
 	"Speech-to-Text Engine": "音声テキスト変換エンジン",
 	"Speech-to-Text Engine": "音声テキスト変換エンジン",
 	"SpeechRecognition API is not supported in this browser.": "このブラウザでは SpeechRecognition API がサポートされていません。",
 	"SpeechRecognition API is not supported in this browser.": "このブラウザでは SpeechRecognition API がサポートされていません。",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "おっと! {{provider}} への接続に問題が発生しました。",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "おっと! {{provider}} への接続に問題が発生しました。",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "不明なファイルタイプ '{{file_type}}' ですが、プレーンテキストとして受け入れて処理します",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "不明なファイルタイプ '{{file_type}}' ですが、プレーンテキストとして受け入れて処理します",
 	"Update and Copy Link": "",
 	"Update and Copy Link": "",
-	"Update Embedding Model": "",
-	"Update embedding model (e.g. {{model}})": "",
 	"Update password": "パスワードを更新",
 	"Update password": "パスワードを更新",
-	"Update Reranking Model": "",
-	"Update reranking model (e.g. {{model}})": "",
 	"Upload a GGUF model": "GGUF モデルをアップロード",
 	"Upload a GGUF model": "GGUF モデルをアップロード",
 	"Upload files": "ファイルをアップロード",
 	"Upload files": "ファイルをアップロード",
 	"Upload Progress": "アップロードの進行状況",
 	"Upload Progress": "アップロードの進行状況",
@@ -431,6 +450,7 @@
 	"Version": "バージョン",
 	"Version": "バージョン",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Web": "ウェブ",
 	"Web": "ウェブ",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "WebUI アドオン",
 	"WebUI Add-ons": "WebUI アドオン",
 	"WebUI Settings": "WebUI 設定",
 	"WebUI Settings": "WebUI 設定",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "プロンプトの提案を書いてください (例: あなたは誰ですか?)",
 	"Write a prompt suggestion (e.g. Who are you?)": "プロンプトの提案を書いてください (例: あなたは誰ですか?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "[トピックまたはキーワード] を要約する 50 語の概要を書いてください。",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "[トピックまたはキーワード] を要約する 50 語の概要を書いてください。",
 	"You": "あなた",
 	"You": "あなた",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "あなたは役に立つアシスタントです。",
 	"You're a helpful assistant.": "あなたは役に立つアシスタントです。",
 	"You're now logged in.": "ログインしました。",
 	"You're now logged in.": "ログインしました。",
 	"Youtube": ""
 	"Youtube": ""

+ 26 - 4
src/lib/i18n/locales/ka-GE/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "უკვე გაქვს ანგარიში?",
 	"Already have an account?": "უკვე გაქვს ანგარიში?",
 	"an assistant": "ასისტენტი",
 	"an assistant": "ასისტენტი",
 	"and": "და",
 	"and": "და",
+	"and create a new shared link.": "",
 	"API Base URL": "API საბაზისო URL",
 	"API Base URL": "API საბაზისო URL",
 	"API Key": "API გასაღები",
 	"API Key": "API გასაღები",
 	"API Key created.": "",
 	"API Key created.": "",
@@ -54,8 +55,10 @@
 	"available!": "ხელმისაწვდომია!",
 	"available!": "ხელმისაწვდომია!",
 	"Back": "უკან",
 	"Back": "უკან",
 	"Bad Response": "",
 	"Bad Response": "",
+	"before": "",
 	"Being lazy": "",
 	"Being lazy": "",
 	"Builder Mode": "მოდელის შექმნა",
 	"Builder Mode": "მოდელის შექმნა",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "გაუქმება",
 	"Cancel": "გაუქმება",
 	"Categories": "კატეგორიები",
 	"Categories": "კატეგორიები",
 	"Change Password": "პაროლის შეცვლა",
 	"Change Password": "პაროლის შეცვლა",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "გადახურვა ფრაგმენტულია",
 	"Chunk Overlap": "გადახურვა ფრაგმენტულია",
 	"Chunk Params": "გადახურვის პარამეტრები",
 	"Chunk Params": "გადახურვის პარამეტრები",
 	"Chunk Size": "გადახურვის ზომა",
 	"Chunk Size": "გადახურვის ზომა",
+	"Citation": "",
 	"Click here for help.": "დახმარებისთვის, დააკლიკე აქ",
 	"Click here for help.": "დახმარებისთვის, დააკლიკე აქ",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "სხვა მოდელური ფაილების სანახავად, დააკლიკე აქ",
 	"Click here to check other modelfiles.": "სხვა მოდელური ფაილების სანახავად, დააკლიკე აქ",
 	"Click here to select": "ასარჩევად, დააკლიკე აქ",
 	"Click here to select": "ასარჩევად, დააკლიკე აქ",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "შექმენით მოკლე, 3-5 სიტყვიანი ფრაზა, როგორც სათაური თქვენი შემდეგი შეკითხვისთვის, მკაცრად დაიცავით 3-5 სიტყვის ლიმიტი და მოერიდეთ გამოიყენოთ სიტყვა „სათაური“.",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "შექმენით მოკლე, 3-5 სიტყვიანი ფრაზა, როგორც სათაური თქვენი შემდეგი შეკითხვისთვის, მკაცრად დაიცავით 3-5 სიტყვის ლიმიტი და მოერიდეთ გამოიყენოთ სიტყვა „სათაური“.",
 	"Create a modelfile": "მოდელური ფაილის შექმნა",
 	"Create a modelfile": "მოდელური ფაილის შექმნა",
 	"Create Account": "ანგარიშის შექმნა",
 	"Create Account": "ანგარიშის შექმნა",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "შექმნილია",
 	"Created at": "შექმნილია",
 	"Created At": "",
 	"Created At": "",
 	"Current Model": "მიმდინარე მოდელი",
 	"Current Model": "მიმდინარე მოდელი",
@@ -105,6 +112,7 @@
 	"Custom": "საკუთარი",
 	"Custom": "საკუთარი",
 	"Customize Ollama models for a specific purpose": "Ollama მოდელების დამუშავება სპეციფიური დანიშნულებისთვის",
 	"Customize Ollama models for a specific purpose": "Ollama მოდელების დამუშავება სპეციფიური დანიშნულებისთვის",
 	"Dark": "მუქი",
 	"Dark": "მუქი",
+	"Dashboard": "",
 	"Database": "მონაცემთა ბაზა",
 	"Database": "მონაცემთა ბაზა",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"Default": "დეფოლტი",
 	"Default": "დეფოლტი",
@@ -120,6 +128,7 @@
 	"Delete chat": "შეტყობინების წაშლა",
 	"Delete chat": "შეტყობინების წაშლა",
 	"Delete Chat": "",
 	"Delete Chat": "",
 	"Delete Chats": "შეტყობინებების წაშლა",
 	"Delete Chats": "შეტყობინებების წაშლა",
+	"delete this link": "",
 	"Delete User": "",
 	"Delete User": "",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} წაშლილია",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} წაშლილია",
 	"Deleted {{tagName}}": "",
 	"Deleted {{tagName}}": "",
@@ -146,6 +155,7 @@
 	"Edit Doc": "დოკუმენტის ედიტირება",
 	"Edit Doc": "დოკუმენტის ედიტირება",
 	"Edit User": "მომხმარებლის ედიტირება",
 	"Edit User": "მომხმარებლის ედიტირება",
 	"Email": "ელ-ფოსტა",
 	"Email": "ელ-ფოსტა",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "მიმოწერის ისტორიის ჩართვა",
 	"Enable Chat History": "მიმოწერის ისტორიის ჩართვა",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "შეიყვანეთ ტოპ თანმიმდევრობა",
 	"Enter stop sequence": "შეიყვანეთ ტოპ თანმიმდევრობა",
 	"Enter Top K": "შეიყვანეთ Top K",
 	"Enter Top K": "შეიყვანეთ Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "შეიყვანეთ მისამართი (მაგალითად http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "შეიყვანეთ მისამართი (მაგალითად http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "შეიყვანეთ თქვენი ელ-ფოსტა",
 	"Enter Your Email": "შეიყვანეთ თქვენი ელ-ფოსტა",
 	"Enter Your Full Name": "შეიყვანეთ თქვენი სრული სახელი",
 	"Enter Your Full Name": "შეიყვანეთ თქვენი სრული სახელი",
 	"Enter Your Password": "შეიყვანეთ თქვენი პაროლი",
 	"Enter Your Password": "შეიყვანეთ თქვენი პაროლი",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "Ollama მოდელების მართვა",
 	"Manage Ollama Models": "Ollama მოდელების მართვა",
 	"Max Tokens": "მაქსიმალური ტოკენები",
 	"Max Tokens": "მაქსიმალური ტოკენები",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "მაქსიმუმ 3 მოდელის ჩამოტვირთვა შესაძლებელია ერთდროულად. Გთხოვთ სცადოთ მოგვიანებით.",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "მაქსიმუმ 3 მოდელის ჩამოტვირთვა შესაძლებელია ერთდროულად. Გთხოვთ სცადოთ მოგვიანებით.",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "მიროსტატი",
 	"Mirostat": "მიროსტატი",
 	"Mirostat Eta": "მიროსტატი ეტა",
 	"Mirostat Eta": "მიროსტატი ეტა",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "თქვენი მოდელური ფაილის სახელი",
 	"Name your modelfile": "თქვენი მოდელური ფაილის სახელი",
 	"New Chat": "ახალი მიმოწერა",
 	"New Chat": "ახალი მიმოწერა",
 	"New Password": "ახალი პაროლი",
 	"New Password": "ახალი პაროლი",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "",
 	"Not factually correct": "",
 	"Not sure what to add?": "არ იცი რა დაამატო?",
 	"Not sure what to add?": "არ იცი რა დაამატო?",
 	"Not sure what to write? Switch to": "არ იცი რა დაწერო? გადართვა:",
 	"Not sure what to write? Switch to": "არ იცი რა დაწერო? გადართვა:",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "",
 	"OpenAI URL/Key required.": "",
 	"or": "ან",
 	"or": "ან",
 	"Other": "",
 	"Other": "",
+	"Overview": "",
 	"Parameters": "პარამეტრები",
 	"Parameters": "პარამეტრები",
 	"Password": "პაროლი",
 	"Password": "პაროლი",
 	"PDF document (.pdf)": "",
 	"PDF document (.pdf)": "",
@@ -300,6 +315,7 @@
 	"Prompt Content": "მოთხოვნის შინაარსი",
 	"Prompt Content": "მოთხოვნის შინაარსი",
 	"Prompt suggestions": "მოთხოვნის რჩევები",
 	"Prompt suggestions": "მოთხოვნის რჩევები",
 	"Prompts": "მოთხოვნები",
 	"Prompts": "მოთხოვნები",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "Ollama.com იდან მოდელის გადაწერა ",
 	"Pull a model from Ollama.com": "Ollama.com იდან მოდელის გადაწერა ",
 	"Pull Progress": "პროგრესის გადაწერა",
 	"Pull Progress": "პროგრესის გადაწერა",
 	"Query Params": "პარამეტრების ძიება",
 	"Query Params": "პარამეტრების ძიება",
@@ -312,13 +328,17 @@
 	"Regenerate": "",
 	"Regenerate": "",
 	"Release Notes": "Გამოშვების შენიშვნები",
 	"Release Notes": "Გამოშვების შენიშვნები",
 	"Remove": "",
 	"Remove": "",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "გაიმეორეთ ბოლო N",
 	"Repeat Last N": "გაიმეორეთ ბოლო N",
 	"Repeat Penalty": "გაიმეორეთ პენალტი",
 	"Repeat Penalty": "გაიმეორეთ პენალტი",
 	"Request Mode": "მოთხოვნის რეჟიმი",
 	"Request Mode": "მოთხოვნის რეჟიმი",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "ვექტორული მეხსიერების გადატვირთვა",
 	"Reset Vector Storage": "ვექტორული მეხსიერების გადატვირთვა",
 	"Response AutoCopy to Clipboard": "პასუხის ავტომატური კოპირება ბუფერში",
 	"Response AutoCopy to Clipboard": "პასუხის ავტომატური კოპირება ბუფერში",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "როლი",
 	"Role": "როლი",
 	"Rosé Pine": "ვარდისფერი ფიჭვის ხე",
 	"Rosé Pine": "ვარდისფერი ფიჭვის ხე",
 	"Rosé Pine Dawn": "ვარდისფერი ფიჭვის გარიჟრაჟი",
 	"Rosé Pine Dawn": "ვარდისფერი ფიჭვის გარიჟრაჟი",
@@ -346,7 +366,9 @@
 	"Server connection verified": "სერვერთან კავშირი დადასტურებულია",
 	"Server connection verified": "სერვერთან კავშირი დადასტურებულია",
 	"Set as default": "დეფოლტად დაყენება",
 	"Set as default": "დეფოლტად დაყენება",
 	"Set Default Model": "დეფოლტ მოდელის დაყენება",
 	"Set Default Model": "დეფოლტ მოდელის დაყენება",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "სურათის ზომის დაყენება",
 	"Set Image Size": "სურათის ზომის დაყენება",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "ნაბიჯების დაყენება",
 	"Set Steps": "ნაბიჯების დაყენება",
 	"Set Title Auto-Generation Model": "სათაურის ავტომატური გენერაციის მოდელის დაყენება",
 	"Set Title Auto-Generation Model": "სათაურის ავტომატური გენერაციის მოდელის დაყენება",
 	"Set Voice": "ხმის დაყენება",
 	"Set Voice": "ხმის დაყენება",
@@ -365,6 +387,7 @@
 	"Sign Out": "გასვლა",
 	"Sign Out": "გასვლა",
 	"Sign up": "რეგისტრაცია",
 	"Sign up": "რეგისტრაცია",
 	"Signing in": "",
 	"Signing in": "",
+	"Source": "",
 	"Speech recognition error: {{error}}": "მეტყველების ამოცნობის შეცდომა: {{error}}",
 	"Speech recognition error: {{error}}": "მეტყველების ამოცნობის შეცდომა: {{error}}",
 	"Speech-to-Text Engine": "ხმოვან-ტექსტური ძრავი",
 	"Speech-to-Text Engine": "ხმოვან-ტექსტური ძრავი",
 	"SpeechRecognition API is not supported in this browser.": "მეტყველების ამოცნობის API არ არის მხარდაჭერილი ამ ბრაუზერში.",
 	"SpeechRecognition API is not supported in this browser.": "მეტყველების ამოცნობის API არ არის მხარდაჭერილი ამ ბრაუზერში.",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "{{provider}}-თან დაკავშირების პრობლემა წარმოიშვა.",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "{{provider}}-თან დაკავშირების პრობლემა წარმოიშვა.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "უცნობი ფაილის ტიპი „{{file_type}}“, მაგრამ მიიღება და განიხილება როგორც მარტივი ტექსტი",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "უცნობი ფაილის ტიპი „{{file_type}}“, მაგრამ მიიღება და განიხილება როგორც მარტივი ტექსტი",
 	"Update and Copy Link": "",
 	"Update and Copy Link": "",
-	"Update Embedding Model": "",
-	"Update embedding model (e.g. {{model}})": "",
 	"Update password": "პაროლის განახლება",
 	"Update password": "პაროლის განახლება",
-	"Update Reranking Model": "",
-	"Update reranking model (e.g. {{model}})": "",
 	"Upload a GGUF model": "GGUF მოდელის ატვირთვა",
 	"Upload a GGUF model": "GGUF მოდელის ატვირთვა",
 	"Upload files": "ფაილების ატვირთვა",
 	"Upload files": "ფაილების ატვირთვა",
 	"Upload Progress": "პროგრესის ატვირთვა",
 	"Upload Progress": "პროგრესის ატვირთვა",
@@ -431,6 +450,7 @@
 	"Version": "ვერსია",
 	"Version": "ვერსია",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Web": "ვები",
 	"Web": "ვები",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "WebUI დანამატები",
 	"WebUI Add-ons": "WebUI დანამატები",
 	"WebUI Settings": "WebUI პარამეტრები",
 	"WebUI Settings": "WebUI პარამეტრები",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "დაწერეთ მოკლე წინადადება (მაგ. ვინ ხარ?",
 	"Write a prompt suggestion (e.g. Who are you?)": "დაწერეთ მოკლე წინადადება (მაგ. ვინ ხარ?",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "დაწერეთ რეზიუმე 50 სიტყვით, რომელიც აჯამებს [თემას ან საკვანძო სიტყვას].",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "დაწერეთ რეზიუმე 50 სიტყვით, რომელიც აჯამებს [თემას ან საკვანძო სიტყვას].",
 	"You": "თქვენ",
 	"You": "თქვენ",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "თქვენ სასარგებლო ასისტენტი ხართ.",
 	"You're a helpful assistant.": "თქვენ სასარგებლო ასისტენტი ხართ.",
 	"You're now logged in.": "თქვენ შესული ხართ.",
 	"You're now logged in.": "თქვენ შესული ხართ.",
 	"Youtube": ""
 	"Youtube": ""

+ 26 - 4
src/lib/i18n/locales/ko-KR/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "이미 계정이 있으신가요?",
 	"Already have an account?": "이미 계정이 있으신가요?",
 	"an assistant": "어시스턴트",
 	"an assistant": "어시스턴트",
 	"and": "그리고",
 	"and": "그리고",
+	"and create a new shared link.": "",
 	"API Base URL": "API 기본 URL",
 	"API Base URL": "API 기본 URL",
 	"API Key": "API키",
 	"API Key": "API키",
 	"API Key created.": "",
 	"API Key created.": "",
@@ -54,8 +55,10 @@
 	"available!": "사용 가능!",
 	"available!": "사용 가능!",
 	"Back": "뒤로가기",
 	"Back": "뒤로가기",
 	"Bad Response": "",
 	"Bad Response": "",
+	"before": "",
 	"Being lazy": "",
 	"Being lazy": "",
 	"Builder Mode": "빌더 모드",
 	"Builder Mode": "빌더 모드",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "취소",
 	"Cancel": "취소",
 	"Categories": "분류",
 	"Categories": "분류",
 	"Change Password": "비밀번호 변경",
 	"Change Password": "비밀번호 변경",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "Chunk Overlap",
 	"Chunk Overlap": "Chunk Overlap",
 	"Chunk Params": "Chunk Params",
 	"Chunk Params": "Chunk Params",
 	"Chunk Size": "Chunk Size",
 	"Chunk Size": "Chunk Size",
+	"Citation": "",
 	"Click here for help.": "도움말을 보려면 여기를 클릭하세요.",
 	"Click here for help.": "도움말을 보려면 여기를 클릭하세요.",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "다른 모델파일을 확인하려면 여기를 클릭하세요.",
 	"Click here to check other modelfiles.": "다른 모델파일을 확인하려면 여기를 클릭하세요.",
 	"Click here to select": "선택하려면 여기를 클릭하세요.",
 	"Click here to select": "선택하려면 여기를 클릭하세요.",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "다음 질문에 대한 제목으로 간결한 3-5 단어 문구를 만드되 3-5 단어 제한을 엄격히 준수하고 'title' 단어 사용을 피하세요:",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "다음 질문에 대한 제목으로 간결한 3-5 단어 문구를 만드되 3-5 단어 제한을 엄격히 준수하고 'title' 단어 사용을 피하세요:",
 	"Create a modelfile": "모델파일 만들기",
 	"Create a modelfile": "모델파일 만들기",
 	"Create Account": "계정 만들기",
 	"Create Account": "계정 만들기",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "생성일",
 	"Created at": "생성일",
 	"Created At": "",
 	"Created At": "",
 	"Current Model": "현재 모델",
 	"Current Model": "현재 모델",
@@ -105,6 +112,7 @@
 	"Custom": "사용자 정의",
 	"Custom": "사용자 정의",
 	"Customize Ollama models for a specific purpose": "특정 목적으로 Ollama 모델 사용자 정의",
 	"Customize Ollama models for a specific purpose": "특정 목적으로 Ollama 모델 사용자 정의",
 	"Dark": "어두운",
 	"Dark": "어두운",
+	"Dashboard": "",
 	"Database": "데이터베이스",
 	"Database": "데이터베이스",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"Default": "기본값",
 	"Default": "기본값",
@@ -120,6 +128,7 @@
 	"Delete chat": "채팅 삭제",
 	"Delete chat": "채팅 삭제",
 	"Delete Chat": "",
 	"Delete Chat": "",
 	"Delete Chats": "채팅들 삭제",
 	"Delete Chats": "채팅들 삭제",
+	"delete this link": "",
 	"Delete User": "",
 	"Delete User": "",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} 삭제됨",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} 삭제됨",
 	"Deleted {{tagName}}": "",
 	"Deleted {{tagName}}": "",
@@ -146,6 +155,7 @@
 	"Edit Doc": "문서 편집",
 	"Edit Doc": "문서 편집",
 	"Edit User": "사용자 편집",
 	"Edit User": "사용자 편집",
 	"Email": "이메일",
 	"Email": "이메일",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "채팅 기록 활성화",
 	"Enable Chat History": "채팅 기록 활성화",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "중지 시퀀스 입력",
 	"Enter stop sequence": "중지 시퀀스 입력",
 	"Enter Top K": "Top K 입력",
 	"Enter Top K": "Top K 입력",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "URL 입력(예: http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "URL 입력(예: http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "이메일 입력",
 	"Enter Your Email": "이메일 입력",
 	"Enter Your Full Name": "전체 이름 입력",
 	"Enter Your Full Name": "전체 이름 입력",
 	"Enter Your Password": "비밀번호 입력",
 	"Enter Your Password": "비밀번호 입력",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "Ollama 모델 관리",
 	"Manage Ollama Models": "Ollama 모델 관리",
 	"Max Tokens": "최대 토큰 수",
 	"Max Tokens": "최대 토큰 수",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "최대 3개의 모델을 동시에 다운로드할 수 있습니다. 나중에 다시 시도하세요.",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "최대 3개의 모델을 동시에 다운로드할 수 있습니다. 나중에 다시 시도하세요.",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "Mirostat",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Eta": "Mirostat Eta",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "모델파일 이름 지정",
 	"Name your modelfile": "모델파일 이름 지정",
 	"New Chat": "새 채팅",
 	"New Chat": "새 채팅",
 	"New Password": "새 비밀번호",
 	"New Password": "새 비밀번호",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "",
 	"Not factually correct": "",
 	"Not sure what to add?": "추가할 것이 궁금하세요?",
 	"Not sure what to add?": "추가할 것이 궁금하세요?",
 	"Not sure what to write? Switch to": "무엇을 쓸지 모르겠나요? 전환하세요.",
 	"Not sure what to write? Switch to": "무엇을 쓸지 모르겠나요? 전환하세요.",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "",
 	"OpenAI URL/Key required.": "",
 	"or": "또는",
 	"or": "또는",
 	"Other": "",
 	"Other": "",
+	"Overview": "",
 	"Parameters": "매개변수",
 	"Parameters": "매개변수",
 	"Password": "비밀번호",
 	"Password": "비밀번호",
 	"PDF document (.pdf)": "",
 	"PDF document (.pdf)": "",
@@ -300,6 +315,7 @@
 	"Prompt Content": "프롬프트 내용",
 	"Prompt Content": "프롬프트 내용",
 	"Prompt suggestions": "프롬프트 제안",
 	"Prompt suggestions": "프롬프트 제안",
 	"Prompts": "프롬프트",
 	"Prompts": "프롬프트",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "Ollama.com에서 모델 가져오기",
 	"Pull a model from Ollama.com": "Ollama.com에서 모델 가져오기",
 	"Pull Progress": "가져오기 진행 상황",
 	"Pull Progress": "가져오기 진행 상황",
 	"Query Params": "쿼리 매개변수",
 	"Query Params": "쿼리 매개변수",
@@ -312,13 +328,17 @@
 	"Regenerate": "",
 	"Regenerate": "",
 	"Release Notes": "릴리스 노트",
 	"Release Notes": "릴리스 노트",
 	"Remove": "",
 	"Remove": "",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "마지막 N 반복",
 	"Repeat Last N": "마지막 N 반복",
 	"Repeat Penalty": "반복 패널티",
 	"Repeat Penalty": "반복 패널티",
 	"Request Mode": "요청 모드",
 	"Request Mode": "요청 모드",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "벡터 스토리지 초기화",
 	"Reset Vector Storage": "벡터 스토리지 초기화",
 	"Response AutoCopy to Clipboard": "응답 자동 클립보드 복사",
 	"Response AutoCopy to Clipboard": "응답 자동 클립보드 복사",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "역할",
 	"Role": "역할",
 	"Rosé Pine": "로제 파인",
 	"Rosé Pine": "로제 파인",
 	"Rosé Pine Dawn": "로제 파인 던",
 	"Rosé Pine Dawn": "로제 파인 던",
@@ -346,7 +366,9 @@
 	"Server connection verified": "서버 연결 확인됨",
 	"Server connection verified": "서버 연결 확인됨",
 	"Set as default": "기본값으로 설정",
 	"Set as default": "기본값으로 설정",
 	"Set Default Model": "기본 모델 설정",
 	"Set Default Model": "기본 모델 설정",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "이미지 크기 설정",
 	"Set Image Size": "이미지 크기 설정",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "단계 설정",
 	"Set Steps": "단계 설정",
 	"Set Title Auto-Generation Model": "제목 자동 생성 모델 설정",
 	"Set Title Auto-Generation Model": "제목 자동 생성 모델 설정",
 	"Set Voice": "음성 설정",
 	"Set Voice": "음성 설정",
@@ -365,6 +387,7 @@
 	"Sign Out": "로그아웃",
 	"Sign Out": "로그아웃",
 	"Sign up": "가입",
 	"Sign up": "가입",
 	"Signing in": "",
 	"Signing in": "",
+	"Source": "",
 	"Speech recognition error: {{error}}": "음성 인식 오류: {{error}}",
 	"Speech recognition error: {{error}}": "음성 인식 오류: {{error}}",
 	"Speech-to-Text Engine": "음성-텍스트 엔진",
 	"Speech-to-Text Engine": "음성-텍스트 엔진",
 	"SpeechRecognition API is not supported in this browser.": "이 브라우저에서는 SpeechRecognition API를 지원하지 않습니다.",
 	"SpeechRecognition API is not supported in this browser.": "이 브라우저에서는 SpeechRecognition API를 지원하지 않습니다.",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "앗! {{provider}}에 연결하는 데 문제가 있었습니다.",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "앗! {{provider}}에 연결하는 데 문제가 있었습니다.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "알 수 없는 파일 유형 '{{file_type}}', 하지만 일반 텍스트로 허용하고 처리합니다.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "알 수 없는 파일 유형 '{{file_type}}', 하지만 일반 텍스트로 허용하고 처리합니다.",
 	"Update and Copy Link": "",
 	"Update and Copy Link": "",
-	"Update Embedding Model": "",
-	"Update embedding model (e.g. {{model}})": "",
 	"Update password": "비밀번호 업데이트",
 	"Update password": "비밀번호 업데이트",
-	"Update Reranking Model": "",
-	"Update reranking model (e.g. {{model}})": "",
 	"Upload a GGUF model": "GGUF 모델 업로드",
 	"Upload a GGUF model": "GGUF 모델 업로드",
 	"Upload files": "파일 업로드",
 	"Upload files": "파일 업로드",
 	"Upload Progress": "업로드 진행 상황",
 	"Upload Progress": "업로드 진행 상황",
@@ -431,6 +450,7 @@
 	"Version": "버전",
 	"Version": "버전",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Web": "웹",
 	"Web": "웹",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "WebUI 애드온",
 	"WebUI Add-ons": "WebUI 애드온",
 	"WebUI Settings": "WebUI 설정",
 	"WebUI Settings": "WebUI 설정",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "프롬프트 제안 작성 (예: 당신은 누구인가요?)",
 	"Write a prompt suggestion (e.g. Who are you?)": "프롬프트 제안 작성 (예: 당신은 누구인가요?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "[주제 또는 키워드]에 대한 50단어 요약문 작성.",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "[주제 또는 키워드]에 대한 50단어 요약문 작성.",
 	"You": "당신",
 	"You": "당신",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "당신은 유용한 어시스턴트입니다.",
 	"You're a helpful assistant.": "당신은 유용한 어시스턴트입니다.",
 	"You're now logged in.": "로그인되었습니다.",
 	"You're now logged in.": "로그인되었습니다.",
 	"Youtube": ""
 	"Youtube": ""

+ 26 - 4
src/lib/i18n/locales/nl-NL/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "Heb je al een account?",
 	"Already have an account?": "Heb je al een account?",
 	"an assistant": "een assistent",
 	"an assistant": "een assistent",
 	"and": "en",
 	"and": "en",
+	"and create a new shared link.": "",
 	"API Base URL": "API Base URL",
 	"API Base URL": "API Base URL",
 	"API Key": "API Key",
 	"API Key": "API Key",
 	"API Key created.": "",
 	"API Key created.": "",
@@ -54,8 +55,10 @@
 	"available!": "beschikbaar!",
 	"available!": "beschikbaar!",
 	"Back": "Terug",
 	"Back": "Terug",
 	"Bad Response": "",
 	"Bad Response": "",
+	"before": "",
 	"Being lazy": "",
 	"Being lazy": "",
 	"Builder Mode": "Bouwer Modus",
 	"Builder Mode": "Bouwer Modus",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "Annuleren",
 	"Cancel": "Annuleren",
 	"Categories": "Categorieën",
 	"Categories": "Categorieën",
 	"Change Password": "Wijzig Wachtwoord",
 	"Change Password": "Wijzig Wachtwoord",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "Chunk Overlap",
 	"Chunk Overlap": "Chunk Overlap",
 	"Chunk Params": "Chunk Params",
 	"Chunk Params": "Chunk Params",
 	"Chunk Size": "Chunk Grootte",
 	"Chunk Size": "Chunk Grootte",
+	"Citation": "",
 	"Click here for help.": "Klik hier voor help.",
 	"Click here for help.": "Klik hier voor help.",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "Klik hier om andere modelfiles te controleren.",
 	"Click here to check other modelfiles.": "Klik hier om andere modelfiles te controleren.",
 	"Click here to select": "Klik hier om te selecteren",
 	"Click here to select": "Klik hier om te selecteren",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Maak een beknopte, 3-5 woorden tellende zin als kop voor de volgende query, strikt aanhoudend aan de 3-5 woorden limiet en het vermijden van het gebruik van het woord 'titel':",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Maak een beknopte, 3-5 woorden tellende zin als kop voor de volgende query, strikt aanhoudend aan de 3-5 woorden limiet en het vermijden van het gebruik van het woord 'titel':",
 	"Create a modelfile": "Maak een modelfile",
 	"Create a modelfile": "Maak een modelfile",
 	"Create Account": "Maak Account",
 	"Create Account": "Maak Account",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "Gemaakt op",
 	"Created at": "Gemaakt op",
 	"Created At": "",
 	"Created At": "",
 	"Current Model": "Huidig Model",
 	"Current Model": "Huidig Model",
@@ -105,6 +112,7 @@
 	"Custom": "Aangepast",
 	"Custom": "Aangepast",
 	"Customize Ollama models for a specific purpose": "Pas Ollama modellen aan voor een specifiek doel",
 	"Customize Ollama models for a specific purpose": "Pas Ollama modellen aan voor een specifiek doel",
 	"Dark": "Donker",
 	"Dark": "Donker",
+	"Dashboard": "",
 	"Database": "Database",
 	"Database": "Database",
 	"DD/MM/YYYY HH:mm": "YYYY/MM/DD HH:mm",
 	"DD/MM/YYYY HH:mm": "YYYY/MM/DD HH:mm",
 	"Default": "Standaard",
 	"Default": "Standaard",
@@ -120,6 +128,7 @@
 	"Delete chat": "Verwijder chat",
 	"Delete chat": "Verwijder chat",
 	"Delete Chat": "",
 	"Delete Chat": "",
 	"Delete Chats": "Verwijder Chats",
 	"Delete Chats": "Verwijder Chats",
+	"delete this link": "",
 	"Delete User": "",
 	"Delete User": "",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} is verwijderd",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} is verwijderd",
 	"Deleted {{tagName}}": "",
 	"Deleted {{tagName}}": "",
@@ -146,6 +155,7 @@
 	"Edit Doc": "Wijzig Doc",
 	"Edit Doc": "Wijzig Doc",
 	"Edit User": "Wijzig Gebruiker",
 	"Edit User": "Wijzig Gebruiker",
 	"Email": "Email",
 	"Email": "Email",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "Schakel Chat Geschiedenis in",
 	"Enable Chat History": "Schakel Chat Geschiedenis in",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "Zet stop sequentie",
 	"Enter stop sequence": "Zet stop sequentie",
 	"Enter Top K": "Voeg Top K toe",
 	"Enter Top K": "Voeg Top K toe",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Zet URL (Bijv. http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Zet URL (Bijv. http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "Voer je Email in",
 	"Enter Your Email": "Voer je Email in",
 	"Enter Your Full Name": "Voer je Volledige Naam in",
 	"Enter Your Full Name": "Voer je Volledige Naam in",
 	"Enter Your Password": "Voer je Wachtwoord in",
 	"Enter Your Password": "Voer je Wachtwoord in",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "Beheer Ollama Modellen",
 	"Manage Ollama Models": "Beheer Ollama Modellen",
 	"Max Tokens": "Max Tokens",
 	"Max Tokens": "Max Tokens",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Maximaal 3 modellen kunnen tegelijkertijd worden gedownload. Probeer het later opnieuw.",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Maximaal 3 modellen kunnen tegelijkertijd worden gedownload. Probeer het later opnieuw.",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "Mirostat",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Eta": "Mirostat Eta",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "Benoem je modelfile",
 	"Name your modelfile": "Benoem je modelfile",
 	"New Chat": "Nieuwe Chat",
 	"New Chat": "Nieuwe Chat",
 	"New Password": "Nieuw Wachtwoord",
 	"New Password": "Nieuw Wachtwoord",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "",
 	"Not factually correct": "",
 	"Not sure what to add?": "Niet zeker wat toe te voegen?",
 	"Not sure what to add?": "Niet zeker wat toe te voegen?",
 	"Not sure what to write? Switch to": "Niet zeker wat te schrijven? Schakel over naar",
 	"Not sure what to write? Switch to": "Niet zeker wat te schrijven? Schakel over naar",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "",
 	"OpenAI URL/Key required.": "",
 	"or": "of",
 	"or": "of",
 	"Other": "",
 	"Other": "",
+	"Overview": "",
 	"Parameters": "Parameters",
 	"Parameters": "Parameters",
 	"Password": "Wachtwoord",
 	"Password": "Wachtwoord",
 	"PDF document (.pdf)": "",
 	"PDF document (.pdf)": "",
@@ -300,6 +315,7 @@
 	"Prompt Content": "Prompt Inhoud",
 	"Prompt Content": "Prompt Inhoud",
 	"Prompt suggestions": "Prompt suggesties",
 	"Prompt suggestions": "Prompt suggesties",
 	"Prompts": "Prompts",
 	"Prompts": "Prompts",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "Haal een model van Ollama.com",
 	"Pull a model from Ollama.com": "Haal een model van Ollama.com",
 	"Pull Progress": "Haal Voortgang op",
 	"Pull Progress": "Haal Voortgang op",
 	"Query Params": "Query Params",
 	"Query Params": "Query Params",
@@ -312,13 +328,17 @@
 	"Regenerate": "",
 	"Regenerate": "",
 	"Release Notes": "Release Notes",
 	"Release Notes": "Release Notes",
 	"Remove": "",
 	"Remove": "",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "Herhaal Laatste N",
 	"Repeat Last N": "Herhaal Laatste N",
 	"Repeat Penalty": "Herhaal Straf",
 	"Repeat Penalty": "Herhaal Straf",
 	"Request Mode": "Request Modus",
 	"Request Mode": "Request Modus",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "Reset Vector Opslag",
 	"Reset Vector Storage": "Reset Vector Opslag",
 	"Response AutoCopy to Clipboard": "Antwoord Automatisch Kopiëren naar Klembord",
 	"Response AutoCopy to Clipboard": "Antwoord Automatisch Kopiëren naar Klembord",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "Rol",
 	"Role": "Rol",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
@@ -346,7 +366,9 @@
 	"Server connection verified": "Server verbinding geverifieerd",
 	"Server connection verified": "Server verbinding geverifieerd",
 	"Set as default": "Stel in als standaard",
 	"Set as default": "Stel in als standaard",
 	"Set Default Model": "Stel Standaard Model in",
 	"Set Default Model": "Stel Standaard Model in",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "Stel Afbeelding Grootte in",
 	"Set Image Size": "Stel Afbeelding Grootte in",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "Stel Stappen in",
 	"Set Steps": "Stel Stappen in",
 	"Set Title Auto-Generation Model": "Stel Titel Auto-Generatie Model in",
 	"Set Title Auto-Generation Model": "Stel Titel Auto-Generatie Model in",
 	"Set Voice": "Stel Stem in",
 	"Set Voice": "Stel Stem in",
@@ -365,6 +387,7 @@
 	"Sign Out": "Uitloggen",
 	"Sign Out": "Uitloggen",
 	"Sign up": "Registreren",
 	"Sign up": "Registreren",
 	"Signing in": "",
 	"Signing in": "",
+	"Source": "",
 	"Speech recognition error: {{error}}": "Spraakherkenning fout: {{error}}",
 	"Speech recognition error: {{error}}": "Spraakherkenning fout: {{error}}",
 	"Speech-to-Text Engine": "Spraak-naar-tekst Engine",
 	"Speech-to-Text Engine": "Spraak-naar-tekst Engine",
 	"SpeechRecognition API is not supported in this browser.": "SpeechRecognition API wordt niet ondersteund in deze browser.",
 	"SpeechRecognition API is not supported in this browser.": "SpeechRecognition API wordt niet ondersteund in deze browser.",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh! Er was een probleem met verbinden met {{provider}}.",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Uh-oh! Er was een probleem met verbinden met {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Onbekend Bestandstype '{{file_type}}', maar accepteren en behandelen als platte tekst",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Onbekend Bestandstype '{{file_type}}', maar accepteren en behandelen als platte tekst",
 	"Update and Copy Link": "",
 	"Update and Copy Link": "",
-	"Update Embedding Model": "",
-	"Update embedding model (e.g. {{model}})": "",
 	"Update password": "Wijzig wachtwoord",
 	"Update password": "Wijzig wachtwoord",
-	"Update Reranking Model": "",
-	"Update reranking model (e.g. {{model}})": "",
 	"Upload a GGUF model": "Upload een GGUF model",
 	"Upload a GGUF model": "Upload een GGUF model",
 	"Upload files": "Upload bestanden",
 	"Upload files": "Upload bestanden",
 	"Upload Progress": "Upload Voortgang",
 	"Upload Progress": "Upload Voortgang",
@@ -431,6 +450,7 @@
 	"Version": "Versie",
 	"Version": "Versie",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Web": "Web",
 	"Web": "Web",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "WebUI Add-ons",
 	"WebUI Add-ons": "WebUI Add-ons",
 	"WebUI Settings": "WebUI Instellingen",
 	"WebUI Settings": "WebUI Instellingen",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "Schrijf een prompt suggestie (bijv. Wie ben je?)",
 	"Write a prompt suggestion (e.g. Who are you?)": "Schrijf een prompt suggestie (bijv. Wie ben je?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Schrijf een samenvatting in 50 woorden die [onderwerp of trefwoord] samenvat.",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Schrijf een samenvatting in 50 woorden die [onderwerp of trefwoord] samenvat.",
 	"You": "Jij",
 	"You": "Jij",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "Jij bent een behulpzame assistent.",
 	"You're a helpful assistant.": "Jij bent een behulpzame assistent.",
 	"You're now logged in.": "Je bent nu ingelogd.",
 	"You're now logged in.": "Je bent nu ingelogd.",
 	"Youtube": ""
 	"Youtube": ""

+ 26 - 4
src/lib/i18n/locales/pl-PL/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "Masz już konto?",
 	"Already have an account?": "Masz już konto?",
 	"an assistant": "asystent",
 	"an assistant": "asystent",
 	"and": "i",
 	"and": "i",
+	"and create a new shared link.": "",
 	"API Base URL": "Podstawowy adres URL interfejsu API",
 	"API Base URL": "Podstawowy adres URL interfejsu API",
 	"API Key": "Klucz API",
 	"API Key": "Klucz API",
 	"API Key created.": "",
 	"API Key created.": "",
@@ -54,8 +55,10 @@
 	"available!": "dostępny!",
 	"available!": "dostępny!",
 	"Back": "Wstecz",
 	"Back": "Wstecz",
 	"Bad Response": "",
 	"Bad Response": "",
+	"before": "",
 	"Being lazy": "",
 	"Being lazy": "",
 	"Builder Mode": "Tryb budowniczego",
 	"Builder Mode": "Tryb budowniczego",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "Anuluj",
 	"Cancel": "Anuluj",
 	"Categories": "Kategorie",
 	"Categories": "Kategorie",
 	"Change Password": "Zmień hasło",
 	"Change Password": "Zmień hasło",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "Zachodzenie bloku",
 	"Chunk Overlap": "Zachodzenie bloku",
 	"Chunk Params": "Parametry bloku",
 	"Chunk Params": "Parametry bloku",
 	"Chunk Size": "Rozmiar bloku",
 	"Chunk Size": "Rozmiar bloku",
+	"Citation": "",
 	"Click here for help.": "Kliknij tutaj, aby uzyskać pomoc.",
 	"Click here for help.": "Kliknij tutaj, aby uzyskać pomoc.",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "Kliknij tutaj, aby sprawdzić inne pliki modelowe.",
 	"Click here to check other modelfiles.": "Kliknij tutaj, aby sprawdzić inne pliki modelowe.",
 	"Click here to select": "Kliknij tutaj, aby wybrać",
 	"Click here to select": "Kliknij tutaj, aby wybrać",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Utwórz zwięzłą frazę składającą się z 3-5 słów jako nagłówek dla następującego zapytania, ściśle przestrzegając limitu od 3 do 5 słów i unikając użycia słowa 'tytuł':",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Utwórz zwięzłą frazę składającą się z 3-5 słów jako nagłówek dla następującego zapytania, ściśle przestrzegając limitu od 3 do 5 słów i unikając użycia słowa 'tytuł':",
 	"Create a modelfile": "Utwórz plik modelu",
 	"Create a modelfile": "Utwórz plik modelu",
 	"Create Account": "Utwórz konto",
 	"Create Account": "Utwórz konto",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "Utworzono o",
 	"Created at": "Utworzono o",
 	"Created At": "",
 	"Created At": "",
 	"Current Model": "Bieżący model",
 	"Current Model": "Bieżący model",
@@ -105,6 +112,7 @@
 	"Custom": "Niestandardowy",
 	"Custom": "Niestandardowy",
 	"Customize Ollama models for a specific purpose": "Dostosuj modele Ollama do określonego celu",
 	"Customize Ollama models for a specific purpose": "Dostosuj modele Ollama do określonego celu",
 	"Dark": "Ciemny",
 	"Dark": "Ciemny",
+	"Dashboard": "",
 	"Database": "Baza danych",
 	"Database": "Baza danych",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"Default": "Domyślny",
 	"Default": "Domyślny",
@@ -120,6 +128,7 @@
 	"Delete chat": "Usuń czat",
 	"Delete chat": "Usuń czat",
 	"Delete Chat": "",
 	"Delete Chat": "",
 	"Delete Chats": "Usuń czaty",
 	"Delete Chats": "Usuń czaty",
+	"delete this link": "",
 	"Delete User": "",
 	"Delete User": "",
 	"Deleted {{deleteModelTag}}": "Usunięto {{deleteModelTag}}",
 	"Deleted {{deleteModelTag}}": "Usunięto {{deleteModelTag}}",
 	"Deleted {{tagName}}": "",
 	"Deleted {{tagName}}": "",
@@ -146,6 +155,7 @@
 	"Edit Doc": "Edytuj dokument",
 	"Edit Doc": "Edytuj dokument",
 	"Edit User": "Edytuj użytkownika",
 	"Edit User": "Edytuj użytkownika",
 	"Email": "Email",
 	"Email": "Email",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "Włącz historię czatu",
 	"Enable Chat History": "Włącz historię czatu",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "Wprowadź sekwencję zatrzymania",
 	"Enter stop sequence": "Wprowadź sekwencję zatrzymania",
 	"Enter Top K": "Wprowadź Top K",
 	"Enter Top K": "Wprowadź Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Wprowadź adres URL (np. http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Wprowadź adres URL (np. http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "Wprowadź swój adres email",
 	"Enter Your Email": "Wprowadź swój adres email",
 	"Enter Your Full Name": "Wprowadź swoje imię i nazwisko",
 	"Enter Your Full Name": "Wprowadź swoje imię i nazwisko",
 	"Enter Your Password": "Wprowadź swoje hasło",
 	"Enter Your Password": "Wprowadź swoje hasło",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "Zarządzaj modelami Ollama",
 	"Manage Ollama Models": "Zarządzaj modelami Ollama",
 	"Max Tokens": "Maksymalna liczba tokenów",
 	"Max Tokens": "Maksymalna liczba tokenów",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Maksymalnie 3 modele można pobierać jednocześnie. Spróbuj ponownie później.",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Maksymalnie 3 modele można pobierać jednocześnie. Spróbuj ponownie później.",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "Mirostat",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Eta": "Mirostat Eta",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "Nadaj nazwę swojemu plikowi modelu",
 	"Name your modelfile": "Nadaj nazwę swojemu plikowi modelu",
 	"New Chat": "Nowy czat",
 	"New Chat": "Nowy czat",
 	"New Password": "Nowe hasło",
 	"New Password": "Nowe hasło",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "",
 	"Not factually correct": "",
 	"Not sure what to add?": "Nie wiesz, co dodać?",
 	"Not sure what to add?": "Nie wiesz, co dodać?",
 	"Not sure what to write? Switch to": "Nie wiesz, co napisać? Przełącz się na",
 	"Not sure what to write? Switch to": "Nie wiesz, co napisać? Przełącz się na",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "",
 	"OpenAI URL/Key required.": "",
 	"or": "lub",
 	"or": "lub",
 	"Other": "",
 	"Other": "",
+	"Overview": "",
 	"Parameters": "Parametry",
 	"Parameters": "Parametry",
 	"Password": "Hasło",
 	"Password": "Hasło",
 	"PDF document (.pdf)": "",
 	"PDF document (.pdf)": "",
@@ -300,6 +315,7 @@
 	"Prompt Content": "Zawartość prompta",
 	"Prompt Content": "Zawartość prompta",
 	"Prompt suggestions": "Sugestie prompta",
 	"Prompt suggestions": "Sugestie prompta",
 	"Prompts": "Prompty",
 	"Prompts": "Prompty",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "Pobierz model z Ollama.com",
 	"Pull a model from Ollama.com": "Pobierz model z Ollama.com",
 	"Pull Progress": "Postęp pobierania",
 	"Pull Progress": "Postęp pobierania",
 	"Query Params": "Parametry zapytania",
 	"Query Params": "Parametry zapytania",
@@ -312,13 +328,17 @@
 	"Regenerate": "",
 	"Regenerate": "",
 	"Release Notes": "Notatki wydania",
 	"Release Notes": "Notatki wydania",
 	"Remove": "",
 	"Remove": "",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "Powtórz ostatnie N",
 	"Repeat Last N": "Powtórz ostatnie N",
 	"Repeat Penalty": "Kara za powtórzenie",
 	"Repeat Penalty": "Kara za powtórzenie",
 	"Request Mode": "Tryb żądania",
 	"Request Mode": "Tryb żądania",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "Resetuj przechowywanie wektorów",
 	"Reset Vector Storage": "Resetuj przechowywanie wektorów",
 	"Response AutoCopy to Clipboard": "Automatyczne kopiowanie odpowiedzi do schowka",
 	"Response AutoCopy to Clipboard": "Automatyczne kopiowanie odpowiedzi do schowka",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "Rola",
 	"Role": "Rola",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
@@ -346,7 +366,9 @@
 	"Server connection verified": "Połączenie z serwerem zweryfikowane",
 	"Server connection verified": "Połączenie z serwerem zweryfikowane",
 	"Set as default": "Ustaw jako domyślne",
 	"Set as default": "Ustaw jako domyślne",
 	"Set Default Model": "Ustaw domyślny model",
 	"Set Default Model": "Ustaw domyślny model",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "Ustaw rozmiar obrazu",
 	"Set Image Size": "Ustaw rozmiar obrazu",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "Ustaw kroki",
 	"Set Steps": "Ustaw kroki",
 	"Set Title Auto-Generation Model": "Ustaw model automatycznego generowania tytułów",
 	"Set Title Auto-Generation Model": "Ustaw model automatycznego generowania tytułów",
 	"Set Voice": "Ustaw głos",
 	"Set Voice": "Ustaw głos",
@@ -365,6 +387,7 @@
 	"Sign Out": "Wyloguj się",
 	"Sign Out": "Wyloguj się",
 	"Sign up": "Zarejestruj się",
 	"Sign up": "Zarejestruj się",
 	"Signing in": "",
 	"Signing in": "",
+	"Source": "",
 	"Speech recognition error: {{error}}": "Błąd rozpoznawania mowy: {{error}}",
 	"Speech recognition error: {{error}}": "Błąd rozpoznawania mowy: {{error}}",
 	"Speech-to-Text Engine": "Silnik mowy na tekst",
 	"Speech-to-Text Engine": "Silnik mowy na tekst",
 	"SpeechRecognition API is not supported in this browser.": "API Rozpoznawania Mowy nie jest obsługiwane w tej przeglądarce.",
 	"SpeechRecognition API is not supported in this browser.": "API Rozpoznawania Mowy nie jest obsługiwane w tej przeglądarce.",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "O nie! Wystąpił problem z połączeniem z {{provider}}.",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "O nie! Wystąpił problem z połączeniem z {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Nieznany typ pliku '{{file_type}}', ale akceptowany i traktowany jako zwykły tekst",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Nieznany typ pliku '{{file_type}}', ale akceptowany i traktowany jako zwykły tekst",
 	"Update and Copy Link": "",
 	"Update and Copy Link": "",
-	"Update Embedding Model": "",
-	"Update embedding model (e.g. {{model}})": "",
 	"Update password": "Aktualizacja hasła",
 	"Update password": "Aktualizacja hasła",
-	"Update Reranking Model": "",
-	"Update reranking model (e.g. {{model}})": "",
 	"Upload a GGUF model": "Prześlij model GGUF",
 	"Upload a GGUF model": "Prześlij model GGUF",
 	"Upload files": "Prześlij pliki",
 	"Upload files": "Prześlij pliki",
 	"Upload Progress": "Postęp przesyłania",
 	"Upload Progress": "Postęp przesyłania",
@@ -431,6 +450,7 @@
 	"Version": "Wersja",
 	"Version": "Wersja",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Web": "Sieć",
 	"Web": "Sieć",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "Dodatki do interfejsu WebUI",
 	"WebUI Add-ons": "Dodatki do interfejsu WebUI",
 	"WebUI Settings": "Ustawienia interfejsu WebUI",
 	"WebUI Settings": "Ustawienia interfejsu WebUI",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "Napisz sugestię do polecenia (np. Kim jesteś?)",
 	"Write a prompt suggestion (e.g. Who are you?)": "Napisz sugestię do polecenia (np. Kim jesteś?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Napisz podsumowanie w 50 słowach, które podsumowuje [temat lub słowo kluczowe].",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Napisz podsumowanie w 50 słowach, które podsumowuje [temat lub słowo kluczowe].",
 	"You": "Ty",
 	"You": "Ty",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "Jesteś pomocnym asystentem.",
 	"You're a helpful assistant.": "Jesteś pomocnym asystentem.",
 	"You're now logged in.": "Jesteś teraz zalogowany.",
 	"You're now logged in.": "Jesteś teraz zalogowany.",
 	"Youtube": ""
 	"Youtube": ""

+ 26 - 4
src/lib/i18n/locales/pt-BR/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "Já tem uma conta?",
 	"Already have an account?": "Já tem uma conta?",
 	"an assistant": "um assistente",
 	"an assistant": "um assistente",
 	"and": "e",
 	"and": "e",
+	"and create a new shared link.": "",
 	"API Base URL": "URL Base da API",
 	"API Base URL": "URL Base da API",
 	"API Key": "Chave da API",
 	"API Key": "Chave da API",
 	"API Key created.": "",
 	"API Key created.": "",
@@ -54,8 +55,10 @@
 	"available!": "disponível!",
 	"available!": "disponível!",
 	"Back": "Voltar",
 	"Back": "Voltar",
 	"Bad Response": "",
 	"Bad Response": "",
+	"before": "",
 	"Being lazy": "",
 	"Being lazy": "",
 	"Builder Mode": "Modo de Construtor",
 	"Builder Mode": "Modo de Construtor",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "Cancelar",
 	"Cancel": "Cancelar",
 	"Categories": "Categorias",
 	"Categories": "Categorias",
 	"Change Password": "Alterar Senha",
 	"Change Password": "Alterar Senha",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "Sobreposição de Fragmento",
 	"Chunk Overlap": "Sobreposição de Fragmento",
 	"Chunk Params": "Parâmetros de Fragmento",
 	"Chunk Params": "Parâmetros de Fragmento",
 	"Chunk Size": "Tamanho do Fragmento",
 	"Chunk Size": "Tamanho do Fragmento",
+	"Citation": "",
 	"Click here for help.": "Clique aqui para obter ajuda.",
 	"Click here for help.": "Clique aqui para obter ajuda.",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "Clique aqui para verificar outros arquivos de modelo.",
 	"Click here to check other modelfiles.": "Clique aqui para verificar outros arquivos de modelo.",
 	"Click here to select": "Clique aqui para selecionar",
 	"Click here to select": "Clique aqui para selecionar",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Crie uma frase concisa de 3 a 5 palavras como cabeçalho para a seguinte consulta, aderindo estritamente ao limite de 3 a 5 palavras e evitando o uso da palavra 'título':",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Crie uma frase concisa de 3 a 5 palavras como cabeçalho para a seguinte consulta, aderindo estritamente ao limite de 3 a 5 palavras e evitando o uso da palavra 'título':",
 	"Create a modelfile": "Criar um arquivo de modelo",
 	"Create a modelfile": "Criar um arquivo de modelo",
 	"Create Account": "Criar Conta",
 	"Create Account": "Criar Conta",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "Criado em",
 	"Created at": "Criado em",
 	"Created At": "",
 	"Created At": "",
 	"Current Model": "Modelo Atual",
 	"Current Model": "Modelo Atual",
@@ -105,6 +112,7 @@
 	"Custom": "Personalizado",
 	"Custom": "Personalizado",
 	"Customize Ollama models for a specific purpose": "Personalize os modelos Ollama para um propósito específico",
 	"Customize Ollama models for a specific purpose": "Personalize os modelos Ollama para um propósito específico",
 	"Dark": "Escuro",
 	"Dark": "Escuro",
+	"Dashboard": "",
 	"Database": "Banco de dados",
 	"Database": "Banco de dados",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"Default": "Padrão",
 	"Default": "Padrão",
@@ -120,6 +128,7 @@
 	"Delete chat": "Excluir bate-papo",
 	"Delete chat": "Excluir bate-papo",
 	"Delete Chat": "",
 	"Delete Chat": "",
 	"Delete Chats": "Excluir Bate-papos",
 	"Delete Chats": "Excluir Bate-papos",
+	"delete this link": "",
 	"Delete User": "",
 	"Delete User": "",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} excluído",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} excluído",
 	"Deleted {{tagName}}": "",
 	"Deleted {{tagName}}": "",
@@ -146,6 +155,7 @@
 	"Edit Doc": "Editar Documento",
 	"Edit Doc": "Editar Documento",
 	"Edit User": "Editar Usuário",
 	"Edit User": "Editar Usuário",
 	"Email": "E-mail",
 	"Email": "E-mail",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "Ativar Histórico de Bate-papo",
 	"Enable Chat History": "Ativar Histórico de Bate-papo",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "Digite a sequência de parada",
 	"Enter stop sequence": "Digite a sequência de parada",
 	"Enter Top K": "Digite o Top K",
 	"Enter Top K": "Digite o Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Digite a URL (por exemplo, http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Digite a URL (por exemplo, http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "Digite seu E-mail",
 	"Enter Your Email": "Digite seu E-mail",
 	"Enter Your Full Name": "Digite seu Nome Completo",
 	"Enter Your Full Name": "Digite seu Nome Completo",
 	"Enter Your Password": "Digite sua Senha",
 	"Enter Your Password": "Digite sua Senha",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "Gerenciar Modelos Ollama",
 	"Manage Ollama Models": "Gerenciar Modelos Ollama",
 	"Max Tokens": "Máximo de Tokens",
 	"Max Tokens": "Máximo de Tokens",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Máximo de 3 modelos podem ser baixados simultaneamente. Tente novamente mais tarde.",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Máximo de 3 modelos podem ser baixados simultaneamente. Tente novamente mais tarde.",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "Mirostat",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Eta": "Mirostat Eta",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "Nomeie seu arquivo de modelo",
 	"Name your modelfile": "Nomeie seu arquivo de modelo",
 	"New Chat": "Novo Bate-papo",
 	"New Chat": "Novo Bate-papo",
 	"New Password": "Nova Senha",
 	"New Password": "Nova Senha",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "",
 	"Not factually correct": "",
 	"Not sure what to add?": "Não tem certeza do que adicionar?",
 	"Not sure what to add?": "Não tem certeza do que adicionar?",
 	"Not sure what to write? Switch to": "Não tem certeza do que escrever? Mude para",
 	"Not sure what to write? Switch to": "Não tem certeza do que escrever? Mude para",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "",
 	"OpenAI URL/Key required.": "",
 	"or": "ou",
 	"or": "ou",
 	"Other": "",
 	"Other": "",
+	"Overview": "",
 	"Parameters": "Parâmetros",
 	"Parameters": "Parâmetros",
 	"Password": "Senha",
 	"Password": "Senha",
 	"PDF document (.pdf)": "",
 	"PDF document (.pdf)": "",
@@ -300,6 +315,7 @@
 	"Prompt Content": "Conteúdo do Prompt",
 	"Prompt Content": "Conteúdo do Prompt",
 	"Prompt suggestions": "Sugestões de Prompt",
 	"Prompt suggestions": "Sugestões de Prompt",
 	"Prompts": "Prompts",
 	"Prompts": "Prompts",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "Extrair um modelo do Ollama.com",
 	"Pull a model from Ollama.com": "Extrair um modelo do Ollama.com",
 	"Pull Progress": "Progresso da Extração",
 	"Pull Progress": "Progresso da Extração",
 	"Query Params": "Parâmetros de Consulta",
 	"Query Params": "Parâmetros de Consulta",
@@ -312,13 +328,17 @@
 	"Regenerate": "",
 	"Regenerate": "",
 	"Release Notes": "Notas de Lançamento",
 	"Release Notes": "Notas de Lançamento",
 	"Remove": "",
 	"Remove": "",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "Repetir Últimos N",
 	"Repeat Last N": "Repetir Últimos N",
 	"Repeat Penalty": "Penalidade de Repetição",
 	"Repeat Penalty": "Penalidade de Repetição",
 	"Request Mode": "Modo de Solicitação",
 	"Request Mode": "Modo de Solicitação",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "Redefinir Armazenamento de Vetor",
 	"Reset Vector Storage": "Redefinir Armazenamento de Vetor",
 	"Response AutoCopy to Clipboard": "Cópia Automática da Resposta para a Área de Transferência",
 	"Response AutoCopy to Clipboard": "Cópia Automática da Resposta para a Área de Transferência",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "Função",
 	"Role": "Função",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
@@ -346,7 +366,9 @@
 	"Server connection verified": "Conexão com o servidor verificada",
 	"Server connection verified": "Conexão com o servidor verificada",
 	"Set as default": "Definir como padrão",
 	"Set as default": "Definir como padrão",
 	"Set Default Model": "Definir Modelo Padrão",
 	"Set Default Model": "Definir Modelo Padrão",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "Definir Tamanho da Imagem",
 	"Set Image Size": "Definir Tamanho da Imagem",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "Definir Etapas",
 	"Set Steps": "Definir Etapas",
 	"Set Title Auto-Generation Model": "Definir Modelo de Geração Automática de Título",
 	"Set Title Auto-Generation Model": "Definir Modelo de Geração Automática de Título",
 	"Set Voice": "Definir Voz",
 	"Set Voice": "Definir Voz",
@@ -365,6 +387,7 @@
 	"Sign Out": "Sair",
 	"Sign Out": "Sair",
 	"Sign up": "Inscrever-se",
 	"Sign up": "Inscrever-se",
 	"Signing in": "",
 	"Signing in": "",
+	"Source": "",
 	"Speech recognition error: {{error}}": "Erro de reconhecimento de fala: {{error}}",
 	"Speech recognition error: {{error}}": "Erro de reconhecimento de fala: {{error}}",
 	"Speech-to-Text Engine": "Mecanismo de Fala para Texto",
 	"Speech-to-Text Engine": "Mecanismo de Fala para Texto",
 	"SpeechRecognition API is not supported in this browser.": "A API SpeechRecognition não é suportada neste navegador.",
 	"SpeechRecognition API is not supported in this browser.": "A API SpeechRecognition não é suportada neste navegador.",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Opa! Houve um problema ao conectar-se a {{provider}}.",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Opa! Houve um problema ao conectar-se a {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipo de arquivo desconhecido '{{file_type}}', mas aceitando e tratando como texto simples",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipo de arquivo desconhecido '{{file_type}}', mas aceitando e tratando como texto simples",
 	"Update and Copy Link": "",
 	"Update and Copy Link": "",
-	"Update Embedding Model": "",
-	"Update embedding model (e.g. {{model}})": "",
 	"Update password": "Atualizar senha",
 	"Update password": "Atualizar senha",
-	"Update Reranking Model": "",
-	"Update reranking model (e.g. {{model}})": "",
 	"Upload a GGUF model": "Carregar um modelo GGUF",
 	"Upload a GGUF model": "Carregar um modelo GGUF",
 	"Upload files": "Carregar arquivos",
 	"Upload files": "Carregar arquivos",
 	"Upload Progress": "Progresso do Carregamento",
 	"Upload Progress": "Progresso do Carregamento",
@@ -431,6 +450,7 @@
 	"Version": "Versão",
 	"Version": "Versão",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Web": "Web",
 	"Web": "Web",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "Complementos WebUI",
 	"WebUI Add-ons": "Complementos WebUI",
 	"WebUI Settings": "Configurações WebUI",
 	"WebUI Settings": "Configurações WebUI",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "Escreva uma sugestão de prompt (por exemplo, Quem é você?)",
 	"Write a prompt suggestion (e.g. Who are you?)": "Escreva uma sugestão de prompt (por exemplo, Quem é você?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Escreva um resumo em 50 palavras que resuma [tópico ou palavra-chave].",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Escreva um resumo em 50 palavras que resuma [tópico ou palavra-chave].",
 	"You": "Você",
 	"You": "Você",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "Você é um assistente útil.",
 	"You're a helpful assistant.": "Você é um assistente útil.",
 	"You're now logged in.": "Você está conectado agora.",
 	"You're now logged in.": "Você está conectado agora.",
 	"Youtube": ""
 	"Youtube": ""

+ 26 - 4
src/lib/i18n/locales/pt-PT/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "Já tem uma conta?",
 	"Already have an account?": "Já tem uma conta?",
 	"an assistant": "um assistente",
 	"an assistant": "um assistente",
 	"and": "e",
 	"and": "e",
+	"and create a new shared link.": "",
 	"API Base URL": "URL Base da API",
 	"API Base URL": "URL Base da API",
 	"API Key": "Chave da API",
 	"API Key": "Chave da API",
 	"API Key created.": "",
 	"API Key created.": "",
@@ -54,8 +55,10 @@
 	"available!": "disponível!",
 	"available!": "disponível!",
 	"Back": "Voltar",
 	"Back": "Voltar",
 	"Bad Response": "",
 	"Bad Response": "",
+	"before": "",
 	"Being lazy": "",
 	"Being lazy": "",
 	"Builder Mode": "Modo de Construtor",
 	"Builder Mode": "Modo de Construtor",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "Cancelar",
 	"Cancel": "Cancelar",
 	"Categories": "Categorias",
 	"Categories": "Categorias",
 	"Change Password": "Alterar Senha",
 	"Change Password": "Alterar Senha",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "Sobreposição de Fragmento",
 	"Chunk Overlap": "Sobreposição de Fragmento",
 	"Chunk Params": "Parâmetros de Fragmento",
 	"Chunk Params": "Parâmetros de Fragmento",
 	"Chunk Size": "Tamanho do Fragmento",
 	"Chunk Size": "Tamanho do Fragmento",
+	"Citation": "",
 	"Click here for help.": "Clique aqui para obter ajuda.",
 	"Click here for help.": "Clique aqui para obter ajuda.",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "Clique aqui para verificar outros arquivos de modelo.",
 	"Click here to check other modelfiles.": "Clique aqui para verificar outros arquivos de modelo.",
 	"Click here to select": "Clique aqui para selecionar",
 	"Click here to select": "Clique aqui para selecionar",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Crie uma frase concisa de 3 a 5 palavras como cabeçalho para a seguinte consulta, aderindo estritamente ao limite de 3 a 5 palavras e evitando o uso da palavra 'título':",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Crie uma frase concisa de 3 a 5 palavras como cabeçalho para a seguinte consulta, aderindo estritamente ao limite de 3 a 5 palavras e evitando o uso da palavra 'título':",
 	"Create a modelfile": "Criar um arquivo de modelo",
 	"Create a modelfile": "Criar um arquivo de modelo",
 	"Create Account": "Criar Conta",
 	"Create Account": "Criar Conta",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "Criado em",
 	"Created at": "Criado em",
 	"Created At": "",
 	"Created At": "",
 	"Current Model": "Modelo Atual",
 	"Current Model": "Modelo Atual",
@@ -105,6 +112,7 @@
 	"Custom": "Personalizado",
 	"Custom": "Personalizado",
 	"Customize Ollama models for a specific purpose": "Personalize os modelos Ollama para um propósito específico",
 	"Customize Ollama models for a specific purpose": "Personalize os modelos Ollama para um propósito específico",
 	"Dark": "Escuro",
 	"Dark": "Escuro",
+	"Dashboard": "",
 	"Database": "Banco de dados",
 	"Database": "Banco de dados",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"Default": "Padrão",
 	"Default": "Padrão",
@@ -120,6 +128,7 @@
 	"Delete chat": "Excluir bate-papo",
 	"Delete chat": "Excluir bate-papo",
 	"Delete Chat": "",
 	"Delete Chat": "",
 	"Delete Chats": "Excluir Bate-papos",
 	"Delete Chats": "Excluir Bate-papos",
+	"delete this link": "",
 	"Delete User": "",
 	"Delete User": "",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} excluído",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} excluído",
 	"Deleted {{tagName}}": "",
 	"Deleted {{tagName}}": "",
@@ -146,6 +155,7 @@
 	"Edit Doc": "Editar Documento",
 	"Edit Doc": "Editar Documento",
 	"Edit User": "Editar Usuário",
 	"Edit User": "Editar Usuário",
 	"Email": "E-mail",
 	"Email": "E-mail",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "Ativar Histórico de Bate-papo",
 	"Enable Chat History": "Ativar Histórico de Bate-papo",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "Digite a sequência de parada",
 	"Enter stop sequence": "Digite a sequência de parada",
 	"Enter Top K": "Digite o Top K",
 	"Enter Top K": "Digite o Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Digite a URL (por exemplo, http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Digite a URL (por exemplo, http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "Digite seu E-mail",
 	"Enter Your Email": "Digite seu E-mail",
 	"Enter Your Full Name": "Digite seu Nome Completo",
 	"Enter Your Full Name": "Digite seu Nome Completo",
 	"Enter Your Password": "Digite sua Senha",
 	"Enter Your Password": "Digite sua Senha",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "Gerenciar Modelos Ollama",
 	"Manage Ollama Models": "Gerenciar Modelos Ollama",
 	"Max Tokens": "Máximo de Tokens",
 	"Max Tokens": "Máximo de Tokens",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Máximo de 3 modelos podem ser baixados simultaneamente. Tente novamente mais tarde.",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Máximo de 3 modelos podem ser baixados simultaneamente. Tente novamente mais tarde.",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "Mirostat",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Eta": "Mirostat Eta",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "Nomeie seu arquivo de modelo",
 	"Name your modelfile": "Nomeie seu arquivo de modelo",
 	"New Chat": "Novo Bate-papo",
 	"New Chat": "Novo Bate-papo",
 	"New Password": "Nova Senha",
 	"New Password": "Nova Senha",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "",
 	"Not factually correct": "",
 	"Not sure what to add?": "Não tem certeza do que adicionar?",
 	"Not sure what to add?": "Não tem certeza do que adicionar?",
 	"Not sure what to write? Switch to": "Não tem certeza do que escrever? Mude para",
 	"Not sure what to write? Switch to": "Não tem certeza do que escrever? Mude para",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "",
 	"OpenAI URL/Key required.": "",
 	"or": "ou",
 	"or": "ou",
 	"Other": "",
 	"Other": "",
+	"Overview": "",
 	"Parameters": "Parâmetros",
 	"Parameters": "Parâmetros",
 	"Password": "Senha",
 	"Password": "Senha",
 	"PDF document (.pdf)": "",
 	"PDF document (.pdf)": "",
@@ -300,6 +315,7 @@
 	"Prompt Content": "Conteúdo do Prompt",
 	"Prompt Content": "Conteúdo do Prompt",
 	"Prompt suggestions": "Sugestões de Prompt",
 	"Prompt suggestions": "Sugestões de Prompt",
 	"Prompts": "Prompts",
 	"Prompts": "Prompts",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "Extrair um modelo do Ollama.com",
 	"Pull a model from Ollama.com": "Extrair um modelo do Ollama.com",
 	"Pull Progress": "Progresso da Extração",
 	"Pull Progress": "Progresso da Extração",
 	"Query Params": "Parâmetros de Consulta",
 	"Query Params": "Parâmetros de Consulta",
@@ -312,13 +328,17 @@
 	"Regenerate": "",
 	"Regenerate": "",
 	"Release Notes": "Notas de Lançamento",
 	"Release Notes": "Notas de Lançamento",
 	"Remove": "",
 	"Remove": "",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "Repetir Últimos N",
 	"Repeat Last N": "Repetir Últimos N",
 	"Repeat Penalty": "Penalidade de Repetição",
 	"Repeat Penalty": "Penalidade de Repetição",
 	"Request Mode": "Modo de Solicitação",
 	"Request Mode": "Modo de Solicitação",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "Redefinir Armazenamento de Vetor",
 	"Reset Vector Storage": "Redefinir Armazenamento de Vetor",
 	"Response AutoCopy to Clipboard": "Cópia Automática da Resposta para a Área de Transferência",
 	"Response AutoCopy to Clipboard": "Cópia Automática da Resposta para a Área de Transferência",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "Função",
 	"Role": "Função",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
@@ -346,7 +366,9 @@
 	"Server connection verified": "Conexão com o servidor verificada",
 	"Server connection verified": "Conexão com o servidor verificada",
 	"Set as default": "Definir como padrão",
 	"Set as default": "Definir como padrão",
 	"Set Default Model": "Definir Modelo Padrão",
 	"Set Default Model": "Definir Modelo Padrão",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "Definir Tamanho da Imagem",
 	"Set Image Size": "Definir Tamanho da Imagem",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "Definir Etapas",
 	"Set Steps": "Definir Etapas",
 	"Set Title Auto-Generation Model": "Definir Modelo de Geração Automática de Título",
 	"Set Title Auto-Generation Model": "Definir Modelo de Geração Automática de Título",
 	"Set Voice": "Definir Voz",
 	"Set Voice": "Definir Voz",
@@ -365,6 +387,7 @@
 	"Sign Out": "Sair",
 	"Sign Out": "Sair",
 	"Sign up": "Inscrever-se",
 	"Sign up": "Inscrever-se",
 	"Signing in": "",
 	"Signing in": "",
+	"Source": "",
 	"Speech recognition error: {{error}}": "Erro de reconhecimento de fala: {{error}}",
 	"Speech recognition error: {{error}}": "Erro de reconhecimento de fala: {{error}}",
 	"Speech-to-Text Engine": "Mecanismo de Fala para Texto",
 	"Speech-to-Text Engine": "Mecanismo de Fala para Texto",
 	"SpeechRecognition API is not supported in this browser.": "A API SpeechRecognition não é suportada neste navegador.",
 	"SpeechRecognition API is not supported in this browser.": "A API SpeechRecognition não é suportada neste navegador.",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Opa! Houve um problema ao conectar-se a {{provider}}.",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Opa! Houve um problema ao conectar-se a {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipo de arquivo desconhecido '{{file_type}}', mas aceitando e tratando como texto simples",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Tipo de arquivo desconhecido '{{file_type}}', mas aceitando e tratando como texto simples",
 	"Update and Copy Link": "",
 	"Update and Copy Link": "",
-	"Update Embedding Model": "",
-	"Update embedding model (e.g. {{model}})": "",
 	"Update password": "Atualizar senha",
 	"Update password": "Atualizar senha",
-	"Update Reranking Model": "",
-	"Update reranking model (e.g. {{model}})": "",
 	"Upload a GGUF model": "Carregar um modelo GGUF",
 	"Upload a GGUF model": "Carregar um modelo GGUF",
 	"Upload files": "Carregar arquivos",
 	"Upload files": "Carregar arquivos",
 	"Upload Progress": "Progresso do Carregamento",
 	"Upload Progress": "Progresso do Carregamento",
@@ -431,6 +450,7 @@
 	"Version": "Versão",
 	"Version": "Versão",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Web": "Web",
 	"Web": "Web",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "Complementos WebUI",
 	"WebUI Add-ons": "Complementos WebUI",
 	"WebUI Settings": "Configurações WebUI",
 	"WebUI Settings": "Configurações WebUI",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "Escreva uma sugestão de prompt (por exemplo, Quem é você?)",
 	"Write a prompt suggestion (e.g. Who are you?)": "Escreva uma sugestão de prompt (por exemplo, Quem é você?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Escreva um resumo em 50 palavras que resuma [tópico ou palavra-chave].",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Escreva um resumo em 50 palavras que resuma [tópico ou palavra-chave].",
 	"You": "Você",
 	"You": "Você",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "Você é um assistente útil.",
 	"You're a helpful assistant.": "Você é um assistente útil.",
 	"You're now logged in.": "Você está conectado agora.",
 	"You're now logged in.": "Você está conectado agora.",
 	"Youtube": ""
 	"Youtube": ""

+ 26 - 4
src/lib/i18n/locales/ru-RU/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "у вас уже есть аккаунт?",
 	"Already have an account?": "у вас уже есть аккаунт?",
 	"an assistant": "ассистент",
 	"an assistant": "ассистент",
 	"and": "и",
 	"and": "и",
+	"and create a new shared link.": "",
 	"API Base URL": "Базовый адрес API",
 	"API Base URL": "Базовый адрес API",
 	"API Key": "Ключ API",
 	"API Key": "Ключ API",
 	"API Key created.": "",
 	"API Key created.": "",
@@ -54,8 +55,10 @@
 	"available!": "доступный!",
 	"available!": "доступный!",
 	"Back": "Назад",
 	"Back": "Назад",
 	"Bad Response": "",
 	"Bad Response": "",
+	"before": "",
 	"Being lazy": "",
 	"Being lazy": "",
 	"Builder Mode": "Режим конструктор",
 	"Builder Mode": "Режим конструктор",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "Аннулировать",
 	"Cancel": "Аннулировать",
 	"Categories": "Категории",
 	"Categories": "Категории",
 	"Change Password": "Изменить пароль",
 	"Change Password": "Изменить пароль",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "Перекрытие фрагментов",
 	"Chunk Overlap": "Перекрытие фрагментов",
 	"Chunk Params": "Параметры фрагментов",
 	"Chunk Params": "Параметры фрагментов",
 	"Chunk Size": "Размер фрагмента",
 	"Chunk Size": "Размер фрагмента",
+	"Citation": "",
 	"Click here for help.": "Нажмите здесь для помощь.",
 	"Click here for help.": "Нажмите здесь для помощь.",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "Нажмите тут чтобы проверить другие файлы моделей.",
 	"Click here to check other modelfiles.": "Нажмите тут чтобы проверить другие файлы моделей.",
 	"Click here to select": "Нажмите тут чтобы выберите",
 	"Click here to select": "Нажмите тут чтобы выберите",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "",
 	"Create a modelfile": "Создать модельный файл",
 	"Create a modelfile": "Создать модельный файл",
 	"Create Account": "Создать аккаунт",
 	"Create Account": "Создать аккаунт",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "Создано в",
 	"Created at": "Создано в",
 	"Created At": "",
 	"Created At": "",
 	"Current Model": "Текущая модель",
 	"Current Model": "Текущая модель",
@@ -105,6 +112,7 @@
 	"Custom": "Пользовательский",
 	"Custom": "Пользовательский",
 	"Customize Ollama models for a specific purpose": "Настроить модели Ollama для конкретной цели",
 	"Customize Ollama models for a specific purpose": "Настроить модели Ollama для конкретной цели",
 	"Dark": "Тёмный",
 	"Dark": "Тёмный",
+	"Dashboard": "",
 	"Database": "База данных",
 	"Database": "База данных",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"Default": "По умолчанию",
 	"Default": "По умолчанию",
@@ -120,6 +128,7 @@
 	"Delete chat": "Удалить чат",
 	"Delete chat": "Удалить чат",
 	"Delete Chat": "",
 	"Delete Chat": "",
 	"Delete Chats": "Удалить чаты",
 	"Delete Chats": "Удалить чаты",
+	"delete this link": "",
 	"Delete User": "",
 	"Delete User": "",
 	"Deleted {{deleteModelTag}}": "Удалено {{deleteModelTag}}",
 	"Deleted {{deleteModelTag}}": "Удалено {{deleteModelTag}}",
 	"Deleted {{tagName}}": "",
 	"Deleted {{tagName}}": "",
@@ -146,6 +155,7 @@
 	"Edit Doc": "Редактировать документ",
 	"Edit Doc": "Редактировать документ",
 	"Edit User": "Редактировать пользователя",
 	"Edit User": "Редактировать пользователя",
 	"Email": "Электронная почта",
 	"Email": "Электронная почта",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "Включить историю чата",
 	"Enable Chat History": "Включить историю чата",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "Введите последовательность остановки",
 	"Enter stop sequence": "Введите последовательность остановки",
 	"Enter Top K": "Введите Top K",
 	"Enter Top K": "Введите Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Введите URL-адрес (например, http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Введите URL-адрес (например, http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "Введите вашу электронную почту",
 	"Enter Your Email": "Введите вашу электронную почту",
 	"Enter Your Full Name": "Введите ваше полное имя",
 	"Enter Your Full Name": "Введите ваше полное имя",
 	"Enter Your Password": "Введите ваш пароль",
 	"Enter Your Password": "Введите ваш пароль",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "Управление моделями Ollama",
 	"Manage Ollama Models": "Управление моделями Ollama",
 	"Max Tokens": "Максимальное количество токенов",
 	"Max Tokens": "Максимальное количество токенов",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Максимальное количество моделей для загрузки одновременно - 3. Пожалуйста, попробуйте позже.",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Максимальное количество моделей для загрузки одновременно - 3. Пожалуйста, попробуйте позже.",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "Mirostat",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Eta": "Mirostat Eta",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "Назовите свой файл модели",
 	"Name your modelfile": "Назовите свой файл модели",
 	"New Chat": "Новый чат",
 	"New Chat": "Новый чат",
 	"New Password": "Новый пароль",
 	"New Password": "Новый пароль",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "",
 	"Not factually correct": "",
 	"Not sure what to add?": "Не уверены, что добавить?",
 	"Not sure what to add?": "Не уверены, что добавить?",
 	"Not sure what to write? Switch to": "Не уверены, что написать? Переключитесь на",
 	"Not sure what to write? Switch to": "Не уверены, что написать? Переключитесь на",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "",
 	"OpenAI URL/Key required.": "",
 	"or": "или",
 	"or": "или",
 	"Other": "",
 	"Other": "",
+	"Overview": "",
 	"Parameters": "Параметры",
 	"Parameters": "Параметры",
 	"Password": "Пароль",
 	"Password": "Пароль",
 	"PDF document (.pdf)": "",
 	"PDF document (.pdf)": "",
@@ -300,6 +315,7 @@
 	"Prompt Content": "Содержание промпта",
 	"Prompt Content": "Содержание промпта",
 	"Prompt suggestions": "Предложения промптов",
 	"Prompt suggestions": "Предложения промптов",
 	"Prompts": "Промпты",
 	"Prompts": "Промпты",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "Загрузить модель с Ollama.com",
 	"Pull a model from Ollama.com": "Загрузить модель с Ollama.com",
 	"Pull Progress": "Прогресс загрузки",
 	"Pull Progress": "Прогресс загрузки",
 	"Query Params": "Параметры запроса",
 	"Query Params": "Параметры запроса",
@@ -312,13 +328,17 @@
 	"Regenerate": "",
 	"Regenerate": "",
 	"Release Notes": "Примечания к выпуску",
 	"Release Notes": "Примечания к выпуску",
 	"Remove": "",
 	"Remove": "",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "Повторить последние N",
 	"Repeat Last N": "Повторить последние N",
 	"Repeat Penalty": "Штраф за повтор",
 	"Repeat Penalty": "Штраф за повтор",
 	"Request Mode": "Режим запроса",
 	"Request Mode": "Режим запроса",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "Сбросить векторное хранилище",
 	"Reset Vector Storage": "Сбросить векторное хранилище",
 	"Response AutoCopy to Clipboard": "Автоматическое копирование ответа в буфер обмена",
 	"Response AutoCopy to Clipboard": "Автоматическое копирование ответа в буфер обмена",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "Роль",
 	"Role": "Роль",
 	"Rosé Pine": "Розовое сосновое дерево",
 	"Rosé Pine": "Розовое сосновое дерево",
 	"Rosé Pine Dawn": "Розовое сосновое дерево рассвет",
 	"Rosé Pine Dawn": "Розовое сосновое дерево рассвет",
@@ -346,7 +366,9 @@
 	"Server connection verified": "Соединение с сервером проверено",
 	"Server connection verified": "Соединение с сервером проверено",
 	"Set as default": "Установить по умолчанию",
 	"Set as default": "Установить по умолчанию",
 	"Set Default Model": "Установить модель по умолчанию",
 	"Set Default Model": "Установить модель по умолчанию",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "Установить размер изображения",
 	"Set Image Size": "Установить размер изображения",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "Установить шаги",
 	"Set Steps": "Установить шаги",
 	"Set Title Auto-Generation Model": "Установить модель автогенерации заголовков",
 	"Set Title Auto-Generation Model": "Установить модель автогенерации заголовков",
 	"Set Voice": "Установить голос",
 	"Set Voice": "Установить голос",
@@ -365,6 +387,7 @@
 	"Sign Out": "Выход",
 	"Sign Out": "Выход",
 	"Sign up": "зарегистрировать",
 	"Sign up": "зарегистрировать",
 	"Signing in": "",
 	"Signing in": "",
+	"Source": "",
 	"Speech recognition error: {{error}}": "Ошибка распознавания речи: {{error}}",
 	"Speech recognition error: {{error}}": "Ошибка распознавания речи: {{error}}",
 	"Speech-to-Text Engine": "Система распознавания речи",
 	"Speech-to-Text Engine": "Система распознавания речи",
 	"SpeechRecognition API is not supported in this browser.": "API распознавания речи не поддерживается в этом браузере.",
 	"SpeechRecognition API is not supported in this browser.": "API распознавания речи не поддерживается в этом браузере.",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Упс! Возникла проблема подключения к {{provider}}.",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Упс! Возникла проблема подключения к {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Неизвестный тип файла '{{file_type}}', но принимается и обрабатывается как обычный текст",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Неизвестный тип файла '{{file_type}}', но принимается и обрабатывается как обычный текст",
 	"Update and Copy Link": "",
 	"Update and Copy Link": "",
-	"Update Embedding Model": "",
-	"Update embedding model (e.g. {{model}})": "",
 	"Update password": "Обновить пароль",
 	"Update password": "Обновить пароль",
-	"Update Reranking Model": "",
-	"Update reranking model (e.g. {{model}})": "",
 	"Upload a GGUF model": "Загрузить модель GGUF",
 	"Upload a GGUF model": "Загрузить модель GGUF",
 	"Upload files": "Загрузить файлы",
 	"Upload files": "Загрузить файлы",
 	"Upload Progress": "Прогресс загрузки",
 	"Upload Progress": "Прогресс загрузки",
@@ -431,6 +450,7 @@
 	"Version": "Версия",
 	"Version": "Версия",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Web": "Веб",
 	"Web": "Веб",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "Дополнения для WebUI",
 	"WebUI Add-ons": "Дополнения для WebUI",
 	"WebUI Settings": "Настройки WebUI",
 	"WebUI Settings": "Настройки WebUI",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "Напишите предложение промпта (например, Кто вы?)",
 	"Write a prompt suggestion (e.g. Who are you?)": "Напишите предложение промпта (например, Кто вы?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Напишите резюме в 50 словах, которое кратко описывает [тему или ключевое слово].",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Напишите резюме в 50 словах, которое кратко описывает [тему или ключевое слово].",
 	"You": "Вы",
 	"You": "Вы",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "Вы полезный ассистент.",
 	"You're a helpful assistant.": "Вы полезный ассистент.",
 	"You're now logged in.": "Вы вошли в систему.",
 	"You're now logged in.": "Вы вошли в систему.",
 	"Youtube": ""
 	"Youtube": ""

+ 26 - 4
src/lib/i18n/locales/sv-SE/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "Har du redan ett konto?",
 	"Already have an account?": "Har du redan ett konto?",
 	"an assistant": "en assistent",
 	"an assistant": "en assistent",
 	"and": "och",
 	"and": "och",
+	"and create a new shared link.": "",
 	"API Base URL": "API-bas-URL",
 	"API Base URL": "API-bas-URL",
 	"API Key": "API-nyckel",
 	"API Key": "API-nyckel",
 	"API Key created.": "",
 	"API Key created.": "",
@@ -54,8 +55,10 @@
 	"available!": "tillgänglig!",
 	"available!": "tillgänglig!",
 	"Back": "Tillbaka",
 	"Back": "Tillbaka",
 	"Bad Response": "",
 	"Bad Response": "",
+	"before": "",
 	"Being lazy": "",
 	"Being lazy": "",
 	"Builder Mode": "Byggarläge",
 	"Builder Mode": "Byggarläge",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "Avbryt",
 	"Cancel": "Avbryt",
 	"Categories": "Kategorier",
 	"Categories": "Kategorier",
 	"Change Password": "Ändra lösenord",
 	"Change Password": "Ändra lösenord",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "Överlappning",
 	"Chunk Overlap": "Överlappning",
 	"Chunk Params": "Chunk-parametrar",
 	"Chunk Params": "Chunk-parametrar",
 	"Chunk Size": "Chunk-storlek",
 	"Chunk Size": "Chunk-storlek",
+	"Citation": "",
 	"Click here for help.": "Klicka här för hjälp.",
 	"Click here for help.": "Klicka här för hjälp.",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "Klicka här för att kontrollera andra modelfiler.",
 	"Click here to check other modelfiles.": "Klicka här för att kontrollera andra modelfiler.",
 	"Click here to select": "Klicka här för att välja",
 	"Click here to select": "Klicka här för att välja",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Skapa en kort, 3-5 ords fras som rubrik för följande fråga, strikt följa 3-5 ordsgränsen och undvika användning av ordet 'titel':",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Skapa en kort, 3-5 ords fras som rubrik för följande fråga, strikt följa 3-5 ordsgränsen och undvika användning av ordet 'titel':",
 	"Create a modelfile": "Skapa en modelfil",
 	"Create a modelfile": "Skapa en modelfil",
 	"Create Account": "Skapa konto",
 	"Create Account": "Skapa konto",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "Skapad",
 	"Created at": "Skapad",
 	"Created At": "",
 	"Created At": "",
 	"Current Model": "Aktuell modell",
 	"Current Model": "Aktuell modell",
@@ -105,6 +112,7 @@
 	"Custom": "Anpassad",
 	"Custom": "Anpassad",
 	"Customize Ollama models for a specific purpose": "Anpassa Ollama-modeller för ett specifikt ändamål",
 	"Customize Ollama models for a specific purpose": "Anpassa Ollama-modeller för ett specifikt ändamål",
 	"Dark": "Mörk",
 	"Dark": "Mörk",
+	"Dashboard": "",
 	"Database": "Databas",
 	"Database": "Databas",
 	"DD/MM/YYYY HH:mm": "DD/MM/ÅÅÅÅ TT:mm",
 	"DD/MM/YYYY HH:mm": "DD/MM/ÅÅÅÅ TT:mm",
 	"Default": "Standard",
 	"Default": "Standard",
@@ -120,6 +128,7 @@
 	"Delete chat": "Radera chatt",
 	"Delete chat": "Radera chatt",
 	"Delete Chat": "",
 	"Delete Chat": "",
 	"Delete Chats": "Radera chattar",
 	"Delete Chats": "Radera chattar",
+	"delete this link": "",
 	"Delete User": "",
 	"Delete User": "",
 	"Deleted {{deleteModelTag}}": "Raderad {{deleteModelTag}}",
 	"Deleted {{deleteModelTag}}": "Raderad {{deleteModelTag}}",
 	"Deleted {{tagName}}": "",
 	"Deleted {{tagName}}": "",
@@ -146,6 +155,7 @@
 	"Edit Doc": "Redigera dokument",
 	"Edit Doc": "Redigera dokument",
 	"Edit User": "Redigera användare",
 	"Edit User": "Redigera användare",
 	"Email": "E-post",
 	"Email": "E-post",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "Aktivera chatthistorik",
 	"Enable Chat History": "Aktivera chatthistorik",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "Ange stoppsekvens",
 	"Enter stop sequence": "Ange stoppsekvens",
 	"Enter Top K": "Ange Top K",
 	"Enter Top K": "Ange Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Ange URL (t.ex. http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Ange URL (t.ex. http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "Ange din e-post",
 	"Enter Your Email": "Ange din e-post",
 	"Enter Your Full Name": "Ange ditt fullständiga namn",
 	"Enter Your Full Name": "Ange ditt fullständiga namn",
 	"Enter Your Password": "Ange ditt lösenord",
 	"Enter Your Password": "Ange ditt lösenord",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "Hantera Ollama-modeller",
 	"Manage Ollama Models": "Hantera Ollama-modeller",
 	"Max Tokens": "Max antal tokens",
 	"Max Tokens": "Max antal tokens",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Högst 3 modeller kan laddas ner samtidigt. Vänligen försök igen senare.",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Högst 3 modeller kan laddas ner samtidigt. Vänligen försök igen senare.",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "Mirostat",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Eta": "Mirostat Eta",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "Namnge din modelfil",
 	"Name your modelfile": "Namnge din modelfil",
 	"New Chat": "Ny chatt",
 	"New Chat": "Ny chatt",
 	"New Password": "Nytt lösenord",
 	"New Password": "Nytt lösenord",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "",
 	"Not factually correct": "",
 	"Not sure what to add?": "Inte säker på vad du ska lägga till?",
 	"Not sure what to add?": "Inte säker på vad du ska lägga till?",
 	"Not sure what to write? Switch to": "Inte säker på vad du ska skriva? Växla till",
 	"Not sure what to write? Switch to": "Inte säker på vad du ska skriva? Växla till",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "",
 	"OpenAI URL/Key required.": "",
 	"or": "eller",
 	"or": "eller",
 	"Other": "",
 	"Other": "",
+	"Overview": "",
 	"Parameters": "Parametrar",
 	"Parameters": "Parametrar",
 	"Password": "Lösenord",
 	"Password": "Lösenord",
 	"PDF document (.pdf)": "",
 	"PDF document (.pdf)": "",
@@ -300,6 +315,7 @@
 	"Prompt Content": "Promptinnehåll",
 	"Prompt Content": "Promptinnehåll",
 	"Prompt suggestions": "Förslag",
 	"Prompt suggestions": "Förslag",
 	"Prompts": "Prompts",
 	"Prompts": "Prompts",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "Dra en modell från Ollama.com",
 	"Pull a model from Ollama.com": "Dra en modell från Ollama.com",
 	"Pull Progress": "Dra framsteg",
 	"Pull Progress": "Dra framsteg",
 	"Query Params": "Frågeparametrar",
 	"Query Params": "Frågeparametrar",
@@ -312,13 +328,17 @@
 	"Regenerate": "",
 	"Regenerate": "",
 	"Release Notes": "Versionsinformation",
 	"Release Notes": "Versionsinformation",
 	"Remove": "",
 	"Remove": "",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "Upprepa senaste N",
 	"Repeat Last N": "Upprepa senaste N",
 	"Repeat Penalty": "Upprepa straff",
 	"Repeat Penalty": "Upprepa straff",
 	"Request Mode": "Begär läge",
 	"Request Mode": "Begär läge",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "Återställ vektorlager",
 	"Reset Vector Storage": "Återställ vektorlager",
 	"Response AutoCopy to Clipboard": "Svara AutoCopy till urklipp",
 	"Response AutoCopy to Clipboard": "Svara AutoCopy till urklipp",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "Roll",
 	"Role": "Roll",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
@@ -346,7 +366,9 @@
 	"Server connection verified": "Serveranslutning verifierad",
 	"Server connection verified": "Serveranslutning verifierad",
 	"Set as default": "Ange som standard",
 	"Set as default": "Ange som standard",
 	"Set Default Model": "Ange standardmodell",
 	"Set Default Model": "Ange standardmodell",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "Ange bildstorlek",
 	"Set Image Size": "Ange bildstorlek",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "Ange steg",
 	"Set Steps": "Ange steg",
 	"Set Title Auto-Generation Model": "Ange modell för automatisk generering av titel",
 	"Set Title Auto-Generation Model": "Ange modell för automatisk generering av titel",
 	"Set Voice": "Ange röst",
 	"Set Voice": "Ange röst",
@@ -365,6 +387,7 @@
 	"Sign Out": "Logga ut",
 	"Sign Out": "Logga ut",
 	"Sign up": "Registrera dig",
 	"Sign up": "Registrera dig",
 	"Signing in": "",
 	"Signing in": "",
+	"Source": "",
 	"Speech recognition error: {{error}}": "Fel vid taligenkänning: {{error}}",
 	"Speech recognition error: {{error}}": "Fel vid taligenkänning: {{error}}",
 	"Speech-to-Text Engine": "Tal-till-text-motor",
 	"Speech-to-Text Engine": "Tal-till-text-motor",
 	"SpeechRecognition API is not supported in this browser.": "SpeechRecognition API stöds inte i denna webbläsare.",
 	"SpeechRecognition API is not supported in this browser.": "SpeechRecognition API stöds inte i denna webbläsare.",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Oj då! Det uppstod ett problem med att ansluta till {{provider}}.",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Oj då! Det uppstod ett problem med att ansluta till {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Okänd filtyp '{{file_type}}', men accepterar och behandlar som vanlig text",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Okänd filtyp '{{file_type}}', men accepterar och behandlar som vanlig text",
 	"Update and Copy Link": "",
 	"Update and Copy Link": "",
-	"Update Embedding Model": "",
-	"Update embedding model (e.g. {{model}})": "",
 	"Update password": "Uppdatera lösenord",
 	"Update password": "Uppdatera lösenord",
-	"Update Reranking Model": "",
-	"Update reranking model (e.g. {{model}})": "",
 	"Upload a GGUF model": "Ladda upp en GGUF-modell",
 	"Upload a GGUF model": "Ladda upp en GGUF-modell",
 	"Upload files": "Ladda upp filer",
 	"Upload files": "Ladda upp filer",
 	"Upload Progress": "Uppladdningsförlopp",
 	"Upload Progress": "Uppladdningsförlopp",
@@ -431,6 +450,7 @@
 	"Version": "Version",
 	"Version": "Version",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Web": "Webb",
 	"Web": "Webb",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "WebUI-tillägg",
 	"WebUI Add-ons": "WebUI-tillägg",
 	"WebUI Settings": "WebUI-inställningar",
 	"WebUI Settings": "WebUI-inställningar",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "Skriv ett förslag (t.ex. Vem är du?)",
 	"Write a prompt suggestion (e.g. Who are you?)": "Skriv ett förslag (t.ex. Vem är du?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Skriv en sammanfattning på 50 ord som sammanfattar [ämne eller nyckelord].",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Skriv en sammanfattning på 50 ord som sammanfattar [ämne eller nyckelord].",
 	"You": "Du",
 	"You": "Du",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "Du är en hjälpsam assistent.",
 	"You're a helpful assistant.": "Du är en hjälpsam assistent.",
 	"You're now logged in.": "Du är nu inloggad.",
 	"You're now logged in.": "Du är nu inloggad.",
 	"Youtube": ""
 	"Youtube": ""

+ 26 - 4
src/lib/i18n/locales/tr-TR/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "Zaten bir hesabınız mı var?",
 	"Already have an account?": "Zaten bir hesabınız mı var?",
 	"an assistant": "bir asistan",
 	"an assistant": "bir asistan",
 	"and": "ve",
 	"and": "ve",
+	"and create a new shared link.": "",
 	"API Base URL": "API Temel URL",
 	"API Base URL": "API Temel URL",
 	"API Key": "API Anahtarı",
 	"API Key": "API Anahtarı",
 	"API Key created.": "API Anahtarı oluşturuldu.",
 	"API Key created.": "API Anahtarı oluşturuldu.",
@@ -54,8 +55,10 @@
 	"available!": "mevcut!",
 	"available!": "mevcut!",
 	"Back": "Geri",
 	"Back": "Geri",
 	"Bad Response": "Kötü Yanıt",
 	"Bad Response": "Kötü Yanıt",
+	"before": "",
 	"Being lazy": "Tembelleşiyor",
 	"Being lazy": "Tembelleşiyor",
 	"Builder Mode": "Oluşturucu Modu",
 	"Builder Mode": "Oluşturucu Modu",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "İptal",
 	"Cancel": "İptal",
 	"Categories": "Kategoriler",
 	"Categories": "Kategoriler",
 	"Change Password": "Parola Değiştir",
 	"Change Password": "Parola Değiştir",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "Chunk Çakışması",
 	"Chunk Overlap": "Chunk Çakışması",
 	"Chunk Params": "Chunk Parametreleri",
 	"Chunk Params": "Chunk Parametreleri",
 	"Chunk Size": "Chunk Boyutu",
 	"Chunk Size": "Chunk Boyutu",
+	"Citation": "",
 	"Click here for help.": "Yardım için buraya tıklayın.",
 	"Click here for help.": "Yardım için buraya tıklayın.",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "Diğer model dosyalarını kontrol etmek için buraya tıklayın.",
 	"Click here to check other modelfiles.": "Diğer model dosyalarını kontrol etmek için buraya tıklayın.",
 	"Click here to select": "Seçmek için buraya tıklayın",
 	"Click here to select": "Seçmek için buraya tıklayın",
 	"Click here to select a csv file.": "Bir CSV dosyası seçmek için buraya tıklayın.",
 	"Click here to select a csv file.": "Bir CSV dosyası seçmek için buraya tıklayın.",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Aşağıdaki sorgu için başlık olarak 3-5 kelimelik kısa ve öz bir ifade oluşturun, 3-5 kelime sınırına kesinlikle uyun ve 'başlık' kelimesini kullanmaktan kaçının:",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Aşağıdaki sorgu için başlık olarak 3-5 kelimelik kısa ve öz bir ifade oluşturun, 3-5 kelime sınırına kesinlikle uyun ve 'başlık' kelimesini kullanmaktan kaçının:",
 	"Create a modelfile": "Bir model dosyası oluştur",
 	"Create a modelfile": "Bir model dosyası oluştur",
 	"Create Account": "Hesap Oluştur",
 	"Create Account": "Hesap Oluştur",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "Oluşturulma tarihi",
 	"Created at": "Oluşturulma tarihi",
 	"Created At": "Şu Tarihte Oluşturuldu:",
 	"Created At": "Şu Tarihte Oluşturuldu:",
 	"Current Model": "Mevcut Model",
 	"Current Model": "Mevcut Model",
@@ -105,6 +112,7 @@
 	"Custom": "Özel",
 	"Custom": "Özel",
 	"Customize Ollama models for a specific purpose": "Ollama modellerini belirli bir amaç için özelleştirin",
 	"Customize Ollama models for a specific purpose": "Ollama modellerini belirli bir amaç için özelleştirin",
 	"Dark": "Koyu",
 	"Dark": "Koyu",
+	"Dashboard": "",
 	"Database": "Veritabanı",
 	"Database": "Veritabanı",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"Default": "Varsayılan",
 	"Default": "Varsayılan",
@@ -120,6 +128,7 @@
 	"Delete chat": "Sohbeti sil",
 	"Delete chat": "Sohbeti sil",
 	"Delete Chat": "Sohbeti Sil",
 	"Delete Chat": "Sohbeti Sil",
 	"Delete Chats": "Sohbetleri Sil",
 	"Delete Chats": "Sohbetleri Sil",
+	"delete this link": "",
 	"Delete User": "Kullanıcıyı Sil",
 	"Delete User": "Kullanıcıyı Sil",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} silindi",
 	"Deleted {{deleteModelTag}}": "{{deleteModelTag}} silindi",
 	"Deleted {{tagName}}": "{{tagName}} silindi",
 	"Deleted {{tagName}}": "{{tagName}} silindi",
@@ -146,6 +155,7 @@
 	"Edit Doc": "Belgeyi Düzenle",
 	"Edit Doc": "Belgeyi Düzenle",
 	"Edit User": "Kullanıcıyı Düzenle",
 	"Edit User": "Kullanıcıyı Düzenle",
 	"Email": "E-posta",
 	"Email": "E-posta",
+	"Embedding Model": "",
 	"Embedding Model Engine": "Gömme Modeli Motoru",
 	"Embedding Model Engine": "Gömme Modeli Motoru",
 	"Embedding model set to \"{{embedding_model}}\"": "Gömme modeli \"{{embedding_model}}\" olarak ayarlandı",
 	"Embedding model set to \"{{embedding_model}}\"": "Gömme modeli \"{{embedding_model}}\" olarak ayarlandı",
 	"Enable Chat History": "Sohbet Geçmişini Etkinleştir",
 	"Enable Chat History": "Sohbet Geçmişini Etkinleştir",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "Durdurma dizisini girin",
 	"Enter stop sequence": "Durdurma dizisini girin",
 	"Enter Top K": "Top K'yı girin",
 	"Enter Top K": "Top K'yı girin",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "URL'yi Girin (örn. http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "URL'yi Girin (örn. http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "E-postanızı Girin",
 	"Enter Your Email": "E-postanızı Girin",
 	"Enter Your Full Name": "Tam Adınızı Girin",
 	"Enter Your Full Name": "Tam Adınızı Girin",
 	"Enter Your Password": "Parolanızı Girin",
 	"Enter Your Password": "Parolanızı Girin",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "Ollama Modellerini Yönet",
 	"Manage Ollama Models": "Ollama Modellerini Yönet",
 	"Max Tokens": "Maksimum Token",
 	"Max Tokens": "Maksimum Token",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Aynı anda en fazla 3 model indirilebilir. Lütfen daha sonra tekrar deneyin.",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Aynı anda en fazla 3 model indirilebilir. Lütfen daha sonra tekrar deneyin.",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "Minimum Skor",
 	"Minimum Score": "Minimum Skor",
 	"Mirostat": "Mirostat",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Eta": "Mirostat Eta",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "Model dosyanıza ad verin",
 	"Name your modelfile": "Model dosyanıza ad verin",
 	"New Chat": "Yeni Sohbet",
 	"New Chat": "Yeni Sohbet",
 	"New Password": "Yeni Parola",
 	"New Password": "Yeni Parola",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "Gerçeklere göre doğru değil",
 	"Not factually correct": "Gerçeklere göre doğru değil",
 	"Not sure what to add?": "Ne ekleyeceğinizden emin değil misiniz?",
 	"Not sure what to add?": "Ne ekleyeceğinizden emin değil misiniz?",
 	"Not sure what to write? Switch to": "Ne yazacağınızdan emin değil misiniz? Şuraya geçin",
 	"Not sure what to write? Switch to": "Ne yazacağınızdan emin değil misiniz? Şuraya geçin",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "OpenAI URL/Anahtar gereklidir.",
 	"OpenAI URL/Key required.": "OpenAI URL/Anahtar gereklidir.",
 	"or": "veya",
 	"or": "veya",
 	"Other": "Diğer",
 	"Other": "Diğer",
+	"Overview": "",
 	"Parameters": "Parametreler",
 	"Parameters": "Parametreler",
 	"Password": "Parola",
 	"Password": "Parola",
 	"PDF document (.pdf)": "PDF belgesi (.pdf)",
 	"PDF document (.pdf)": "PDF belgesi (.pdf)",
@@ -300,6 +315,7 @@
 	"Prompt Content": "Prompt İçeriği",
 	"Prompt Content": "Prompt İçeriği",
 	"Prompt suggestions": "Prompt önerileri",
 	"Prompt suggestions": "Prompt önerileri",
 	"Prompts": "Promptlar",
 	"Prompts": "Promptlar",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "Ollama.com'dan bir model çekin",
 	"Pull a model from Ollama.com": "Ollama.com'dan bir model çekin",
 	"Pull Progress": "Çekme İlerlemesi",
 	"Pull Progress": "Çekme İlerlemesi",
 	"Query Params": "Sorgu Parametreleri",
 	"Query Params": "Sorgu Parametreleri",
@@ -312,13 +328,17 @@
 	"Regenerate": "Tekrar Oluştur",
 	"Regenerate": "Tekrar Oluştur",
 	"Release Notes": "Sürüm Notları",
 	"Release Notes": "Sürüm Notları",
 	"Remove": "Kaldır",
 	"Remove": "Kaldır",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "Son N'yi Tekrar Et",
 	"Repeat Last N": "Son N'yi Tekrar Et",
 	"Repeat Penalty": "Tekrar Cezası",
 	"Repeat Penalty": "Tekrar Cezası",
 	"Request Mode": "İstek Modu",
 	"Request Mode": "İstek Modu",
+	"Reranking Model": "",
 	"Reranking model disabled": "Yeniden sıralama modeli devre dışı bırakıldı",
 	"Reranking model disabled": "Yeniden sıralama modeli devre dışı bırakıldı",
 	"Reranking model set to \"{{reranking_model}}\"": "Yeniden sıralama modeli \"{{reranking_model}}\" olarak ayarlandı",
 	"Reranking model set to \"{{reranking_model}}\"": "Yeniden sıralama modeli \"{{reranking_model}}\" olarak ayarlandı",
 	"Reset Vector Storage": "Vektör Depolamayı Sıfırla",
 	"Reset Vector Storage": "Vektör Depolamayı Sıfırla",
 	"Response AutoCopy to Clipboard": "Yanıtı Panoya Otomatik Kopyala",
 	"Response AutoCopy to Clipboard": "Yanıtı Panoya Otomatik Kopyala",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "Rol",
 	"Role": "Rol",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
@@ -346,7 +366,9 @@
 	"Server connection verified": "Sunucu bağlantısı doğrulandı",
 	"Server connection verified": "Sunucu bağlantısı doğrulandı",
 	"Set as default": "Varsayılan olarak ayarla",
 	"Set as default": "Varsayılan olarak ayarla",
 	"Set Default Model": "Varsayılan Modeli Ayarla",
 	"Set Default Model": "Varsayılan Modeli Ayarla",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "Görüntü Boyutunu Ayarla",
 	"Set Image Size": "Görüntü Boyutunu Ayarla",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "Adımları Ayarla",
 	"Set Steps": "Adımları Ayarla",
 	"Set Title Auto-Generation Model": "Otomatik Başlık Oluşturma Modelini Ayarla",
 	"Set Title Auto-Generation Model": "Otomatik Başlık Oluşturma Modelini Ayarla",
 	"Set Voice": "Ses Ayarla",
 	"Set Voice": "Ses Ayarla",
@@ -365,6 +387,7 @@
 	"Sign Out": "Çıkış Yap",
 	"Sign Out": "Çıkış Yap",
 	"Sign up": "Kaydol",
 	"Sign up": "Kaydol",
 	"Signing in": "Oturum açma",
 	"Signing in": "Oturum açma",
+	"Source": "",
 	"Speech recognition error: {{error}}": "Konuşma tanıma hatası: {{error}}",
 	"Speech recognition error: {{error}}": "Konuşma tanıma hatası: {{error}}",
 	"Speech-to-Text Engine": "Konuşmadan Metne Motoru",
 	"Speech-to-Text Engine": "Konuşmadan Metne Motoru",
 	"SpeechRecognition API is not supported in this browser.": "SpeechRecognition API bu tarayıcıda desteklenmiyor.",
 	"SpeechRecognition API is not supported in this browser.": "SpeechRecognition API bu tarayıcıda desteklenmiyor.",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Ah! {{provider}}'a bağlanırken bir sorun oluştu.",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Ah! {{provider}}'a bağlanırken bir sorun oluştu.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Bilinmeyen Dosya Türü '{{file_type}}', ancak düz metin olarak kabul ediliyor ve işleniyor",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Bilinmeyen Dosya Türü '{{file_type}}', ancak düz metin olarak kabul ediliyor ve işleniyor",
 	"Update and Copy Link": "Güncelle ve Bağlantıyı Kopyala",
 	"Update and Copy Link": "Güncelle ve Bağlantıyı Kopyala",
-	"Update Embedding Model": "Gömme Modelini Güncelle",
-	"Update embedding model (e.g. {{model}})": "Gömme modelini güncelle (örn. {{model}})",
 	"Update password": "Parolayı Güncelle",
 	"Update password": "Parolayı Güncelle",
-	"Update Reranking Model": "Yeniden Sıralama Modelini Güncelle",
-	"Update reranking model (e.g. {{model}})": "Yeniden sıralama modelini güncelleyin (örn. {{model}})",
 	"Upload a GGUF model": "Bir GGUF modeli yükle",
 	"Upload a GGUF model": "Bir GGUF modeli yükle",
 	"Upload files": "Dosyaları Yükle",
 	"Upload files": "Dosyaları Yükle",
 	"Upload Progress": "Yükleme İlerlemesi",
 	"Upload Progress": "Yükleme İlerlemesi",
@@ -431,6 +450,7 @@
 	"Version": "Sürüm",
 	"Version": "Sürüm",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Uyarı: Gömme modelinizi günceller veya değiştirirseniz, tüm belgeleri yeniden içe aktarmanız gerekecektir.",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "Uyarı: Gömme modelinizi günceller veya değiştirirseniz, tüm belgeleri yeniden içe aktarmanız gerekecektir.",
 	"Web": "Web",
 	"Web": "Web",
+	"Web Params": "",
 	"Webhook URL": "Webhook URL",
 	"Webhook URL": "Webhook URL",
 	"WebUI Add-ons": "WebUI Eklentileri",
 	"WebUI Add-ons": "WebUI Eklentileri",
 	"WebUI Settings": "WebUI Ayarları",
 	"WebUI Settings": "WebUI Ayarları",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "Bir prompt önerisi yazın (örn. Sen kimsin?)",
 	"Write a prompt suggestion (e.g. Who are you?)": "Bir prompt önerisi yazın (örn. Sen kimsin?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "[Konuyu veya anahtar kelimeyi] özetleyen 50 kelimelik bir özet yazın.",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "[Konuyu veya anahtar kelimeyi] özetleyen 50 kelimelik bir özet yazın.",
 	"You": "Siz",
 	"You": "Siz",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "Sen yardımcı bir asistansın.",
 	"You're a helpful assistant.": "Sen yardımcı bir asistansın.",
 	"You're now logged in.": "Şimdi oturum açtınız.",
 	"You're now logged in.": "Şimdi oturum açtınız.",
 	"Youtube": "Youtube"
 	"Youtube": "Youtube"

+ 26 - 4
src/lib/i18n/locales/uk-UA/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "Вже є обліковий запис?",
 	"Already have an account?": "Вже є обліковий запис?",
 	"an assistant": "асистента",
 	"an assistant": "асистента",
 	"and": "та",
 	"and": "та",
+	"and create a new shared link.": "",
 	"API Base URL": "Базова адреса URL API",
 	"API Base URL": "Базова адреса URL API",
 	"API Key": "Ключ API",
 	"API Key": "Ключ API",
 	"API Key created.": "",
 	"API Key created.": "",
@@ -54,8 +55,10 @@
 	"available!": "доступно!",
 	"available!": "доступно!",
 	"Back": "Назад",
 	"Back": "Назад",
 	"Bad Response": "",
 	"Bad Response": "",
+	"before": "",
 	"Being lazy": "",
 	"Being lazy": "",
 	"Builder Mode": "Режим конструктора",
 	"Builder Mode": "Режим конструктора",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "Скасувати",
 	"Cancel": "Скасувати",
 	"Categories": "Категорії",
 	"Categories": "Категорії",
 	"Change Password": "Змінити пароль",
 	"Change Password": "Змінити пароль",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "Перекриття фрагментів",
 	"Chunk Overlap": "Перекриття фрагментів",
 	"Chunk Params": "Параметри фрагментів",
 	"Chunk Params": "Параметри фрагментів",
 	"Chunk Size": "Розмір фрагменту",
 	"Chunk Size": "Розмір фрагменту",
+	"Citation": "",
 	"Click here for help.": "Клацніть тут, щоб отримати допомогу.",
 	"Click here for help.": "Клацніть тут, щоб отримати допомогу.",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "Клацніть тут, щоб перевірити інші файли моделей.",
 	"Click here to check other modelfiles.": "Клацніть тут, щоб перевірити інші файли моделей.",
 	"Click here to select": "Натисніть тут, щоб вибрати",
 	"Click here to select": "Натисніть тут, щоб вибрати",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':",
 	"Create a modelfile": "Створити файл моделі",
 	"Create a modelfile": "Створити файл моделі",
 	"Create Account": "Створити обліковий запис",
 	"Create Account": "Створити обліковий запис",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "Створено",
 	"Created at": "Створено",
 	"Created At": "",
 	"Created At": "",
 	"Current Model": "Поточна модель",
 	"Current Model": "Поточна модель",
@@ -105,6 +112,7 @@
 	"Custom": "Налаштувати",
 	"Custom": "Налаштувати",
 	"Customize Ollama models for a specific purpose": "Налаштувати моделі Ollama для конкретної мети",
 	"Customize Ollama models for a specific purpose": "Налаштувати моделі Ollama для конкретної мети",
 	"Dark": "Темна",
 	"Dark": "Темна",
+	"Dashboard": "",
 	"Database": "База даних",
 	"Database": "База даних",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"Default": "За замовчуванням",
 	"Default": "За замовчуванням",
@@ -120,6 +128,7 @@
 	"Delete chat": "Видалити чат",
 	"Delete chat": "Видалити чат",
 	"Delete Chat": "",
 	"Delete Chat": "",
 	"Delete Chats": "Видалити чати",
 	"Delete Chats": "Видалити чати",
+	"delete this link": "",
 	"Delete User": "",
 	"Delete User": "",
 	"Deleted {{deleteModelTag}}": "Видалено {{deleteModelTag}}",
 	"Deleted {{deleteModelTag}}": "Видалено {{deleteModelTag}}",
 	"Deleted {{tagName}}": "",
 	"Deleted {{tagName}}": "",
@@ -146,6 +155,7 @@
 	"Edit Doc": "Редагувати документ",
 	"Edit Doc": "Редагувати документ",
 	"Edit User": "Редагувати користувача",
 	"Edit User": "Редагувати користувача",
 	"Email": "Електронна пошта",
 	"Email": "Електронна пошта",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "Увімкнути історію чату",
 	"Enable Chat History": "Увімкнути історію чату",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "Введіть символ зупинки",
 	"Enter stop sequence": "Введіть символ зупинки",
 	"Enter Top K": "Введіть Top K",
 	"Enter Top K": "Введіть Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Введіть URL-адресу (напр. http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Введіть URL-адресу (напр. http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "Введіть вашу електронну пошту",
 	"Enter Your Email": "Введіть вашу електронну пошту",
 	"Enter Your Full Name": "Введіть ваше ім'я",
 	"Enter Your Full Name": "Введіть ваше ім'я",
 	"Enter Your Password": "Введіть ваш пароль",
 	"Enter Your Password": "Введіть ваш пароль",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "Керування моделями Ollama",
 	"Manage Ollama Models": "Керування моделями Ollama",
 	"Max Tokens": "Максимальна кількість токенів",
 	"Max Tokens": "Максимальна кількість токенів",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Максимум 3 моделі можна завантажити одночасно. Будь ласка, спробуйте пізніше.",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Максимум 3 моделі можна завантажити одночасно. Будь ласка, спробуйте пізніше.",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "Mirostat",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Eta": "Mirostat Eta",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "Назвіть свій файл моделі",
 	"Name your modelfile": "Назвіть свій файл моделі",
 	"New Chat": "Новий чат",
 	"New Chat": "Новий чат",
 	"New Password": "Новий пароль",
 	"New Password": "Новий пароль",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "",
 	"Not factually correct": "",
 	"Not sure what to add?": "Не впевнений, що додати?",
 	"Not sure what to add?": "Не впевнений, що додати?",
 	"Not sure what to write? Switch to": "Не впевнений, що писати? Переключитися на",
 	"Not sure what to write? Switch to": "Не впевнений, що писати? Переключитися на",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "",
 	"OpenAI URL/Key required.": "",
 	"or": "або",
 	"or": "або",
 	"Other": "",
 	"Other": "",
+	"Overview": "",
 	"Parameters": "Параметри",
 	"Parameters": "Параметри",
 	"Password": "Пароль",
 	"Password": "Пароль",
 	"PDF document (.pdf)": "",
 	"PDF document (.pdf)": "",
@@ -300,6 +315,7 @@
 	"Prompt Content": "Зміст промту",
 	"Prompt Content": "Зміст промту",
 	"Prompt suggestions": "Швидкі промти",
 	"Prompt suggestions": "Швидкі промти",
 	"Prompts": "Промти",
 	"Prompts": "Промти",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "Завантажити модель з Ollama.com",
 	"Pull a model from Ollama.com": "Завантажити модель з Ollama.com",
 	"Pull Progress": "Прогрес завантаження",
 	"Pull Progress": "Прогрес завантаження",
 	"Query Params": "Параметри запиту",
 	"Query Params": "Параметри запиту",
@@ -312,13 +328,17 @@
 	"Regenerate": "",
 	"Regenerate": "",
 	"Release Notes": "Нотатки до випуску",
 	"Release Notes": "Нотатки до випуску",
 	"Remove": "",
 	"Remove": "",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "Повторити останні N",
 	"Repeat Last N": "Повторити останні N",
 	"Repeat Penalty": "Штраф за повторення",
 	"Repeat Penalty": "Штраф за повторення",
 	"Request Mode": "Режим запиту",
 	"Request Mode": "Режим запиту",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "Скинути векторне сховище",
 	"Reset Vector Storage": "Скинути векторне сховище",
 	"Response AutoCopy to Clipboard": "Автокопіювання відповіді в буфер обміну",
 	"Response AutoCopy to Clipboard": "Автокопіювання відповіді в буфер обміну",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "Роль",
 	"Role": "Роль",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
@@ -346,7 +366,9 @@
 	"Server connection verified": "З'єднання з сервером підтверджено",
 	"Server connection verified": "З'єднання з сервером підтверджено",
 	"Set as default": "Встановити за замовчуванням",
 	"Set as default": "Встановити за замовчуванням",
 	"Set Default Model": "Встановити модель за замовчуванням",
 	"Set Default Model": "Встановити модель за замовчуванням",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "Встановити розмір зображення",
 	"Set Image Size": "Встановити розмір зображення",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "Встановити кроки",
 	"Set Steps": "Встановити кроки",
 	"Set Title Auto-Generation Model": "Встановити модель автогенерації заголовків",
 	"Set Title Auto-Generation Model": "Встановити модель автогенерації заголовків",
 	"Set Voice": "Встановити голос",
 	"Set Voice": "Встановити голос",
@@ -365,6 +387,7 @@
 	"Sign Out": "Вийти",
 	"Sign Out": "Вийти",
 	"Sign up": "Зареєструватися",
 	"Sign up": "Зареєструватися",
 	"Signing in": "",
 	"Signing in": "",
+	"Source": "",
 	"Speech recognition error: {{error}}": "Помилка розпізнавання мови: {{error}}",
 	"Speech recognition error: {{error}}": "Помилка розпізнавання мови: {{error}}",
 	"Speech-to-Text Engine": "Система розпізнавання мови",
 	"Speech-to-Text Engine": "Система розпізнавання мови",
 	"SpeechRecognition API is not supported in this browser.": "SpeechRecognition API не підтримується в цьому браузері.",
 	"SpeechRecognition API is not supported in this browser.": "SpeechRecognition API не підтримується в цьому браузері.",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Ой! Виникла проблема при підключенні до {{provider}}.",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Ой! Виникла проблема при підключенні до {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Невідомий тип файлу '{{file_type}}', але приймається та обробляється як звичайний текст",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Невідомий тип файлу '{{file_type}}', але приймається та обробляється як звичайний текст",
 	"Update and Copy Link": "",
 	"Update and Copy Link": "",
-	"Update Embedding Model": "",
-	"Update embedding model (e.g. {{model}})": "",
 	"Update password": "Оновити пароль",
 	"Update password": "Оновити пароль",
-	"Update Reranking Model": "",
-	"Update reranking model (e.g. {{model}})": "",
 	"Upload a GGUF model": "Завантажити GGUF модель",
 	"Upload a GGUF model": "Завантажити GGUF модель",
 	"Upload files": "Завантажити файли",
 	"Upload files": "Завантажити файли",
 	"Upload Progress": "Прогрес завантаження",
 	"Upload Progress": "Прогрес завантаження",
@@ -431,6 +450,7 @@
 	"Version": "Версія",
 	"Version": "Версія",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Web": "Веб",
 	"Web": "Веб",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "Додатки WebUI",
 	"WebUI Add-ons": "Додатки WebUI",
 	"WebUI Settings": "Налаштування WebUI",
 	"WebUI Settings": "Налаштування WebUI",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "Напишіть промт (напр. Хто ти?)",
 	"Write a prompt suggestion (e.g. Who are you?)": "Напишіть промт (напр. Хто ти?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Напишіть стислий зміст у 50 слів, який узагальнює [тема або ключове слово].",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Напишіть стислий зміст у 50 слів, який узагальнює [тема або ключове слово].",
 	"You": "Ви",
 	"You": "Ви",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "Ви корисний асистент.",
 	"You're a helpful assistant.": "Ви корисний асистент.",
 	"You're now logged in.": "Ви увійшли в систему.",
 	"You're now logged in.": "Ви увійшли в систему.",
 	"Youtube": ""
 	"Youtube": ""

+ 26 - 4
src/lib/i18n/locales/vi-VN/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "Bạn đã có tài khoản?",
 	"Already have an account?": "Bạn đã có tài khoản?",
 	"an assistant": "trợ lý",
 	"an assistant": "trợ lý",
 	"and": "và",
 	"and": "và",
+	"and create a new shared link.": "",
 	"API Base URL": "Đường dẫn tới API (API Base URL)",
 	"API Base URL": "Đường dẫn tới API (API Base URL)",
 	"API Key": "API Key",
 	"API Key": "API Key",
 	"API Key created.": "",
 	"API Key created.": "",
@@ -54,8 +55,10 @@
 	"available!": "có sẵn!",
 	"available!": "có sẵn!",
 	"Back": "Quay lại",
 	"Back": "Quay lại",
 	"Bad Response": "",
 	"Bad Response": "",
+	"before": "",
 	"Being lazy": "Lười biếng",
 	"Being lazy": "Lười biếng",
 	"Builder Mode": "Chế độ Builder",
 	"Builder Mode": "Chế độ Builder",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "Hủy bỏ",
 	"Cancel": "Hủy bỏ",
 	"Categories": "Danh mục",
 	"Categories": "Danh mục",
 	"Change Password": "Đổi Mật khẩu",
 	"Change Password": "Đổi Mật khẩu",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "Chồng lấn (overlap)",
 	"Chunk Overlap": "Chồng lấn (overlap)",
 	"Chunk Params": "Cài đặt số lượng ký tự cho khối ký tự (chunk)",
 	"Chunk Params": "Cài đặt số lượng ký tự cho khối ký tự (chunk)",
 	"Chunk Size": "Kích thước khối (size)",
 	"Chunk Size": "Kích thước khối (size)",
+	"Citation": "",
 	"Click here for help.": "Bấm vào đây để được trợ giúp.",
 	"Click here for help.": "Bấm vào đây để được trợ giúp.",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "Bấm vào đây để kiểm tra các tệp mô tả mô hình (modelfiles) khác.",
 	"Click here to check other modelfiles.": "Bấm vào đây để kiểm tra các tệp mô tả mô hình (modelfiles) khác.",
 	"Click here to select": "Bấm vào đây để chọn",
 	"Click here to select": "Bấm vào đây để chọn",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Tạo một cụm từ súc tích, 3-5 từ làm tiêu đề cho truy vấn sau, tuân thủ nghiêm ngặt giới hạn 3-5 từ và tránh sử dụng từ 'tiêu đề':",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "Tạo một cụm từ súc tích, 3-5 từ làm tiêu đề cho truy vấn sau, tuân thủ nghiêm ngặt giới hạn 3-5 từ và tránh sử dụng từ 'tiêu đề':",
 	"Create a modelfile": "Tạo tệp mô tả cho mô hình",
 	"Create a modelfile": "Tạo tệp mô tả cho mô hình",
 	"Create Account": "Tạo Tài khoản",
 	"Create Account": "Tạo Tài khoản",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "Được tạo vào lúc",
 	"Created at": "Được tạo vào lúc",
 	"Created At": "",
 	"Created At": "",
 	"Current Model": "Mô hình hiện tại",
 	"Current Model": "Mô hình hiện tại",
@@ -105,6 +112,7 @@
 	"Custom": "Tùy chỉnh",
 	"Custom": "Tùy chỉnh",
 	"Customize Ollama models for a specific purpose": "Tùy chỉnh các mô hình dựa trên Ollama cho một mục đích cụ thể",
 	"Customize Ollama models for a specific purpose": "Tùy chỉnh các mô hình dựa trên Ollama cho một mục đích cụ thể",
 	"Dark": "Tối",
 	"Dark": "Tối",
+	"Dashboard": "",
 	"Database": "Cơ sở dữ liệu",
 	"Database": "Cơ sở dữ liệu",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"Default": "Mặc định",
 	"Default": "Mặc định",
@@ -120,6 +128,7 @@
 	"Delete chat": "Xóa nội dung chat",
 	"Delete chat": "Xóa nội dung chat",
 	"Delete Chat": "",
 	"Delete Chat": "",
 	"Delete Chats": "Xóa nội dung chat",
 	"Delete Chats": "Xóa nội dung chat",
+	"delete this link": "",
 	"Delete User": "",
 	"Delete User": "",
 	"Deleted {{deleteModelTag}}": "Đã xóa {{deleteModelTag}}",
 	"Deleted {{deleteModelTag}}": "Đã xóa {{deleteModelTag}}",
 	"Deleted {{tagName}}": "",
 	"Deleted {{tagName}}": "",
@@ -146,6 +155,7 @@
 	"Edit Doc": "Thay đổi tài liệu",
 	"Edit Doc": "Thay đổi tài liệu",
 	"Edit User": "Thay đổi thông tin người sử dụng",
 	"Edit User": "Thay đổi thông tin người sử dụng",
 	"Email": "Email",
 	"Email": "Email",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "Bật Lịch sử chat",
 	"Enable Chat History": "Bật Lịch sử chat",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "Nhập stop sequence",
 	"Enter stop sequence": "Nhập stop sequence",
 	"Enter Top K": "Nhập Top K",
 	"Enter Top K": "Nhập Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Nhập URL (vd: http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "Nhập URL (vd: http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "Nhập Email của bạn",
 	"Enter Your Email": "Nhập Email của bạn",
 	"Enter Your Full Name": "Nhập Họ và Tên của bạn",
 	"Enter Your Full Name": "Nhập Họ và Tên của bạn",
 	"Enter Your Password": "Nhập Mật khẩu của bạn",
 	"Enter Your Password": "Nhập Mật khẩu của bạn",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "Quản lý mô hình với Ollama",
 	"Manage Ollama Models": "Quản lý mô hình với Ollama",
 	"Max Tokens": "Max Tokens",
 	"Max Tokens": "Max Tokens",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Tối đa 3 mô hình có thể được tải xuống cùng lúc. Vui lòng thử lại sau.",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Tối đa 3 mô hình có thể được tải xuống cùng lúc. Vui lòng thử lại sau.",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "Mirostat",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Eta": "Mirostat Eta",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "Đặt tên cho tệp mô hình của bạn",
 	"Name your modelfile": "Đặt tên cho tệp mô hình của bạn",
 	"New Chat": "Tạo cuộc trò chuyện mới",
 	"New Chat": "Tạo cuộc trò chuyện mới",
 	"New Password": "Mật khẩu mới",
 	"New Password": "Mật khẩu mới",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "Không chính xác so với thực tế",
 	"Not factually correct": "Không chính xác so với thực tế",
 	"Not sure what to add?": "Không chắc phải thêm gì?",
 	"Not sure what to add?": "Không chắc phải thêm gì?",
 	"Not sure what to write? Switch to": "Không chắc phải viết gì? Chuyển sang",
 	"Not sure what to write? Switch to": "Không chắc phải viết gì? Chuyển sang",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "",
 	"OpenAI URL/Key required.": "",
 	"or": "hoặc",
 	"or": "hoặc",
 	"Other": "Khác",
 	"Other": "Khác",
+	"Overview": "",
 	"Parameters": "Tham số",
 	"Parameters": "Tham số",
 	"Password": "Mật khẩu",
 	"Password": "Mật khẩu",
 	"PDF document (.pdf)": "",
 	"PDF document (.pdf)": "",
@@ -300,6 +315,7 @@
 	"Prompt Content": "Nội dung prompt",
 	"Prompt Content": "Nội dung prompt",
 	"Prompt suggestions": "Gợi ý prompt",
 	"Prompt suggestions": "Gợi ý prompt",
 	"Prompts": "Prompt",
 	"Prompts": "Prompt",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "Tải mô hình từ Ollama.com",
 	"Pull a model from Ollama.com": "Tải mô hình từ Ollama.com",
 	"Pull Progress": "Tiến trình Tải xuống",
 	"Pull Progress": "Tiến trình Tải xuống",
 	"Query Params": "Tham số Truy vấn",
 	"Query Params": "Tham số Truy vấn",
@@ -312,13 +328,17 @@
 	"Regenerate": "",
 	"Regenerate": "",
 	"Release Notes": "Mô tả những cập nhật mới",
 	"Release Notes": "Mô tả những cập nhật mới",
 	"Remove": "",
 	"Remove": "",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "Repeat Last N",
 	"Repeat Last N": "Repeat Last N",
 	"Repeat Penalty": "Repeat Penalty",
 	"Repeat Penalty": "Repeat Penalty",
 	"Request Mode": "Request Mode",
 	"Request Mode": "Request Mode",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "Cài đặt lại Vector Storage",
 	"Reset Vector Storage": "Cài đặt lại Vector Storage",
 	"Response AutoCopy to Clipboard": "Tự động Sao chép Phản hồi vào clipboard",
 	"Response AutoCopy to Clipboard": "Tự động Sao chép Phản hồi vào clipboard",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "Vai trò",
 	"Role": "Vai trò",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
@@ -346,7 +366,9 @@
 	"Server connection verified": "Kết nối máy chủ đã được xác minh",
 	"Server connection verified": "Kết nối máy chủ đã được xác minh",
 	"Set as default": "Đặt làm mặc định",
 	"Set as default": "Đặt làm mặc định",
 	"Set Default Model": "Đặt Mô hình Mặc định",
 	"Set Default Model": "Đặt Mô hình Mặc định",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "Đặt Kích thước ảnh",
 	"Set Image Size": "Đặt Kích thước ảnh",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "Đặt Số Bước",
 	"Set Steps": "Đặt Số Bước",
 	"Set Title Auto-Generation Model": "Đặt tiêu đề tự động",
 	"Set Title Auto-Generation Model": "Đặt tiêu đề tự động",
 	"Set Voice": "Đặt Giọng nói",
 	"Set Voice": "Đặt Giọng nói",
@@ -365,6 +387,7 @@
 	"Sign Out": "Đăng xuất",
 	"Sign Out": "Đăng xuất",
 	"Sign up": "Đăng ký",
 	"Sign up": "Đăng ký",
 	"Signing in": "",
 	"Signing in": "",
+	"Source": "",
 	"Speech recognition error: {{error}}": "Lỗi nhận dạng giọng nói: {{error}}",
 	"Speech recognition error: {{error}}": "Lỗi nhận dạng giọng nói: {{error}}",
 	"Speech-to-Text Engine": "Công cụ Nhận dạng Giọng nói",
 	"Speech-to-Text Engine": "Công cụ Nhận dạng Giọng nói",
 	"SpeechRecognition API is not supported in this browser.": "Trình duyệt này không hỗ trợ API Nhận dạng Giọng nói.",
 	"SpeechRecognition API is not supported in this browser.": "Trình duyệt này không hỗ trợ API Nhận dạng Giọng nói.",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Ồ! Đã xảy ra sự cố khi kết nối với {{provider}}.",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "Ồ! Đã xảy ra sự cố khi kết nối với {{provider}}.",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Loại Tệp Không xác định '{{file_type}}', nhưng đang chấp nhận và xử lý như văn bản thô",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "Loại Tệp Không xác định '{{file_type}}', nhưng đang chấp nhận và xử lý như văn bản thô",
 	"Update and Copy Link": "",
 	"Update and Copy Link": "",
-	"Update Embedding Model": "",
-	"Update embedding model (e.g. {{model}})": "",
 	"Update password": "Cập nhật mật khẩu",
 	"Update password": "Cập nhật mật khẩu",
-	"Update Reranking Model": "",
-	"Update reranking model (e.g. {{model}})": "",
 	"Upload a GGUF model": "Tải lên mô hình GGUF",
 	"Upload a GGUF model": "Tải lên mô hình GGUF",
 	"Upload files": "Tải tệp lên hệ thống",
 	"Upload files": "Tải tệp lên hệ thống",
 	"Upload Progress": "Tiến trình tải tệp lên hệ thống",
 	"Upload Progress": "Tiến trình tải tệp lên hệ thống",
@@ -431,6 +450,7 @@
 	"Version": "Version",
 	"Version": "Version",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Web": "Web",
 	"Web": "Web",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "Tiện ích WebUI",
 	"WebUI Add-ons": "Tiện ích WebUI",
 	"WebUI Settings": "Cài đặt WebUI",
 	"WebUI Settings": "Cài đặt WebUI",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "Hãy viết một prompt (vd: Bạn là ai?)",
 	"Write a prompt suggestion (e.g. Who are you?)": "Hãy viết một prompt (vd: Bạn là ai?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Viết một tóm tắt trong vòng 50 từ cho [chủ đề hoặc từ khóa].",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "Viết một tóm tắt trong vòng 50 từ cho [chủ đề hoặc từ khóa].",
 	"You": "Bạn",
 	"You": "Bạn",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "Bạn là một trợ lý hữu ích.",
 	"You're a helpful assistant.": "Bạn là một trợ lý hữu ích.",
 	"You're now logged in.": "Bạn đã đăng nhập.",
 	"You're now logged in.": "Bạn đã đăng nhập.",
 	"Youtube": ""
 	"Youtube": ""

+ 26 - 4
src/lib/i18n/locales/zh-CN/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "已经有账户了吗?",
 	"Already have an account?": "已经有账户了吗?",
 	"an assistant": "助手",
 	"an assistant": "助手",
 	"and": "和",
 	"and": "和",
+	"and create a new shared link.": "",
 	"API Base URL": "API 基础 URL",
 	"API Base URL": "API 基础 URL",
 	"API Key": "API 密钥",
 	"API Key": "API 密钥",
 	"API Key created.": "",
 	"API Key created.": "",
@@ -54,8 +55,10 @@
 	"available!": "可用!",
 	"available!": "可用!",
 	"Back": "返回",
 	"Back": "返回",
 	"Bad Response": "",
 	"Bad Response": "",
+	"before": "",
 	"Being lazy": "",
 	"Being lazy": "",
 	"Builder Mode": "构建模式",
 	"Builder Mode": "构建模式",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "取消",
 	"Cancel": "取消",
 	"Categories": "分类",
 	"Categories": "分类",
 	"Change Password": "更改密码",
 	"Change Password": "更改密码",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "块重叠(Chunk Overlap)",
 	"Chunk Overlap": "块重叠(Chunk Overlap)",
 	"Chunk Params": "块参数(Chunk Params)",
 	"Chunk Params": "块参数(Chunk Params)",
 	"Chunk Size": "块大小(Chunk Size)",
 	"Chunk Size": "块大小(Chunk Size)",
+	"Citation": "",
 	"Click here for help.": "点击这里获取帮助。",
 	"Click here for help.": "点击这里获取帮助。",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "点击这里检查其他模型文件。",
 	"Click here to check other modelfiles.": "点击这里检查其他模型文件。",
 	"Click here to select": "点击这里选择",
 	"Click here to select": "点击这里选择",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "为以下查询创建一个简洁的、3-5个词的短语作为标题,严格遵守3-5个词的限制并避免使用“标题”一词:",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "为以下查询创建一个简洁的、3-5个词的短语作为标题,严格遵守3-5个词的限制并避免使用“标题”一词:",
 	"Create a modelfile": "创建模型文件",
 	"Create a modelfile": "创建模型文件",
 	"Create Account": "创建账户",
 	"Create Account": "创建账户",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "创建于",
 	"Created at": "创建于",
 	"Created At": "",
 	"Created At": "",
 	"Current Model": "当前模型",
 	"Current Model": "当前模型",
@@ -105,6 +112,7 @@
 	"Custom": "自定义",
 	"Custom": "自定义",
 	"Customize Ollama models for a specific purpose": "定制特定用途的Ollama模型",
 	"Customize Ollama models for a specific purpose": "定制特定用途的Ollama模型",
 	"Dark": "暗色",
 	"Dark": "暗色",
+	"Dashboard": "",
 	"Database": "数据库",
 	"Database": "数据库",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"Default": "默认",
 	"Default": "默认",
@@ -120,6 +128,7 @@
 	"Delete chat": "删除聊天",
 	"Delete chat": "删除聊天",
 	"Delete Chat": "",
 	"Delete Chat": "",
 	"Delete Chats": "删除聊天记录",
 	"Delete Chats": "删除聊天记录",
+	"delete this link": "",
 	"Delete User": "",
 	"Delete User": "",
 	"Deleted {{deleteModelTag}}": "已删除{{deleteModelTag}}",
 	"Deleted {{deleteModelTag}}": "已删除{{deleteModelTag}}",
 	"Deleted {{tagName}}": "",
 	"Deleted {{tagName}}": "",
@@ -146,6 +155,7 @@
 	"Edit Doc": "编辑文档",
 	"Edit Doc": "编辑文档",
 	"Edit User": "编辑用户",
 	"Edit User": "编辑用户",
 	"Email": "电子邮件",
 	"Email": "电子邮件",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "启用聊天历史",
 	"Enable Chat History": "启用聊天历史",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "输入停止序列",
 	"Enter stop sequence": "输入停止序列",
 	"Enter Top K": "输入 Top K",
 	"Enter Top K": "输入 Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "输入 URL (例如 http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "输入 URL (例如 http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "输入您的电子邮件",
 	"Enter Your Email": "输入您的电子邮件",
 	"Enter Your Full Name": "输入您的全名",
 	"Enter Your Full Name": "输入您的全名",
 	"Enter Your Password": "输入您的密码",
 	"Enter Your Password": "输入您的密码",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "管理Ollama模型",
 	"Manage Ollama Models": "管理Ollama模型",
 	"Max Tokens": "最大令牌数",
 	"Max Tokens": "最大令牌数",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "最多可以同时下载3个模型,请稍后重试。",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "最多可以同时下载3个模型,请稍后重试。",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "Mirostat",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Eta": "Mirostat Eta",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "命名你的模型文件",
 	"Name your modelfile": "命名你的模型文件",
 	"New Chat": "新聊天",
 	"New Chat": "新聊天",
 	"New Password": "新密码",
 	"New Password": "新密码",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "",
 	"Not factually correct": "",
 	"Not sure what to add?": "不确定要添加什么?",
 	"Not sure what to add?": "不确定要添加什么?",
 	"Not sure what to write? Switch to": "不确定写什么?切换到",
 	"Not sure what to write? Switch to": "不确定写什么?切换到",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "",
 	"OpenAI URL/Key required.": "",
 	"or": "或",
 	"or": "或",
 	"Other": "",
 	"Other": "",
+	"Overview": "",
 	"Parameters": "参数",
 	"Parameters": "参数",
 	"Password": "密码",
 	"Password": "密码",
 	"PDF document (.pdf)": "",
 	"PDF document (.pdf)": "",
@@ -300,6 +315,7 @@
 	"Prompt Content": "提示词内容",
 	"Prompt Content": "提示词内容",
 	"Prompt suggestions": "提示词建议",
 	"Prompt suggestions": "提示词建议",
 	"Prompts": "提示词",
 	"Prompts": "提示词",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "从 Ollama.com 拉取一个模型",
 	"Pull a model from Ollama.com": "从 Ollama.com 拉取一个模型",
 	"Pull Progress": "拉取进度",
 	"Pull Progress": "拉取进度",
 	"Query Params": "查询参数",
 	"Query Params": "查询参数",
@@ -312,13 +328,17 @@
 	"Regenerate": "",
 	"Regenerate": "",
 	"Release Notes": "发布说明",
 	"Release Notes": "发布说明",
 	"Remove": "",
 	"Remove": "",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "重复最后 N 次",
 	"Repeat Last N": "重复最后 N 次",
 	"Repeat Penalty": "重复惩罚",
 	"Repeat Penalty": "重复惩罚",
 	"Request Mode": "请求模式",
 	"Request Mode": "请求模式",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "重置向量存储",
 	"Reset Vector Storage": "重置向量存储",
 	"Response AutoCopy to Clipboard": "自动复制回答到剪贴板",
 	"Response AutoCopy to Clipboard": "自动复制回答到剪贴板",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "角色",
 	"Role": "角色",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine": "Rosé Pine",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
 	"Rosé Pine Dawn": "Rosé Pine Dawn",
@@ -346,7 +366,9 @@
 	"Server connection verified": "已验证服务器连接",
 	"Server connection verified": "已验证服务器连接",
 	"Set as default": "设为默认",
 	"Set as default": "设为默认",
 	"Set Default Model": "设置默认模型",
 	"Set Default Model": "设置默认模型",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "设置图片大小",
 	"Set Image Size": "设置图片大小",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "设置步骤",
 	"Set Steps": "设置步骤",
 	"Set Title Auto-Generation Model": "设置标题自动生成模型",
 	"Set Title Auto-Generation Model": "设置标题自动生成模型",
 	"Set Voice": "设置声音",
 	"Set Voice": "设置声音",
@@ -365,6 +387,7 @@
 	"Sign Out": "登出",
 	"Sign Out": "登出",
 	"Sign up": "注册",
 	"Sign up": "注册",
 	"Signing in": "",
 	"Signing in": "",
+	"Source": "",
 	"Speech recognition error: {{error}}": "语音识别错误:{{error}}",
 	"Speech recognition error: {{error}}": "语音识别错误:{{error}}",
 	"Speech-to-Text Engine": "语音转文字引擎",
 	"Speech-to-Text Engine": "语音转文字引擎",
 	"SpeechRecognition API is not supported in this browser.": "此浏览器不支持SpeechRecognition API。",
 	"SpeechRecognition API is not supported in this browser.": "此浏览器不支持SpeechRecognition API。",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "哎呀!连接到{{provider}}时出现问题。",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "哎呀!连接到{{provider}}时出现问题。",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "未知文件类型'{{file_type}}',将视为纯文本进行处理",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "未知文件类型'{{file_type}}',将视为纯文本进行处理",
 	"Update and Copy Link": "",
 	"Update and Copy Link": "",
-	"Update Embedding Model": "",
-	"Update embedding model (e.g. {{model}})": "",
 	"Update password": "更新密码",
 	"Update password": "更新密码",
-	"Update Reranking Model": "",
-	"Update reranking model (e.g. {{model}})": "",
 	"Upload a GGUF model": "上传一个GGUF模型",
 	"Upload a GGUF model": "上传一个GGUF模型",
 	"Upload files": "上传文件",
 	"Upload files": "上传文件",
 	"Upload Progress": "上传进度",
 	"Upload Progress": "上传进度",
@@ -431,6 +450,7 @@
 	"Version": "版本",
 	"Version": "版本",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Web": "网页",
 	"Web": "网页",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "WebUI 插件",
 	"WebUI Add-ons": "WebUI 插件",
 	"WebUI Settings": "WebUI 设置",
 	"WebUI Settings": "WebUI 设置",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "写一个提示建议(例如:你是谁?)",
 	"Write a prompt suggestion (e.g. Who are you?)": "写一个提示建议(例如:你是谁?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "用50个字写一个总结[主题或关键词]。",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "用50个字写一个总结[主题或关键词]。",
 	"You": "你",
 	"You": "你",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "你是一个有帮助的助手。",
 	"You're a helpful assistant.": "你是一个有帮助的助手。",
 	"You're now logged in.": "已登录。",
 	"You're now logged in.": "已登录。",
 	"Youtube": ""
 	"Youtube": ""

+ 26 - 4
src/lib/i18n/locales/zh-TW/translation.json

@@ -35,6 +35,7 @@
 	"Already have an account?": "已經有帳號了嗎?",
 	"Already have an account?": "已經有帳號了嗎?",
 	"an assistant": "助手",
 	"an assistant": "助手",
 	"and": "和",
 	"and": "和",
+	"and create a new shared link.": "",
 	"API Base URL": "API 基本 URL",
 	"API Base URL": "API 基本 URL",
 	"API Key": "API 金鑰",
 	"API Key": "API 金鑰",
 	"API Key created.": "",
 	"API Key created.": "",
@@ -54,8 +55,10 @@
 	"available!": "可以使用!",
 	"available!": "可以使用!",
 	"Back": "返回",
 	"Back": "返回",
 	"Bad Response": "",
 	"Bad Response": "",
+	"before": "",
 	"Being lazy": "",
 	"Being lazy": "",
 	"Builder Mode": "建構模式",
 	"Builder Mode": "建構模式",
+	"Bypass SSL verification for Websites": "",
 	"Cancel": "取消",
 	"Cancel": "取消",
 	"Categories": "分類",
 	"Categories": "分類",
 	"Change Password": "修改密碼",
 	"Change Password": "修改密碼",
@@ -70,7 +73,9 @@
 	"Chunk Overlap": "Chunk Overlap",
 	"Chunk Overlap": "Chunk Overlap",
 	"Chunk Params": "Chunk 參數",
 	"Chunk Params": "Chunk 參數",
 	"Chunk Size": "Chunk 大小",
 	"Chunk Size": "Chunk 大小",
+	"Citation": "",
 	"Click here for help.": "點擊這裡尋找幫助。",
 	"Click here for help.": "點擊這裡尋找幫助。",
+	"Click here to": "",
 	"Click here to check other modelfiles.": "點擊這裡檢查其他 Modelfiles。",
 	"Click here to check other modelfiles.": "點擊這裡檢查其他 Modelfiles。",
 	"Click here to select": "點擊這裡選擇",
 	"Click here to select": "點擊這裡選擇",
 	"Click here to select a csv file.": "",
 	"Click here to select a csv file.": "",
@@ -98,6 +103,8 @@
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "為以下的查詢建立一個簡潔、3-5 個詞的短語作為標題,嚴格遵守 3-5 個詞的限制,避免使用「標題」這個詞:",
 	"Create a concise, 3-5 word phrase as a header for the following query, strictly adhering to the 3-5 word limit and avoiding the use of the word 'title':": "為以下的查詢建立一個簡潔、3-5 個詞的短語作為標題,嚴格遵守 3-5 個詞的限制,避免使用「標題」這個詞:",
 	"Create a modelfile": "建立 Modelfile",
 	"Create a modelfile": "建立 Modelfile",
 	"Create Account": "建立帳號",
 	"Create Account": "建立帳號",
+	"Create new key": "",
+	"Create new secret key": "",
 	"Created at": "建立於",
 	"Created at": "建立於",
 	"Created At": "",
 	"Created At": "",
 	"Current Model": "目前模型",
 	"Current Model": "目前模型",
@@ -105,6 +112,7 @@
 	"Custom": "自訂",
 	"Custom": "自訂",
 	"Customize Ollama models for a specific purpose": "定制特定用途的 Ollama 模型",
 	"Customize Ollama models for a specific purpose": "定制特定用途的 Ollama 模型",
 	"Dark": "暗色",
 	"Dark": "暗色",
+	"Dashboard": "",
 	"Database": "資料庫",
 	"Database": "資料庫",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"DD/MM/YYYY HH:mm": "DD/MM/YYYY HH:mm",
 	"Default": "預設",
 	"Default": "預設",
@@ -120,6 +128,7 @@
 	"Delete chat": "刪除聊天紀錄",
 	"Delete chat": "刪除聊天紀錄",
 	"Delete Chat": "",
 	"Delete Chat": "",
 	"Delete Chats": "刪除聊天紀錄",
 	"Delete Chats": "刪除聊天紀錄",
+	"delete this link": "",
 	"Delete User": "",
 	"Delete User": "",
 	"Deleted {{deleteModelTag}}": "已刪除 {{deleteModelTag}}",
 	"Deleted {{deleteModelTag}}": "已刪除 {{deleteModelTag}}",
 	"Deleted {{tagName}}": "",
 	"Deleted {{tagName}}": "",
@@ -146,6 +155,7 @@
 	"Edit Doc": "編輯文件",
 	"Edit Doc": "編輯文件",
 	"Edit User": "編輯使用者",
 	"Edit User": "編輯使用者",
 	"Email": "電子郵件",
 	"Email": "電子郵件",
+	"Embedding Model": "",
 	"Embedding Model Engine": "",
 	"Embedding Model Engine": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Embedding model set to \"{{embedding_model}}\"": "",
 	"Enable Chat History": "啟用聊天歷史",
 	"Enable Chat History": "啟用聊天歷史",
@@ -167,6 +177,7 @@
 	"Enter stop sequence": "輸入停止序列",
 	"Enter stop sequence": "輸入停止序列",
 	"Enter Top K": "輸入 Top K",
 	"Enter Top K": "輸入 Top K",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "輸入 URL(例如 http://127.0.0.1:7860/)",
 	"Enter URL (e.g. http://127.0.0.1:7860/)": "輸入 URL(例如 http://127.0.0.1:7860/)",
+	"Enter URL (e.g. http://localhost:11434)": "",
 	"Enter Your Email": "輸入你的電子郵件",
 	"Enter Your Email": "輸入你的電子郵件",
 	"Enter Your Full Name": "輸入你的全名",
 	"Enter Your Full Name": "輸入你的全名",
 	"Enter Your Password": "輸入你的密碼",
 	"Enter Your Password": "輸入你的密碼",
@@ -228,6 +239,7 @@
 	"Manage Ollama Models": "管理 Ollama 模型",
 	"Manage Ollama Models": "管理 Ollama 模型",
 	"Max Tokens": "最大 Token 數",
 	"Max Tokens": "最大 Token 數",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "最多可以同時下載 3 個模型。請稍後再試。",
 	"Maximum of 3 models can be downloaded simultaneously. Please try again later.": "最多可以同時下載 3 個模型。請稍後再試。",
+	"Messages you send after creating your link won't be shared. Users with the URL will beable to view the shared chat.": "",
 	"Minimum Score": "",
 	"Minimum Score": "",
 	"Mirostat": "Mirostat",
 	"Mirostat": "Mirostat",
 	"Mirostat Eta": "Mirostat Eta",
 	"Mirostat Eta": "Mirostat Eta",
@@ -258,6 +270,8 @@
 	"Name your modelfile": "命名你的 Modelfile",
 	"Name your modelfile": "命名你的 Modelfile",
 	"New Chat": "新增聊天",
 	"New Chat": "新增聊天",
 	"New Password": "新密碼",
 	"New Password": "新密碼",
+	"No results found": "",
+	"No source available": "",
 	"Not factually correct": "",
 	"Not factually correct": "",
 	"Not sure what to add?": "不確定要新增什麼嗎?",
 	"Not sure what to add?": "不確定要新增什麼嗎?",
 	"Not sure what to write? Switch to": "不確定要寫什麼?切換到",
 	"Not sure what to write? Switch to": "不確定要寫什麼?切換到",
@@ -286,6 +300,7 @@
 	"OpenAI URL/Key required.": "",
 	"OpenAI URL/Key required.": "",
 	"or": "或",
 	"or": "或",
 	"Other": "",
 	"Other": "",
+	"Overview": "",
 	"Parameters": "參數",
 	"Parameters": "參數",
 	"Password": "密碼",
 	"Password": "密碼",
 	"PDF document (.pdf)": "",
 	"PDF document (.pdf)": "",
@@ -300,6 +315,7 @@
 	"Prompt Content": "提示詞內容",
 	"Prompt Content": "提示詞內容",
 	"Prompt suggestions": "提示詞建議",
 	"Prompt suggestions": "提示詞建議",
 	"Prompts": "提示詞",
 	"Prompts": "提示詞",
+	"Pull \"{{searchValue}}\" from Ollama.com": "",
 	"Pull a model from Ollama.com": "從 Ollama.com 下載模型",
 	"Pull a model from Ollama.com": "從 Ollama.com 下載模型",
 	"Pull Progress": "下載進度",
 	"Pull Progress": "下載進度",
 	"Query Params": "查詢參數",
 	"Query Params": "查詢參數",
@@ -312,13 +328,17 @@
 	"Regenerate": "",
 	"Regenerate": "",
 	"Release Notes": "發布說明",
 	"Release Notes": "發布說明",
 	"Remove": "",
 	"Remove": "",
+	"Remove Model": "",
+	"Rename": "",
 	"Repeat Last N": "重複最後 N 次",
 	"Repeat Last N": "重複最後 N 次",
 	"Repeat Penalty": "重複懲罰",
 	"Repeat Penalty": "重複懲罰",
 	"Request Mode": "請求模式",
 	"Request Mode": "請求模式",
+	"Reranking Model": "",
 	"Reranking model disabled": "",
 	"Reranking model disabled": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reranking model set to \"{{reranking_model}}\"": "",
 	"Reset Vector Storage": "重置向量儲存空間",
 	"Reset Vector Storage": "重置向量儲存空間",
 	"Response AutoCopy to Clipboard": "自動複製回答到剪貼簿",
 	"Response AutoCopy to Clipboard": "自動複製回答到剪貼簿",
+	"Retrieval Augmented Generation Settings": "",
 	"Role": "Role",
 	"Role": "Role",
 	"Rosé Pine": "玫瑰松",
 	"Rosé Pine": "玫瑰松",
 	"Rosé Pine Dawn": "黎明玫瑰松",
 	"Rosé Pine Dawn": "黎明玫瑰松",
@@ -346,7 +366,9 @@
 	"Server connection verified": "已驗證伺服器連線",
 	"Server connection verified": "已驗證伺服器連線",
 	"Set as default": "設為預設",
 	"Set as default": "設為預設",
 	"Set Default Model": "設定預設模型",
 	"Set Default Model": "設定預設模型",
+	"Set embedding model (e.g. {{model}})": "",
 	"Set Image Size": "設定圖片大小",
 	"Set Image Size": "設定圖片大小",
+	"Set reranking model (e.g. {{model}})": "",
 	"Set Steps": "設定步數",
 	"Set Steps": "設定步數",
 	"Set Title Auto-Generation Model": "設定自動生成標題用模型",
 	"Set Title Auto-Generation Model": "設定自動生成標題用模型",
 	"Set Voice": "設定語音",
 	"Set Voice": "設定語音",
@@ -365,6 +387,7 @@
 	"Sign Out": "登出",
 	"Sign Out": "登出",
 	"Sign up": "註冊",
 	"Sign up": "註冊",
 	"Signing in": "",
 	"Signing in": "",
+	"Source": "",
 	"Speech recognition error: {{error}}": "語音識別錯誤: {{error}}",
 	"Speech recognition error: {{error}}": "語音識別錯誤: {{error}}",
 	"Speech-to-Text Engine": "語音轉文字引擎",
 	"Speech-to-Text Engine": "語音轉文字引擎",
 	"SpeechRecognition API is not supported in this browser.": "此瀏覽器不支持 SpeechRecognition API。",
 	"SpeechRecognition API is not supported in this browser.": "此瀏覽器不支持 SpeechRecognition API。",
@@ -409,11 +432,7 @@
 	"Uh-oh! There was an issue connecting to {{provider}}.": "哎呀!連線到 {{provider}} 時出現問題。",
 	"Uh-oh! There was an issue connecting to {{provider}}.": "哎呀!連線到 {{provider}} 時出現問題。",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "未知的文件類型 '{{file_type}}',但接受並視為純文字",
 	"Unknown File Type '{{file_type}}', but accepting and treating as plain text": "未知的文件類型 '{{file_type}}',但接受並視為純文字",
 	"Update and Copy Link": "",
 	"Update and Copy Link": "",
-	"Update Embedding Model": "",
-	"Update embedding model (e.g. {{model}})": "",
 	"Update password": "更新密碼",
 	"Update password": "更新密碼",
-	"Update Reranking Model": "",
-	"Update reranking model (e.g. {{model}})": "",
 	"Upload a GGUF model": "上傳一個 GGUF 模型",
 	"Upload a GGUF model": "上傳一個 GGUF 模型",
 	"Upload files": "上傳文件",
 	"Upload files": "上傳文件",
 	"Upload Progress": "上傳進度",
 	"Upload Progress": "上傳進度",
@@ -431,6 +450,7 @@
 	"Version": "版本",
 	"Version": "版本",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Warning: If you update or change your embedding model, you will need to re-import all documents.": "",
 	"Web": "網頁",
 	"Web": "網頁",
+	"Web Params": "",
 	"Webhook URL": "",
 	"Webhook URL": "",
 	"WebUI Add-ons": "WebUI 擴充套件",
 	"WebUI Add-ons": "WebUI 擴充套件",
 	"WebUI Settings": "WebUI 設定",
 	"WebUI Settings": "WebUI 設定",
@@ -441,6 +461,8 @@
 	"Write a prompt suggestion (e.g. Who are you?)": "寫一個提示詞建議(例如:你是誰?)",
 	"Write a prompt suggestion (e.g. Who are you?)": "寫一個提示詞建議(例如:你是誰?)",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "寫一個50字的摘要來概括[主題或關鍵詞]。",
 	"Write a summary in 50 words that summarizes [topic or keyword].": "寫一個50字的摘要來概括[主題或關鍵詞]。",
 	"You": "你",
 	"You": "你",
+	"You have no archived conversations.": "",
+	"You have shared this chat": "",
 	"You're a helpful assistant.": "你是一位善於協助他人的助手。",
 	"You're a helpful assistant.": "你是一位善於協助他人的助手。",
 	"You're now logged in.": "已登入。",
 	"You're now logged in.": "已登入。",
 	"Youtube": ""
 	"Youtube": ""

+ 15 - 3
src/routes/(app)/+page.svelte

@@ -366,7 +366,8 @@
 			},
 			},
 			format: $settings.requestFormat ?? undefined,
 			format: $settings.requestFormat ?? undefined,
 			keep_alive: $settings.keepAlive ?? undefined,
 			keep_alive: $settings.keepAlive ?? undefined,
-			docs: docs.length > 0 ? docs : undefined
+			docs: docs.length > 0 ? docs : undefined,
+			citations: docs.length > 0
 		});
 		});
 
 
 		if (res && res.ok) {
 		if (res && res.ok) {
@@ -401,6 +402,11 @@
 							console.log(line);
 							console.log(line);
 							let data = JSON.parse(line);
 							let data = JSON.parse(line);
 
 
+							if ('citations' in data) {
+								responseMessage.citations = data.citations;
+								continue;
+							}
+
 							if ('detail' in data) {
 							if ('detail' in data) {
 								throw data;
 								throw data;
 							}
 							}
@@ -598,7 +604,8 @@
 				num_ctx: $settings?.options?.num_ctx ?? undefined,
 				num_ctx: $settings?.options?.num_ctx ?? undefined,
 				frequency_penalty: $settings?.options?.repeat_penalty ?? undefined,
 				frequency_penalty: $settings?.options?.repeat_penalty ?? undefined,
 				max_tokens: $settings?.options?.num_predict ?? undefined,
 				max_tokens: $settings?.options?.num_predict ?? undefined,
-				docs: docs.length > 0 ? docs : undefined
+				docs: docs.length > 0 ? docs : undefined,
+				citations: docs.length > 0
 			},
 			},
 			model?.source?.toLowerCase() === 'litellm'
 			model?.source?.toLowerCase() === 'litellm'
 				? `${LITELLM_API_BASE_URL}/v1`
 				? `${LITELLM_API_BASE_URL}/v1`
@@ -614,7 +621,7 @@
 			const textStream = await createOpenAITextStream(res.body, $settings.splitLargeChunks);
 			const textStream = await createOpenAITextStream(res.body, $settings.splitLargeChunks);
 
 
 			for await (const update of textStream) {
 			for await (const update of textStream) {
-				const { value, done } = update;
+				const { value, done, citations } = update;
 				if (done || stopResponseFlag || _chatId !== $chatId) {
 				if (done || stopResponseFlag || _chatId !== $chatId) {
 					responseMessage.done = true;
 					responseMessage.done = true;
 					messages = messages;
 					messages = messages;
@@ -626,6 +633,11 @@
 					break;
 					break;
 				}
 				}
 
 
+				if (citations) {
+					responseMessage.citations = citations;
+					continue;
+				}
+
 				if (responseMessage.content == '' && value == '\n') {
 				if (responseMessage.content == '' && value == '\n') {
 					continue;
 					continue;
 				} else {
 				} else {

+ 6 - 4
src/routes/(app)/admin/+page.svelte

@@ -110,7 +110,7 @@
 					<div class=" flex flex-col justify-center">
 					<div class=" flex flex-col justify-center">
 						<div class=" px-6 pt-4">
 						<div class=" px-6 pt-4">
 							<div class=" flex justify-between items-center">
 							<div class=" flex justify-between items-center">
-								<div class="flex items-center text-2xl font-semibold">Dashboard</div>
+								<div class="flex items-center text-2xl font-semibold">{$i18n.t('Dashboard')}</div>
 								<div>
 								<div>
 									<Tooltip content={$i18n.t('Admin Settings')}>
 									<Tooltip content={$i18n.t('Admin Settings')}>
 										<button
 										<button
@@ -140,8 +140,10 @@
 							</div>
 							</div>
 						</div>
 						</div>
 
 
-						<div class="px-6 flex text-sm gap-2.5">
-							<div class="py-3 border-b font-medium text-gray-100 cursor-pointer">Overview</div>
+						<div class="px-5 flex text-sm gap-2.5">
+							<div class="py-3 border-b font-medium text-gray-100 cursor-pointer">
+								{$i18n.t('Overview')}
+							</div>
 							<!-- <div class="py-3 text-gray-300 cursor-pointer">Users</div> -->
 							<!-- <div class="py-3 text-gray-300 cursor-pointer">Users</div> -->
 						</div>
 						</div>
 
 
@@ -268,7 +270,7 @@
 												<td class="px-3 py-2 text-right">
 												<td class="px-3 py-2 text-right">
 													<div class="flex justify-end w-full">
 													<div class="flex justify-end w-full">
 														{#if user.role !== 'admin'}
 														{#if user.role !== 'admin'}
-															<Tooltip content="Chats">
+															<Tooltip content={$i18n.t('Chats')}>
 																<button
 																<button
 																	class="self-center w-fit text-sm px-2 py-2 hover:bg-black/5 dark:hover:bg-white/5 rounded-xl"
 																	class="self-center w-fit text-sm px-2 py-2 hover:bg-black/5 dark:hover:bg-white/5 rounded-xl"
 																	on:click={async () => {
 																	on:click={async () => {

+ 15 - 3
src/routes/(app)/c/[id]/+page.svelte

@@ -378,7 +378,8 @@
 			},
 			},
 			format: $settings.requestFormat ?? undefined,
 			format: $settings.requestFormat ?? undefined,
 			keep_alive: $settings.keepAlive ?? undefined,
 			keep_alive: $settings.keepAlive ?? undefined,
-			docs: docs.length > 0 ? docs : undefined
+			docs: docs.length > 0 ? docs : undefined,
+			citations: docs.length > 0
 		});
 		});
 
 
 		if (res && res.ok) {
 		if (res && res.ok) {
@@ -413,6 +414,11 @@
 							console.log(line);
 							console.log(line);
 							let data = JSON.parse(line);
 							let data = JSON.parse(line);
 
 
+							if ('citations' in data) {
+								responseMessage.citations = data.citations;
+								continue;
+							}
+
 							if ('detail' in data) {
 							if ('detail' in data) {
 								throw data;
 								throw data;
 							}
 							}
@@ -610,7 +616,8 @@
 				num_ctx: $settings?.options?.num_ctx ?? undefined,
 				num_ctx: $settings?.options?.num_ctx ?? undefined,
 				frequency_penalty: $settings?.options?.repeat_penalty ?? undefined,
 				frequency_penalty: $settings?.options?.repeat_penalty ?? undefined,
 				max_tokens: $settings?.options?.num_predict ?? undefined,
 				max_tokens: $settings?.options?.num_predict ?? undefined,
-				docs: docs.length > 0 ? docs : undefined
+				docs: docs.length > 0 ? docs : undefined,
+				citations: docs.length > 0
 			},
 			},
 			model?.source?.toLowerCase() === 'litellm'
 			model?.source?.toLowerCase() === 'litellm'
 				? `${LITELLM_API_BASE_URL}/v1`
 				? `${LITELLM_API_BASE_URL}/v1`
@@ -626,7 +633,7 @@
 			const textStream = await createOpenAITextStream(res.body, $settings.splitLargeChunks);
 			const textStream = await createOpenAITextStream(res.body, $settings.splitLargeChunks);
 
 
 			for await (const update of textStream) {
 			for await (const update of textStream) {
-				const { value, done } = update;
+				const { value, done, citations } = update;
 				if (done || stopResponseFlag || _chatId !== $chatId) {
 				if (done || stopResponseFlag || _chatId !== $chatId) {
 					responseMessage.done = true;
 					responseMessage.done = true;
 					messages = messages;
 					messages = messages;
@@ -638,6 +645,11 @@
 					break;
 					break;
 				}
 				}
 
 
+				if (citations) {
+					responseMessage.citations = citations;
+					continue;
+				}
+
 				if (responseMessage.content == '' && value == '\n') {
 				if (responseMessage.content == '' && value == '\n') {
 					continue;
 					continue;
 				} else {
 				} else {