Enhancement: AI LLM chunk size and context window config (#12891)

This commit is contained in:
shamoon authored and GitHub committed 2026-06-01 17:56:21 +00:00
1 parent bb860a5834
commit f6c865bf47
15 files changed
+318 -36

No files matched your search

+43 -10
View File
@@ -423,21 +423,54 @@ class ApplicationConfigurationViewSet(ModelViewSet[ApplicationConfiguration]):
def perform_update(self, serializer):
old_instance = ApplicationConfiguration.objects.all().first()
old_ai_index_enabled = (
old_instance.ai_enabled and old_instance.llm_embedding_backend
old_llm_embedding_backend = (
old_instance.llm_embedding_backend or settings.LLM_EMBEDDING_BACKEND
)
old_llm_embedding_chunk_size = (
old_instance.llm_embedding_chunk_size or settings.LLM_EMBEDDING_CHUNK_SIZE
)
old_llm_embedding_endpoint = (
old_instance.llm_embedding_endpoint or settings.LLM_EMBEDDING_ENDPOINT
)
old_llm_embedding_model = (
old_instance.llm_embedding_model or settings.LLM_EMBEDDING_MODEL
)
old_llm_context_size = (
old_instance.llm_context_size or settings.LLM_CONTEXT_SIZE
)
new_instance: ApplicationConfiguration = serializer.save()
new_ai_index_enabled = (
new_instance.ai_enabled and new_instance.llm_embedding_backend
new_llm_embedding_backend = (
new_instance.llm_embedding_backend or settings.LLM_EMBEDDING_BACKEND
)
new_ai_index_enabled = bool(
new_instance.ai_enabled and new_llm_embedding_backend,
)
new_llm_embedding_chunk_size = (
new_instance.llm_embedding_chunk_size or settings.LLM_EMBEDDING_CHUNK_SIZE
)
new_llm_embedding_endpoint = (
new_instance.llm_embedding_endpoint or settings.LLM_EMBEDDING_ENDPOINT
)
new_llm_embedding_model = (
new_instance.llm_embedding_model or settings.LLM_EMBEDDING_MODEL
)
new_llm_context_size = (
new_instance.llm_context_size or settings.LLM_CONTEXT_SIZE
)
if (
not old_ai_index_enabled
and new_ai_index_enabled
and not vector_store_file_exists()
):
# AI index was just enabled and vector store file does not exist
embedding_config_changed = (
old_llm_embedding_backend != new_llm_embedding_backend
or old_llm_embedding_chunk_size != new_llm_embedding_chunk_size
or old_llm_embedding_endpoint != new_llm_embedding_endpoint
or old_llm_embedding_model != new_llm_embedding_model
or old_llm_context_size != new_llm_context_size
)
rebuild_needed = new_ai_index_enabled and (
not vector_store_file_exists() or embedding_config_changed
)
if rebuild_needed:
llmindex_index.apply_async(
kwargs={"rebuild": True},
headers={"trigger_source": PaperlessTask.TriggerSource.SYSTEM},