refac: docling picture describe params

This commit is contained in:
Timothy Jaeryang Baek
2025-06-08 20:02:14 +04:00
parent b9c64d0936
commit 0cd400f5ee
5 changed files with 144 additions and 279 deletions
+23 -45
View File
@@ -155,40 +155,23 @@ class DoclingLoader:
"do_picture_description"
)
picture_description_mode = self.params.get("picture_description_mode", "").lower()
picture_description_mode = self.params.get(
"picture_description_mode", ""
).lower()
if picture_description_mode == "local":
if picture_description_mode == "local" and self.params.get(
"picture_description_local", {}
):
params["picture_description_local"] = self.params.get(
"picture_description_local", {}
)
params["picture_description_local"] = json.dumps({
"repo_id": self.params.get(
"picture_description_local_repo_id", "HuggingFaceTB/SmolVLM-256M-Instruct"
),
"generation_config": {
"max_new_tokens": self.params.get(
"picture_description_local_max_tokens", 200
)
},
"prompt": self.params.get(
"picture_description_local_prompt", "Describe this image in a few sentences."
)
})
elif picture_description_mode == "api":
params["picture_description_api"] = json.dumps({
"url": self.params.get(
"picture_description_api_url", ""
),
"params": {
"model": self.params.get(
"picture_description_api_model", ""
)
},
"timeout": 30,
"prompt": self.params.get(
"picture_description_api_prompt", "Describe this image in a few sentences."
)
})
elif picture_description_mode == "api" and self.params.get(
"picture_description_api", {}
):
params["picture_description_api"] = self.params.get(
"picture_description_api", {}
)
if self.params.get("ocr_engine") and self.params.get("ocr_lang"):
params["ocr_engine"] = self.params.get("ocr_engine")
@@ -318,24 +301,19 @@ class Loader:
loader = TextLoader(file_path, autodetect_encoding=True)
else:
# Build params for DoclingLoader
params = {
"ocr_engine": self.kwargs.get("DOCLING_OCR_ENGINE"),
"ocr_lang": self.kwargs.get("DOCLING_OCR_LANG"),
"do_picture_description": self.kwargs.get("DOCLING_DO_PICTURE_DESCRIPTION"),
"picture_description_mode": self.kwargs.get("DOCLING_PICTURE_DESCRIPTION_MODE"),
"picture_description_local_repo_id": self.kwargs.get("DOCLING_PICTURE_DESCRIPTION_LOCAL_REPO_ID"),
"picture_description_local_max_tokens": self.kwargs.get("DOCLING_PICTURE_DESCRIPTION_LOCAL_MAX_TOKENS"),
"picture_description_local_prompt": self.kwargs.get("DOCLING_PICTURE_DESCRIPTION_LOCAL_PROMPT"),
"picture_description_api_url": self.kwargs.get("DOCLING_PICTURE_DESCRIPTION_API_URL"),
"picture_description_api_model": self.kwargs.get("DOCLING_PICTURE_DESCRIPTION_API_MODEL"),
"picture_description_api_prompt": self.kwargs.get("DOCLING_PICTURE_DESCRIPTION_API_PROMPT")
}
params = self.kwargs.get("DOCLING_PARAMS", {})
if not isinstance(params, dict):
try:
params = json.loads(params)
except json.JSONDecodeError:
log.error("Invalid DOCLING_PARAMS format, expected JSON object")
params = {}
loader = DoclingLoader(
url=self.kwargs.get("DOCLING_SERVER_URL"),
file_path=file_path,
mime_type=file_content_type,
params=params
params=params,
)
elif (
self.engine == "document_intelligence"