mirror of
https://github.com/open-webui/open-webui.git
synced 2026-11-15 09:31:21 +00:00
refac
This commit is contained in:
parent
7618df3f53
commit
5c4fb61d86
6 changed files with 33 additions and 10 deletions
|
|
@ -996,8 +996,13 @@ ENABLE_RAG_HYBRID_SEARCH_ENRICHED_TEXTS = (
|
|||
RAG_FULL_CONTEXT = os.getenv('RAG_FULL_CONTEXT', 'False').lower() == 'true'
|
||||
|
||||
RAG_FILE_MAX_COUNT = int(os.getenv('RAG_FILE_MAX_COUNT')) if os.getenv('RAG_FILE_MAX_COUNT') else None
|
||||
KNOWLEDGE_MAX_UPLOAD_COUNT = (
|
||||
int(os.getenv('KNOWLEDGE_MAX_UPLOAD_COUNT')) if os.getenv('KNOWLEDGE_MAX_UPLOAD_COUNT') else None
|
||||
)
|
||||
KNOWLEDGE_MAX_FILE_COUNT = int(os.getenv('KNOWLEDGE_MAX_FILE_COUNT')) if os.getenv('KNOWLEDGE_MAX_FILE_COUNT') else None
|
||||
KNOWLEDGE_MAX_FILE_SIZE = int(os.getenv('KNOWLEDGE_MAX_FILE_SIZE')) if os.getenv('KNOWLEDGE_MAX_FILE_SIZE') else None
|
||||
if KNOWLEDGE_MAX_UPLOAD_COUNT is not None and KNOWLEDGE_MAX_UPLOAD_COUNT <= 0:
|
||||
raise ValueError('KNOWLEDGE_MAX_UPLOAD_COUNT must be a positive integer or unset')
|
||||
if KNOWLEDGE_MAX_FILE_COUNT is not None and KNOWLEDGE_MAX_FILE_COUNT <= 0:
|
||||
raise ValueError('KNOWLEDGE_MAX_FILE_COUNT must be a positive integer or unset')
|
||||
if KNOWLEDGE_MAX_FILE_SIZE is not None and KNOWLEDGE_MAX_FILE_SIZE <= 0:
|
||||
|
|
@ -3019,6 +3024,7 @@ DEFAULT_CONFIG = {
|
|||
'rag.enable_hybrid_search_enriched_texts': ENABLE_RAG_HYBRID_SEARCH_ENRICHED_TEXTS,
|
||||
'rag.full_context': RAG_FULL_CONTEXT,
|
||||
'rag.file.max_count': RAG_FILE_MAX_COUNT,
|
||||
'knowledge.max_upload_count': KNOWLEDGE_MAX_UPLOAD_COUNT,
|
||||
'knowledge.max_file_count': KNOWLEDGE_MAX_FILE_COUNT,
|
||||
'knowledge.max_file_size': KNOWLEDGE_MAX_FILE_SIZE,
|
||||
'rag.file.max_size': RAG_FILE_MAX_SIZE,
|
||||
|
|
|
|||
|
|
@ -1418,7 +1418,7 @@ async def check_knowledge_upload_limits(
|
|||
db=None,
|
||||
) -> None:
|
||||
if batch:
|
||||
batch_limit = await Config.get('rag.file.max_count')
|
||||
batch_limit = await Config.get('knowledge.max_upload_count')
|
||||
if batch_limit is not None and count > int(batch_limit):
|
||||
raise HTTPException(400, f'You can only upload a maximum of {batch_limit} file(s) per batch.')
|
||||
|
||||
|
|
@ -2156,7 +2156,7 @@ async def add_files_to_knowledge_batch(
|
|||
detail=ERROR_MESSAGES.ACCESS_PROHIBITED,
|
||||
)
|
||||
|
||||
batch_limit = await Config.get('rag.file.max_count')
|
||||
batch_limit = await Config.get('knowledge.max_upload_count')
|
||||
if batch_limit is not None and len(form_data) > int(batch_limit):
|
||||
raise HTTPException(400, f'You can only upload a maximum of {batch_limit} file(s) per batch.')
|
||||
|
||||
|
|
|
|||
|
|
@ -305,6 +305,7 @@ RETRIEVAL_CONFIG_KEYS = {
|
|||
'FILE_IMAGE_COMPRESSION_HEIGHT': 'file.image_compression_height',
|
||||
'FILE_IMAGE_COMPRESSION_WIDTH': 'file.image_compression_width',
|
||||
'FILE_MAX_COUNT': 'rag.file.max_count',
|
||||
'KNOWLEDGE_MAX_UPLOAD_COUNT': 'knowledge.max_upload_count',
|
||||
'KNOWLEDGE_MAX_FILE_COUNT': 'knowledge.max_file_count',
|
||||
'KNOWLEDGE_MAX_FILE_SIZE': 'knowledge.max_file_size',
|
||||
'FILE_MAX_SIZE': 'rag.file.max_size',
|
||||
|
|
@ -686,6 +687,7 @@ async def get_rag_config(request: Request, user=Depends(get_admin_user)):
|
|||
# File upload settings
|
||||
'FILE_MAX_SIZE': config['rag.file.max_size'],
|
||||
'FILE_MAX_COUNT': config['rag.file.max_count'],
|
||||
'KNOWLEDGE_MAX_UPLOAD_COUNT': config['knowledge.max_upload_count'],
|
||||
'KNOWLEDGE_MAX_FILE_COUNT': config['knowledge.max_file_count'],
|
||||
'KNOWLEDGE_MAX_FILE_SIZE': config['knowledge.max_file_size'],
|
||||
'FILE_IMAGE_COMPRESSION_WIDTH': config['file.image_compression_width'],
|
||||
|
|
@ -939,6 +941,7 @@ class ConfigForm(BaseModel):
|
|||
# File upload settings
|
||||
FILE_MAX_SIZE: Union[int, str | None] = None
|
||||
FILE_MAX_COUNT: Union[int, str | None] = None
|
||||
KNOWLEDGE_MAX_UPLOAD_COUNT: Union[int, str | None] = None
|
||||
KNOWLEDGE_MAX_FILE_COUNT: Union[int, str | None] = None
|
||||
KNOWLEDGE_MAX_FILE_SIZE: Union[int, str | None] = None
|
||||
FILE_IMAGE_COMPRESSION_WIDTH: Union[int, str | None] = None
|
||||
|
|
@ -1007,6 +1010,7 @@ async def update_rag_config(request: Request, form_data: ConfigForm, user=Depend
|
|||
for field in (
|
||||
'FILE_MAX_SIZE',
|
||||
'FILE_MAX_COUNT',
|
||||
'KNOWLEDGE_MAX_UPLOAD_COUNT',
|
||||
'KNOWLEDGE_MAX_FILE_COUNT',
|
||||
'KNOWLEDGE_MAX_FILE_SIZE',
|
||||
'FILE_IMAGE_COMPRESSION_WIDTH',
|
||||
|
|
@ -1016,6 +1020,7 @@ async def update_rag_config(request: Request, form_data: ConfigForm, user=Depend
|
|||
updates[RETRIEVAL_CONFIG_KEYS[field]] = None
|
||||
|
||||
for field, label in (
|
||||
('KNOWLEDGE_MAX_UPLOAD_COUNT', 'Knowledge batch upload limit'),
|
||||
('KNOWLEDGE_MAX_FILE_COUNT', 'Knowledge file count limit'),
|
||||
('KNOWLEDGE_MAX_FILE_SIZE', 'Knowledge file size limit'),
|
||||
):
|
||||
|
|
@ -1145,6 +1150,7 @@ async def update_rag_config(request: Request, form_data: ConfigForm, user=Depend
|
|||
# File upload settings
|
||||
'FILE_MAX_SIZE': config['rag.file.max_size'],
|
||||
'FILE_MAX_COUNT': config['rag.file.max_count'],
|
||||
'KNOWLEDGE_MAX_UPLOAD_COUNT': config['knowledge.max_upload_count'],
|
||||
'KNOWLEDGE_MAX_FILE_COUNT': config['knowledge.max_file_count'],
|
||||
'KNOWLEDGE_MAX_FILE_SIZE': config['knowledge.max_file_size'],
|
||||
'FILE_IMAGE_COMPRESSION_WIDTH': config['file.image_compression_width'],
|
||||
|
|
|
|||
|
|
@ -282,6 +282,7 @@
|
|||
// can distinguish "clear this field" from "don't change this field"
|
||||
FILE_MAX_SIZE: RAGConfig.FILE_MAX_SIZE ?? '',
|
||||
FILE_MAX_COUNT: RAGConfig.FILE_MAX_COUNT ?? '',
|
||||
KNOWLEDGE_MAX_UPLOAD_COUNT: RAGConfig.KNOWLEDGE_MAX_UPLOAD_COUNT ?? '',
|
||||
KNOWLEDGE_MAX_FILE_COUNT: RAGConfig.KNOWLEDGE_MAX_FILE_COUNT ?? '',
|
||||
KNOWLEDGE_MAX_FILE_SIZE: RAGConfig.KNOWLEDGE_MAX_FILE_SIZE ?? '',
|
||||
FILE_IMAGE_COMPRESSION_WIDTH: RAGConfig.FILE_IMAGE_COMPRESSION_WIDTH ?? '',
|
||||
|
|
@ -1593,6 +1594,21 @@
|
|||
</AdminSettingField>
|
||||
</div>
|
||||
|
||||
<AdminSettingField
|
||||
label={$i18n.t('settings.admin.documents.knowledgeMaxUploadCount.label')}
|
||||
description={$i18n.t('settings.admin.documents.knowledgeMaxUploadCount.description')}
|
||||
>
|
||||
<input
|
||||
class={inputClass}
|
||||
type="number"
|
||||
placeholder={$i18n.t('Leave empty for unlimited')}
|
||||
bind:value={RAGConfig.KNOWLEDGE_MAX_UPLOAD_COUNT}
|
||||
autocomplete="off"
|
||||
min="1"
|
||||
step="1"
|
||||
/>
|
||||
</AdminSettingField>
|
||||
|
||||
<div class="grid grid-cols-1 gap-x-3 gap-y-2.5 sm:grid-cols-2">
|
||||
<AdminSettingField
|
||||
label={$i18n.t('settings.admin.documents.knowledgeMaxSize.label')}
|
||||
|
|
|
|||
|
|
@ -141,13 +141,6 @@
|
|||
) => {
|
||||
if (!knowledge) return false;
|
||||
if (count === 0) return true;
|
||||
const maxCount = $config?.file?.max_count;
|
||||
if (maxCount != null && count > maxCount) {
|
||||
toast.error(
|
||||
$i18n.t('You can only upload a maximum of {{maxCount}} file(s) per batch.', { maxCount })
|
||||
);
|
||||
return false;
|
||||
}
|
||||
try {
|
||||
await validateKnowledgeUpload(
|
||||
localStorage.token,
|
||||
|
|
|
|||
|
|
@ -2877,8 +2877,10 @@
|
|||
"settings.admin.documents.imageCompressionWidth.label": "Image Compression Width",
|
||||
"settings.admin.documents.markdownHeaderTextSplitter.description": "Split documents by markdown headers before character or token splitting.",
|
||||
"settings.admin.documents.markdownHeaderTextSplitter.label": "Markdown Header Text Splitter",
|
||||
"settings.admin.documents.maxUploadCount.description": "Maximum number of files that can be used at once in chat or uploaded in one knowledge base batch.",
|
||||
"settings.admin.documents.maxUploadCount.description": "Maximum number of files that can be used at once in chat.",
|
||||
"settings.admin.documents.maxUploadCount.label": "Max Upload Count",
|
||||
"settings.admin.documents.knowledgeMaxUploadCount.label": "Knowledge Batch Upload Limit",
|
||||
"settings.admin.documents.knowledgeMaxUploadCount.description": "Maximum files per upload batch. Leave empty for no limit.",
|
||||
"settings.admin.documents.knowledgeMaxSize.label": "Knowledge File Size Limit",
|
||||
"settings.admin.documents.knowledgeMaxSize.description": "Maximum file size in MB per knowledge base. Leave empty for no limit.",
|
||||
"settings.admin.documents.knowledgeMaxCount.label": "Knowledge File Count Limit",
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue