Enhancement (beta): add direct LLM language setting (#12906)

This commit is contained in:
shamoon
2026-06-03 08:53:22 -07:00
committed by GitHub
parent 47a6fcfc39
commit 1663ed170c
10 changed files with 100 additions and 4 deletions
@@ -81,6 +81,7 @@ class TestApiAppConfig(DirectoriesMixin, APITestCase):
"llm_model": None,
"llm_api_key": None,
"llm_endpoint": None,
"llm_output_language": None,
},
)
+39
View File
@@ -408,6 +408,45 @@ class TestAISuggestions(DirectoriesMixin, TestCase):
"KI Title",
)
@patch("documents.views.get_ai_document_classification")
@override_settings(
AI_ENABLED=True,
LLM_BACKEND="mock_backend",
LLM_OUTPUT_LANGUAGE="fr-fr",
)
def test_ai_suggestions_configured_language_takes_precedence(
self,
mock_get_ai_classification,
) -> None:
UiSettings.objects.create(user=self.user, settings={"language": "de-de"})
mock_get_ai_classification.return_value = {
"title": "Titre IA",
"tags": [],
"correspondents": [],
"document_types": [],
"storage_paths": [],
"dates": [],
}
self.client.force_login(user=self.user)
response = self.client.get(
f"/api/documents/{self.document.pk}/ai_suggestions/",
)
self.assertEqual(response.status_code, status.HTTP_200_OK)
mock_get_ai_classification.assert_called_once_with(
self.document,
self.user,
"fr-fr",
)
self.assertEqual(
get_llm_suggestion_cache(
self.document.pk,
backend="mock_backend:fr-fr",
).suggestions["title"],
"Titre IA",
)
@patch("documents.views.get_ai_document_classification")
@override_settings(
AI_ENABLED=True,
+8 -4
View File
@@ -1469,10 +1469,14 @@ class DocumentViewSet(
if not ai_config.ai_enabled:
return HttpResponseBadRequest("AI is required for this feature")
output_language = None
if hasattr(request.user, "ui_settings") and isinstance(
request.user.ui_settings.settings,
dict,
output_language = ai_config.llm_output_language
if (
not output_language
and hasattr(request.user, "ui_settings")
and isinstance(
request.user.ui_settings.settings,
dict,
)
):
output_language = request.user.ui_settings.settings.get("language") or None
llm_cache_backend = (