add description extraction
This commit is contained in:
@ -7,7 +7,7 @@ from langchain_core.output_parsers import PydanticOutputParser
|
|||||||
from langchain_openai.chat_models import ChatOpenAI
|
from langchain_openai.chat_models import ChatOpenAI
|
||||||
from pydantic import BaseModel
|
from pydantic import BaseModel
|
||||||
|
|
||||||
from utils.parsers import process_profile, process_passport, process_account
|
from utils.parsers import process_profile, process_passport, process_account, process_description
|
||||||
from validation.from_account import FromAccount
|
from validation.from_account import FromAccount
|
||||||
from validation.from_passport import FromPassport
|
from validation.from_passport import FromPassport
|
||||||
from validation.from_profile import FromProfile
|
from validation.from_profile import FromProfile
|
||||||
@ -23,9 +23,10 @@ def extract_description(client_data: dict[str, Any]) -> FromDescription:
|
|||||||
"Passport text:\n{processed_text}"
|
"Passport text:\n{processed_text}"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
result = __run_extraction_chain(
|
result = __run_extraction_chain(
|
||||||
raw_file_data=passport_data,
|
raw_file_data=passport_data,
|
||||||
file_processor=lambda passport_data: passport_data,
|
file_processor=process_description,
|
||||||
pydantic_model=FromDescription,
|
pydantic_model=FromDescription,
|
||||||
prompt_template=prompt_template,
|
prompt_template=prompt_template,
|
||||||
)
|
)
|
||||||
|
@ -1,9 +1,11 @@
|
|||||||
from .passport_parser import process_passport
|
from .passport_parser import process_passport
|
||||||
from .profile_parser import process_profile
|
from .profile_parser import process_profile
|
||||||
from .account_parser import process_account
|
from .account_parser import process_account
|
||||||
|
from .description_parser import process_description
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
"process_passport",
|
"process_passport",
|
||||||
"process_profile",
|
"process_profile",
|
||||||
"process_account"
|
"process_account",
|
||||||
|
"process_description",
|
||||||
]
|
]
|
15
utils/parsers/description_parser.py
Normal file
15
utils/parsers/description_parser.py
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
import base64
|
||||||
|
|
||||||
|
def process_description(desc_b64: str) -> str:
|
||||||
|
"""
|
||||||
|
Décode une chaîne base64 et retourne le texte UTF-8 correspondant.
|
||||||
|
|
||||||
|
:param base64_text: Donnée encodée en base64.
|
||||||
|
:return: Chaîne de caractères décodée.
|
||||||
|
"""
|
||||||
|
try:
|
||||||
|
decoded_bytes = base64.b64decode(desc_b64)
|
||||||
|
decoded_text = decoded_bytes.decode('utf-8')
|
||||||
|
return decoded_text
|
||||||
|
except Exception as e:
|
||||||
|
return f"[Erreur de décodage] {str(e)}"
|
Reference in New Issue
Block a user