From d13a35ab96bd24b4c760f76ab66c5e12ad13abac Mon Sep 17 00:00:00 2001 From: Aslan Vatsaev Date: Fri, 10 Oct 2025 13:26:12 +0200 Subject: [PATCH 001/164] fix: auto show artifacts when opening a conversation --- src/lib/components/chat/Messages/ContentRenderer.svelte | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/lib/components/chat/Messages/ContentRenderer.svelte b/src/lib/components/chat/Messages/ContentRenderer.svelte index 219c0db436..b1591bf11b 100644 --- a/src/lib/components/chat/Messages/ContentRenderer.svelte +++ b/src/lib/components/chat/Messages/ContentRenderer.svelte @@ -185,8 +185,10 @@ !$mobile && $chatId ) { - showArtifacts.set(true); - showControls.set(true); + setTimeout(() => { + showArtifacts.set(true); + showControls.set(true); + }); } }} onPreview={async (value) => { From a9c4e4b422a4908cbaca21c3b3436124df6face8 Mon Sep 17 00:00:00 2001 From: Aslan Vatsaev Date: Fri, 10 Oct 2025 13:47:33 +0200 Subject: [PATCH 002/164] fix: auto show artifacts when opening a conversation --- src/lib/components/chat/Messages/ContentRenderer.svelte | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/src/lib/components/chat/Messages/ContentRenderer.svelte b/src/lib/components/chat/Messages/ContentRenderer.svelte index b1591bf11b..bc9cd3265d 100644 --- a/src/lib/components/chat/Messages/ContentRenderer.svelte +++ b/src/lib/components/chat/Messages/ContentRenderer.svelte @@ -176,7 +176,7 @@ {onSourceClick} {onTaskClick} {onSave} - onUpdate={(token) => { + onUpdate={async (token) => { const { lang, text: code } = token; if ( @@ -185,10 +185,9 @@ !$mobile && $chatId ) { - setTimeout(() => { - showArtifacts.set(true); - showControls.set(true); - }); + await tick(); + showArtifacts.set(true); + showControls.set(true); } }} onPreview={async (value) => { From eff40229fe085fdfae9215315481b3c9d26ee9c4 Mon Sep 17 00:00:00 2001 From: Konstantinos Date: Thu, 16 Oct 2025 21:32:28 +0300 Subject: [PATCH 003/164] i18n: add more greek translations --- src/lib/i18n/locales/el-GR/translation.json | 978 ++++++++++---------- 1 file changed, 489 insertions(+), 489 deletions(-) diff --git a/src/lib/i18n/locales/el-GR/translation.json b/src/lib/i18n/locales/el-GR/translation.json index 1005c5ab88..2cfc7f1915 100644 --- a/src/lib/i18n/locales/el-GR/translation.json +++ b/src/lib/i18n/locales/el-GR/translation.json @@ -1,10 +1,10 @@ { - "-1 for no limit, or a positive integer for a specific limit": "", - "'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "", + "-1 for no limit, or a positive integer for a specific limit": "-1 για απεριόριστο, ή έναν θετικό ακέραιο για ένα συγκεκριμένο όριο", + "'s', 'm', 'h', 'd', 'w' or '-1' for no expiration.": "'s', 'm', 'h', 'd', 'w' ή '-1' για απεριόριστο.", "(e.g. `sh webui.sh --api --api-auth username_password`)": "(π.χ. `sh webui.sh --api --api-auth username_password`)", "(e.g. `sh webui.sh --api`)": "(π.χ. `sh webui.sh --api`)", - "(latest)": "(τελευταίο)", - "(leave blank for to use commercial endpoint)": "", + "(latest)": "(τελευταία)", + "(leave blank for to use commercial endpoint)": "(αφήστε κενό για να χρησιμοποιήσετε εμπορικό endpoint)", "[Last] dddd [at] h:mm A": "", "[Today at] h:mm A": "", "[Yesterday at] h:mm A": "", @@ -26,7 +26,7 @@ "A task model is used when performing tasks such as generating titles for chats and web search queries": "Ένα μοντέλο εργασίας χρησιμοποιείται κατά την εκτέλεση εργασιών όπως η δημιουργία τίτλων για συνομιλίες και αναζητήσεις στο διαδίκτυο", "a user": "ένας χρήστης", "About": "Σχετικά", - "Accept autocomplete generation / Jump to prompt variable": "", + "Accept autocomplete generation / Jump to prompt variable": "Αποδοχή αυτόματης συμπλήρωσης / Μετάβαση στη μεταβλητή της προτροπή", "Access": "Πρόσβαση", "Access Control": "Έλεγχος Πρόσβασης", "Accessible to all users": "Προσβάσιμο σε όλους τους χρήστες", @@ -65,7 +65,7 @@ "Add User Group": "Προσθήκη Ομάδας Χρηστών", "Additional Config": "", "Additional configuration options for marker. This should be a JSON string with key-value pairs. For example, '{\"key\": \"value\"}'. Supported keys include: disable_links, keep_pageheader_in_output, keep_pagefooter_in_output, filter_blank_pages, drop_repeated_text, layout_coverage_threshold, merge_threshold, height_tolerance, gap_threshold, image_threshold, min_line_length, level_count, default_level": "", - "Additional Parameters": "", + "Additional Parameters": "Πρόσθετες Παράμετροι", "Adjusting these settings will apply changes universally to all users.": "Η ρύθμιση αυτών των παραμέτρων θα εφαρμόσει τις αλλαγές καθολικά σε όλους τους χρήστες.", "admin": "διαχειριστής", "Admin": "Διαχειριστής", @@ -74,65 +74,65 @@ "Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Οι διαχειριστές έχουν πρόσβαση σε όλα τα εργαλεία ανά πάσα στιγμή· οι χρήστες χρειάζονται εργαλεία ανά μοντέλο στον χώρο εργασίας.", "Advanced Parameters": "Προηγμένοι Παράμετροι", "Advanced parameters for MinerU parsing (enable_ocr, enable_formula, enable_table, language, model_version, page_ranges)": "", - "Advanced Params": "Προηγμένα Παράμετροι", + "Advanced Params": "Προηγμένες Παράμετροι", "After updating or changing the embedding model, you must reindex the knowledge base for the changes to take effect. You can do this using the \"Reindex\" button below.": "", "AI": "", - "All": "", + "All": "Όλα", "All chats have been unarchived.": "", "All Documents": "Όλα τα Έγγραφα", "All models deleted successfully": "Όλα τα μοντέλα διαγράφηκαν με επιτυχία", - "Allow Call": "", - "Allow Chat Controls": "", + "Allow Call": "Επιτρέπεται η Κλήση", + "Allow Chat Controls": "Επιτρέπεται ο Έλεγχος Συνομιλίας", "Allow Chat Delete": "Επιτρέπεται η διαγραφή συνομιλίας", "Allow Chat Deletion": "Επιτρέπεται η Διαγραφή Συνομιλίας", "Allow Chat Edit": "Επιτρέπεται η Επεξεργασία Συνομιλίας", - "Allow Chat Export": "", - "Allow Chat Params": "", - "Allow Chat Share": "", - "Allow Chat System Prompt": "", - "Allow Chat Valves": "", - "Allow Continue Response": "", - "Allow Delete Messages": "", - "Allow File Upload": "Επιτρέπεται η Αποστολή Αρχείων", - "Allow Multiple Models in Chat": "", + "Allow Chat Export": "Επιτρέπεται η Εξαγωγή Συνομιλίας", + "Allow Chat Params": "Επιτρέπονται οι Παράμετροι Συνομιλίας", + "Allow Chat Share": "Επιτρέπεται ο Διαμοιρασμός Συνομιλίας", + "Allow Chat System Prompt": "Επιτρέπεται η Προτροπή Συστήματος Συνομιλίας", + "Allow Chat Valves": "Επιτρέπονται οι Βαλβίδες Συνομιλίας", + "Allow Continue Response": "Επιτρέπεται η Συνέχιση Απάντησης", + "Allow Delete Messages": "Επιτρέπεται η διαγραφή μηνυμάτων", + "Allow File Upload": "Επιτρέπεται το Ανέβασμα Αρχείων", + "Allow Multiple Models in Chat": "Επιτρέπεται η χρήση πολλαπλών μοντέλων στη συνομιλία", "Allow non-local voices": "Επιτρέπονται μη τοπικές φωνές", - "Allow Rate Response": "", - "Allow Regenerate Response": "", - "Allow Speech to Text": "", + "Allow Rate Response": "Επιτρέπεται η Αξιολόγηση Απάντησης", + "Allow Regenerate Response": "Επιτρέπεται η Επαναδημιουργία Απάντησης", + "Allow Speech to Text": "Επιτρέπεται η Μετατροπή Φωνής σε Κείμενο", "Allow Temporary Chat": "Επιτρέπεται η Προσωρινή Συνομιλία", - "Allow Text to Speech": "", + "Allow Text to Speech": "Επιτρέπεται η Μετατροπή Κειμένου σε Φωνή", "Allow User Location": "Επιτρέπεται η Τοποθεσία Χρήστη", "Allow Voice Interruption in Call": "Επιτρέπεται η Παύση Φωνής στην Κλήση", - "Allowed Endpoints": "", - "Allowed File Extensions": "", - "Allowed file extensions for upload. Separate multiple extensions with commas. Leave empty for all file types.": "", + "Allowed Endpoints": "Επιτρεπόμενα Endpoints", + "Allowed File Extensions": "Επιτρεπόμενες Επεκτάσεις Αρχείων", + "Allowed file extensions for upload. Separate multiple extensions with commas. Leave empty for all file types.": "Επιτρεπόμενες επεκτάσεις αρχείων για ανέβασμα. Διαχωρίστε πολλαπλές επεκτάσεις με κόμματα. Αφήστε κενό για όλους τους τύπους αρχείων.", "Already have an account?": "Έχετε ήδη λογαριασμό;", "Alternative to the top_p, and aims to ensure a balance of quality and variety. The parameter p represents the minimum probability for a token to be considered, relative to the probability of the most likely token. For example, with p=0.05 and the most likely token having a probability of 0.9, logits with a value less than 0.045 are filtered out.": "", - "Always": "", - "Always Collapse Code Blocks": "", - "Always Expand Details": "", - "Always Play Notification Sound": "", + "Always": "Πάντα", + "Always Collapse Code Blocks": "Πάντα να συμπτύσσονται τα μπλοκ κώδικα", + "Always Expand Details": "Πάντα να επεκτείνονται οι λεπτομέρειες", + "Always Play Notification Sound": "Πάντα να αναπαράγετε ο ήχος ειδοποίησης", "Amazing": "Καταπληκτικό", "an assistant": "ένας βοηθός", "An error occurred while fetching the explanation": "", - "Analytics": "", - "Analyzed": "", - "Analyzing...": "", + "Analytics": "Αναλυτικά", + "Analyzed": "Αναλυμένα", + "Analyzing...": "Ανάλυση...", "and": "και", "and {{COUNT}} more": "και {{COUNT}} ακόμα", "and create a new shared link.": "και δημιουργήστε έναν νέο κοινόχρηστο σύνδεσμο.", "Android": "", "API": "", - "API Base URL": "API Βασικό URL", + "API Base URL": "Βασικό URL API", "API Base URL for Datalab Marker service. Defaults to: https://www.datalab.to/api/v1/marker": "", "API details for using a vision-language model in the picture description. This parameter is mutually exclusive with picture_description_local.": "", "API Key": "Κλειδί API", "API Key created.": "Το κλειδί API δημιουργήθηκε.", - "API Key Endpoint Restrictions": "", + "API Key Endpoint Restrictions": "Περιορισμοί Κλειδιού API", "API keys": "κλειδιά API", "API Mode": "", - "API Version": "", - "API Version is required": "", + "API Version": "Έκδοση API", + "API Version is required": "Η Έκδοση API είναι απαραίτητη", "Application DN": "DN Εφαρμογής", "Application DN Password": "Κωδικός DN Εφαρμογής", "applies to all users with the \"user\" role": "εφαρμόζεται σε όλους τους χρήστες με το ρόλο \"user\"", @@ -141,9 +141,9 @@ "Archive All Chats": "Αρχειοθέτηση Όλων των Συνομιλιών", "Archived Chats": "Αρχειοθετημένες Συνομιλίες", "archived-chat-export": "εξαγωγή-αρχείου-συνομιλίας", - "Are you sure you want to clear all memories? This action cannot be undone.": "", - "Are you sure you want to delete this channel?": "", - "Are you sure you want to delete this message?": "", + "Are you sure you want to clear all memories? This action cannot be undone.": "Είστε σίγουροι ότι θέλετε να διαγράψετε όλες τις μνήμες; Αυτή η ενέργεια δεν μπορεί να αναιρεθεί.", + "Are you sure you want to delete this channel?": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το κανάλι;", + "Are you sure you want to delete this message?": "Είστε σίγουροι ότι θέλετε να διαγράψετε αυτό το μήνυμα;", "Are you sure you want to unarchive all archived chats?": "Είστε σίγουροι ότι θέλετε να απο-αρχειοθετήσετε όλες τις αρχειοθετημένες συνομιλίες;", "Are you sure?": "Είστε σίγουροι;", "Arena Models": "Μοντέλα Arena", @@ -151,29 +151,29 @@ "Ask": "", "Ask a question": "Ρωτήστε μια ερώτηση", "Assistant": "Βοηθός", - "Attach file from knowledge": "", - "Attach Knowledge": "", - "Attach Notes": "", - "Attach Webpage": "", + "Attach file from knowledge": "Προσθήκη αρχείου από Knowledge", + "Attach Knowledge": "Προσθήκη Knowledge", + "Attach Notes": "Προσθήκη Σημειώσεων", + "Attach Webpage": "Προσθήκη ιστότοπου", "Attention to detail": "Προσοχή στη λεπτομέρεια", - "Attribute for Mail": "", - "Attribute for Username": "Ιδιότητα για Όνομα Χρήστη", + "Attribute for Mail": "Γνώρισμα για Email", + "Attribute for Username": "Γνώρισμα για Όνομα Χρήστη", "Audio": "Ήχος", "August": "Αύγουστος", - "Auth": "", + "Auth": "Ταυτοποίηση", "Authenticate": "Επαλήθευση", - "Authentication": "", - "Auto": "", + "Authentication": "Ταυτοποίηση", + "Auto": "Αυτόματο", "Auto-Copy Response to Clipboard": "Αυτόματη Αντιγραφή Απάντησης στο Πρόχειρο", "Auto-playback response": "Αυτόματη αναπαραγωγή της απάντησης", - "Autocomplete Generation": "", - "Autocomplete Generation Input Max Length": "", + "Autocomplete Generation": "Δημιουργία Αυτόματης Συμπλήρωσης", + "Autocomplete Generation Input Max Length": "Μέγιστο Μήκος Εισόδου Δημιουργίας Αυτόματης Συμπλήρωσης", "Automatic1111": "Automatic1111", "AUTOMATIC1111 Api Auth String": "Σειρά Επαλήθευσης API AUTOMATIC1111", "AUTOMATIC1111 Base URL": "Βασικό URL AUTOMATIC1111", "AUTOMATIC1111 Base URL is required.": "Απαιτείται το Βασικό URL AUTOMATIC1111.", "Available list": "Διαθέσιμη λίστα", - "Available Tools": "", + "Available Tools": "Διαθέσιμα Εργαλεία", "available users": "διαθέσιμοι χρήστες", "available!": "διαθέσιμο!", "Away": "Απών", @@ -183,7 +183,7 @@ "Azure Region": "Περιοχή Azure", "Back": "Πίσω", "Bad Response": "Κακή Απάντηση", - "Banners": "Προβολές", + "Banners": "Ανακοινώσεις", "Base Model (From)": "Βασικό Μοντέλο (Από)", "Base Model List Cache speeds up access by fetching base models only at startup or on settings save—faster, but may not show recent base model changes.": "", "Bearer": "", @@ -192,8 +192,8 @@ "Beta": "", "Bing Search V7 Endpoint": "Τέλος Bing Search V7", "Bing Search V7 Subscription Key": "Κλειδί Συνδρομής Bing Search V7", - "Bio": "", - "Birth Date": "", + "Bio": "Βιογραφικό", + "Birth Date": "Ημερομηνία Γέννησης", "BM25 Weight": "", "Bocha Search API Key": "", "Bold": "", @@ -205,35 +205,35 @@ "Button Label": "", "Button Prompt": "", "By {{name}}": "Από {{name}}", - "Bypass Embedding and Retrieval": "", - "Bypass Web Loader": "", - "Cache Base Model List": "", + "Bypass Embedding and Retrieval": "Παράκαμψη Ενσωματώσεων και Ανάκτησης", + "Bypass Web Loader": "Παράκαμψη Φορτωτή Διαδικτύου", + "Cache Base Model List": "Αποθήκευση Λίστας Βασικών Μοντέλων Στην Κρυφή Μνήμη", "Calendar": "", "Call": "Κλήση", "Call feature is not supported when using Web STT engine": "Η λειτουργία κλήσης δεν υποστηρίζεται όταν χρησιμοποιείται η μηχανή Web STT", "Camera": "Κάμερα", "Cancel": "Ακύρωση", "Capabilities": "Δυνατότητες", - "Capture": "", - "Capture Audio": "", + "Capture": "Καταγραφή Εικόνας", + "Capture Audio": "Καταγραφή Ήχου", "Certificate Path": "Διαδρομή Πιστοποιητικού", "Change Password": "Αλλαγή Κωδικού", - "Channel": "", - "Channel deleted successfully": "", - "Channel Name": "", - "Channel updated successfully": "", - "Channels": "", + "Channel": "Κανάλι", + "Channel deleted successfully": "Το κανάλι διαγράφηκε επιτυχώς", + "Channel Name": "Όνομα Καναλιού", + "Channel updated successfully": "Το κανάλι ενημερώθηκε επιτυχώς", + "Channels": "Κανάλια", "Character": "Χαρακτήρας", - "Character limit for autocomplete generation input": "", + "Character limit for autocomplete generation input": "Όριο χαρακτήρων για αυτόματη συμπλήρωση εισαγωγής", "Chart new frontiers": "Σχεδιάστε νέους ορίζοντες", "Chat": "Συνομιλία", "Chat Background Image": "Εικόνα Φόντου Συνομιλίας", "Chat Bubble UI": "Διεπαφή Φούσκας Συνομιλίας", "Chat Controls": "Έλεγχοι Συνομιλίας", - "Chat Conversation": "", + "Chat Conversation": "Συνομιλία", "Chat direction": "Κατεύθυνση Συνομιλίας", - "Chat ID": "", - "Chat moved successfully": "", + "Chat ID": "ID Συνομιλίας", + "Chat moved successfully": "Η συνομιλία μετακινήθηκε επιτυχώς", "Chat Overview": "Επισκόπηση Συνομιλίας", "Chat Permissions": "Δικαιώματα Συνομιλίας", "Chat Tags Auto-Generation": "Αυτόματη Γενιά Ετικετών Συνομιλίας", @@ -245,8 +245,8 @@ "Chunk Overlap": "Επικάλυψη Τμημάτων", "Chunk Size": "Μέγεθος Τμημάτων", "Ciphers": "Κρυπτογραφήσεις", - "Citation": "Παράθεση", - "Citations": "", + "Citation": "Παραπομπή", + "Citations": "Παραπομπές", "Clear memory": "Καθαρισμός μνήμης", "Clear Memory": "", "click here": "κλικ εδώ", @@ -264,58 +264,58 @@ "Click on the user role button to change a user's role.": "Κάντε κλικ στο κουμπί ρόλου χρήστη για να αλλάξετε το ρόλο ενός χρήστη.", "Clipboard write permission denied. Please check your browser settings to grant the necessary access.": "Άρνηση δικαιώματος εγγραφής στο πρόχειρο. Παρακαλώ ελέγξτε τις ρυθμίσεις του περιηγητή σας για να δώσετε την απαραίτητη πρόσβαση.", "Clone": "Κλώνος", - "Clone Chat": "", - "Clone of {{TITLE}}": "", + "Clone Chat": "Κλωνοποίηση Συνομιλίας", + "Clone of {{TITLE}}": "Κλώνος του {{TITLE}}", "Close": "Κλείσιμο", - "Close Banner": "", - "Close Configure Connection Modal": "", - "Close modal": "", - "Close settings modal": "", - "Close Sidebar": "", - "CMU ARCTIC speaker embedding name": "", - "Code Block": "", + "Close Banner": "Κλείσιμο Ανακοίνωσης", + "Close Configure Connection Modal": "Κλείσιμο παραθύρου διαμόρφωσης σύνδεσης", + "Close modal": "Κλείσιμο παραθύρου διαλόγου", + "Close settings modal": "Κλείσιμο παραθύρου διαμόρφωσης ρυθμίσεων", + "Close Sidebar": "Κλείσιμο πλευρικής μπάρας", + "CMU ARCTIC speaker embedding name": "Όνομα μοντέλου ενσωματώσεων ομιλητή CMU ARCTIC", + "Code Block": "Μπλοκ Κώδικα", "Code execution": "Εκτέλεση κώδικα", - "Code Execution": "", - "Code Execution Engine": "", - "Code Execution Timeout": "", + "Code Execution": "Εκτέλεση Κώδικα", + "Code Execution Engine": "Μηχανή Εκτέλεσης Κώδικα", + "Code Execution Timeout": "Χρονικό Όριο Εκτέλεσης Κώδικα", "Code formatted successfully": "Ο κώδικας μορφοποιήθηκε επιτυχώς", - "Code Interpreter": "", - "Code Interpreter Engine": "", - "Code Interpreter Prompt Template": "", - "Collapse": "", + "Code Interpreter": "Διερμηνέας Κώδικα", + "Code Interpreter Engine": "Μηχανή Διερμηνέα Κώδικα", + "Code Interpreter Prompt Template": "Πρότυπο Προτροπής Διερμηνέα Κώδικα", + "Collapse": "Σύμπτυξη", "Collection": "Συλλογή", "Color": "Χρώμα", - "ComfyUI": "ComfyUI", - "ComfyUI API Key": "", + "ComfyUI": "", + "ComfyUI API Key": "API κλειδί του ComfyUI", "ComfyUI Base URL": "Βασικό URL ComfyUI", "ComfyUI Base URL is required.": "Απαιτείται το Βασικό URL ComfyUI.", "ComfyUI Workflow": "Ροές Εργασίας ComfyUI", "ComfyUI Workflow Nodes": "Κόμβοι Ροής Εργασίας ComfyUI", - "Comma separated Node Ids (e.g. 1 or 1,2)": "", + "Comma separated Node Ids (e.g. 1 or 1,2)": "ID κόμβων διαχωρισμένα με κόμμα (π.χ. 1 ή 1,2)", "Command": "Εντολή", - "Comment": "", + "Comment": "Σχόλιο", "Completions": "Ολοκληρώσεις", - "Compress Images in Channels": "", + "Compress Images in Channels": "Συμπίεση εικόνων σε κανάλια", "Concurrent Requests": "Ταυτόχρονες Αιτήσεις", "Config imported successfully": "", "Configure": "Διαμόρφωση", "Confirm": "Επιβεβαίωση", "Confirm Password": "Επιβεβαίωση Κωδικού", "Confirm your action": "Επιβεβαιώστε την ενέργειά σας", - "Confirm your new password": "", - "Confirm Your Password": "", + "Confirm your new password": "Επιβεβαιώστε τον νέο σας κωδικό", + "Confirm Your Password": "Επιβεβαιώστε τον Κωδικό σας", "Connect to your own OpenAI compatible API endpoints.": "", - "Connect to your own OpenAPI compatible external tool servers.": "", - "Connection failed": "", - "Connection successful": "", - "Connection Type": "", + "Connect to your own OpenAPI compatible external tool servers.": "Συνδεθείτε στους δικούς σας διακομιστές εξωτερικών εργαλείων συμβατών με OpenAPI.", + "Connection failed": "Σύνδεση απέτυχε", + "Connection successful": "Σύνδεση επιτυχής", + "Connection Type": "Είδος Σύνδεσης", "Connections": "Συνδέσεις", - "Connections saved successfully": "", - "Connections settings updated": "", + "Connections saved successfully": "Οι συνδέσεις αποθηκεύτηκαν επιτυχώς", + "Connections settings updated": "Οι ρυθμίσεις σύνδεσης ενημερώθηκαν", "Constrains effort on reasoning for reasoning models. Only applicable to reasoning models from specific providers that support reasoning effort.": "", "Contact Admin for WebUI Access": "Επικοινωνήστε με τον Διαχειριστή για Πρόσβαση στο WebUI", "Content": "Περιεχόμενο", - "Content Extraction Engine": "", + "Content Extraction Engine": "Μηχανή Εξαγωγής Περιεχομένου", "Continue Response": "Συνέχεια Απάντησης", "Continue with {{provider}}": "Συνέχεια με {{provider}}", "Continue with Email": "Συνέχεια με Email", @@ -324,16 +324,16 @@ "Control the repetition of token sequences in the generated text. A higher value (e.g., 1.5) will penalize repetitions more strongly, while a lower value (e.g., 1.1) will be more lenient. At 1, it is disabled.": "", "Controls": "Έλεγχοι", "Controls the balance between coherence and diversity of the output. A lower value will result in more focused and coherent text.": "", - "Conversation saved successfully": "", + "Conversation saved successfully": "Η συνομιλία αποθηκεύτηκε επιτυχώς", "Copied": "Αντιγράφηκε", - "Copied link to clipboard": "", + "Copied link to clipboard": "Αντιγράφηκε ο σύνδεσμος στο πρόχειρο", "Copied shared chat URL to clipboard!": "Αντιγράφηκε το URL της κοινόχρηστης συνομιλίας στο πρόχειρο!", "Copied to clipboard": "Αντιγράφηκε στο πρόχειρο", "Copy": "Αντιγραφή", - "Copy Formatted Text": "", + "Copy Formatted Text": "Αντιγραφή μορφοποιημένου κειμένου", "Copy last code block": "Αντιγραφή τελευταίου μπλοκ κώδικα", "Copy last response": "Αντιγραφή τελευταίας απάντησης", - "Copy link": "", + "Copy link": "Αντιγραφή συνδέσμου", "Copy Link": "Αντιγραφή Συνδέσμου", "Copy to clipboard": "Αντιγραφή στο πρόχειρο", "Copying to clipboard was successful!": "Η αντιγραφή στο πρόχειρο ήταν επιτυχής!", @@ -344,53 +344,53 @@ "Create a new note": "", "Create Account": "Δημιουργία Λογαριασμού", "Create Admin Account": "Δημιουργία Λογαριασμού Διαχειριστή", - "Create Channel": "", - "Create Folder": "", + "Create Channel": "Δημιουργία Καναλιού", + "Create Folder": "Δημιουργία Φακέλου", "Create Group": "Δημιουργία Ομάδας", - "Create Knowledge": "Δημιουργία Γνώσης", - "Create Model": "", + "Create Knowledge": "Δημιουργία Knowledge", + "Create Model": "Δημιουργία Μοντέλου", "Create new key": "Δημιουργία νέου κλειδιού", "Create new secret key": "Δημιουργία νέου μυστικού κλειδιού", - "Create Note": "", + "Create Note": "Δημιουργία Σημείωσης", "Create your first note by clicking on the plus button below.": "", "Created at": "Δημιουργήθηκε στις", "Created At": "Δημιουργήθηκε στις", "Created by": "Δημιουργήθηκε από", - "Created by you": "", + "Created by you": "Δημιουργήθηκε από εσάς", "CSV Import": "Εισαγωγή CSV", - "Ctrl+Enter to Send": "", + "Ctrl+Enter to Send": "Ctrl+Enter για Αποστολή", "Current Model": "Τρέχον Μοντέλο", "Current Password": "Τρέχων Κωδικός", "Custom": "Προσαρμοσμένο", "Custom description enabled": "", "Custom Parameter Name": "", "Custom Parameter Value": "", - "Danger Zone": "", + "Danger Zone": "Περιοχή Κινδύνου", "Dark": "Σκούρο", - "Data Controls": "", + "Data Controls": "Έλεγχοι Δεδομένων", "Database": "Βάση Δεδομένων", "Datalab Marker API": "", "Datalab Marker API Key required.": "", - "DD/MM/YYYY": "", + "DD/MM/YYYY": "ΗΗ/ΜΜ/ΕΕΕΕ", "December": "Δεκέμβριος", "Deepgram": "", "Default": "Προεπιλογή", "Default (Open AI)": "Προεπιλογή (Open AI)", "Default (SentenceTransformers)": "Προεπιλογή (SentenceTransformers)", - "Default action buttons will be used.": "", + "Default action buttons will be used.": "Θα χρησιμοποιηθούν οι προεπιλεγμένες ενέργειες των κουμπιών.", "Default description enabled": "", - "Default Features": "", - "Default Filters": "", + "Default Features": "Προεπιλεγμένες Λειτουργίες", + "Default Filters": "Προεπιλεγμένα Φίλτρα", "Default mode works with a wider range of models by calling tools once before execution. Native mode leverages the model's built-in tool-calling capabilities, but requires the model to inherently support this feature.": "", "Default Model": "Προεπιλεγμένο Μοντέλο", "Default model updated": "Το προεπιλεγμένο μοντέλο ενημερώθηκε", "Default Models": "Προεπιλεγμένα Μοντέλα", "Default permissions": "Προεπιλεγμένα δικαιώματα", "Default permissions updated successfully": "Τα προεπιλεγμένα δικαιώματα ενημερώθηκαν με επιτυχία", - "Default Prompt Suggestions": "Προεπιλεγμένες Προτάσεις Προτροπής", + "Default Prompt Suggestions": "Προεπιλεγμένες Προτεινόμενες Προτροπές", "Default to 389 or 636 if TLS is enabled": "Προεπιλογή στο 389 ή 636 εάν είναι ενεργοποιημένο το TLS", "Default to ALL": "Προεπιλογή σε ΟΛΑ", - "Default to segmented retrieval for focused and relevant content extraction, this is recommended for most cases.": "", + "Default to segmented retrieval for focused and relevant content extraction, this is recommended for most cases.": "Η προεπιλογή είναι η τμηματοποιημένη ανάκτηση για στοχευμένη και σχετική εξαγωγή περιεχομένου, κάτι που συνιστάται στις περισσότερες περιπτώσεις.", "Default User Role": "Προεπιλεγμένος Ρόλος Χρήστη", "Delete": "Διαγραφή", "Delete a model": "Διαγραφή ενός μοντέλου", @@ -401,10 +401,10 @@ "Delete chat?": "Διαγραφή συνομιλίας;", "Delete folder?": "Διαγραφή φακέλου;", "Delete function?": "Διαγραφή λειτουργίας;", - "Delete Message": "", - "Delete message?": "", - "Delete Model": "", - "Delete note?": "", + "Delete Message": "Διαγραφή Μηνύματος", + "Delete message?": "Διαγραφή μηνύματος;", + "Delete Model": "Διαγραφή Μοντέλου", + "Delete note?": "Διαγραφή σημείωσης;", "Delete prompt?": "Διαγραφή προτροπής;", "delete this link": "διαγραφή αυτού του συνδέσμου", "Delete tool?": "Διαγραφή εργαλείου;", @@ -417,11 +417,11 @@ "Describe your knowledge base and objectives": "Περιγράψτε τη βάση γνώσης και τους στόχους σας", "Description": "Περιγραφή", "Detect Artifacts Automatically": "", - "Dictate": "", + "Dictate": "Υπαγόρευση", "Didn't fully follow instructions": "Δεν ακολούθησε πλήρως τις οδηγίες", "Direct": "", - "Direct Connections": "", - "Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "", + "Direct Connections": "Άμεσες Συνδέσεις", + "Direct Connections allow users to connect to their own OpenAI compatible API endpoints.": "Οι Άμεσες Συνδέσεις επιτρέπουν στους χρήστες να συνδέσουν τα δικά τους API endpoints συμβατά με OpenAI.", "Direct Tool Servers": "", "Directory selection was cancelled": "", "Disable Code Interpreter": "", @@ -432,19 +432,19 @@ "Discover a model": "Ανακάλυψη μοντέλου", "Discover a prompt": "Ανακάλυψη προτροπής", "Discover a tool": "Ανακάλυψη εργαλείου", - "Discover how to use Open WebUI and seek support from the community.": "", + "Discover how to use Open WebUI and seek support from the community.": "Εξερευνήστε πως να χρησιμοποιήσετε το Open WebUI και αναζητήστε βοήθεια στην κοινότητα.", "Discover wonders": "Ανακάλυψη θαυμάτων", "Discover, download, and explore custom functions": "Ανακαλύψτε, κατεβάστε και εξερευνήστε προσαρμοσμένες λειτουργίες", "Discover, download, and explore custom prompts": "Ανακαλύψτε, κατεβάστε και εξερευνήστε προσαρμοσμένες προτροπές", "Discover, download, and explore custom tools": "Ανακαλύψτε, κατεβάστε και εξερευνήστε προσαρμοσμένα εργαλεία", "Discover, download, and explore model presets": "Ανακαλύψτε, κατεβάστε και εξερευνήστε προκαθορισμένα μοντέλα", "Display": "Εμφάνιση", - "Display chat title in tab": "", + "Display chat title in tab": "Εμφάνιση τίτλου συνομιλίας στην καρτέλα", "Display Emoji in Call": "Εμφάνιση Emoji στην Κλήση", - "Display Multi-model Responses in Tabs": "", + "Display Multi-model Responses in Tabs": "Εμφάνιση Απαντήσεων Πολυτροπικών Μοντέλων στις Καρτέλες", "Display the username instead of You in the Chat": "Εμφάνιση του ονόματος χρήστη αντί του Εσάς στη Συνομιλία", - "Displays citations in the response": "Εμφανίζει αναφορές στην απάντηση", - "Displays status updates (e.g., web search progress) in the response": "", + "Displays citations in the response": "Εμφανίζει παραπομπές στην απάντηση", + "Displays status updates (e.g., web search progress) in the response": "Εμφανίζει ενημερώσεις κατάστασης (π.χ. πρόοδο αναζήτησης στο διαδίκτυο) στην απάντηση", "Dive into knowledge": "Βυθιστείτε στη γνώση", "dlparse_v1": "", "dlparse_v2": "", @@ -452,14 +452,14 @@ "Do not install functions from sources you do not fully trust.": "Μην εγκαθιστάτε λειτουργίες από πηγές που δεν εμπιστεύεστε πλήρως.", "Do not install tools from sources you do not fully trust.": "Μην εγκαθιστάτε εργαλεία από πηγές που δεν εμπιστεύεστε πλήρως.", "Docling": "", - "Docling Server URL required.": "", + "Docling Server URL required.": "Απαιτείται το URL του διακομιστή Docling.", "Document": "Έγγραφο", "Document Intelligence": "", - "Document Intelligence endpoint required.": "", + "Document Intelligence endpoint required.": "Απαιτείται το endpoint του Document Intelligence.", "Documentation": "Τεκμηρίωση", "Documents": "Έγγραφα", "does not make any external connections, and your data stays securely on your locally hosted server.": "δεν κάνει καμία εξωτερική σύνδεση, και τα δεδομένα σας παραμένουν ασφαλή στον τοπικά φιλοξενούμενο διακομιστή σας.", - "Domain Filter List": "", + "Domain Filter List": "Λίστα Φίλτρων Domain", "don't fetch random pipelines from sources you don't trust.": "Μην ανακτάτε τυχαία pipelines από μη αξιόπιστες πηγές.", "Don't have an account?": "Δεν έχετε λογαριασμό;", "don't install random functions from sources you don't trust.": "μην εγκαθιστάτε τυχαίες λειτουργίες από πηγές που δεν εμπιστεύεστε.", @@ -475,20 +475,20 @@ "Draw": "Σχεδίαση", "Drop any files here to upload": "", "e.g. '30s','10m'. Valid time units are 's', 'm', 'h'.": "π.χ. '30s','10m'. Οι έγκυρες μονάδες χρόνου είναι 's', 'm', 'h'.", - "e.g. \"json\" or a JSON schema": "", - "e.g. 60": "", + "e.g. \"json\" or a JSON schema": "π.χ. \"json\" ή ένα JSON σχήμα", + "e.g. 60": "π.χ. 60", "e.g. A filter to remove profanity from text": "π.χ. Ένα φίλτρο για να αφαιρέσετε βρισιές από το κείμενο", - "e.g. en": "", - "e.g. My Filter": "π.χ. Το Φίλτρου Μου", + "e.g. en": "π.χ. en", + "e.g. My Filter": "π.χ. Το Φίλτρο Μου", "e.g. My Tools": "π.χ. Τα Εργαλεία Μου", "e.g. my_filter": "π.χ. my_filter", "e.g. my_tools": "π.χ. my_tools", - "e.g. pdf, docx, txt": "", + "e.g. pdf, docx, txt": "π.χ. pdf, docx, txt", "e.g. Tools for performing various operations": "π.χ. Εργαλεία για την εκτέλεση διάφορων λειτουργιών", - "e.g., 3, 4, 5 (leave blank for default)": "", - "e.g., audio/wav,audio/mpeg,video/* (leave blank for defaults)": "", - "e.g., en-US,ja-JP (leave blank for auto-detect)": "", - "e.g., westus (leave blank for eastus)": "", + "e.g., 3, 4, 5 (leave blank for default)": "π.χ. 3, 4, 5 (αφήστε κενό για προεπιλογή)", + "e.g., audio/wav,audio/mpeg,video/* (leave blank for defaults)": "π.χ. audio/wav,audio/mpeg,video/* (αφήστε κενό για προεπιλογή)", + "e.g., en-US,ja-JP (leave blank for auto-detect)": "π.χ. en-US,ja-JP (αφήστε κενό για αυτόματη ανίχνευση)", + "e.g., westus (leave blank for eastus)": "π.χ. westus (αφήστε κενό για προεπιλογή)", "Edit": "Επεξεργασία", "Edit Arena Model": "Επεξεργασία Μοντέλου Arena", "Edit Channel": "", @@ -505,15 +505,15 @@ "ElevenLabs": "ElevenLabs", "Email": "Email", "Embark on adventures": "Ξεκινήστε περιπέτειες", - "Embedding": "", + "Embedding": "Ενσωμάτωση", "Embedding Batch Size": "Μέγεθος Παρτίδας Ενσωμάτωσης", "Embedding Model": "Μοντέλο Ενσωμάτωσης", "Embedding Model Engine": "Μηχανή Μοντέλου Ενσωμάτωσης", "Embedding model set to \"{{embedding_model}}\"": "Το μοντέλο ενσωμάτωσης έχει οριστεί σε \"{{embedding_model}}\"", - "Enable API Key": "", - "Enable autocomplete generation for chat messages": "", - "Enable Code Execution": "", - "Enable Code Interpreter": "", + "Enable API Key": "Ενεργοποίηση API κλειδιού", + "Enable autocomplete generation for chat messages": "Ενεργοποίηση αυτόματης συμπλήρωσης για συνομιλίες", + "Enable Code Execution": "Ενεργοποίηση Εκτέλεσης Κώδικα", + "Enable Code Interpreter": "Ενεργοποίηση Διερμηνέα Κώδικα", "Enable Community Sharing": "Ενεργοποίηση Κοινοτικής Κοινής Χρήσης", "Enable Memory Locking (mlock) to prevent model data from being swapped out of RAM. This option locks the model's working set of pages into RAM, ensuring that they will not be swapped out to disk. This can help maintain performance by avoiding page faults and ensuring fast data access.": "Ενεργοποίηση Κλείδωσης Μνήμης (mlock) για την αποτροπή της ανταλλαγής δεδομένων του μοντέλου από τη μνήμη RAM. Αυτή η επιλογή κλειδώνει το σύνολο εργασίας των σελίδων του μοντέλου στη μνήμη RAM, διασφαλίζοντας ότι δεν θα ανταλλαχθούν στο δίσκο. Αυτό μπορεί να βοηθήσει στη διατήρηση της απόδοσης αποφεύγοντας σφάλματα σελίδων και διασφαλίζοντας γρήγορη πρόσβαση στα δεδομένα.", "Enable Memory Mapping (mmap) to load model data. This option allows the system to use disk storage as an extension of RAM by treating disk files as if they were in RAM. This can improve model performance by allowing for faster data access. However, it may not work correctly with all systems and can consume a significant amount of disk space.": "Ενεργοποίηση Χαρτογράφησης Μνήμης (mmap) για φόρτωση δεδομένων μοντέλου. Αυτή η επιλογή επιτρέπει στο σύστημα να χρησιμοποιεί αποθήκευση δίσκου ως επέκταση της μνήμης RAM, αντιμετωπίζοντας αρχεία δίσκου σαν να ήταν στη μνήμη RAM. Αυτό μπορεί να βελτιώσει την απόδοση του μοντέλου επιτρέποντας γρηγορότερη πρόσβαση στα δεδομένα. Ωστόσο, μπορεί να μην λειτουργεί σωστά με όλα τα συστήματα και να καταναλώνει σημαντικό χώρο στο δίσκο.", @@ -533,7 +533,7 @@ "Enter a watermark for the response. Leave empty for none.": "", "Enter additional headers in JSON format": "", "Enter additional headers in JSON format (e.g. {{'{{\"X-Custom-Header\": \"value\"}}'}})": "", - "Enter additional parameters in JSON format": "", + "Enter additional parameters in JSON format": "Εισάγετε πρόσθετες παραμέτρους σε μορφή JSON", "Enter api auth string (e.g. username:password)": "Εισάγετε τη σειρά επαλήθευσης api (π.χ. username:password)", "Enter Application DN": "Εισάγετε DN Εφαρμογής", "Enter Application DN Password": "Εισάγετε Κωδικό DN Εφαρμογής", @@ -557,28 +557,28 @@ "Enter Docling Server URL": "", "Enter Document Intelligence Endpoint": "", "Enter Document Intelligence Key": "", - "Enter domains separated by commas (e.g., example.com,site.org)": "", + "Enter domains separated by commas (e.g., example.com,site.org)": "Εισάγετε domains χωρισμένα με κόμματα (π.χ. example.com,site.org)", "Enter Exa API Key": "", - "Enter External Document Loader API Key": "", - "Enter External Document Loader URL": "", + "Enter External Document Loader API Key": "Εισάγετε το API κλειδί του εξωτερικού προγράμματος φόρτωσης εγγράφων", + "Enter External Document Loader URL": "Εισάγετε το URL του εξωτερικού προγράμματος φόρτωσης εγγράφων", "Enter External Web Loader API Key": "", "Enter External Web Loader URL": "", "Enter External Web Search API Key": "", "Enter External Web Search URL": "", "Enter Firecrawl API Base URL": "", "Enter Firecrawl API Key": "", - "Enter folder name": "", + "Enter folder name": "Εισάγετε όνομα φακέλου", "Enter Github Raw URL": "Εισάγετε το Github Raw URL", "Enter Google PSE API Key": "Εισάγετε το Κλειδί API Google PSE", "Enter Google PSE Engine Id": "Εισάγετε το Αναγνωριστικό Μηχανής Google PSE", "Enter hex color (e.g. #FF0000)": "", - "Enter ID": "", + "Enter ID": "Εισάγετε ID", "Enter Image Size (e.g. 512x512)": "Εισάγετε το Μέγεθος Εικόνας (π.χ. 512x512)", "Enter Jina API Key": "Εισάγετε το Κλειδί API Jina", "Enter JSON config (e.g., {\"disable_links\": true})": "", - "Enter Jupyter Password": "", - "Enter Jupyter Token": "", - "Enter Jupyter URL": "", + "Enter Jupyter Password": "Εισάγετε Κωδικό Jupyter", + "Enter Jupyter Token": "Εισάγετε Jupyter Token", + "Enter Jupyter URL": "Εισάγετε Jupyter URL", "Enter Kagi Search API Key": "", "Enter Key Behavior": "", "Enter language codes": "Εισάγετε κωδικούς γλώσσας", @@ -587,66 +587,66 @@ "Enter Model ID": "Εισάγετε το ID Μοντέλου", "Enter model tag (e.g. {{modelTag}})": "Εισάγετε την ετικέτα μοντέλου (π.χ. {{modelTag}})", "Enter Mojeek Search API Key": "Εισάγετε το Κλειδί API Mojeek Search", - "Enter name": "", - "Enter New Password": "", + "Enter name": "Εισάγετε όνομα", + "Enter New Password": "Εισάγετε νέο κωδικό", "Enter Number of Steps (e.g. 50)": "Εισάγετε τον Αριθμό Βημάτων (π.χ. 50)", - "Enter Ollama Cloud API Key": "", - "Enter Perplexity API Key": "", - "Enter Playwright Timeout": "", - "Enter Playwright WebSocket URL": "", - "Enter proxy URL (e.g. https://user:password@host:port)": "", + "Enter Ollama Cloud API Key": "Εισάγετε το Κλειδί API Ollama Cloud", + "Enter Perplexity API Key": "Εισάγετε το Κλειδί API Perplexity", + "Enter Playwright Timeout": "Εισάγετε το χρονικό όριο του Playwright", + "Enter Playwright WebSocket URL": "Εισάγετε το URL WebSocket του Playwright", + "Enter proxy URL (e.g. https://user:password@host:port)": "Εισάγετε URL διακομιστή μεσολάβησης (π.χ. https://user:password@host:port)", "Enter reasoning effort": "", - "Enter Sampler (e.g. Euler a)": "Εισάγετε τον Sampler (π.χ. Euler a)", - "Enter Scheduler (e.g. Karras)": "Εισάγετε τον Scheduler (π.χ. Karras)", + "Enter Sampler (e.g. Euler a)": "Εισάγετε τον Δειγματολήπτη (π.χ. Euler a)", + "Enter Scheduler (e.g. Karras)": "Εισάγετε τον Προγραμματιστή (π.χ. Karras)", "Enter Score": "Εισάγετε το Score", "Enter SearchApi API Key": "Εισάγετε το Κλειδί API SearchApi", "Enter SearchApi Engine": "Εισάγετε τη Μηχανή SearchApi", "Enter Searxng Query URL": "Εισάγετε το URL Ερώτησης Searxng", "Enter Seed": "Εισάγετε το Seed", - "Enter SerpApi API Key": "", - "Enter SerpApi Engine": "", + "Enter SerpApi API Key": "Εισάγετε το Κλειδί API SerpApi", + "Enter SerpApi Engine": "Εισάγετε τη Μηχανή SerpApi", "Enter Serper API Key": "Εισάγετε το Κλειδί API Serper", "Enter Serply API Key": "Εισάγετε το Κλειδί API Serply", "Enter Serpstack API Key": "Εισάγετε το Κλειδί API Serpstack", "Enter server host": "Εισάγετε τον διακομιστή host", "Enter server label": "Εισάγετε την ετικέτα διακομιστή", "Enter server port": "Εισάγετε την θύρα διακομιστή", - "Enter Sougou Search API sID": "", - "Enter Sougou Search API SK": "", + "Enter Sougou Search API sID": "Εισάγετε το sID του API του Sougou", + "Enter Sougou Search API SK": "Εισάγετε το SK του API του Sougou", "Enter stop sequence": "Εισάγετε τη σειρά παύσης", "Enter system prompt": "Εισάγετε την προτροπή συστήματος", - "Enter system prompt here": "", + "Enter system prompt here": "Εισάγετε την προτροπή συστήματος εδώ", "Enter Tavily API Key": "Εισάγετε το Κλειδί API Tavily", - "Enter Tavily Extract Depth": "", - "Enter the public URL of your WebUI. This URL will be used to generate links in the notifications.": "", - "Enter the URL of the function to import": "", - "Enter the URL to import": "", + "Enter Tavily Extract Depth": "Εισάγετε το βάθος εξαγωγής του Tavily", + "Enter the public URL of your WebUI. This URL will be used to generate links in the notifications.": "Εισάγετε το δημόσιο URL του WebUI σας. Αυτό το URL θα χρησιμοποιηθεί για να παράξει συνδέσμους στις ειδοποιήσεις.", + "Enter the URL of the function to import": "Εισάγετε το URL της συνάρτησης για εισαγωγή", + "Enter the URL to import": "Εισάγετε το URL για εισαγωγή", "Enter Tika Server URL": "Εισάγετε το URL διακομιστή Tika", - "Enter timeout in seconds": "", - "Enter to Send": "", + "Enter timeout in seconds": "Εισάγετε το χρονικό όριο σε δευτερόλεπτα", + "Enter to Send": "Εισάγετε για Αποστολή", "Enter Top K": "Εισάγετε το Top K", - "Enter Top K Reranker": "", + "Enter Top K Reranker": "Εισάγετε το Top K Reranker", "Enter URL (e.g. http://127.0.0.1:7860/)": "Εισάγετε το URL (π.χ. http://127.0.0.1:7860/)", "Enter URL (e.g. http://localhost:11434)": "Εισάγετε το URL (π.χ. http://localhost:11434)", - "Enter value": "", - "Enter value (true/false)": "", - "Enter Yacy Password": "", - "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "", - "Enter Yacy Username": "", - "Enter your code here...": "Εισαγάγετε τον κώδικά σας εδώ...", - "Enter your current password": "", + "Enter value": "Εισάγετε τιμή", + "Enter value (true/false)": "Εισάγετε τιμή (true/false)", + "Enter Yacy Password": "Εισάγετε τον κωδικό του Yacy", + "Enter Yacy URL (e.g. http://yacy.example.com:8090)": "Εισάγετε το URL του Yacy (π.χ. http://yacy.example.com:8090)", + "Enter Yacy Username": "Εισάγετε το όνομα χρήστη του Yacy", + "Enter your code here...": "Εισάγετε τον κώδικά σας εδώ...", + "Enter your current password": "Εισάγετε τον τρέχοντα κωδικό σας", "Enter Your Email": "Εισάγετε το Email σας", "Enter Your Full Name": "Εισάγετε το Πλήρες Όνομά σας", - "Enter your gender": "", + "Enter your gender": "Εισάγετε το φύλο σας", "Enter your message": "Εισάγετε το μήνυμά σας", - "Enter your name": "", - "Enter Your Name": "", - "Enter your new password": "", + "Enter your name": "Εισάγετε το όνομά σας", + "Enter Your Name": "Εισάγετε το Όνομά σας", + "Enter your new password": "Εισάγετε τον νέο κωδικό σας", "Enter Your Password": "Εισάγετε τον Κωδικό σας", "Enter Your Role": "Εισάγετε τον Ρόλο σας", "Enter Your Username": "Εισάγετε το Όνομα Χρήστη σας", - "Enter your webhook URL": "", - "Entra ID": "", + "Enter your webhook URL": "Εισάγετε το URL του webhook σας", + "Entra ID": "Εισάγετε το ID", "Error": "Σφάλμα", "ERROR": "ΣΦΑΛΜΑ", "Error accessing directory": "", @@ -658,20 +658,20 @@ "Error: A model with the ID '{{modelId}}' already exists. Please select a different ID to proceed.": "", "Error: Model ID cannot be empty. Please enter a valid ID to proceed.": "", "Evaluations": "Αξιολογήσεις", - "Everyone": "", - "Exa API Key": "", + "Everyone": "Όλοι", + "Exa API Key": "API κλειδί του Exa", "Example: (&(objectClass=inetOrgPerson)(uid=%s))": "Παράδειγμα: (&(objectClass=inetOrgPerson)(uid=%s))", "Example: ALL": "Παράδειγμα: ALL", - "Example: mail": "", + "Example: mail": "Παράδειγμα: mail", "Example: ou=users,dc=foo,dc=example": "Παράδειγμα: ou=users,dc=foo,dc=example", "Example: sAMAccountName or uid or userPrincipalName": "Παράδειγμα: sAMAccountName ή uid ή userPrincipalName", - "Exceeded the number of seats in your license. Please contact support to increase the number of seats.": "", + "Exceeded the number of seats in your license. Please contact support to increase the number of seats.": "Υπερβαίνετε τον αριθμό των θέσεων στην άδειά σας. Επικοινωνήστε με την υποστήριξη για να αυξήσετε τον αριθμό των θέσεων.", "Exclude": "Εξαίρεση", - "Execute code for analysis": "", - "Executing **{{NAME}}**...": "", - "Expand": "", + "Execute code for analysis": "Εκτελέστε κώδικα για ανάλυση", + "Executing **{{NAME}}**...": "Εκτέλεση του **{{NAME}}**...", + "Expand": "Επέκταση", "Experimental": "Πειραματικό", - "Explain": "", + "Explain": "Επεξήγηση", "Explore the cosmos": "Εξερευνήστε το σύμπαν", "Export": "Εξαγωγή", "Export All Archived Chats": "Εξαγωγή Όλων των Αρχειοθετημένων Συνομιλιών", @@ -680,47 +680,47 @@ "Export Chats": "Εξαγωγή Συνομιλιών", "Export Config to JSON File": "Εξαγωγή Διαμόρφωσης σε Αρχείο JSON", "Export Presets": "Εξαγωγή Προκαθορισμένων", - "Export Prompt Suggestions": "", + "Export Prompt Suggestions": "Εξαγωγή Προτεινόμενων Προτροπών", "Export to CSV": "Εξαγωγή σε CSV", - "Export Users": "", - "External": "", + "Export Users": "Εξαγωγή Χρηστών", + "External": "Εξωτερική", "External Document Loader URL required.": "", - "External Task Model": "", - "External Tools": "", - "External Web Loader API Key": "", - "External Web Loader URL": "", - "External Web Search API Key": "", - "External Web Search URL": "", + "External Task Model": "Εξωτερικό Μοντέλο Εργασιών", + "External Tools": "Εξωτερικά Εργαλεία", + "External Web Loader API Key": "API κλειδί του εξωτερικού διακομιστή φόρτωσης", + "External Web Loader URL": "URL του εξωτερικού διακομιστή φόρτωσης", + "External Web Search API Key": "API κλειδί του εξωτερικού διακομιστή αναζήτησης", + "External Web Search URL": "URL του εξωτερικού διακομιστή αναζήτησης", "Fade Effect for Streaming Text": "", "Failed to add file.": "Αποτυχία προσθήκης αρχείου.", - "Failed to connect to {{URL}} OpenAPI tool server": "", - "Failed to copy link": "", + "Failed to connect to {{URL}} OpenAPI tool server": "Αποτυχία σύνδεσης στο διακομιστή εργαλείων OpenAPI {{URL}}", + "Failed to copy link": "Αποτυχία αντιγραφής συνδέσμου", "Failed to create API Key.": "Αποτυχία δημιουργίας Κλειδιού API.", - "Failed to delete note": "", + "Failed to delete note": "Αποτυχία διαγραφής σημειώσεως", "Failed to extract content from the file: {{error}}": "", "Failed to extract content from the file.": "", - "Failed to fetch models": "", - "Failed to generate title": "", - "Failed to import models": "", - "Failed to load chat preview": "", - "Failed to load file content.": "", - "Failed to move chat": "", + "Failed to fetch models": "Αποτυχία ανάκτησης μοντέλων", + "Failed to generate title": "Αποτυχία δημιουργίας τίτλου", + "Failed to import models": "Αποτυχία εισαγωγής μοντέλων", + "Failed to load chat preview": "Αποτυχία φόρτωσης προεπισκόπησης συνομιλίας", + "Failed to load file content.": "Αποτυχία φόρτωσης περιεχομένου αρχείου", + "Failed to move chat": "Αποτυχία μετακίνησης συνομιλίας", "Failed to read clipboard contents": "Αποτυχία ανάγνωσης περιεχομένων πρόχειρου", - "Failed to render diagram": "", - "Failed to save connections": "", + "Failed to render diagram": "Αποτυχία απεικόνισης διαγράμματος", + "Failed to save connections": "Αποτυχία αποθήκευσης συνδέσεων", "Failed to save conversation": "Αποτυχία αποθήκευσης συνομιλίας", "Failed to save models configuration": "Αποτυχία αποθήκευσης ρυθμίσεων μοντέλων", "Failed to update settings": "Αποτυχία ενημέρωσης ρυθμίσεων", "Failed to upload file.": "Αποτυχία ανεβάσματος αρχείου.", "fast": "", - "Features": "", + "Features": "Λειτουργίες", "Features Permissions": "", "February": "Φεβρουάριος", "Feedback Details": "", "Feedback History": "Ιστορικό Ανατροφοδότησης", "Feedbacks": "Ανατροφοδοτήσεις", "Feel free to add specific details": "Νιώστε ελεύθεροι να προσθέσετε συγκεκριμένες λεπτομέρειες", - "Female": "", + "Female": "Γυναίκα", "File": "Αρχείο", "File added successfully.": "Το αρχείο προστέθηκε με επιτυχία.", "File content updated successfully.": "Το περιεχόμενο του αρχείου ενημερώθηκε με επιτυχία.", @@ -728,30 +728,30 @@ "File not found.": "Αρχείο δεν βρέθηκε.", "File removed successfully.": "Το αρχείο αφαιρέθηκε με επιτυχία.", "File size should not exceed {{maxSize}} MB.": "Το μέγεθος του αρχείου δεν πρέπει να υπερβαίνει τα {{maxSize}} MB.", - "File Upload": "", + "File Upload": "Ανέβασμα Αρχείων", "File uploaded successfully": "", "Files": "Αρχεία", - "Filter": "", + "Filter": "Φίλτρο", "Filter is now globally disabled": "Το φίλτρο είναι τώρα καθολικά απενεργοποιημένο", "Filter is now globally enabled": "Το φίλτρο είναι τώρα καθολικά ενεργοποιημένο", "Filters": "Φίλτρα", "Fingerprint spoofing detected: Unable to use initials as avatar. Defaulting to default profile image.": "Εντοπίστηκε spoofing δακτυλικού αποτυπώματος: Αδυναμία χρήσης αρχικών ως avatar. Χρήση της προεπιλεγμένης εικόνας προφίλ.", - "Firecrawl API Base URL": "", - "Firecrawl API Key": "", + "Firecrawl API Base URL": "URL του API του Firecrawl", + "Firecrawl API Key": "API κλειδί του Firecrawl", "Floating Quick Actions": "", "Focus chat input": "Εστίαση στο πεδίο συνομιλίας", - "Folder": "", - "Folder Background Image": "", + "Folder": "Φάκελος", + "Folder Background Image": "Εικόνα Φόντου Φακέλου", "Folder deleted successfully": "Ο φάκελος διαγράφηκε με επιτυχία", - "Folder Name": "", + "Folder Name": "Όνομα Φακέλου", "Folder name cannot be empty.": "Το όνομα του φακέλου δεν μπορεί να είναι κενό.", "Folder name updated successfully": "Το όνομα του φακέλου ενημερώθηκε με επιτυχία", "Folder updated successfully": "", - "Folders": "", - "Follow up": "", - "Follow Up Generation": "", - "Follow Up Generation Prompt": "", - "Follow-Up Auto-Generation": "", + "Folders": "Φάκελοι", + "Follow up": "Συνέχιση", + "Follow Up Generation": "Δημιουργία Συνέχισης", + "Follow Up Generation Prompt": "Προτροπή Δημιουργίας Συνέχισης", + "Follow-Up Auto-Generation": "Αυτόματη Δημιουργία Συνέχισης", "Followed instructions perfectly": "Ακολούθησε τις οδηγίες τέλεια", "Force OCR": "", "Force OCR on all pages of the PDF. This can lead to worse results if you have good text in your PDFs. Defaults to False.": "", @@ -763,7 +763,7 @@ "Formatting may be inconsistent from source.": "", "Forwards system user OAuth access token to authenticate": "", "Forwards system user session credentials to authenticate": "", - "Full Context Mode": "", + "Full Context Mode": "Λειτουργία χρήσης όλων των συμφραζομένων", "Function": "Λειτουργία", "Function Calling": "", "Function created successfully": "Η λειτουργία δημιουργήθηκε με επιτυχία", @@ -779,17 +779,17 @@ "Functions allow arbitrary code execution.": "Οι λειτουργίες επιτρέπουν την εκτέλεση αυθαίρετου κώδικα.", "Functions imported successfully": "Οι λειτουργίες εισήχθησαν με επιτυχία", "Gemini": "", - "Gemini API Config": "", - "Gemini API Key is required.": "", - "Gender": "", + "Gemini API Config": "Διαμόρφωση Gemini API", + "Gemini API Key is required.": "Απαιτείται το API κλειδί του Gemini.", + "Gender": "Φύλο", "General": "Γενικά", - "Generate": "", - "Generate an image": "", + "Generate": "Δημιουργία", + "Generate an image": "Δημιουργία εικόνας", "Generate Image": "Δημιουργία Εικόνας", - "Generate prompt pair": "", - "Generated Image": "", + "Generate prompt pair": "Δημιουργία ζευγαριού προτροπής", + "Generated Image": "Δημιουργημένη Εικόνα", "Generating search query": "Γενιά αναζήτησης ερώτησης", - "Generating...": "", + "Generating...": "Δημιουργία...", "Get information on {{name}} in the UI": "", "Get started": "Ξεκινήστε", "Get started with {{WEBUI_NAME}}": "Ξεκινήστε με {{WEBUI_NAME}}", @@ -820,10 +820,10 @@ "Hex Color - Leave empty for default color": "Χρώμα Hex - Αφήστε κενό για προεπιλεγμένο χρώμα", "Hide": "Απόκρυψη", "Hide from Sidebar": "", - "Hide Model": "", + "Hide Model": "Απόκρυψη Μοντέλου", "High": "", - "High Contrast Mode": "", - "Home": "", + "High Contrast Mode": "Λειτουργία Υψηλής Αντίθεσης", + "Home": "Αρχική", "Host": "Διακομιστής", "How can I help you today?": "Πώς μπορώ να σας βοηθήσω σήμερα;", "How would you rate this response?": "Πώς θα βαθμολογούσατε αυτή την απάντηση;", @@ -837,28 +837,28 @@ "iframe Sandbox Allow Forms": "", "iframe Sandbox Allow Same Origin": "", "Ignite curiosity": "Ξύπνημα της περιέργειας", - "Image": "", + "Image": "Εικόνα", "Image Compression": "", - "Image Compression Height": "", - "Image Compression Width": "", - "Image Generation": "", + "Image Compression Height": "Ύψος Συμπίεσης Εικόνας", + "Image Compression Width": "Πλάτος Συμπίεσης Εικόνας", + "Image Generation": "Δημιουργία Εικόνας", "Image Generation (Experimental)": "Δημιουργία Εικόνας (Πειραματικό)", "Image Generation Engine": "Μηχανή Δημιουργίας Εικόνας", "Image Max Compression Size": "", "Image Max Compression Size height": "", "Image Max Compression Size width": "", - "Image Prompt Generation": "", - "Image Prompt Generation Prompt": "", + "Image Prompt Generation": "Προτροπή Δημιουργίας Εικόνας", + "Image Prompt Generation Prompt": "Προτροπή Δημιουργίας Εικόνας", "Image Settings": "Ρυθμίσεις Εικόνας", "Images": "Εικόνες", - "Import": "", + "Import": "Εισαγωγή", "Import Chats": "Εισαγωγή Συνομιλιών", "Import Config from JSON File": "Εισαγωγή Διαμόρφωσης από Αρχείο JSON", "Import From Link": "", "Import Notes": "", "Import Presets": "Εισαγωγή Προκαθορισμένων", - "Import Prompt Suggestions": "", - "Import successful": "", + "Import Prompt Suggestions": "Εισαγωγή Προτεινόμενων Προτροπών", + "Import successful": "Εισαγωγή επιτυχής", "Important Update": "Σημαντική ενημέρωση", "In order to force OCR, performing OCR must be enabled.": "", "Include": "Συμπερίληψη", @@ -868,7 +868,7 @@ "Influences how quickly the algorithm responds to feedback from the generated text. A lower learning rate will result in slower adjustments, while a higher learning rate will make the algorithm more responsive.": "", "Info": "Πληροφορίες", "Initials": "", - "Inject the entire content as context for comprehensive processing, this is recommended for complex queries.": "", + "Inject the entire content as context for comprehensive processing, this is recommended for complex queries.": "Εισάγετε ολόκληρο το περιεχόμενο ως συμφραζόμενο για ολοκληρωμένη επεξεργασία. Αυτό συνιστάται για σύνθετα ερωτήματα.", "Input": "", "Input commands": "Εισαγωγή εντολών", "Input Key (e.g. text, unet_name, steps)": "", @@ -879,71 +879,71 @@ "Insert Suggestion Prompt to Input": "", "Install from Github URL": "Εγκατάσταση από URL Github", "Instant Auto-Send After Voice Transcription": "Άμεση Αυτόματη Αποστολή μετά τη μεταγραφή φωνής", - "Integration": "", - "Integrations": "", - "Interface": "Διεπαφή", - "Invalid file content": "", + "Integration": "Ενσωμάτωση", + "Integrations": "Ενσωματώσεις", + "Interface": "Διεπαφή Χρήστη", + "Invalid file content": "Μη έγκυρο περιεχόμενο αρχείου", "Invalid file format.": "Μη έγκυρη μορφή αρχείου.", - "Invalid JSON file": "", - "Invalid JSON format for ComfyUI Workflow.": "", - "Invalid JSON format for Parameters": "", - "Invalid JSON format in Additional Config": "", + "Invalid JSON file": "Μη έγκυρο αρχείο JSON", + "Invalid JSON format for ComfyUI Workflow.": "Μη έγκυρη μορφή JSON για ComfyUI Workflow.", + "Invalid JSON format for Parameters": "Μη έγκυρη μορφή JSON για Παραμέτρους", + "Invalid JSON format in Additional Config": "Μη έγκυρη μορφή JSON στις Πρόσθετες Ρυθμίσεις", "Invalid Tag": "Μη έγκυρη Ετικέτα", - "is typing...": "", + "is typing...": "πληκτρολογεί...", "Italic": "", "January": "Ιανουάριος", "Jina API Key": "Κλειδί API Jina", "join our Discord for help.": "συμμετέχετε στο Discord μας για βοήθεια.", "JSON": "JSON", "JSON Preview": "Προεπισκόπηση JSON", - "JSON Spec": "", + "JSON Spec": "Προδιαγραφή JSON", "July": "Ιούλιος", "June": "Ιούνιος", - "Jupyter Auth": "", + "Jupyter Auth": "Ταυτοποίηση Jupyter", "Jupyter URL": "", "JWT Expiration": "Λήξη JWT", - "JWT Token": "Token JWT", + "JWT Token": "", "Kagi Search API Key": "", "Keep Follow-Up Prompts in Chat": "", - "Keep in Sidebar": "", + "Keep in Sidebar": "Κρατήστε στην πλευρική μπάρα", "Key": "Κλειδί", - "Key is required": "", + "Key is required": "Το κλειδί είναι απαραίτητο", "Keyboard shortcuts": "Συντομεύσεις Πληκτρολογίου", - "Knowledge": "Γνώση", - "Knowledge Access": "Πρόσβαση στη Γνώση", - "Knowledge Base": "", - "Knowledge created successfully.": "Η γνώση δημιουργήθηκε με επιτυχία.", - "Knowledge deleted successfully.": "Η γνώση διαγράφηκε με επιτυχία.", - "Knowledge Description": "", - "Knowledge Name": "", - "Knowledge Public Sharing": "", - "Knowledge reset successfully.": "Η γνώση επαναφέρθηκε με επιτυχία.", - "Knowledge updated successfully": "Η γνώση ενημερώθηκε με επιτυχία", + "Knowledge": "", + "Knowledge Access": "Πρόσβαση στο Knowledge", + "Knowledge Base": "Βάση Knowledge", + "Knowledge created successfully.": "Το Knowledge δημιουργήθηκε με επιτυχία.", + "Knowledge deleted successfully.": "Το Knowledge διαγράφηκε με επιτυχία.", + "Knowledge Description": "Περιγραφή Knowledge", + "Knowledge Name": "Όνομα Knowledge", + "Knowledge Public Sharing": "Κοινή χρήση Knowledge", + "Knowledge reset successfully.": "Το Knowledge επαναφέρθηκε με επιτυχία.", + "Knowledge updated successfully": "Το Knowledge ενημερώθηκε με επιτυχία", "Kokoro.js (Browser)": "", "Kokoro.js Dtype": "", "Label": "Ετικέτα", "Landing Page Mode": "Λειτουργία Σελίδας Άφιξης", "Language": "Γλώσσα", - "Language Locales": "", + "Language Locales": "Γλωσσική Τοπικοποίηση", "Last Active": "Τελευταία Ενεργή", "Last Modified": "Τελευταία Τροποποίηση", - "Last reply": "", + "Last reply": "Τελευταία απάντηση", "LDAP": "LDAP", "LDAP server updated": "Ο διακομιστής LDAP ενημερώθηκε", "Leaderboard": "Κατάταξη", - "Learn More": "", - "Learn more about OpenAPI tool servers.": "", - "Leave empty for no compression": "", + "Learn More": "Μάθετε Περισσότερα", + "Learn more about OpenAPI tool servers.": "Μάθετε περισσότερα για τους διακομιστές εργαλείων OpenAPI.", + "Leave empty for no compression": "Αφήστε κενό για να μην γίνει συμπίεση", "Leave empty for unlimited": "Αφήστε κενό για απεριόριστο", - "Leave empty to include all models from \"{{url}}\" endpoint": "", - "Leave empty to include all models from \"{{url}}/api/tags\" endpoint": "", - "Leave empty to include all models from \"{{url}}/models\" endpoint": "", + "Leave empty to include all models from \"{{url}}\" endpoint": "Αφήστε κενό για να χρησιμοποιήσετε όλα τα μοντέλα από το endpoint \"{{url}}\"", + "Leave empty to include all models from \"{{url}}/api/tags\" endpoint": "Αφήστε κενό για να χρησιμοποιήσετε όλα τα μοντέλα από το endpoint \"{{url}}/api/tags\"", + "Leave empty to include all models from \"{{url}}/models\" endpoint": "Αφήστε κενό για να χρησιμοποιήσετε όλα τα μοντέλα από το endpoint \"{{url}}/models\"", "Leave empty to include all models or select specific models": "Αφήστε κενό για να χρησιμοποιήσετε όλα τα μοντέλα ή επιλέξτε συγκεκριμένα μοντέλα", "Leave empty to use the default prompt, or enter a custom prompt": "Αφήστε κενό για να χρησιμοποιήσετε την προεπιλεγμένη προτροπή, ή εισάγετε μια προσαρμοσμένη προτροπή", "Leave model field empty to use the default model.": "", "Legacy": "", "lexical": "", - "License": "", + "License": "Άδεια", "Lift List": "", "Light": "Φως", "Listening...": "Ακούγεται...", @@ -952,9 +952,9 @@ "Loader": "", "Loading Kokoro.js...": "", "Loading...": "Φόρτωση...", - "Local": "Τοπικό", - "Local Task Model": "", - "Location access not allowed": "", + "Local": "Τοπικά", + "Local Task Model": "Τοπικό Μοντέλο Εργασιών", + "Location access not allowed": "Η πρόσβαση στην τοποθεσία δεν επιτρέπεται", "Lost": "Χαμένος", "Low": "", "LTR": "LTR", @@ -962,20 +962,20 @@ "Make password visible in the user interface": "", "Make sure to enclose them with": "Βεβαιωθείτε ότι τα περικλείετε με", "Make sure to export a workflow.json file as API format from ComfyUI.": "Βεβαιωθείτε ότι εξάγετε ένα αρχείο workflow.json ως μορφή API από το ComfyUI.", - "Male": "", + "Male": "Άνδρας", "Manage": "Διαχείριση", "Manage Direct Connections": "", - "Manage Models": "", + "Manage Models": "Διαχείριση Μοντέλων", "Manage Ollama": "Διαχείριση Ollama", "Manage Ollama API Connections": "Διαχείριση Συνδέσεων API Ollama", "Manage OpenAI API Connections": "Διαχείριση Συνδέσεων API OpenAI", "Manage Pipelines": "Διαχείριση Καναλιών", - "Manage Tool Servers": "", - "Manage your account information.": "", + "Manage Tool Servers": "Διαχείριση Διακομιστών Εργαλείων", + "Manage your account information.": "Διαχειριστείτε τις πληροφορίες του λογαριασμού σας.", "March": "Μάρτιος", "Markdown": "", - "Markdown (Header)": "", - "Max Speakers": "", + "Markdown (Header)": "Markdown (Επικεφαλίδα)", + "Max Speakers": "Μέγιστο Πλήθος Ομιλητών", "Max Upload Count": "Μέγιστος Αριθμός Ανεβάσματος", "Max Upload Size": "Μέγιστο Μέγεθος Αρχείου", "Maximum of 3 models can be downloaded simultaneously. Please try again later.": "Μέγιστο των 3 μοντέλων μπορούν να κατεβούν ταυτόχρονα. Παρακαλώ δοκιμάστε ξανά αργότερα.", @@ -1000,7 +1000,7 @@ "MinerU API Key required for Cloud API mode.": "", "minerU managed (Cloud API)": "", "Mistral OCR": "", - "Mistral OCR API Key required.": "", + "Mistral OCR API Key required.": "Απαιτείται το API κλειδί του Mistral OCR.", "Model": "Μοντέλο", "Model '{{modelName}}' has been successfully downloaded.": "Το μοντέλο '{{modelName}}' κατεβάστηκε με επιτυχία.", "Model '{{modelTag}}' is already in queue for downloading.": "Το μοντέλο '{{modelTag}}' βρίσκεται ήδη στην ουρά για λήψη.", @@ -1009,11 +1009,11 @@ "Model {{name}} is now {{status}}": "Το μοντέλο {{name}} είναι τώρα {{status}}", "Model {{name}} is now hidden": "", "Model {{name}} is now visible": "", - "Model accepts file inputs": "", - "Model accepts image inputs": "Το μοντέλο δέχεται είσοδο εικόνας", - "Model can execute code and perform calculations": "", - "Model can generate images based on text prompts": "", - "Model can search the web for information": "", + "Model accepts file inputs": "Το μοντέλο δέχεται αρχεία ως είσοδο", + "Model accepts image inputs": "Το μοντέλο δέχεται εικόνες ως είσοδο", + "Model can execute code and perform calculations": "Το μοντέλο μπορεί να εκτελεί κώδικα και υπολογισμούς", + "Model can generate images based on text prompts": "Το μοντέλο μπορεί να δημιουργήσει εικόνες βασισμένες σε προτροπές κειμένου", + "Model can search the web for information": "Το μοντέλο μπορεί να αναζητήσει πληροφορίες στο διαδίκτυο", "Model created successfully!": "Το μοντέλο δημιουργήθηκε με επιτυχία!", "Model filesystem path detected. Model shortname is required for update, cannot continue.": "Ανιχνεύθηκε διαδρομή αρχείου μοντέλου. Το σύντομο όνομα μοντέλου απαιτείται για ενημέρωση, δεν μπορεί να συνεχιστεί.", "Model Filtering": "Φιλτράρισμα Μοντέλων", @@ -1039,23 +1039,23 @@ "More": "Περισσότερα", "More Concise": "", "More Options": "", - "Move": "", + "Move": "Μετακίνηση", "Name": "Όνομα", "Name and ID are required, please fill them out": "", "Name your knowledge base": "Ονομάστε τη βάση γνώσης σας", "Native": "", "New Button": "", "New Chat": "Νέα Συνομιλία", - "New Folder": "", - "New Function": "", - "New Knowledge": "", - "New Model": "", - "New Note": "", + "New Folder": "Νέος Φάκελος", + "New Function": "Νέα Λειτουργία", + "New Knowledge": "Νέο Knowledge", + "New Model": "Νέο Μοντέλο", + "New Note": "Νέα Σημείωση", "New Password": "Νέος Κωδικός", - "New Prompt": "", - "New Tool": "", + "New Prompt": "Νέα Προτροπή", + "New Tool": "Νέο Εργαλείο", "new-channel": "", - "Next message": "", + "Next message": "Επόμενο μήνυμα", "No authentication": "", "No chats found": "", "No chats found for this user.": "", @@ -1069,39 +1069,39 @@ "No expiration can pose security risks.": "", "No feedbacks found": "Δεν βρέθηκαν ανατροφοδοτήσεις", "No file selected": "Δεν έχει επιλεγεί αρχείο", - "No functions found": "", + "No functions found": "Δεν βρέθηκαν λειτουργίες", "No groups with access, add a group to grant access": "Δεν υπάρχουν ομάδες με πρόσβαση, προσθέστε μια ομάδα για να χορηγήσετε πρόσβαση", "No HTML, CSS, or JavaScript content found.": "Δεν βρέθηκε περιεχόμενο HTML, CSS ή JavaScript.", "No inference engine with management support found": "", - "No knowledge found": "Δεν βρέθηκε γνώση", + "No knowledge found": "Δεν βρέθηκε Knowledge", "No memories to clear": "", "No model IDs": "Δεν υπάρχουν IDs μοντέλων", "No models found": "Δεν βρέθηκαν μοντέλα", "No models selected": "Δεν έχουν επιλεγεί μοντέλα", "No Notes": "", - "No notes found": "", - "No prompts found": "", + "No notes found": "Δεν βρέθηκαν σημειώσεις", + "No prompts found": "Δεν βρέθηκαν προτροπές", "No results": "Δεν βρέθηκαν αποτελέσματα", "No results found": "Δεν βρέθηκαν αποτελέσματα", "No search query generated": "Δεν δημιουργήθηκε ερώτηση αναζήτησης", "No source available": "Δεν υπάρχει διαθέσιμη πηγή", - "No sources found": "", + "No sources found": "Δεν βρέθηκαν πηγές", "No suggestion prompts": "Χωρίς προτεινόμενες υποδείξεις", - "No tools found": "", + "No tools found": "Δεν βρέθηκαν εργαλεία", "No users were found.": "Δεν βρέθηκαν χρήστες.", "No valves": "", "No valves to update": "Δεν υπάρχουν βαλβίδες για ενημέρωση", - "Node Ids": "", + "Node Ids": "IDs Κόμβων", "None": "Κανένα", "Not factually correct": "Δεν είναι γεγονότα", "Not helpful": "Δεν είναι χρήσιμο", "Not Registered": "", - "Note": "", + "Note": "Σημείωση", "Note deleted successfully": "", "Note: If you set a minimum score, the search will only return documents with a score greater than or equal to the minimum score.": "Σημείωση: Αν ορίσετε ένα ελάχιστο score, η αναζήτηση θα επιστρέψει μόνο έγγραφα με score μεγαλύτερο ή ίσο με το ελάχιστο score.", "Notes": "Σημειώσεις", "Notes Public Sharing": "", - "Notification Sound": "", + "Notification Sound": "Ήχος Ειδοποίησης", "Notification Webhook": "", "Notifications": "Ειδοποιήσεις", "November": "Νοέμβριος", @@ -1109,7 +1109,7 @@ "OAuth 2.1": "", "OAuth ID": "OAuth ID", "October": "Οκτώβριος", - "Off": "Off", + "Off": "Ανενεργό", "Okay, Let's Go!": "Εντάξει, Πάμε!", "OLED Dark": "Σκούρο OLED", "Ollama": "Ollama", @@ -1117,7 +1117,7 @@ "Ollama API settings updated": "Οι ρυθμίσεις API Ollama ενημερώθηκαν", "Ollama Cloud API Key": "", "Ollama Version": "Έκδοση Ollama", - "On": "On", + "On": "Ενεργό", "OneDrive": "", "Only active when \"Paste Large Text as File\" setting is toggled on.": "", "Only active when the chat input is in focus and an LLM is generating a response.": "", @@ -1132,27 +1132,27 @@ "Oops! You're using an unsupported method (frontend only). Please serve the WebUI from the backend.": "Ωχ! Χρησιμοποιείτε μια μη υποστηριζόμενη μέθοδο (μόνο frontend). Παρακαλώ σερβίρετε το WebUI από το backend.", "Open file": "Άνοιγμα αρχείου", "Open in full screen": "Άνοιγμα σε πλήρη οθόνη", - "Open link": "", - "Open modal to configure connection": "", + "Open link": "Άνοιγμα συνδέσμου", + "Open modal to configure connection": "Άνοιγμα παραθύρου διαλόγου για διαχείριση σύνδεσης", "Open Modal To Manage Floating Quick Actions": "", - "Open Modal To Manage Image Compression": "", + "Open Modal To Manage Image Compression": "Άνοιγμα παραθύρου διαλόγου για διαχείριση συμπίεσης εικόνων", "Open new chat": "Άνοιγμα νέας συνομιλίας", - "Open Sidebar": "", - "Open User Profile Menu": "", + "Open Sidebar": "Άνοιγμα πλευρικής μπάρας", + "Open User Profile Menu": "Άνοιγμα μενού προφίλ χρήστη", "Open WebUI can use tools provided by any OpenAPI server.": "", "Open WebUI uses faster-whisper internally.": "Το Open WebUI χρησιμοποιεί το faster-whisper εσωτερικά.", - "Open WebUI uses SpeechT5 and CMU Arctic speaker embeddings.": "Το Open WebUI χρησιμοποιεί τα SpeechT5 και CMU Arctic embeddings ομιλητών.", + "Open WebUI uses SpeechT5 and CMU Arctic speaker embeddings.": "Το Open WebUI χρησιμοποιεί τα SpeechT5 και CMU Arctic ενσωματώσεων ομιλητών.", "Open WebUI version (v{{OPEN_WEBUI_VERSION}}) is lower than required version (v{{REQUIRED_VERSION}})": "Η έκδοση Open WebUI (v{{OPEN_WEBUI_VERSION}}) είναι χαμηλότερη από την απαιτούμενη έκδοση (v{{REQUIRED_VERSION}})", - "OpenAI": "OpenAI", - "OpenAI API": "API OpenAI", + "OpenAI": "", + "OpenAI API": "", "OpenAI API Config": "Διαμόρφωση API OpenAI", "OpenAI API Key is required.": "Απαιτείται το Κλειδί API OpenAI.", "OpenAI API settings updated": "Οι ρυθμίσεις API OpenAI ενημερώθηκαν", "OpenAI URL/Key required.": "Απαιτείται URL/Kλειδί OpenAI.", "OpenAPI": "", - "OpenAPI Spec": "", - "openapi.json URL or Path": "", - "Optional": "", + "OpenAPI Spec": "Προδιαγραφή OpenAPI", + "openapi.json URL or Path": "URL ή Διαδρομή openapi.json", + "Optional": "Προαιρετικό", "Options for running a local vision-language model in the picture description. The parameters refer to a model hosted on Hugging Face. This parameter is mutually exclusive with picture_description_api.": "", "or": "ή", "Ordered List": "", @@ -1160,19 +1160,19 @@ "Other": "Άλλο", "OUTPUT": "ΕΞΟΔΟΣ", "Output format": "Μορφή εξόδου", - "Output Format": "", + "Output Format": "Μορφή Εξόδου", "Overview": "Επισκόπηση", "page": "σελίδα", - "Paginate": "", - "Parameters": "", + "Paginate": "Σελιδοποίηση", + "Parameters": "Παράμετροι", "Password": "Κωδικός", - "Passwords do not match.": "", + "Passwords do not match.": "Οι κωδικοί δεν ταιριάζουν", "Paste Large Text as File": "Επικόλληση Μεγάλου Κειμένου ως Αρχείο", "PDF Backend": "", "PDF document (.pdf)": "Έγγραφο PDF (.pdf)", "PDF Extract Images (OCR)": "Εξαγωγή Εικόνων PDF (OCR)", "pending": "εκκρεμεί", - "Pending": "", + "Pending": "Εκκρεμεί", "Pending User Overlay Content": "", "Pending User Overlay Title": "", "Perform OCR": "", @@ -1180,8 +1180,8 @@ "Permission denied when accessing microphone": "Άρνηση δικαιώματος κατά την πρόσβαση σε μικρόφωνο", "Permission denied when accessing microphone: {{error}}": "Άρνηση δικαιώματος κατά την πρόσβαση σε μικρόφωνο: {{error}}", "Permissions": "Δικαιώματα", - "Perplexity API Key": "", - "Perplexity Model": "", + "Perplexity API Key": "Perplexity API κλειδί", + "Perplexity Model": "Perplexity Μοντέλο", "Perplexity Search Context Usage": "", "Personalization": "Προσωποποίηση", "Picture Description API Config": "", @@ -1194,10 +1194,10 @@ "Pipeline": "", "Pipeline deleted successfully": "Η συνάρτηση διαγράφηκε με επιτυχία", "Pipeline downloaded successfully": "Η συνάρτηση κατεβλήθηκε με επιτυχία", - "Pipelines": "Συναρτήσεις", + "Pipelines": "Αγωγοί", "Pipelines are a plugin system with arbitrary code execution —": "Το Pipelines είναι ένα σύστημα προσθέτων με αυθαίρετη εκτέλεση κώδικα —", - "Pipelines Not Detected": "Συναρτήσεις Δεν Εντοπίστηκαν", - "Pipelines Valves": "Βαλβίδες Συναρτήσεων", + "Pipelines Not Detected": "Δεν Εντοπίστηκαν Αγωγοί", + "Pipelines Valves": "Βαλβίδες Αγωγών", "Plain text (.md)": "", "Plain text (.txt)": "Απλό κείμενο (.txt)", "Playground": "Γήπεδο παιχνιδιών", @@ -1225,25 +1225,25 @@ "Prefer not to say": "", "Prefix ID": "ID Προθέματος", "Prefix ID is used to avoid conflicts with other connections by adding a prefix to the model IDs - leave empty to disable": "Το ID Προθέματος χρησιμοποιείται για να αποφεύγονται συγκρούσεις με άλλες συνδέσεις προσθέτοντας ένα πρόθεμα στα IDs των μοντέλων - αφήστε κενό για απενεργοποίηση", - "Prevent file creation": "", - "Preview": "", + "Prevent file creation": "Αποτροπή δημιουργίας αρχείου", + "Preview": "Προεπισκόπηση", "Previous 30 days": "Προηγούμενες 30 ημέρες", "Previous 7 days": "Προηγούμενες 7 ημέρες", - "Previous message": "", - "Private": "", + "Previous message": "Προηγούμενο μήνυμα", + "Private": "Ιδιωτικό", "Profile": "Προφίλ", - "Prompt": "", + "Prompt": "Προτροπή", "Prompt (e.g. Tell me a fun fact about the Roman Empire)": "Προτροπή (π.χ. Πες μου ένα διασκεδαστικό γεγονός για την Ρωμαϊκή Αυτοκρατορία)", - "Prompt Autocompletion": "", + "Prompt Autocompletion": "Αυτόματη συμπλήρωση προτροπής", "Prompt Content": "Περιεχόμενο Προτροπής", "Prompt created successfully": "Η προτροπή δημιουργήθηκε με επιτυχία", - "Prompt suggestions": "Προτάσεις Προτροπής", + "Prompt suggestions": "Προτεινόμενες Προτροπές", "Prompt updated successfully": "Η προτροπή ενημερώθηκε με επιτυχία", "Prompts": "Προτροπές", "Prompts Access": "Πρόσβαση Προτροπών", "Prompts Public Sharing": "", "Provider Type": "", - "Public": "", + "Public": "Δημόσιο", "Pull \"{{searchValue}}\" from Ollama.com": "Τραβήξτε \"{{searchValue}}\" από το Ollama.com", "Pull a model from Ollama.com": "Τραβήξτε ένα μοντέλο από το Ollama.com", "Pull Model": "", @@ -1265,58 +1265,58 @@ "Redirecting you to Open WebUI Community": "Μετακατεύθυνση στην Κοινότητα OpenWebUI", "Reduces the probability of generating nonsense. A higher value (e.g. 100) will give more diverse answers, while a lower value (e.g. 10) will be more conservative.": "", "Refer to yourself as \"User\" (e.g., \"User is learning Spanish\")": "Αναφέρεστε στον εαυτό σας ως \"User\" (π.χ., \"User μαθαίνει Ισπανικά\")", - "Reference Chats": "", + "Reference Chats": "Αναφορά σε Συνομιλίες", "Refused when it shouldn't have": "Αρνήθηκε όταν δεν έπρεπε", - "Regenerate": "Αναγεννήστε", - "Regenerate Menu": "", + "Regenerate": "Επαναδημιουργία", + "Regenerate Menu": "Επαναδημιουργία Μενού", "Register Again": "", "Register Client": "", "Registered": "", "Registration failed": "", "Registration successful": "", - "Reindex": "", - "Reindex Knowledge Base Vectors": "", + "Reindex": "Επανευρετηρίαση", + "Reindex Knowledge Base Vectors": "Επανευρετηρίαση Διανυσμάτων Βάσεις Γνώσεων", "Release Notes": "Σημειώσεις Έκδοσης", - "Releases": "", + "Releases": "Εκδόσεις", "Relevance": "Σχετικότητα", - "Relevance Threshold": "", - "Remember Dismissal": "", + "Relevance Threshold": "Όριο Σχετικότητας", + "Remember Dismissal": "Θύμηση Απόρριψης", "Remove": "Αφαίρεση", "Remove {{MODELID}} from list.": "", - "Remove file": "", - "Remove File": "", - "Remove image": "", + "Remove file": "Αφαίρεση αρχείου", + "Remove File": "Αφαίρεση Αρχείου", + "Remove image": "Αφαίρεση εικόνας", "Remove Model": "Αφαίρεση Μοντέλου", - "Remove this tag from list": "", + "Remove this tag from list": "Αφαίρεση αυτής της ετικέτας από τη λίστα", "Rename": "Μετονομασία", "Reorder Models": "Επαναταξινόμηση Μοντέλων", - "Reply": "", - "Reply in Thread": "", - "Reply to thread...": "", + "Reply": "Απάντηση", + "Reply in Thread": "Απάντηση στο Νήμα Συζήτησης", + "Reply to thread...": "Απάντηση στο νήμα συζήτησης...", "Replying to {{NAME}}": "", - "required": "", - "Reranking Engine": "", + "required": "απαιτείται", + "Reranking Engine": "Μηχανή Επαναταξινόμησης", "Reranking Model": "Μοντέλο Επαναταξινόμησης", "Reset": "Επαναφορά", "Reset All Models": "Επαναφορά Όλων των Μοντέλων", "Reset Image": "Επαναφορά εικόνας", "Reset Upload Directory": "Επαναφορά Καταλόγου Ανεβάσματος", - "Reset Vector Storage/Knowledge": "Επαναφορά Αποθήκευσης Διανυσμάτων/Γνώσης", - "Reset view": "", - "Response": "", + "Reset Vector Storage/Knowledge": "Επαναφορά Αποθήκευσης Διανυσμάτων/Knowledge", + "Reset view": "Επαναφορά προβολής", + "Response": "Απάντηση", "Response notifications cannot be activated as the website permissions have been denied. Please visit your browser settings to grant the necessary access.": "Οι ειδοποιήσεις απάντησης δεν μπορούν να ενεργοποιηθούν καθώς οι άδειες του ιστότοπου έχουν αρνηθεί. Παρακαλώ επισκεφτείτε τις ρυθμίσεις του περιηγητή σας για να δώσετε την απαραίτητη πρόσβαση.", "Response splitting": "Διαχωρισμός απάντησης", - "Response Watermark": "", + "Response Watermark": "Υδρογράφημα Απάντησης", "Result": "Αποτέλεσμα", "RESULT": "Αποτέλεσμα", - "Retrieval": "", - "Retrieval Query Generation": "", + "Retrieval": "Ανάκτηση", + "Retrieval Query Generation": "Δημιουργία Ερωτήματος Ανάκτησης", "Retrieved {{count}} sources": "", "Retrieved {{count}} sources_one": "", "Retrieved {{count}} sources_other": "", "Retrieved 1 source": "", "Rich Text Input for Chat": "Πλούσιο Εισαγωγή Κειμένου για Συνομιλία", - "RK": "RK", + "RK": "", "Role": "Ρόλος", "Rosé Pine": "Rosé Pine", "Rosé Pine Dawn": "Rosé Pine Dawn", @@ -1328,71 +1328,71 @@ "Save & Create": "Αποθήκευση & Δημιουργία", "Save & Update": "Αποθήκευση & Ενημέρωση", "Save As Copy": "Αποθήκευση ως Αντιγραφή", - "Save Chat": "", + "Save Chat": "Αποθήκευση Συνομιλίας", "Save Tag": "Αποθήκευση Ετικέτας", "Saved": "Αποθηκευμένο", "Saving chat logs directly to your browser's storage is no longer supported. Please take a moment to download and delete your chat logs by clicking the button below. Don't worry, you can easily re-import your chat logs to the backend through": "Η αποθήκευση των αρχείων συνομιλίας απευθείας στη μνήμη αποθήκευσης του προγράμματος περιήγησής σας δεν υποστηρίζεται πλέον. Παρακαλώ αφιερώστε λίγο χρόνο να κατεβάσετε και να διαγράψετε τα αρχεία συνομιλίας σας κάνοντας κλικ στο κουμπί παρακάτω. Μην ανησυχείτε, μπορείτε εύκολα να επαναφέρετε τα αρχεία συνομιλιών σας στο backend μέσω", "Scroll On Branch Change": "", "Search": "Αναζήτηση", "Search a model": "Αναζήτηση μοντέλου", - "Search all emojis": "", + "Search all emojis": "Αναζήτησε όλα τα emojis", "Search Base": "Βάση Αναζήτησης", "Search Chats": "Αναζήτηση Συνομιλιών", "Search Collection": "Αναζήτηση Συλλογής", "Search Filters": "Φίλτρα Αναζήτησης", - "search for archived chats": "", - "search for folders": "", + "search for archived chats": "αναζήτηση για αρχειοθετημένες συνομιλίες", + "search for folders": "αναζήτηση για φακέλους", "search for pinned chats": "", "search for shared chats": "", "search for tags": "αναζήτηση για ετικέτες", "Search Functions": "Αναζήτηση Λειτουργιών", - "Search In Models": "", - "Search Knowledge": "Αναζήτηση Γνώσης", + "Search In Models": "Αναζήτηση στα Μοντέλα", + "Search Knowledge": "Αναζήτηση Knowledge", "Search Models": "Αναζήτηση Μοντέλων", - "Search Notes": "", + "Search Notes": "Αναζήτηση Σημειώσεων", "Search options": "Επιλογές Αναζήτησης", "Search Prompts": "Αναζήτηση Προτροπών", "Search Result Count": "Αριθμός Αποτελεσμάτων Αναζήτησης", - "Search the internet": "", + "Search the internet": "Αναζήτησε το διαδίκτυο", "Search Tools": "Αναζήτηση Εργαλείων", "SearchApi API Key": "Κλειδί API SearchApi", "SearchApi Engine": "Μηχανή SearchApi", - "Searched {{count}} sites": "", - "Searching": "", + "Searched {{count}} sites": "Αναζητήθηκαν {{count}} ιστοσελίδες", + "Searching": "Αναζητώντας", "Searching \"{{searchQuery}}\"": "Αναζήτηση \"{{searchQuery}}\"", - "Searching Knowledge for \"{{searchQuery}}\"": "Αναζήτηση Γνώσης για \"{{searchQuery}}\"", - "Searching the web": "", + "Searching Knowledge for \"{{searchQuery}}\"": "Αναζήτηση Knowledge για \"{{searchQuery}}\"", + "Searching the web": "Αναζητώντας στο διαδίκτυο", "Searxng Query URL": "URL Ερώτησης Searxng", "See readme.md for instructions": "Δείτε readme.md για οδηγίες", "See what's new": "Δείτε τι νέο υπάρχει", "Seed": "Seed", - "Select": "", + "Select": "Επιλογή", "Select a base model": "Επιλέξτε ένα βασικό μοντέλο", "Select a base model (e.g. llama3, gpt-4o)": "", "Select a conversation to preview": "", "Select a engine": "Επιλέξτε μια μηχανή", "Select a function": "Επιλέξτε μια λειτουργία", "Select a group": "Επιλέξτε μια ομάδα", - "Select a language": "", + "Select a language": "Επιλέξτε μια γλώσσα", "Select a mode": "", "Select a model": "Επιλέξτε ένα μοντέλο", - "Select a model (optional)": "", + "Select a model (optional)": "Επιλέξτε ένα μοντέλο (προαιρετικό)", "Select a pipeline": "Επιλέξτε ένα pipeline", "Select a pipeline url": "Επιλέξτε ένα pipeline url", "Select a reranking model engine": "", - "Select a role": "", - "Select a theme": "", + "Select a role": "Επιλέξτε έναν ρόλο", + "Select a theme": "Επιλέξτε ένα θέμα", "Select a tool": "Επιλέξτε ένα εργαλείο", - "Select a voice": "", - "Select an auth method": "", + "Select a voice": "Επιλέξτε μια φωνή", + "Select an auth method": "Επιλέξτε μια μέθοδο ταυτοποίησης", "Select an embedding model engine": "", - "Select an engine": "", - "Select an Ollama instance": "", - "Select an output format": "", - "Select dtype": "", + "Select an engine": "Επιλέξτε μια μηχανή", + "Select an Ollama instance": "Επιλέξτε ένα στιγμιότυπο Ollama", + "Select an output format": "Επιλέξτε τη μορφή της εξόδου", + "Select dtype": "Επιλέξτε dtype", "Select Engine": "Επιλέξτε Μηχανή", "Select how to split message text for TTS requests": "", - "Select Knowledge": "Επιλέξτε Γνώση", + "Select Knowledge": "Επιλέξτε Knowledge", "Select only one model to call": "Επιλέξτε μόνο ένα μοντέλο για κλήση", "Select view": "", "Selected model(s) do not support image inputs": "Τα επιλεγμένα μοντέλα δεν υποστηρίζουν είσοδο εικόνων", @@ -1417,8 +1417,8 @@ "Set embedding model (e.g. {{model}})": "Ορισμός μοντέλου ενσωμάτωσης (π.χ. {{model}})", "Set Image Size": "Ορισμός Μεγέθους Εικόνας", "Set reranking model (e.g. {{model}})": "Ορισμός μοντέλου επαναταξινόμησης (π.χ. {{model}})", - "Set Sampler": "Ορισμός Sampler", - "Set Scheduler": "Ορισμός Scheduler", + "Set Sampler": "Ορισμός Δειγματολήπτη", + "Set Scheduler": "Ορισμός Προγραμματισή", "Set Steps": "Ορισμός Βημάτων", "Set the number of layers, which will be off-loaded to GPU. Increasing this value can significantly improve performance for models that are optimized for GPU acceleration but may also consume more power and GPU resources.": "", "Set the number of worker threads used for computation. This option controls how many threads are used to process incoming requests concurrently. Increasing this value can improve performance under high concurrency workloads but may also consume more CPU resources.": "Ορισμός του αριθμού των νημάτων εργασίας που χρησιμοποιούνται για υπολογισμούς. Αυτή η επιλογή ελέγχει πόσα νήματα χρησιμοποιούνται για την επεξεργασία των εισερχόμενων αιτημάτων ταυτόχρονα. Η αύξηση αυτής της τιμής μπορεί να βελτιώσει την απόδοση σε εργασίες υψηλής συγχρονισμένης φόρτωσης αλλά μπορεί επίσης να καταναλώσει περισσότερους πόρους CPU.", @@ -1435,10 +1435,10 @@ "Share": "Κοινή Χρήση", "Share Chat": "Κοινή Χρήση Συνομιλίας", "Share to Open WebUI Community": "Κοινή Χρήση στην Κοινότητα OpenWebUI", - "Share your background and interests": "", - "Shared with you": "", - "Sharing Permissions": "", - "Shortcuts with an asterisk (*) are situational and only active under specific conditions.": "", + "Share your background and interests": "Μοιραστείτε μερικά λόγια για εσάς, όπως τα ενδιαφέροντά σας", + "Shared with you": "Μοιρασμένα με εσάς", + "Sharing Permissions": "Δικαιώματα Κοινής Χρήσης", + "Shortcuts with an asterisk (*) are situational and only active under specific conditions.": "Οι συντομεύσεις με αστερίσκο (*) είναι ενεργές μόνο υπό συγκεκριμένες συνθήκες.", "Show": "Εμφάνιση", "Show \"What's New\" modal on login": "Εμφάνιση του παράθυρου \"Τι νέο υπάρχει\" κατά την είσοδο", "Show Admin Details in Account Pending Overlay": "Εμφάνιση Λεπτομερειών Διαχειριστή στο Υπέρθεση Εκκρεμής Λογαριασμού", @@ -1471,8 +1471,8 @@ "Source": "Πηγή", "Speech Playback Speed": "Ταχύτητα Αναπαραγωγής Ομιλίας", "Speech recognition error: {{error}}": "Σφάλμα αναγνώρισης ομιλίας: {{error}}", - "Speech-to-Text": "", - "Speech-to-Text Engine": "Μηχανή Speech-to-Text", + "Speech-to-Text": "Ομιλία σε Κείμενο", + "Speech-to-Text Engine": "Μηχανή Ομιλίας σε Κείμενο", "standard": "", "Start a new conversation": "", "Start of the channel": "Αρχή του καναλιού", @@ -1480,41 +1480,41 @@ "Status Updates": "", "STDOUT/STDERR": "STDOUT/STDERR", "Stop": "Σταμάτημα", - "Stop Generating": "", + "Stop Generating": "Διακοπή Δημιουργίας", "Stop Sequence": "Σειρά Παύσης", - "Stream Chat Response": "Συνομιλία Ροής Απάντησης", - "Stream Delta Chunk Size": "", + "Stream Chat Response": "Ροή Δεδομένων Απαντήσεων", + "Stream Delta Chunk Size": "Δέλτα Μεγέθους Τμήματος Ροής", "Streamable HTTP": "", "Strikethrough": "", "Strip Existing OCR": "", "Strip existing OCR text from the PDF and re-run OCR. Ignored if Force OCR is enabled. Defaults to False.": "", - "STT Model": "Μοντέλο STT", - "STT Settings": "Ρυθμίσεις STT", + "STT Model": "Μοντέλο Μετατροπής Ομιλίας σε Κείμενο", + "STT Settings": "Ρυθμίσεις Μετατροπής Ομιλίας σε Κείμενο", "Stylized PDF Export": "", "Subtitle (e.g. about the Roman Empire)": "Υπότιτλος (π.χ. για την Ρωμαϊκή Αυτοκρατορία)", "Success": "Επιτυχία", "Successfully imported {{userCount}} users.": "", "Successfully updated.": "Επιτυχώς ενημερώθηκε.", "Suggest a change": "", - "Suggested": "Προτεινόμενο", + "Suggested": "Προτεινόμενα", "Support": "Υποστήριξη", "Support this plugin:": "Υποστήριξη αυτού του plugin:", - "Supported MIME Types": "", + "Supported MIME Types": "Υποστηριζόμενοι τύποι MIME", "Sync directory": "Συγχρονισμός καταλόγου", "System": "Σύστημα", "System Instructions": "Οδηγίες Συστήματος", "System Prompt": "Προτροπή Συστήματος", "Table Mode": "", - "Tag": "", - "Tags": "", - "Tags Generation": "", - "Tags Generation Prompt": "Προτροπή Γενιάς Ετικετών", + "Tag": "Ετικέτα", + "Tags": "Ετικέτες", + "Tags Generation": "Δημιουργία Ετικετών", + "Tags Generation Prompt": "Προτροπή Δημιουργίας Ετικετών", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting.": "", "Talk to model": "Μιλήστε στο μοντέλο", "Tap to interrupt": "Πατήστε για παύση", - "Task List": "", - "Task Model": "", - "Tasks": "", + "Task List": "Λίστα Εργασιών", + "Task Model": "Μοντέλο Εργασίας", + "Tasks": "Εργασίες", "Tavily API Key": "Κλειδί API Tavily", "Tavily Extract Depth": "", "Tell us more:": "Πείτε μας περισσότερα:", @@ -1522,20 +1522,20 @@ "Temporary Chat": "Προσωρινή Συνομιλία", "Temporary Chat by Default": "", "Text Splitter": "Διαχωριστής Κειμένου", - "Text-to-Speech": "", - "Text-to-Speech Engine": "Μηχανή Text-to-Speech", - "Thanks for your feedback!": "Ευχαριστούμε για την ανατροφοδότησή σας!", + "Text-to-Speech": "Κείμενο σε Ομιλία", + "Text-to-Speech Engine": "Μηχανή Ομιλίας σε Κείμενο", + "Thanks for your feedback!": "Ευχαριστούμε για τα σχόλιά σας!", "The Application Account DN you bind with for search": "Το DN του Λογαριασμού Εφαρμογής που συνδέετε για αναζήτηση", "The base to search for users": "Η βάση για αναζήτηση χρηστών", "The batch size determines how many text requests are processed together at once. A higher batch size can increase the performance and speed of the model, but it also requires more memory.": "", "The developers behind this plugin are passionate volunteers from the community. If you find this plugin helpful, please consider contributing to its development.": "Οι προγραμματιστές πίσω από αυτό το plugin είναι παθιασμένοι εθελοντές από την κοινότητα. Αν βρείτε αυτό το plugin χρήσιμο, παρακαλώ σκεφτείτε να συνεισφέρετε στην ανάπτυξή του.", - "The evaluation leaderboard is based on the Elo rating system and is updated in real-time.": "Η κατάταξη αξιολόγησης βασίζεται στο σύστημα βαθμολόγησης Elo και ενημερώνεται σε πραγματικό χρόνο.", + "The evaluation leaderboard is based on the Elo rating system and is updated in real-time.": "Η κατάταξη αξιολόγησης βασίζεται στο σύστημα αξιολόγησης Elo και ενημερώνεται σε πραγματικό χρόνο.", "The format to return a response in. Format can be json or a JSON schema.": "", - "The height in pixels to compress images to. Leave empty for no compression.": "", + "The height in pixels to compress images to. Leave empty for no compression.": "Το ύψος σε pixel για συμπίεση εικόνων. Αφήστε κενό για να μην υπάρχει συμπίεση.", "The language of the input audio. Supplying the input language in ISO-639-1 (e.g. en) format will improve accuracy and latency. Leave blank to automatically detect the language.": "", "The LDAP attribute that maps to the mail that users use to sign in.": "", "The LDAP attribute that maps to the username that users use to sign in.": "Το χαρακτηριστικό LDAP που αντιστοιχεί στο όνομα χρήστη που χρησιμοποιούν οι χρήστες για να συνδεθούν.", - "The leaderboard is currently in beta, and we may adjust the rating calculations as we refine the algorithm.": "Η κατάταξη είναι αυτή τη στιγμή σε beta, και ενδέχεται να προσαρμόσουμε τους υπολογισμούς βαθμολογίας καθώς βελτιώνουμε τον αλγόριθμο.", + "The leaderboard is currently in beta, and we may adjust the rating calculations as we refine the algorithm.": "Η κατάταξη είναι αυτή τη στιγμή σε δοκιμαστική φάση, και ενδέχεται να προσαρμόσουμε τους υπολογισμούς βαθμολογίας καθώς βελτιώνουμε τον αλγόριθμο.", "The maximum file size in MB. If the file size exceeds this limit, the file will not be uploaded.": "Το μέγιστο μέγεθος αρχείου σε MB. Αν το μέγεθος του αρχείου υπερβαίνει αυτό το όριο, το αρχείο δεν θα ανεβεί.", "The maximum number of files that can be used at once in chat. If the number of files exceeds this limit, the files will not be uploaded.": "Ο μέγιστος αριθμός αρχείων που μπορούν να χρησιμοποιηθούν ταυτόχρονα στη συνομιλία. Αν ο αριθμός των αρχείων υπερβαίνει αυτό το όριο, τα αρχεία δεν θα ανεβούν.", "The output format for the text. Can be 'json', 'markdown', or 'html'. Defaults to 'markdown'.": "", @@ -1544,7 +1544,7 @@ "The stream delta chunk size for the model. Increasing the chunk size will make the model respond with larger pieces of text at once.": "", "The temperature of the model. Increasing the temperature will make the model answer more creatively.": "", "The Weight of BM25 Hybrid Search. 0 more semantic, 1 more lexical. Default 0.5": "", - "The width in pixels to compress images to. Leave empty for no compression.": "", + "The width in pixels to compress images to. Leave empty for no compression.": "Το πλάτος σε πίξελ για συμπίεση εικόνων. Αφήστε κενό για να μην υπάρχει συμπίεση.", "Theme": "Θέμα", "Thinking...": "Σκέφτομαι...", "This action cannot be undone. Do you wish to continue?": "Αυτή η ενέργεια δεν μπορεί να αναιρεθεί. Θέλετε να συνεχίσετε;", @@ -1554,7 +1554,7 @@ "This feature is experimental and may be modified or discontinued without notice.": "", "This is a default user permission and will remain enabled.": "", "This is an experimental feature, it may not function as expected and is subject to change at any time.": "Αυτή είναι μια πειραματική λειτουργία, μπορεί να μην λειτουργεί όπως αναμένεται και υπόκειται σε αλλαγές οποιαδήποτε στιγμή.", - "This model is not publicly available. Please select another model.": "", + "This model is not publicly available. Please select another model.": "Αυτό το μοντέλο δεν είναι δημόσια διαθέσιμο. Επιλέξτε ένα άλλο μοντέλο.", "This option controls how long the model will stay loaded into memory following the request (default: 5m)": "", "This option controls how many tokens are preserved when refreshing the context. For example, if set to 2, the last 2 tokens of the conversation context will be retained. Preserving context can help maintain the continuity of a conversation, but it may reduce the ability to respond to new topics.": "", "This option enables or disables the use of the reasoning feature in Ollama, which allows the model to think before generating a response. When enabled, the model can take a moment to process the conversation context and generate a more thoughtful response.": "", @@ -1567,36 +1567,36 @@ "This will delete all models including custom models and cannot be undone.": "Αυτό θα διαγράψει όλα τα μοντέλα, συμπεριλαμβανομένων των προσαρμοσμένων μοντέλων και δεν μπορεί να αναιρεθεί.", "This will reset the knowledge base and sync all files. Do you wish to continue?": "Αυτό θα επαναφέρει τη βάση γνώσης και θα συγχρονίσει όλα τα αρχεία. Θέλετε να συνεχίσετε;", "Thorough explanation": "Λεπτομερής εξήγηση", - "Thought for {{DURATION}}": "", - "Thought for {{DURATION}} seconds": "", - "Thought for less than a second": "", + "Thought for {{DURATION}}": "Σκέφτηκε για {{DURATION}}", + "Thought for {{DURATION}} seconds": "Σκέφτηκε για {{DURATION}} δευτερόλεπτα", + "Thought for less than a second": "Σκέφτηκε για λιγότερο από ένα δευτερόλεπτο", "Thread": "Συζήτηση", - "Tika": "Tika", + "Tika": "", "Tika Server URL required.": "Απαιτείται το URL διακομιστή Tika.", - "Tiktoken": "Tiktoken", + "Tiktoken": "", "Title": "Τίτλος", "Title (e.g. Tell me a fun fact)": "Τίτλος (π.χ. Πες μου ένα διασκεδαστικό γεγονός)", "Title Auto-Generation": "Αυτόματη Γενιά Τίτλων", "Title cannot be an empty string.": "Ο τίτλος δεν μπορεί να είναι κενή συμβολοσειρά.", - "Title Generation": "", + "Title Generation": "Δημιουργία Τίτλου", "Title Generation Prompt": "Προτροπή Δημιουργίας Τίτλου", - "TLS": "TLS", + "TLS": "", "To access the available model names for downloading,": "Για να αποκτήσετε πρόσβαση στα διαθέσιμα ονόματα μοντέλων για λήψη,", "To access the GGUF models available for downloading,": "Για να αποκτήσετε πρόσβαση στα μοντέλα GGUF διαθέσιμα για λήψη,", "To access the WebUI, please reach out to the administrator. Admins can manage user statuses from the Admin Panel.": "Για να αποκτήσετε πρόσβαση στο WebUI, παρακαλώ επικοινωνήστε με τον διαχειριστή. Οι διαχειριστές μπορούν να διαχειριστούν τις καταστάσεις των χρηστών από τον Πίνακα Διαχειριστή.", - "To attach knowledge base here, add them to the \"Knowledge\" workspace first.": "Για να επισυνάψετε τη βάση γνώσης εδώ, προσθέστε τα πρώτα στο χώρο εργασίας \"Knowledge\".", - "To learn more about available endpoints, visit our documentation.": "", + "To attach knowledge base here, add them to the \"Knowledge\" workspace first.": "Για να επισυνάψετε τη βάση γνώσης εδώ, προσθέστε τα πρώτα στον χώρο εργασίας \"Γνώση\".", + "To learn more about available endpoints, visit our documentation.": "Για να μάθετε περισσότερα για τα διαθέσιμα endpoints, δείτε την τεκμηρίωσή μας.", "To learn more about powerful prompt variables, click here": "", "To protect your privacy, only ratings, model IDs, tags, and metadata are shared from your feedback—your chat logs remain private and are not included.": "Για να προστατεύσετε την ιδιωτικότητά σας, μόνο οι βαθμολογίες, τα IDs μοντέλων, οι ετικέτες και τα μεταδεδομένα μοιράζονται από την ανατροφοδότησή σας—τα αρχεία συνομιλιών σας παραμένουν ιδιωτικά και δεν περιλαμβάνονται.", - "To select toolkits here, add them to the \"Tools\" workspace first.": "Για να επιλέξετε toolkits εδώ, προσθέστε τα πρώτα στο χώρο εργασίας \"Tools\".", + "To select toolkits here, add them to the \"Tools\" workspace first.": "Για να επιλέξετε toolkits εδώ, προσθέστε τα πρώτα στον χώρο εργασίας \"Εργαλεία\".", "Toast notifications for new updates": "Ειδοποιήσεις Toast για νέες ενημερώσεις", "Today": "Σήμερα", - "Today at {{LOCALIZED_TIME}}": "", - "Toggle search": "", + "Today at {{LOCALIZED_TIME}}": "Σήμερα στις {{LOCALIZED_TIME}}", + "Toggle search": "Εναλλαγή αναζήτησης", "Toggle settings": "Εναλλαγή ρυθμίσεων", "Toggle sidebar": "Εναλλαγή πλαϊνού μενού", "Toggle whether current connection is active.": "", - "Token": "Token", + "Token": "", "Too verbose": "Πολύ λεπτομερές", "Tool created successfully": "Το εργαλείο δημιουργήθηκε με επιτυχία", "Tool deleted successfully": "Το εργαλείο διαγράφηκε με επιτυχία", @@ -1604,28 +1604,28 @@ "Tool ID": "ID Εργαλείου", "Tool imported successfully": "Το εργαλείο εισήχθη με επιτυχία", "Tool Name": "Όνομα Εργαλείου", - "Tool Servers": "", + "Tool Servers": "Διακομιστές Εργαλείων", "Tool updated successfully": "Το εργαλείο ενημερώθηκε με επιτυχία", "Tools": "Εργαλεία", "Tools Access": "Πρόσβαση Εργαλείων", "Tools are a function calling system with arbitrary code execution": "Τα εργαλεία είναι ένα σύστημα κλήσης λειτουργιών με αυθαίρετη εκτέλεση κώδικα", - "Tools Function Calling Prompt": "", + "Tools Function Calling Prompt": "Προτροπή Κλήσης Εργαλείων Λειτουργιών", "Tools have a function calling system that allows arbitrary code execution.": "Τα εργαλεία διαθέτουν ένα σύστημα κλήσης λειτουργιών που επιτρέπει την αυθαίρετη εκτέλεση κώδικα.", "Tools Public Sharing": "", "Top K": "Top K", "Top K Reranker": "", "Transformers": "Transformers", "Trouble accessing Ollama?": "Προβλήματα πρόσβασης στο Ollama?", - "Trust Proxy Environment": "", - "Try adjusting your search or filter to find what you are looking for.": "", + "Trust Proxy Environment": "Εμπιστοσύνη Διακομιστή Μεσολάβησης Περιβάλλοντος", + "Try adjusting your search or filter to find what you are looking for.": "Δοκιμάστε να προσαρμόσετε την αναζήτηση ή το φίλτρο για να βρείτε αυτό που ψάχνετε.", "Try Again": "", - "TTS Model": "Μοντέλο TTS", - "TTS Settings": "Ρυθμίσεις TTS", - "TTS Voice": "Φωνή TTS", + "TTS Model": "Μοντέλο μετατροπής Κειμένου σε Ομιλία", + "TTS Settings": "Ρυθμίσεις μετατροπής Κειμένου σε Ομιλία", + "TTS Voice": "Φωνή Κειμένου σε Ομιλία", "Type": "Τύπος", - "Type here...": "", + "Type here...": "Πληκτρολογήστε εδώ...", "Type Hugging Face Resolve (Download) URL": "Τύπος URL Ανάλυσης Hugging Face Resolve (Λήψη)", - "Uh-oh! There was an issue with the response.": "", + "Uh-oh! There was an issue with the response.": "Ωχ! Παρουσιάστηκε κάποιο σφάλμα με την απάντηση.", "UI": "Διεπαφή Χρήστη (UI)", "Unarchive All": "Απο-αρχειοθέτηση Όλων", "Unarchive All Archived Chats": "Απο-αρχειοθέτηση Όλων των Αρχειοθετημένων Συνομιλιών", @@ -1635,44 +1635,44 @@ "Unknown User": "", "Unloads {{FROM_NOW}}": "", "Unlock mysteries": "Ξεκλείδωμα μυστηρίων", - "Unpin": "Αφαίρεση καρφίτσματος", + "Unpin": "Ξεκαρφίτσωμα", "Unravel secrets": "Ξετυλίξτε μυστικά", "Unsupported file type.": "", "Untagged": "Χωρίς Ετικέτες", "Untitled": "", "Update": "Ενημέρωση", "Update and Copy Link": "Ενημέρωση και Αντιγραφή Συνδέσμου", - "Update for the latest features and improvements.": "Ενημέρωση για τις τελευταίες λειτουργίες και βελτιώσεις.", + "Update for the latest features and improvements.": "Ενημερωθείτε για τις τελευταίες λειτουργίες και βελτιώσεις.", "Update password": "Ενημέρωση κωδικού", "Updated": "Ενημερώθηκε", "Updated at": "Ενημερώθηκε στις", "Updated At": "Ενημερώθηκε στις", - "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "", + "Upgrade to a licensed plan for enhanced capabilities, including custom theming and branding, and dedicated support.": "Αναβαθμίστε σε ένα πακέτο με άδεια χρήσης για βελτιωμένες λειτουργίες, συμπεριλαμβανομένων προσαρμοσμένων θεμάτων και branding, και ειδικής υποστήριξης.", "Upload": "Ανέβασμα", "Upload a GGUF model": "Ανέβασμα μοντέλου GGUF", - "Upload Audio": "", + "Upload Audio": "Ανέβασμα Ήχου", "Upload directory": "Κατάλογος ανεβάσματος", "Upload files": "Ανέβασμα αρχείων", "Upload Files": "Ανέβασμα Αρχείων", - "Upload Model": "", + "Upload Model": "Ανέβασμα Μοντέλου", "Upload Pipeline": "Ανέβασμα Pipeline", "Upload Progress": "Πρόοδος Ανεβάσματος", "Upload Progress: {{uploadedFiles}}/{{totalFiles}} ({{percentage}}%)": "", "URL": "URL", - "URL is required": "", + "URL is required": "Το URL είναι απαραίτητο", "URL Mode": "Λειτουργία URL", - "Usage": "", + "Usage": "Χρήση Τoken", "Use '#' in the prompt input to load and include your knowledge.": "Χρησιμοποιήστε '#' στην είσοδο προτροπής για φόρτωση και συμπερίληψη της γνώσης σας.", "Use groups to group your users and assign permissions.": "Χρησιμοποιήστε ομάδες για να ομαδοποιήσετε τους χρήστες σας και να αναθέσετε δικαιώματα.", - "Use LLM": "", - "Use no proxy to fetch page contents.": "", - "Use proxy designated by http_proxy and https_proxy environment variables to fetch page contents.": "", - "user": "user", + "Use LLM": "Χρήση LLM", + "Use no proxy to fetch page contents.": "Μη χρήση διακομιστή μεσολάβησης για λήψη περιεχομένου σελίδων.", + "Use proxy designated by http_proxy and https_proxy environment variables to fetch page contents.": "Χρήση διακομιστή μεσολάβησης προορισμένο από τις http_proxy και https_proxy μεταβλητές περιβάλλοντος για λήψη περιεχομένου σελίδων.", + "user": "χρήστης", "User": "Χρήστης", - "User Groups": "", + "User Groups": "Ομάδες Χρηστών", "User location successfully retrieved.": "Η τοποθεσία του χρήστη ανακτήθηκε με επιτυχία.", - "User menu": "", - "User Webhooks": "", + "User menu": "Μενού Χρήστη", + "User Webhooks": "Webhooks Χρήστη", "Username": "Όνομα Χρήστη", "Users": "Χρήστες", "Uses DefaultAzureCredential to authenticate": "", @@ -1681,39 +1681,39 @@ "Using Focused Retrieval": "", "Using the default arena model with all models. Click the plus button to add custom models.": "Χρησιμοποιώντας το προεπιλεγμένο μοντέλο arena με όλα τα μοντέλα. Κάντε κλικ στο κουμπί συν για να προσθέσετε προσαρμοσμένα μοντέλα.", "Valid time units:": "Έγκυρες μονάδες χρόνου:", - "Validate certificate": "", + "Validate certificate": "Επαλήθευση πιστοποιητικού", "Valves": "Βαλβίδες", "Valves updated": "Οι βαλβίδες ενημερώθηκαν", "Valves updated successfully": "Οι βαλβίδες ενημερώθηκαν με επιτυχία", "variable": "μεταβλητή", - "Verify Connection": "", - "Verify SSL Certificate": "", + "Verify Connection": "Επαλήθευση Σύνδεσης", + "Verify SSL Certificate": "Επαλήθευση Πιστοποιητικού SSL", "Version": "Έκδοση", "Version {{selectedVersion}} of {{totalVersions}}": "Έκδοση {{selectedVersion}} από {{totalVersions}}", - "View Replies": "", - "View Result from **{{NAME}}**": "", + "View Replies": "Προβολή Απαντήσεων", + "View Result from **{{NAME}}**": "Προβολή Αποτελέσματος από **{{NAME}}**", "Visibility": "Ορατότητα", - "Vision": "", + "Vision": "Όραση", "vlm": "", "Voice": "Φωνή", "Voice Input": "Εισαγωγή Φωνής", - "Voice mode": "", + "Voice mode": "Λειτουργία Φωνής", "Warning": "Προειδοποίηση", "Warning:": "Προειδοποίηση:", "Warning: Enabling this will allow users to upload arbitrary code on the server.": "Προειδοποίηση: Η ενεργοποίηση αυτού θα επιτρέψει στους χρήστες να ανεβάσουν αυθαίρετο κώδικα στον διακομιστή.", - "Warning: Jupyter execution enables arbitrary code execution, posing severe security risks—proceed with extreme caution.": "", + "Warning: Jupyter execution enables arbitrary code execution, posing severe security risks—proceed with extreme caution.": "Προειδοποίηση: Η εκτέλεση του Jupyter επιτρέπει την εκτέλεση αυθαίρετου κώδικα, γεγονός που θέτει σοβαρούς κινδύνους ασφαλεία - προχωρήστε με εξαιρετική προσοχή.", "Web": "Διαδίκτυο", - "Web API": "Web API", - "Web Loader Engine": "", + "Web API": "", + "Web Loader Engine": "Μηχανή Φόρτωσης Διαδικτύου", "Web Search": "Αναζήτηση στο Διαδίκτυο", "Web Search Engine": "Μηχανή Αναζήτησης στο Διαδίκτυο", "Web Search in Chat": "", - "Web Search Query Generation": "", + "Web Search Query Generation": "Δημιουργία Ερωτήματος Αναζήτησης Διαδικτύου", "Webhook URL": "URL Webhook", - "Webpage URL": "", + "Webpage URL": "URL ιστότοπου", "WebUI Settings": "Ρυθμίσεις WebUI", "WebUI URL": "", - "WebUI will make requests to \"{{url}}\"": "", + "WebUI will make requests to \"{{url}}\"": "Το WebUI θα κάνει αιτήματα στο \"{{url}}\"", "WebUI will make requests to \"{{url}}/api/chat\"": "Το WebUI θα κάνει αιτήματα στο \"{{url}}/api/chat\"", "WebUI will make requests to \"{{url}}/chat/completions\"": "Το WebUI θα κάνει αιτήματα στο \"{{url}}/chat/completions\"", "What are you trying to achieve?": "Τι προσπαθείτε να πετύχετε?", @@ -1725,21 +1725,21 @@ "Whisper (Local)": "Whisper (Τοπικό)", "Why?": "Γιατί?", "Widescreen Mode": "Λειτουργία Οθόνης Ευρείας", - "Width": "", + "Width": "Πλάτος", "Won": "Κέρδισε", "Works together with top-k. A higher value (e.g., 0.95) will lead to more diverse text, while a lower value (e.g., 0.5) will generate more focused and conservative text.": "", "Workspace": "Χώρος Εργασίας", "Workspace Permissions": "Δικαιώματα Χώρου Εργασίας", "Write": "", - "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 something...": "Γράψτε κάτι...", - "Write your model system prompt content here\ne.g.) You are Mario from Super Mario Bros, acting as an assistant.": "Γράψτε εδώ το περιεχόμενο του system prompt του μοντέλου σας\nπ.χ.: Είστε ο Mario από το Super Mario Bros και ενεργείτε ως βοηθός.", + "Write your model system prompt content here\ne.g.) You are Mario from Super Mario Bros, acting as an assistant.": "Γράψτε εδώ την προτροπή συστήματος του μοντέλου σας\nπ.χ.: Είστε ο Mario από το Super Mario Bros και ενεργείτε ως βοηθός.", "Yacy Instance URL": "", - "Yacy Password": "", - "Yacy Username": "", + "Yacy Password": "Κωδικός Yacy", + "Yacy Username": "Όνομα χρήστη Yacy", "Yesterday": "Εχθές", - "Yesterday at {{LOCALIZED_TIME}}": "", + "Yesterday at {{LOCALIZED_TIME}}": "Εχθές στις {{LOCALIZED_TIME}}", "You": "Εσείς", "You are currently using a trial license. Please contact support to upgrade your license.": "", "You can only chat with a maximum of {{maxCount}} file(s) at a time.": "Μπορείτε να συνομιλήσετε μόνο με μέγιστο αριθμό {{maxCount}} αρχείου(-ων) ταυτόχρονα.", @@ -1752,10 +1752,10 @@ "You have shared this chat": "Έχετε μοιραστεί αυτή τη συνομιλία", "You're a helpful assistant.": "Είστε ένας βοηθητικός βοηθός.", "You're now logged in.": "Τώρα είστε συνδεδεμένοι.", - "Your Account": "", + "Your Account": "Ο λογαριασμός σας", "Your account status is currently pending activation.": "Η κατάσταση του λογαριασμού σας είναι αυτή τη στιγμή σε εκκρεμότητα ενεργοποίησης.", "Your entire contribution will go directly to the plugin developer; Open WebUI does not take any percentage. However, the chosen funding platform might have its own fees.": "Η ολόκληρη η συνεισφορά σας θα πάει απευθείας στον προγραμματιστή του plugin· το Open WebUI δεν παίρνει κανένα ποσοστό. Ωστόσο, η επιλεγμένη πλατφόρμα χρηματοδότησης μπορεί να έχει τα δικά της τέλη.", "YouTube": "Youtube", - "Youtube Language": "", - "Youtube Proxy URL": "" + "Youtube Language": "Γλώσσα YouTube", + "Youtube Proxy URL": "URL Διακομιστή Μεσολάβησης YouTube" } From f170f37ba4cb510a97a58968da3070aab1c84129 Mon Sep 17 00:00:00 2001 From: Shirasawa <764798966@qq.com> Date: Fri, 17 Oct 2025 16:29:53 +0800 Subject: [PATCH 004/164] i18n: improve zh-CN translation --- src/lib/i18n/locales/zh-CN/translation.json | 22 ++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/lib/i18n/locales/zh-CN/translation.json b/src/lib/i18n/locales/zh-CN/translation.json index 3bd525469d..b73033d9cd 100644 --- a/src/lib/i18n/locales/zh-CN/translation.json +++ b/src/lib/i18n/locales/zh-CN/translation.json @@ -73,9 +73,9 @@ "Admin Settings": "管理员设置", "Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "管理员拥有所有工具的完全访问权限;用户则需在工作空间中为每个模型单独分配工具。", "Advanced Parameters": "高级参数", - "Advanced parameters for MinerU parsing (enable_ocr, enable_formula, enable_table, language, model_version, page_ranges)": "", + "Advanced parameters for MinerU parsing (enable_ocr, enable_formula, enable_table, language, model_version, page_ranges)": "用于 MinerU 解析的高级参数(enable_ocr, enable_formula, enable_table, language, model_version, page_ranges)", "Advanced Params": "高级参数", - "After updating or changing the embedding model, you must reindex the knowledge base for the changes to take effect. You can do this using the \"Reindex\" button below.": "", + "After updating or changing the embedding model, you must reindex the knowledge base for the changes to take effect. You can do this using the \"Reindex\" button below.": "更新或更改嵌入模型后,请重新索引知识库以应用更改。只需点击下方的“重新索引”按钮即可。", "AI": "AI", "All": "全部", "All chats have been unarchived.": "已成功将所有对话取消归档。", @@ -130,7 +130,7 @@ "API Key created.": "API 密钥已创建。", "API Key Endpoint Restrictions": "API 密钥端点限制", "API keys": "API 密钥", - "API Mode": "", + "API Mode": "API 模式", "API Version": "API 版本", "API Version is required": "API 版本是必填项。", "Application DN": "Application DN", @@ -582,7 +582,7 @@ "Enter Kagi Search API Key": "输入 Kagi Search API 密钥", "Enter Key Behavior": "Enter 键行为", "Enter language codes": "输入语言代码", - "Enter MinerU API Key": "", + "Enter MinerU API Key": "输入 MinerU API 密钥", "Enter Mistral API Key": "输入 Mistral API 密钥", "Enter Model ID": "输入模型 ID", "Enter model tag (e.g. {{modelTag}})": "输入模型标签(例如:{{modelTag}})", @@ -828,8 +828,8 @@ "How can I help you today?": "有什么我能帮您的吗?", "How would you rate this response?": "您如何评价这个回答?", "HTML": "HTML", - "http://localhost:8000": "", - "https://mineru.net/api/v4": "", + "http://localhost:8000": "http://localhost:8000", + "https://mineru.net/api/v4": "https://mineru.net/api/v4", "Hybrid Search": "混合搜索", "I acknowledge that I have read and I understand the implications of my action. I am aware of the risks associated with executing arbitrary code and I have verified the trustworthiness of the source.": "我已阅读并理解我的行为所带来的影响,知悉执行任意代码的风险,并确认代码来源可信。", "ID": "ID", @@ -996,9 +996,9 @@ "Microsoft OneDrive": "Microsoft OneDrive", "Microsoft OneDrive (personal)": "Microsoft OneDrive(个人账户)", "Microsoft OneDrive (work/school)": "Microsoft OneDrive(工作或学校账户)", - "MinerU": "", - "MinerU API Key required for Cloud API mode.": "", - "minerU managed (Cloud API)": "", + "MinerU": "MinerU", + "MinerU API Key required for Cloud API mode.": "使用 MinerU 云服务模式需要 API 密钥。", + "minerU managed (Cloud API)": "MinerU 云服务", "Mistral OCR": "Mistral OCR", "Mistral OCR API Key required.": "需要 Mistral OCR API 密钥", "Model": "模型", @@ -1066,7 +1066,7 @@ "No content to speak": "没有内容可朗读", "No conversation to save": "没有可保存的对话", "No distance available": "没有可用距离", - "No expiration can pose security risks.": "", + "No expiration can pose security risks.": "未设置 JWT 过期时间会导致安全风险。", "No feedbacks found": "暂无任何反馈", "No file selected": "未选中文件", "No functions found": "未找到函数", @@ -1395,7 +1395,7 @@ "Select only one model to call": "只允许选择一个模型进行语音通话", "Select view": "选择视图", "Selected model(s) do not support image inputs": "所选择的模型不支持处理图像", - "Self-Hosted": "", + "Self-Hosted": "本地部署", "semantic": "语义", "Send": "发送", "Send a Message": "输入消息", From 7c393bc1666c0810da78d4eea08cac3f90c34fda Mon Sep 17 00:00:00 2001 From: Shirasawa <764798966@qq.com> Date: Fri, 17 Oct 2025 08:42:17 +0000 Subject: [PATCH 005/164] i18n: improve zh-TW translation --- src/lib/i18n/locales/zh-TW/translation.json | 22 ++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/lib/i18n/locales/zh-TW/translation.json b/src/lib/i18n/locales/zh-TW/translation.json index 6a0c816031..55e752c42e 100644 --- a/src/lib/i18n/locales/zh-TW/translation.json +++ b/src/lib/i18n/locales/zh-TW/translation.json @@ -73,9 +73,9 @@ "Admin Settings": "管理員設定", "Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "管理員可以隨時使用所有工具;使用者則需在工作區中為每個模型分配工具。", "Advanced Parameters": "進階參數", - "Advanced parameters for MinerU parsing (enable_ocr, enable_formula, enable_table, language, model_version, page_ranges)": "", + "Advanced parameters for MinerU parsing (enable_ocr, enable_formula, enable_table, language, model_version, page_ranges)": "用於 MinerU 解析的進階參數(enable_ocr、enable_formula、enable_table、language、model_version、page_ranges)", "Advanced Params": "進階參數", - "After updating or changing the embedding model, you must reindex the knowledge base for the changes to take effect. You can do this using the \"Reindex\" button below.": "", + "After updating or changing the embedding model, you must reindex the knowledge base for the changes to take effect. You can do this using the \"Reindex\" button below.": "更新或更改嵌入模型後,必須重新建立知識庫索引,才能套用變更。您可以點擊下方的「重新索引」按鈕來完成。", "AI": "AI", "All": "全部", "All chats have been unarchived.": "已成功將所有對話解除封存。", @@ -130,7 +130,7 @@ "API Key created.": "API 金鑰已建立。", "API Key Endpoint Restrictions": "API 金鑰端點限制", "API keys": "API 金鑰", - "API Mode": "", + "API Mode": "API 模式", "API Version": "API 版本", "API Version is required": "API 版本為必填項目", "Application DN": "應用程式 DN", @@ -582,7 +582,7 @@ "Enter Kagi Search API Key": "輸入 Kagi 搜尋 API 金鑰", "Enter Key Behavior": "Enter 鍵行為", "Enter language codes": "輸入語言代碼", - "Enter MinerU API Key": "", + "Enter MinerU API Key": "輸入 MinerU API 金鑰", "Enter Mistral API Key": "輸入 Mistral API 金鑰", "Enter Model ID": "輸入模型 ID", "Enter model tag (e.g. {{modelTag}})": "輸入模型標籤(例如:{{modelTag}})", @@ -828,8 +828,8 @@ "How can I help you today?": "今天我能為您做些什麼?", "How would you rate this response?": "您如何評價此回應?", "HTML": "HTML", - "http://localhost:8000": "", - "https://mineru.net/api/v4": "", + "http://localhost:8000": "http://localhost:8000", + "https://mineru.net/api/v4": "https://mineru.net/api/v4", "Hybrid Search": "混合搜尋", "I acknowledge that I have read and I understand the implications of my action. I am aware of the risks associated with executing arbitrary code and I have verified the trustworthiness of the source.": "我確認已閱讀並理解我的操作所帶來的影響。我了解執行任意程式碼的相關風險,並已驗證來源的可信度。", "ID": "ID", @@ -996,9 +996,9 @@ "Microsoft OneDrive": "Microsoft OneDrive", "Microsoft OneDrive (personal)": "Microsoft OneDrive(個人版)", "Microsoft OneDrive (work/school)": "Microsoft OneDrive(公司版/學校版)", - "MinerU": "", - "MinerU API Key required for Cloud API mode.": "", - "minerU managed (Cloud API)": "", + "MinerU": "MinerU", + "MinerU API Key required for Cloud API mode.": "使用 MinerU 雲端服務模式需要 API 金鑰。", + "minerU managed (Cloud API)": "MinerU 雲端 API(託管模式)", "Mistral OCR": "Mistral OCR", "Mistral OCR API Key required.": "需要提供 Mistral OCR API 金鑰。", "Model": "模型", @@ -1066,7 +1066,7 @@ "No content to speak": "無可朗讀的內容", "No conversation to save": "沒有可儲存的對話", "No distance available": "無可用距離", - "No expiration can pose security risks.": "", + "No expiration can pose security risks.": "未設定 JWT 到期時間可能造成安全風險。", "No feedbacks found": "未找到回饋", "No file selected": "未選取檔案", "No functions found": "未找到函式", @@ -1395,7 +1395,7 @@ "Select only one model to call": "僅選擇一個模型來呼叫", "Select view": "選擇檢視", "Selected model(s) do not support image inputs": "選取的模型不支援圖片輸入", - "Self-Hosted": "", + "Self-Hosted": "自行部署", "semantic": "語義", "Send": "傳送", "Send a Message": "傳送訊息", From 185e01eecc748995020af93ed63765c5f9f36e79 Mon Sep 17 00:00:00 2001 From: Jan Kessler Date: Fri, 17 Oct 2025 11:14:55 +0200 Subject: [PATCH 006/164] German translation of new strings in i18n --- src/lib/i18n/locales/de-DE/translation.json | 26 ++++++++++----------- 1 file changed, 13 insertions(+), 13 deletions(-) diff --git a/src/lib/i18n/locales/de-DE/translation.json b/src/lib/i18n/locales/de-DE/translation.json index 077ddbd5c3..90f7afe154 100644 --- a/src/lib/i18n/locales/de-DE/translation.json +++ b/src/lib/i18n/locales/de-DE/translation.json @@ -73,9 +73,9 @@ "Admin Settings": "Administration", "Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Administratoren haben jederzeit Zugriff auf alle Werkzeuge; Benutzern müssen Werkzeuge pro Modell im Arbeitsbereich zugewiesen werden.", "Advanced Parameters": "Erweiterte Parameter", - "Advanced parameters for MinerU parsing (enable_ocr, enable_formula, enable_table, language, model_version, page_ranges)": "", + "Advanced parameters for MinerU parsing (enable_ocr, enable_formula, enable_table, language, model_version, page_ranges)": "Erweiterte Parameter für das MinerU-Parsing (enable_ocr, enable_formula, enable_table, language, model_version, page_ranges)", "Advanced Params": "Erweiterte Parameter", - "After updating or changing the embedding model, you must reindex the knowledge base for the changes to take effect. You can do this using the \"Reindex\" button below.": "", + "After updating or changing the embedding model, you must reindex the knowledge base for the changes to take effect. You can do this using the \"Reindex\" button below.": "Nachdem Sie das Embedding-Modell aktualisiert oder geändert haben, müssen Sie den Wissensspeicher neu indizieren, damit die Änderungen wirksam werden. Sie können dies mit der Schaltfläche \"Neu indizieren\" unten durchführen.", "AI": "KI", "All": "Alle", "All chats have been unarchived.": "Alle Chats wurden aus dem Archiv wiederhergestellt.", @@ -130,7 +130,7 @@ "API Key created.": "API-Schlüssel erstellt.", "API Key Endpoint Restrictions": "API-Schlüssel Endpunkteinschränkungen", "API keys": "API-Schlüssel", - "API Mode": "", + "API Mode": "API-Modus", "API Version": "API Version", "API Version is required": "API-Version ist erforderlich", "Application DN": "Anwendungs-DN", @@ -341,7 +341,7 @@ "Create": "Erstellen", "Create a knowledge base": "Wissensspeicher erstellen", "Create a model": "Modell erstellen", - "Create a new note": "", + "Create a new note": "Neue Notiz erstellen", "Create Account": "Konto erstellen", "Create Admin Account": "Administrator-Account erstellen", "Create Channel": "Kanal erstellen", @@ -582,7 +582,7 @@ "Enter Kagi Search API Key": "Geben Sie den Kagi Search API-Schlüssel ein", "Enter Key Behavior": "Verhalten von 'Enter'", "Enter language codes": "Geben Sie die Sprachcodes ein", - "Enter MinerU API Key": "", + "Enter MinerU API Key": "Geben Sie den MinerU API-Schlüssel ein", "Enter Mistral API Key": "Geben Sie den Mistral API-Schlüssel ein", "Enter Model ID": "Geben Sie die Modell-ID ein", "Enter model tag (e.g. {{modelTag}})": "Geben Sie den Model-Tag ein", @@ -828,8 +828,8 @@ "How can I help you today?": "Wie kann ich Ihnen heute helfen?", "How would you rate this response?": "Wie würden Sie diese Antwort bewerten?", "HTML": "HTML", - "http://localhost:8000": "", - "https://mineru.net/api/v4": "", + "http://localhost:8000": "http://localhost:8000", + "https://mineru.net/api/v4": "https://mineru.net/api/v4", "Hybrid Search": "Hybride Suche", "I acknowledge that I have read and I understand the implications of my action. I am aware of the risks associated with executing arbitrary code and I have verified the trustworthiness of the source.": "Ich bestätige, dass ich gelesen habe und die Auswirkungen meiner Aktion verstehe. Mir sind die Risiken bewusst, die mit der Ausführung beliebigen Codes verbunden sind, und ich habe die Vertrauenswürdigkeit der Quelle überprüft.", "ID": "ID", @@ -996,9 +996,9 @@ "Microsoft OneDrive": "Microsoft OneDrive", "Microsoft OneDrive (personal)": "Microsoft OneDrive (persönlich)", "Microsoft OneDrive (work/school)": "Microsoft OneDrive (Arbeit/Schule)", - "MinerU": "", - "MinerU API Key required for Cloud API mode.": "", - "minerU managed (Cloud API)": "", + "MinerU": "MinerU", + "MinerU API Key required for Cloud API mode.": "MinerU API-Schlüssel erforderlich für den Cloud-API-Modus.", + "minerU managed (Cloud API)": "MinerU managed (Cloud-API)", "Mistral OCR": "Mistral OCR", "Mistral OCR API Key required.": "Mistral OCR API-Schlüssel erforderlich.", "Model": "Modell", @@ -1066,7 +1066,7 @@ "No content to speak": "Kein Inhalt zum Vorlesen", "No conversation to save": "Keine Unterhaltung zum Speichern vorhanden", "No distance available": "Keine Distanz verfügbar", - "No expiration can pose security risks.": "", + "No expiration can pose security risks.": "Keine Ablauffrist zu setzen kann Sicherheitsrisiken bergen.", "No feedbacks found": "Kein Feedback gefunden", "No file selected": "Keine Datei ausgewählt", "No functions found": "Keine Funktionen gefunden", @@ -1396,7 +1396,7 @@ "Select only one model to call": "Wählen Sie nur ein Modell zum Anrufen aus", "Select view": "Ansicht wählen", "Selected model(s) do not support image inputs": "Ihre ausgewählten Modelle unterstützen keine Bildeingaben", - "Self-Hosted": "", + "Self-Hosted": "Selbstgehostet", "semantic": "semantisch", "Send": "Senden", "Send a Message": "Eine Nachricht senden", @@ -1474,7 +1474,7 @@ "Speech-to-Text": "Sprache-zu-Text", "Speech-to-Text Engine": "Sprache-zu-Text-Engine", "standard": "Standard", - "Start a new conversation": "", + "Start a new conversation": "Neue Unterhaltung starten", "Start of the channel": "Beginn des Kanals", "Start Tag": "Start-Tag", "Status Updates": "Statusaktualisierungen", From a483d41de21158e2e04d231a40f8abfd945a9c42 Mon Sep 17 00:00:00 2001 From: Classic298 <27028174+Classic298@users.noreply.github.com> Date: Fri, 17 Oct 2025 11:32:17 +0200 Subject: [PATCH 007/164] Patch 1 (#22) --- .github/ISSUE_TEMPLATE/bug_report.yaml | 8 ++++-- .github/ISSUE_TEMPLATE/feature_request.yaml | 4 +-- .github/pull_request_template.md | 15 +++++++---- docs/CONTRIBUTING.md | 16 ++++++++++-- docs/SECURITY.md | 29 +++++++++++++-------- 5 files changed, 50 insertions(+), 22 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yaml b/.github/ISSUE_TEMPLATE/bug_report.yaml index 5be1ac21b3..420633a0f6 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yaml +++ b/.github/ISSUE_TEMPLATE/bug_report.yaml @@ -11,9 +11,9 @@ body: ## Important Notes - - **Before submitting a bug report**: Please check the [Issues](https://github.com/open-webui/open-webui/issues) and [Discussions](https://github.com/open-webui/open-webui/discussions) sections to see if a similar issue has already been reported. If unsure, start a discussion first, as this helps us efficiently focus on improving the project. Duplicates may be closed without notice. **Please search for existing issues and discussions.** + - **Before submitting a bug report**: Please check the [Issues](https://github.com/open-webui/open-webui/issues) and [Discussions](https://github.com/open-webui/open-webui/discussions) sections to see if a similar issue has already been reported. If unsure, start a discussion first, as this helps us efficiently focus on improving the project. Duplicates may be closed without notice. **Please search for existing issues AND discussions. No matter open or closed.** - - Check for opened, **but also for (recently) CLOSED issues** as the issue you are trying to report **might already have been fixed!** + - Check for opened, **but also for (recently) CLOSED issues** as the issue you are trying to report **might already have been fixed on the dev branch!** - **Respectful collaboration**: Open WebUI is a volunteer-driven project with a single maintainer and contributors who also have full-time jobs. Please be constructive and respectful in your communication. @@ -21,6 +21,8 @@ body: - **Bug Reproducibility**: If a bug cannot be reproduced using a `:main` or `:dev` Docker setup or with `pip install` on Python 3.11, community assistance may be required. In such cases, we will move it to the "[Issues](https://github.com/open-webui/open-webui/discussions/categories/issues)" Discussions section. Your help is appreciated! + - **Scope**: If you want to report a SECURITY VULNERABILITY, then do so through our [GitHub security page](https://github.com/open-webui/open-webui/security). + - type: checkboxes id: issue-check attributes: @@ -31,6 +33,8 @@ body: required: true - label: I have searched for any existing and/or related discussions. required: true + - label: I have also searched in the CLOSED issues AND CLOSED discussions and found no related items (your issue might already be addressed on the development branch!). + required: true - label: I am using the latest version of Open WebUI. required: true diff --git a/.github/ISSUE_TEMPLATE/feature_request.yaml b/.github/ISSUE_TEMPLATE/feature_request.yaml index 4f159f4faa..5f378ccbe6 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yaml +++ b/.github/ISSUE_TEMPLATE/feature_request.yaml @@ -36,14 +36,14 @@ body: label: Check Existing Issues description: Please confirm that you've checked for existing similar requests options: - - label: I have searched all existing open AND closed issues and discussions for similar requests. I have found none that is comparable to my request. + - label: I have searched for all existing **open AND closed** issues and discussions for similar requests. I have found none that is comparable to my request. required: true - type: textarea id: problem-description attributes: label: Problem Description description: Is your feature request related to a problem? Please provide a clear and concise description of what the problem is. - placeholder: "Ex. I'm always frustrated when..." + placeholder: "Ex. I'm always frustrated when... / Not related to a problem" validations: required: true - type: textarea diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index 0ec871f328..75b9359168 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,16 +1,18 @@ # Pull Request Checklist -### Note to first-time contributors: Please open a discussion post in [Discussions](https://github.com/open-webui/open-webui/discussions) and describe your changes before submitting a pull request. +### Note to first-time contributors: Please open a discussion post in [Discussions](https://github.com/open-webui/open-webui/discussions) to discuss your idea/fix with the community before creating a pull request, and describe your changes before submitting a pull request. + +This is to ensure large feature PRs are discussed with the community first, before starting work on it. If the community does not want this feature or it is not relevant for Open WebUI as a project, it can be identified in the discussion before working on the feature and submitting the PR. **Before submitting, make sure you've checked the following:** -- [ ] **Target branch:** Verify that the pull request targets the `dev` branch. Not targeting the `dev` branch may lead to immediate closure of the PR. -- [ ] **Description:** Provide a concise description of the changes made in this pull request. +- [ ] **Target branch:** Verify that the pull request targets the `dev` branch. **Not targeting the `dev` branch will lead to immediate closure of the PR.** +- [ ] **Description:** Provide a concise description of the changes made in this pull request down below. - [ ] **Changelog:** Ensure a changelog entry following the format of [Keep a Changelog](https://keepachangelog.com/) is added at the bottom of the PR description. - [ ] **Documentation:** If necessary, update relevant documentation [Open WebUI Docs](https://github.com/open-webui/docs) like environment variables, the tutorials, or other documentation sources. - [ ] **Dependencies:** Are there any new dependencies? Have you updated the dependency versions in the documentation? -- [ ] **Testing:** Perform manual tests to verify the implemented fix/feature works as intended AND does not break any other functionality. Take this as an opportunity to make screenshots of the feature/fix and include it in the PR description. -- [ ] **Agentic AI Code:**: Confirm this Pull Request is **not written by any AI Agent** or has at least gone through additional human review **and** manual testing. If any AI Agent is the co-author of this PR, it may lead to immediate closure of the PR. +- [ ] **Testing:** Perform manual tests to **verify the implemented fix/feature works as intended AND does not break any other functionality**. Take this as an opportunity to **make screenshots of the feature/fix and include it in the PR description**. +- [ ] **Agentic AI Code:** Confirm this Pull Request is **not written by any AI Agent** or has at least **gone through additional human review AND manual testing**. If any AI Agent is the co-author of this PR, it may lead to immediate closure of the PR. - [ ] **Code review:** Have you performed a self-review of your code, addressing any coding standard issues and ensuring adherence to the project's coding standards? - [ ] **Title Prefix:** To clearly categorize this pull request, prefix the pull request title using one of the following: - **BREAKING CHANGE**: Significant changes that may affect compatibility @@ -75,3 +77,6 @@ ### Contributor License Agreement By submitting this pull request, I confirm that I have read and fully agree to the [Contributor License Agreement (CLA)](https://github.com/open-webui/open-webui/blob/main/CONTRIBUTOR_LICENSE_AGREEMENT), and I am providing my contributions under its terms. + +> [!NOTE] +> Deleting the CLA section will lead to immediate closure of your PR and it will not be merged in. diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index ec8a79bbce..afc215c826 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -24,6 +24,10 @@ Noticed something off? Have an idea? Check our [Issues tab](https://github.com/o > - **Template Compliance:** Please be aware that failure to follow the provided issue template, or not providing the requested information at all, will likely result in your issue being closed without further consideration. This approach is critical for maintaining the manageability and integrity of issue tracking. > - **Detail is Key:** To ensure your issue is understood and can be effectively addressed, it's imperative to include comprehensive details. Descriptions should be clear, including steps to reproduce, expected outcomes, and actual results. Lack of sufficient detail may hinder our ability to resolve your issue. +> [!WARNING] +> Reporting vulnerabilities is not wanted through Issues! +> Instead, [use the security reporting functionality](https://github.com/open-webui/open-webui/security) and ensure you comply with the outlined requirements. + ### 🧭 Scope of Support We've noticed an uptick in issues not directly related to Open WebUI but rather to the environment it's run in, especially Docker setups. While we strive to support Docker deployment, understanding Docker fundamentals is crucial for a smooth experience. @@ -32,6 +36,8 @@ We've noticed an uptick in issues not directly related to Open WebUI but rather - **Advanced Configurations**: Setting up reverse proxies for HTTPS and managing Docker deployments requires foundational knowledge. There are numerous online resources available to learn these skills. Ensuring you have this knowledge will greatly enhance your experience with Open WebUI and similar projects. +- **Check the documentation and help improve it**: [Our documentation](https://docs.openwebui.com) has ever growing troubleshooting guides and detailed installation tutorials. Please verify if it is of help to your issue and help expand it by submitting issues and PRs on our [Docs Repository](https://github.com/open-webui/docs). + ## 💡 Contributing Looking to contribute? Great! Here's how you can help: @@ -46,9 +52,15 @@ We welcome pull requests. Before submitting one, please: 4. Write clear, descriptive commit messages. 5. It's essential to complete your pull request in a timely manner. We move fast, and having PRs hang around too long is not feasible. If you can't get it done within a reasonable time frame, we may have to close it to keep the project moving forward. +> [!NOTE] +> The Pull Request Template has various requirements outlined. Go through the PR-checklist one by one and ensure you completed all steps before submitting your PR for review (you can open it as draft otherwise!). + ### 📚 Documentation & Tutorials -Help us make Open WebUI more accessible by improving documentation, writing tutorials, or creating guides on setting up and optimizing the web UI. +Help us make Open WebUI more accessible by improving the documentation, writing tutorials, or creating guides on setting up and optimizing the Web UI. + +Help expand our documentation by submitting issues and PRs on our [Docs Repository](https://github.com/open-webui/docs). +We welcome tutorials, guides and other documentation improvements! ### 🌐 Translations and Internationalization @@ -64,7 +76,7 @@ To add a new language: ### 🤔 Questions & Feedback -Got questions or feedback? Join our [Discord community](https://discord.gg/5rJgQTnV4s) or open an issue. We're here to help! +Got questions or feedback? Join our [Discord community](https://discord.gg/5rJgQTnV4s) or open an issue or discussion. We're here to help! ## 🙏 Thank You! diff --git a/docs/SECURITY.md b/docs/SECURITY.md index f08c465471..fd4f5e8391 100644 --- a/docs/SECURITY.md +++ b/docs/SECURITY.md @@ -44,8 +44,9 @@ We appreciate the community's interest in identifying potential vulnerabilities. > - Screenshots/videos demonstrating the exploit (supplementary to written steps) > > **Failure to provide a reproducible PoC may lead to closure of the report** -> We will notify you, if we struggle to reproduce the exploit using your PoC to allow you to improve your PoC -> However, if we repeatedly cannot reproduce the exploit using the PoC, the report may be closed +> +> We will notify you, if we struggle to reproduce the exploit using your PoC to allow you to improve your PoC. +> However, if we repeatedly cannot reproduce the exploit using the PoC, the report may be closed. 5. **Required Patch or Actionable Remediation Plan Submission**: Along with the PoC, reporters must provide a patch or some actionable steps to remediate the identified vulnerability. This helps us evaluate and implement fixes rapidly. @@ -64,7 +65,8 @@ We appreciate the community's interest in identifying potential vulnerabilities. 9. **CVSS Scoring Accuracy:** If you include a CVSS score with your report, it must accurately reflect the vulnerability according to CVSS methodology. Common errors include 1) rating PR:N (None) when authentication is required, 2) scoring hypothetical attack chains instead of the actual vulnerability, or 3) inflating severity without evidence. **We will adjust inaccurate CVSS scores.** Intentionally inflated scores may result in report rejection. -> [!WARNING] > **Using CVE Precedents:** If you cite other CVEs to support your report, ensure they are **genuinely comparable** in vulnerability type, threat model, and attack vector. Citing CVEs from different product categories, different vulnerability classes or different deployment models will lead us to suspect the use of AI in your report. +> [!WARNING] +> **Using CVE Precedents:** If you cite other CVEs to support your report, ensure they are **genuinely comparable** in vulnerability type, threat model, and attack vector. Citing CVEs from different product categories, different vulnerability classes or different deployment models will lead us to suspect the use of AI in your report. 11. **Admin Actions Are Out of Scope:** Vulnerabilities that require an administrator to actively perform unsafe actions are **not considered valid vulnerabilities**. Admins have full system control and are expected to understand the security implications of their actions and configurations. This includes but is not limited to: adding malicious external servers (models, tools, webhooks), pasting untrusted code into Functions/Tools, or intentionally weakening security settings. **Reports requiring admin negligence or social engineering of admins may be rejected.** @@ -88,11 +90,21 @@ We appreciate the community's interest in identifying potential vulnerabilities. **Non-compliant submissions will be closed, and repeat extreme violators may be banned.** Our goal is to foster a constructive reporting environment where quality submissions promote better security for all users. +## Where to report the vulnerability + If you want to report a vulnerability and can meet the outlined requirements, [open a vulnerability report here](https://github.com/open-webui/open-webui/security/advisories/new). +If you feel like you are not able to follow ALL outlined requirements for vulnerability-specific reasons, still do report it, we will check every report either way. ## Product Security And For Non-Vulnerability Security Concerns: -If your concern does not meet the vulnerability requirements outlined above, such as: +If your concern does not meet the vulnerability requirements outlined above, is not a vulnerability, **but is still related to security concerns**, then use the following channels instead: + +- **Documentation issues/improvement ideas:** Open an issue on our [Documentation Repository](https://github.com/open-webui/docs) +- **Feature requests:** Create a discussion in [GitHub Discussions - Ideas](https://github.com/open-webui/open-webui/discussions/) to discuss with the community if this feature request is wanted by multiple people +- **Configuration help:** Ask the community for help and guidance on our [Discord Server](https://discord.gg/5rJgQTnV4s) or on [Reddit](https://www.reddit.com/r/OpenWebUI/) +- **General issues:** Use our [Issue Tracker](https://github.com/open-webui/open-webui/issues) + +**Examples of non-vulnerability, still security related concerns:** - Suggestions for better default configuration values - Security hardening recommendations @@ -102,12 +114,7 @@ If your concern does not meet the vulnerability requirements outlined above, suc - Feature requests for optional security enhancements (2FA, audit logging, etc.) - General security questions about production deployment -**then use one of the following channels instead:** - -- **Documentation issues/improvement ideas:** Open an issue on our [Documentation Repository](https://github.com/open-webui/docs) -- **Feature requests:** Create a discussion in [GitHub Discussions - Ideas](https://github.com/open-webui/open-webui/discussions/) to discuss with the community if this feature request is wanted by multiple people -- **Configuration help:** Ask the community for help and guidance on our [Discord Server](https://discord.gg/5rJgQTnV4s) or on [Reddit](https://www.reddit.com/r/OpenWebUI/) -- **General issues:** Use our [Issue Tracker](https://github.com/open-webui/open-webui/issues) +Please use the adequate channel for your specific issue - e.g. best-practice guidance or additional documentation needs into the Documentation Repository, and feature requests into the Main Repository as an issue or discussion. We regularly audit our internal processes and system architecture for vulnerabilities using a combination of automated and manual testing techniques. We are also planning to implement SAST and SCA scans in our project soon. @@ -115,4 +122,4 @@ For any other immediate concerns, please create an issue in our [issue tracker]( --- -_Last updated on **2025-10-12**._ +_Last updated on **2025-10-17**._ From c0a91b566b4d2bf91a40cd0fdd3a9b16df445091 Mon Sep 17 00:00:00 2001 From: joaoback <156559121+joaoback@users.noreply.github.com> Date: Fri, 17 Oct 2025 08:29:01 -0300 Subject: [PATCH 008/164] Update translation.json (pt-BR) translations of the new items added in the last version have been carried out. --- src/lib/i18n/locales/pt-BR/translation.json | 22 ++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/lib/i18n/locales/pt-BR/translation.json b/src/lib/i18n/locales/pt-BR/translation.json index 1cc44e33fb..c147d47033 100644 --- a/src/lib/i18n/locales/pt-BR/translation.json +++ b/src/lib/i18n/locales/pt-BR/translation.json @@ -73,9 +73,9 @@ "Admin Settings": "Configurações do Admin", "Admins have access to all tools at all times; users need tools assigned per model in the workspace.": "Os administradores têm acesso a todas as ferramentas o tempo todo; os usuários precisam de ferramentas atribuídas, por modelo, no workspace.", "Advanced Parameters": "Parâmetros Avançados", - "Advanced parameters for MinerU parsing (enable_ocr, enable_formula, enable_table, language, model_version, page_ranges)": "", + "Advanced parameters for MinerU parsing (enable_ocr, enable_formula, enable_table, language, model_version, page_ranges)": "Parâmetros avançados para análise do MinerU (enable_ocr, enable_formula, enable_table, language, model_version, page_ranges)", "Advanced Params": "Parâmetros Avançados", - "After updating or changing the embedding model, you must reindex the knowledge base for the changes to take effect. You can do this using the \"Reindex\" button below.": "", + "After updating or changing the embedding model, you must reindex the knowledge base for the changes to take effect. You can do this using the \"Reindex\" button below.": "Após atualizar ou alterar o modelo de embedding, você deve reindexar a base de conhecimento para que as alterações entrem em vigor. Você pode fazer isso usando o botão \"Reindexar\" abaixo.", "AI": "IA", "All": "Tudo", "All chats have been unarchived.": "Todos os chats foram desarquivados.", @@ -130,7 +130,7 @@ "API Key created.": "Chave API criada.", "API Key Endpoint Restrictions": "Restrições de endpoint de chave de API", "API keys": "Chaves API", - "API Mode": "", + "API Mode": "Modo API", "API Version": "Versão da API", "API Version is required": "Versão da API é obrigatória", "Application DN": "DN da Aplicação", @@ -341,7 +341,7 @@ "Create": "Criar", "Create a knowledge base": "Criar uma Base de Conhecimento", "Create a model": "Criar um Modelo", - "Create a new note": "", + "Create a new note": "Criar uma nova nota", "Create Account": "Criar Conta", "Create Admin Account": "Criar Conta de Administrador", "Create Channel": "Criar Canal", @@ -582,7 +582,7 @@ "Enter Kagi Search API Key": "Insira a chave da API de pesquisa do Kagi", "Enter Key Behavior": "Comportamento da tecla Enter", "Enter language codes": "Digite os códigos de idioma", - "Enter MinerU API Key": "", + "Enter MinerU API Key": "Insira a chave da API MinerU", "Enter Mistral API Key": "Insira a chave da API Mistral", "Enter Model ID": "Digite o ID do modelo", "Enter model tag (e.g. {{modelTag}})": "Digite a tag do modelo (por exemplo, {{modelTag}})", @@ -997,8 +997,8 @@ "Microsoft OneDrive (personal)": "", "Microsoft OneDrive (work/school)": "", "MinerU": "", - "MinerU API Key required for Cloud API mode.": "", - "minerU managed (Cloud API)": "", + "MinerU API Key required for Cloud API mode.": "Chave de API MinerU necessária para o modo Cloud API.", + "minerU managed (Cloud API)": "minerU gerenciado (API em nuvem)", "Mistral OCR": "", "Mistral OCR API Key required.": "Chave de API do Mistral OCR necessária.", "Model": "Modelo", @@ -1066,7 +1066,7 @@ "No content to speak": "Sem conteúdo para falar", "No conversation to save": "Nenhuma conversa para salvar", "No distance available": "Sem distância disponível", - "No expiration can pose security risks.": "", + "No expiration can pose security risks.": "Nenhuma expiração pode representar riscos de segurança.", "No feedbacks found": "Comentários não encontrados", "No file selected": "Nenhum arquivo selecionado", "No functions found": "Nenhuma função encontrada", @@ -1397,7 +1397,7 @@ "Select only one model to call": "Selecione apenas um modelo para chamar", "Select view": "Selecionar visualização", "Selected model(s) do not support image inputs": "Modelo(s) selecionado(s) não suportam entradas de imagem", - "Self-Hosted": "", + "Self-Hosted": "Auto-hospedado", "semantic": "semântica", "Send": "Enviar", "Send a Message": "Enviar uma Mensagem", @@ -1475,7 +1475,7 @@ "Speech-to-Text": "Fala-para-Texto", "Speech-to-Text Engine": "Motor de Transcrição de Fala", "standard": "", - "Start a new conversation": "", + "Start a new conversation": "Iniciar uma nova conversa", "Start of the channel": "Início do canal", "Start Tag": "Tag inicial", "Status Updates": "Atualizações de status", @@ -1511,7 +1511,7 @@ "Tags Generation": "Geração de tags", "Tags Generation Prompt": "Prompt para geração de Tags", "Tail free sampling is used to reduce the impact of less probable tokens from the output. A higher value (e.g., 2.0) will reduce the impact more, while a value of 1.0 disables this setting.": "A amostragem livre de cauda é usada para reduzir o impacto de tokens menos prováveis na saída. Um valor mais alto (por exemplo, 2,0) reduzirá ainda mais o impacto, enquanto um valor de 1,0 desabilita essa configuração.", - "Talk to model": "Fale com a modelo", + "Talk to model": "Fale com um modelo", "Tap to interrupt": "Toque para interromper", "Task List": "Lista de tarefas", "Task Model": "Modelo de Tarefa", From ab07bab140746ffc67b9148d0cd04095d511c969 Mon Sep 17 00:00:00 2001 From: Classic298 <27028174+Classic298@users.noreply.github.com> Date: Sat, 18 Oct 2025 11:11:51 +0200 Subject: [PATCH 009/164] Clarify PR guidelines for translation contributions Emphasize the importance of standalone PRs for translation updates. --- docs/CONTRIBUTING.md | 3 +++ 1 file changed, 3 insertions(+) diff --git a/docs/CONTRIBUTING.md b/docs/CONTRIBUTING.md index afc215c826..5b37c8f8c8 100644 --- a/docs/CONTRIBUTING.md +++ b/docs/CONTRIBUTING.md @@ -74,6 +74,9 @@ To add a new language: - Copy the American English translation file(s) (from `en-US` directory in `src/lib/i18n/locale`) to this new directory and update the string values in JSON format according to your language. Make sure to preserve the structure of the JSON object. - Add the language code and its respective title to languages file at `src/lib/i18n/locales/languages.json`. +> [!NOTE] +> When adding new translations, do so in a standalone PR! Feature PRs or PRs fixing a bug should not contain translation updates. Always keep the scope of a PR narrow. + ### 🤔 Questions & Feedback Got questions or feedback? Join our [Discord community](https://discord.gg/5rJgQTnV4s) or open an issue or discussion. We're here to help! From 25087e09e6d7aeb12b68a4c8f45b25338953dfd0 Mon Sep 17 00:00:00 2001 From: Richard Watts-Seale Date: Sat, 18 Oct 2025 20:25:45 +1100 Subject: [PATCH 010/164] feat: Add CORS validation to WebSocket connections. #18410 --- backend/open_webui/socket/main.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/backend/open_webui/socket/main.py b/backend/open_webui/socket/main.py index 47b2c57961..5aa7a4ff40 100644 --- a/backend/open_webui/socket/main.py +++ b/backend/open_webui/socket/main.py @@ -18,6 +18,10 @@ from open_webui.utils.redis import ( get_sentinel_url_from_env, ) +from open_webui.config import ( + CORS_ALLOW_ORIGIN, +) + from open_webui.env import ( ENABLE_WEBSOCKET_SUPPORT, WEBSOCKET_MANAGER, @@ -58,7 +62,7 @@ if WEBSOCKET_MANAGER == "redis": else: mgr = socketio.AsyncRedisManager(WEBSOCKET_REDIS_URL) sio = socketio.AsyncServer( - cors_allowed_origins=[], + cors_allowed_origins=CORS_ALLOW_ORIGIN, async_mode="asgi", transports=(["websocket"] if ENABLE_WEBSOCKET_SUPPORT else ["polling"]), allow_upgrades=ENABLE_WEBSOCKET_SUPPORT, @@ -67,7 +71,7 @@ if WEBSOCKET_MANAGER == "redis": ) else: sio = socketio.AsyncServer( - cors_allowed_origins=[], + cors_allowed_origins=CORS_ALLOW_ORIGIN, async_mode="asgi", transports=(["websocket"] if ENABLE_WEBSOCKET_SUPPORT else ["polling"]), allow_upgrades=ENABLE_WEBSOCKET_SUPPORT, From 6cb58af3db3cb418dc525d68c03c4f946642e6af Mon Sep 17 00:00:00 2001 From: zhsh-12 Date: Sat, 18 Oct 2025 22:06:10 +0800 Subject: [PATCH 011/164] feat: add new feature or fix bug --- src/app.html | 1 - 1 file changed, 1 deletion(-) diff --git a/src/app.html b/src/app.html index 6c1c362005..432d59795f 100644 --- a/src/app.html +++ b/src/app.html @@ -27,7 +27,6 @@ rel="manifest" href="/manifest.json" crossorigin="use-credentials" - crossorigin="use-credentials" /> Date: Sat, 18 Oct 2025 13:43:51 -0400 Subject: [PATCH 012/164] Add more granular information to oauth failure messages --- backend/open_webui/utils/oauth.py | 55 ++++++++++++++++++++++++++++--- 1 file changed, 51 insertions(+), 4 deletions(-) diff --git a/backend/open_webui/utils/oauth.py b/backend/open_webui/utils/oauth.py index e0bf7582c6..4fa493b1d5 100644 --- a/backend/open_webui/utils/oauth.py +++ b/backend/open_webui/utils/oauth.py @@ -74,6 +74,8 @@ from mcp.shared.auth import ( OAuthMetadata, ) +from authlib.oauth2.rfc6749.errors import OAuth2Error + class OAuthClientInformationFull(OAuthClientMetadata): issuer: Optional[str] = None # URL of the OAuth server that issued this client @@ -150,6 +152,37 @@ def decrypt_data(data: str): raise +def _build_oauth_callback_error_message(exc: Exception) -> str: + """ + Produce a user-facing callback error string with actionable context. + Keeps the message short and strips newlines for safe redirect usage. + """ + if isinstance(exc, OAuth2Error): + parts = [p for p in [exc.error, exc.description] if p] + detail = " - ".join(parts) + elif isinstance(exc, HTTPException): + detail = exc.detail if isinstance(exc.detail, str) else str(exc.detail) + elif isinstance(exc, aiohttp.ClientResponseError): + detail = f"Upstream provider returned {exc.status}: {exc.message}" + elif isinstance(exc, aiohttp.ClientError): + detail = str(exc) + elif isinstance(exc, KeyError): + missing = str(exc).strip("'") + if missing.lower() == "state": + detail = "Missing state parameter in callback (session may have expired)" + else: + detail = f"Missing expected key '{missing}' in OAuth response" + else: + detail = str(exc) + + detail = detail.replace("\n", " ").strip() + if not detail: + detail = exc.__class__.__name__ + + message = f"OAuth callback failed: {detail}" + return message[:197] + "..." if len(message) > 200 else message + + def is_in_blocked_groups(group_name: str, groups: list) -> bool: """ Check if a group name matches any blocked pattern. @@ -621,8 +654,14 @@ class OAuthClientManager: error_message = "Failed to obtain OAuth token" log.warning(error_message) except Exception as e: - error_message = "OAuth callback error" - log.warning(f"OAuth callback error: {e}") + error_message = _build_oauth_callback_error_message(e) + log.warning( + "OAuth callback error for user_id=%s client_id=%s: %s", + user_id, + client_id, + error_message, + exc_info=True, + ) redirect_url = ( str(request.app.state.config.WEBUI_URL or request.base_url) @@ -630,7 +669,9 @@ class OAuthClientManager: if error_message: log.debug(error_message) - redirect_url = f"{redirect_url}/?error={error_message}" + redirect_url = ( + f"{redirect_url}/?error={urllib.parse.quote_plus(error_message)}" + ) return RedirectResponse(url=redirect_url, headers=response.headers) response = RedirectResponse(url=redirect_url, headers=response.headers) @@ -1104,7 +1145,13 @@ class OAuthManager: try: token = await client.authorize_access_token(request) except Exception as e: - log.warning(f"OAuth callback error: {e}") + detailed_error = _build_oauth_callback_error_message(e) + log.warning( + "OAuth callback error during authorize_access_token for provider %s: %s", + provider, + detailed_error, + exc_info=True, + ) raise HTTPException(400, detail=ERROR_MESSAGES.INVALID_CRED) # Try to get userinfo from the token first, some providers include it there From c107a3799f3695e57c303544dc93cadbdeb91c0a Mon Sep 17 00:00:00 2001 From: Taylor Wilsdon Date: Sat, 18 Oct 2025 14:00:46 -0400 Subject: [PATCH 013/164] Added a targeted utility to wipe all OAuth sessions for a provider so the cleanup can remove stale access tokens across every user when a connection is updated --- backend/open_webui/models/oauth_sessions.py | 11 +++++ backend/open_webui/routers/configs.py | 51 ++++++++++++++++++++- 2 files changed, 61 insertions(+), 1 deletion(-) diff --git a/backend/open_webui/models/oauth_sessions.py b/backend/open_webui/models/oauth_sessions.py index 81ce220384..b0e465dbe7 100644 --- a/backend/open_webui/models/oauth_sessions.py +++ b/backend/open_webui/models/oauth_sessions.py @@ -262,5 +262,16 @@ class OAuthSessionTable: log.error(f"Error deleting OAuth sessions by user ID: {e}") return False + def delete_sessions_by_provider(self, provider: str) -> bool: + """Delete all OAuth sessions for a provider""" + try: + with get_db() as db: + db.query(OAuthSession).filter_by(provider=provider).delete() + db.commit() + return True + except Exception as e: + log.error(f"Error deleting OAuth sessions by provider {provider}: {e}") + return False + OAuthSessions = OAuthSessionTable() diff --git a/backend/open_webui/routers/configs.py b/backend/open_webui/routers/configs.py index e7fa13d1ff..e8e876eac7 100644 --- a/backend/open_webui/routers/configs.py +++ b/backend/open_webui/routers/configs.py @@ -1,4 +1,5 @@ import logging +import copy from fastapi import APIRouter, Depends, Request, HTTPException from pydantic import BaseModel, ConfigDict import aiohttp @@ -15,6 +16,7 @@ from open_webui.utils.tools import ( set_tool_servers, ) from open_webui.utils.mcp.client import MCPClient +from open_webui.models.oauth_sessions import OAuthSessions from open_webui.env import SRC_LOG_LEVELS @@ -165,12 +167,59 @@ async def set_tool_servers_config( form_data: ToolServersConfigForm, user=Depends(get_admin_user), ): - request.app.state.config.TOOL_SERVER_CONNECTIONS = [ + old_connections = copy.deepcopy( + request.app.state.config.TOOL_SERVER_CONNECTIONS or [] + ) + + new_connections = [ connection.model_dump() for connection in form_data.TOOL_SERVER_CONNECTIONS ] + old_mcp_connections = { + conn.get("info", {}).get("id"): conn + for conn in old_connections + if conn.get("type") == "mcp" + } + new_mcp_connections = { + conn.get("info", {}).get("id"): conn + for conn in new_connections + if conn.get("type") == "mcp" + } + + purge_oauth_clients = set() + + for server_id, old_conn in old_mcp_connections.items(): + if not server_id: + continue + + old_auth_type = old_conn.get("auth_type", "none") + new_conn = new_mcp_connections.get(server_id) + + if new_conn is None: + if old_auth_type == "oauth_2.1": + purge_oauth_clients.add(server_id) + continue + + new_auth_type = new_conn.get("auth_type", "none") + + if old_auth_type == "oauth_2.1": + if ( + new_auth_type != "oauth_2.1" + or old_conn.get("url") != new_conn.get("url") + or old_conn.get("info", {}).get("oauth_client_info") + != new_conn.get("info", {}).get("oauth_client_info") + ): + purge_oauth_clients.add(server_id) + + request.app.state.config.TOOL_SERVER_CONNECTIONS = new_connections + await set_tool_servers(request) + for server_id in purge_oauth_clients: + client_key = f"mcp:{server_id}" + request.app.state.oauth_client_manager.remove_client(client_key) + OAuthSessions.delete_sessions_by_provider(client_key) + for connection in request.app.state.config.TOOL_SERVER_CONNECTIONS: server_type = connection.get("type", "openapi") if server_type == "mcp": From d49fb9c01038dc580b2229ac2554727506357372 Mon Sep 17 00:00:00 2001 From: Taylor Wilsdon Date: Sat, 18 Oct 2025 14:16:10 -0400 Subject: [PATCH 014/164] complete cleanup of oauth clients --- backend/open_webui/utils/oauth.py | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/backend/open_webui/utils/oauth.py b/backend/open_webui/utils/oauth.py index 4fa493b1d5..85f694cb13 100644 --- a/backend/open_webui/utils/oauth.py +++ b/backend/open_webui/utils/oauth.py @@ -401,8 +401,19 @@ class OAuthClientManager: return self.clients[client_id] def remove_client(self, client_id): + removed = False if client_id in self.clients: del self.clients[client_id] + removed = True + if hasattr(self.oauth, "_clients"): + if client_id in self.oauth._clients: + self.oauth._clients.pop(client_id, None) + removed = True + if hasattr(self.oauth, "_registry"): + if client_id in self.oauth._registry: + self.oauth._registry.pop(client_id, None) + removed = True + if removed: log.info(f"Removed OAuth client {client_id}") return True From ecbf74dbea59534cebdd3ce1a40749fcfd68133e Mon Sep 17 00:00:00 2001 From: Taylor Wilsdon Date: Sat, 18 Oct 2025 16:53:44 -0400 Subject: [PATCH 015/164] Added a preflight authorize check that automatically re-registers MCP OAuth clients when the stored client ID no longer exists on the server, so the browser flow never hits the stale-ID failure --- backend/open_webui/utils/oauth.py | 206 +++++++++++++++++++++++++++++- 1 file changed, 204 insertions(+), 2 deletions(-) diff --git a/backend/open_webui/utils/oauth.py b/backend/open_webui/utils/oauth.py index 85f694cb13..d24a379ede 100644 --- a/backend/open_webui/utils/oauth.py +++ b/backend/open_webui/utils/oauth.py @@ -1,4 +1,5 @@ import base64 +import copy import hashlib import logging import mimetypes @@ -417,6 +418,205 @@ class OAuthClientManager: log.info(f"Removed OAuth client {client_id}") return True + def _find_mcp_connection(self, request, client_id: str): + try: + connections = request.app.state.config.TOOL_SERVER_CONNECTIONS or [] + except Exception: + connections = [] + + normalized_client_id = client_id.split(":")[-1] + + for idx, connection in enumerate(connections): + if not isinstance(connection, dict): + continue + if connection.get("type") != "mcp": + continue + + info = connection.get("info") or {} + server_id = info.get("id") + if not server_id: + continue + + normalized_server_id = server_id.split(":")[-1] + if normalized_server_id == normalized_client_id: + return idx, connection + + return None, None + + async def _preflight_authorization_url( + self, client, client_info: OAuthClientInformationFull + ) -> bool: + # Only perform preflight checks for Starlette OAuth clients + if not hasattr(client, "create_authorization_url"): + return True + + redirect_uri = None + if client_info.redirect_uris: + redirect_uri = str(client_info.redirect_uris[0]) + + try: + auth_data = await client.create_authorization_url(redirect_uri=redirect_uri) + authorize_url = auth_data.get("url") + if not authorize_url: + return True + except Exception as e: + log.debug( + "Skipping OAuth preflight for client %s: %s", + client_info.client_id, + e, + ) + return True + + try: + async with aiohttp.ClientSession(trust_env=True) as session: + async with session.get( + authorize_url, + allow_redirects=False, + ssl=AIOHTTP_CLIENT_SESSION_SSL, + ) as resp: + if resp.status < 400: + return True + + body_text = await resp.text() + error = None + error_description = "" + content_type = resp.headers.get("content-type", "") + + if "application/json" in content_type: + try: + payload = json.loads(body_text) + error = payload.get("error") + error_description = payload.get( + "error_description", "" + ) + except json.JSONDecodeError: + error = None + error_description = "" + else: + error_description = body_text + + combined = f"{error or ''} {error_description}".lower() + if "invalid_client" in combined or "invalid client" in combined or "client id" in combined: + log.warning( + "OAuth client preflight detected invalid registration for %s: %s %s", + client_info.client_id, + error, + error_description, + ) + return False + except Exception as e: + log.debug( + "Skipping OAuth preflight network check for client %s: %s", + client_info.client_id, + e, + ) + + return True + + async def _re_register_client(self, request, client_id: str) -> bool: + idx, connection = self._find_mcp_connection(request, client_id) + if idx is None or connection is None: + log.warning( + "Unable to locate MCP tool server configuration for client %s during re-registration", + client_id, + ) + return False + + server_url = connection.get("url") + oauth_server_key = (connection.get("config") or {}).get("oauth_server_key") + + try: + oauth_client_info = ( + await get_oauth_client_info_with_dynamic_client_registration( + request, + client_id, + server_url, + oauth_server_key, + ) + ) + except Exception as e: + log.error( + "Dynamic client re-registration failed for %s: %s", + client_id, + e, + ) + return False + + encrypted_info = encrypt_data(oauth_client_info.model_dump(mode="json")) + + updated_connections = copy.deepcopy( + request.app.state.config.TOOL_SERVER_CONNECTIONS or [] + ) + if idx >= len(updated_connections): + log.error( + "MCP tool server index %s out of range during OAuth client re-registration for %s", + idx, + client_id, + ) + return False + + updated_connection = copy.deepcopy(connection) + updated_connection.setdefault("info", {}) + updated_connection["info"]["oauth_client_info"] = encrypted_info + updated_connections[idx] = updated_connection + + try: + request.app.state.config.TOOL_SERVER_CONNECTIONS = updated_connections + except Exception as e: + log.error( + "Failed to persist updated OAuth client info for %s: %s", + client_id, + e, + ) + return False + + self.remove_client(client_id) + self.add_client(client_id, oauth_client_info) + OAuthSessions.delete_sessions_by_provider(client_id) + + log.info("Re-registered OAuth client %s for MCP tool server", client_id) + return True + + async def _ensure_valid_client_registration( + self, request, client_id: str + ) -> None: + if not client_id.startswith("mcp:"): + return + + client = self.get_client(client_id) + client_info = self.get_client_info(client_id) + if client is None or client_info is None: + raise HTTPException(status.HTTP_404_NOT_FOUND) + + is_valid = await self._preflight_authorization_url(client, client_info) + if is_valid: + return + + log.info( + "Detected invalid OAuth client %s; attempting re-registration", + client_id, + ) + re_registered = await self._re_register_client(request, client_id) + if not re_registered: + raise HTTPException( + status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, + detail="Failed to re-register OAuth client", + ) + + client = self.get_client(client_id) + client_info = self.get_client_info(client_id) + if client is None or client_info is None: + raise HTTPException( + status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, + detail="OAuth client unavailable after re-registration", + ) + + if not await self._preflight_authorization_url(client, client_info): + raise HTTPException( + status_code=status.HTTP_500_INTERNAL_SERVER_ERROR, + detail="OAuth client registration is still invalid after re-registration", + ) + def get_client(self, client_id): client = self.clients.get(client_id) return client["client"] if client else None @@ -602,10 +802,11 @@ class OAuthClientManager: return None async def handle_authorize(self, request, client_id: str) -> RedirectResponse: + await self._ensure_valid_client_registration(request, client_id) + client = self.get_client(client_id) if client is None: raise HTTPException(404) - client_info = self.get_client_info(client_id) if client_info is None: raise HTTPException(404) @@ -613,7 +814,8 @@ class OAuthClientManager: redirect_uri = ( client_info.redirect_uris[0] if client_info.redirect_uris else None ) - return await client.authorize_redirect(request, str(redirect_uri)) + redirect_uri_str = str(redirect_uri) if redirect_uri else None + return await client.authorize_redirect(request, redirect_uri_str) async def handle_callback(self, request, client_id: str, user_id: str, response): client = self.get_client(client_id) From 7d29991fa57dad057de18241913ef6de50b7dd1b Mon Sep 17 00:00:00 2001 From: Ivan Ostanin Date: Sun, 19 Oct 2025 02:01:27 +0200 Subject: [PATCH 016/164] fix: pass youtube_proxy as a `GenericProxyConfig` type object --- backend/open_webui/retrieval/loaders/youtube.py | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/backend/open_webui/retrieval/loaders/youtube.py b/backend/open_webui/retrieval/loaders/youtube.py index da17eaef65..adf51d922c 100644 --- a/backend/open_webui/retrieval/loaders/youtube.py +++ b/backend/open_webui/retrieval/loaders/youtube.py @@ -83,6 +83,7 @@ class YoutubeLoader: TranscriptsDisabled, YouTubeTranscriptApi, ) + from youtube_transcript_api.proxies import (GenericProxyConfig) except ImportError: raise ImportError( 'Could not import "youtube_transcript_api" Python package. ' @@ -90,10 +91,7 @@ class YoutubeLoader: ) if self.proxy_url: - youtube_proxies = { - "http": self.proxy_url, - "https": self.proxy_url, - } + youtube_proxies = GenericProxyConfig(http_url=self.proxy_url, https_url=self.proxy_url) log.debug(f"Using proxy URL: {self.proxy_url[:14]}...") else: youtube_proxies = None From 6a0300fdb71eaacf48b75372c7ee688146334727 Mon Sep 17 00:00:00 2001 From: Athanasios Oikonomou Date: Sun, 19 Oct 2025 12:38:55 +0300 Subject: [PATCH 017/164] build(deps): bump python-jose from 1.4.0 to 1.5.0 Upgraded `python-jose` from **1.4.0** to **1.5.0** to ensure compatibility with newer Python versions and apply security improvements. - Adds explicit support for Python 3.12 and 3.13. - Improves cryptographic backend handling. - Includes bug fixes and security enhancements (e.g., removes sensitive data from exceptions). - [python-jose 1.5.0 Release Notes](https://github.com/mpdavis/python-jose/releases) --- backend/requirements.txt | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/requirements.txt b/backend/requirements.txt index 8876f5d8ac..5248c42e55 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -5,7 +5,7 @@ python-multipart==0.0.20 itsdangerous==2.2.0 python-socketio==5.13.0 -python-jose==3.4.0 +python-jose==3.5.0 cryptography bcrypt==5.0.0 argon2-cffi==25.1.0 diff --git a/pyproject.toml b/pyproject.toml index cd5a08fba2..8b9e3b5b38 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -13,7 +13,7 @@ dependencies = [ "itsdangerous==2.2.0", "python-socketio==5.13.0", - "python-jose==3.4.0", + "python-jose==3.5.0", "cryptography", "bcrypt==5.0.0", "argon2-cffi==25.1.0", From f39f29c38f0c523714194495a7f307220db444c1 Mon Sep 17 00:00:00 2001 From: Athanasios Oikonomou Date: Sun, 19 Oct 2025 17:34:46 +0300 Subject: [PATCH 018/164] build(deps): bump unstructured from 0.16.17 to 0.18.15 This PR updates the unstructured package from version 0.16.17 to 0.18.15 to enable installation and compatibility with Python 3.13. More info #18349 --- backend/requirements.txt | 2 +- pyproject.toml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/backend/requirements.txt b/backend/requirements.txt index 8876f5d8ac..8821cf1cd8 100644 --- a/backend/requirements.txt +++ b/backend/requirements.txt @@ -63,7 +63,7 @@ fpdf2==2.8.2 pymdown-extensions==10.14.2 docx2txt==0.8 python-pptx==1.0.2 -unstructured==0.16.17 +unstructured==0.18.15 nltk==3.9.1 Markdown==3.9 pypandoc==1.15 diff --git a/pyproject.toml b/pyproject.toml index cd5a08fba2..44d5b15cfc 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -73,7 +73,7 @@ dependencies = [ "pymdown-extensions==10.14.2", "docx2txt==0.8", "python-pptx==1.0.2", - "unstructured==0.16.17", + "unstructured==0.18.15", "nltk==3.9.1", "Markdown==3.9", "pypandoc==1.15", From 9762ef3ef6f230bfed8d550dde69df6187f6267d Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sun, 19 Oct 2025 12:53:34 -0400 Subject: [PATCH 019/164] refac --- src/app.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/app.css b/src/app.css index 49bcebbd97..b7909847b8 100644 --- a/src/app.css +++ b/src/app.css @@ -129,8 +129,8 @@ li p { } ::-webkit-scrollbar { - height: 0.8rem; - width: 0.8rem; + height: 0.6rem; + width: 0.6rem; } ::-webkit-scrollbar-track { From 4b7403496795fd7476243e7b6a48292c0cfe1b4b Mon Sep 17 00:00:00 2001 From: Taylor Wilsdon Date: Sun, 19 Oct 2025 16:58:09 -0400 Subject: [PATCH 020/164] black fmt --- backend/open_webui/utils/oauth.py | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/backend/open_webui/utils/oauth.py b/backend/open_webui/utils/oauth.py index d24a379ede..34fb441679 100644 --- a/backend/open_webui/utils/oauth.py +++ b/backend/open_webui/utils/oauth.py @@ -486,9 +486,7 @@ class OAuthClientManager: try: payload = json.loads(body_text) error = payload.get("error") - error_description = payload.get( - "error_description", "" - ) + error_description = payload.get("error_description", "") except json.JSONDecodeError: error = None error_description = "" @@ -496,7 +494,11 @@ class OAuthClientManager: error_description = body_text combined = f"{error or ''} {error_description}".lower() - if "invalid_client" in combined or "invalid client" in combined or "client id" in combined: + if ( + "invalid_client" in combined + or "invalid client" in combined + or "client id" in combined + ): log.warning( "OAuth client preflight detected invalid registration for %s: %s %s", client_info.client_id, @@ -577,9 +579,7 @@ class OAuthClientManager: log.info("Re-registered OAuth client %s for MCP tool server", client_id) return True - async def _ensure_valid_client_registration( - self, request, client_id: str - ) -> None: + async def _ensure_valid_client_registration(self, request, client_id: str) -> None: if not client_id.startswith("mcp:"): return From 8af6a4cf21b756a66cd58378a01c60f74c39b7ca Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sun, 19 Oct 2025 18:30:36 -0400 Subject: [PATCH 021/164] refac: direct connections --- backend/open_webui/utils/middleware.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/backend/open_webui/utils/middleware.py b/backend/open_webui/utils/middleware.py index dd42612eee..fc8cc1feb5 100644 --- a/backend/open_webui/utils/middleware.py +++ b/backend/open_webui/utils/middleware.py @@ -2349,7 +2349,9 @@ async def process_chat_response( ) if data: - if "event" in data: + if "event" in data and not getattr( + request.state, "direct", False + ): await event_emitter(data.get("event", {})) if "selected_model_id" in data: From 0031fb82748872c24d68efa03fa7f83b44cd8a23 Mon Sep 17 00:00:00 2001 From: silentoplayz Date: Sun, 19 Oct 2025 20:15:39 -0400 Subject: [PATCH 022/164] fix: correctly handle clipboard images in prompts The textVariableHandler was using URL.createObjectURL() for clipboard images, which created a blob URL instead of the required base64-encoded data URL. This caused an "illegal base64 data" error when sending messages with images pasted via a {{CLIPBOARD}} prompt. This commit updates the handler to use FileReader.readAsDataURL() to properly encode the image, aligning it with the existing on:paste logic. Additionally, it adds error handling for navigator.clipboard.read() to address potential permission issues in Firefox. --- src/lib/components/chat/MessageInput.svelte | 29 +++++++++++---------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/src/lib/components/chat/MessageInput.svelte b/src/lib/components/chat/MessageInput.svelte index c525dcf34c..b8539c19c8 100644 --- a/src/lib/components/chat/MessageInput.svelte +++ b/src/lib/components/chat/MessageInput.svelte @@ -168,29 +168,30 @@ return '{{CLIPBOARD}}'; }); - const clipboardItems = await navigator.clipboard.read(); + const clipboardItems = await navigator.clipboard.read().catch((err) => { + console.error('Failed to read clipboard items:', err); + return []; + }); - let imageUrl = null; for (const item of clipboardItems) { - // Check for known image types for (const type of item.types) { if (type.startsWith('image/')) { const blob = await item.getType(type); - imageUrl = URL.createObjectURL(blob); + const reader = new FileReader(); + reader.onload = (event) => { + files = [ + ...files, + { + type: 'image', + url: event.target.result as string + } + ]; + }; + reader.readAsDataURL(blob); } } } - if (imageUrl) { - files = [ - ...files, - { - type: 'image', - url: imageUrl - } - ]; - } - text = text.replaceAll('{{CLIPBOARD}}', clipboardText); } From 9784eb4c0b2b82539d50fc60a0af3e5140404461 Mon Sep 17 00:00:00 2001 From: Chanwoo An Date: Mon, 20 Oct 2025 11:52:29 +0900 Subject: [PATCH 023/164] fix: load default settings when sessionStorage is empty --- src/lib/components/chat/Chat.svelte | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/lib/components/chat/Chat.svelte b/src/lib/components/chat/Chat.svelte index fc663a3e2a..b4df96204b 100644 --- a/src/lib/components/chat/Chat.svelte +++ b/src/lib/components/chat/Chat.svelte @@ -192,6 +192,8 @@ codeInterpreterEnabled = input.codeInterpreterEnabled; } } catch (e) {} + } else { + await setDefaults(); } const chatInput = document.getElementById('chat-input'); From ca332db7eb8bbc8496a9fc771834bea257446e54 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sun, 19 Oct 2025 23:35:59 -0400 Subject: [PATCH 024/164] refac --- docker-compose.yaml | 2 -- 1 file changed, 2 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 74249febd9..349734a939 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -11,8 +11,6 @@ services: open-webui: build: context: . - args: - OLLAMA_BASE_URL: '/ollama' dockerfile: Dockerfile image: ghcr.io/open-webui/open-webui:${WEBUI_DOCKER_TAG-main} container_name: open-webui From ca5bafcd2f70e710c83d35a78ee79d2fa86d57d2 Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Sun, 19 Oct 2025 23:41:25 -0400 Subject: [PATCH 025/164] refac --- .../admin/Settings/Documents.svelte | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/lib/components/admin/Settings/Documents.svelte b/src/lib/components/admin/Settings/Documents.svelte index efa63d89b9..276da1b069 100644 --- a/src/lib/components/admin/Settings/Documents.svelte +++ b/src/lib/components/admin/Settings/Documents.svelte @@ -785,8 +785,8 @@ } }} > - - + + @@ -802,15 +802,12 @@ /> - - {#if RAGConfig.MINERU_API_MODE === 'cloud'} -
- -
- {/if} +
+ +
From acac6d597358160f78e8461683364808ba9846ea Mon Sep 17 00:00:00 2001 From: Timothy Jaeryang Baek Date: Mon, 20 Oct 2025 00:27:50 -0400 Subject: [PATCH 026/164] fix/refac: docling --- src/lib/components/admin/Settings/Documents.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/lib/components/admin/Settings/Documents.svelte b/src/lib/components/admin/Settings/Documents.svelte index 276da1b069..3d3277d299 100644 --- a/src/lib/components/admin/Settings/Documents.svelte +++ b/src/lib/components/admin/Settings/Documents.svelte @@ -733,7 +733,7 @@
{/if}
diff --git a/src/lib/components/workspace/Prompts/PromptEditor.svelte b/src/lib/components/workspace/Prompts/PromptEditor.svelte index de71a1cb9b..21868be80e 100644 --- a/src/lib/components/workspace/Prompts/PromptEditor.svelte +++ b/src/lib/components/workspace/Prompts/PromptEditor.svelte @@ -106,7 +106,7 @@