File size: 1,004 Bytes
c01955c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
from utils.asyncHandler import asyncHandler
from src.Agents.llm.llm_loader import llm
from src.Agents.models.FormFiller_model import FormFillerModel
import logging
from langchain_core.messages import SystemMessage
from src.Agents.prompts import FORMFILLER_LLM_PROMPT


class FormFiller:
    def __init__(self):
        self.logger = logging.getLogger("FormFiller")
        self.llm = llm.with_structured_output(FormFillerModel)

    @asyncHandler
    async def fill_form(self, input_field: str, userDetails: str) -> FormFillerModel:
        self.logger.info("Starting form filling process")

        prompt = FORMFILLER_LLM_PROMPT.format(
            inputFormFields=input_field,
            userdetails=userDetails
        )

        self.logger.debug(f"Formatted prompt: {prompt}")

        res = self.llm.invoke(
            [SystemMessage(content=prompt)]
        )

        self.logger.info("Form filling completed successfully")
        self.logger.debug(f"LLM response: {res}")

        return res