from .model import InformationExtractedFromABillReceipt as PydanticModel from langchain.chains import LLMChain from langchain.chat_models import ChatOpenAI from langchain.output_parsers import PydanticOutputParser, OutputFixingParser from langchain.prompts import ( ChatPromptTemplate, HumanMessagePromptTemplate, ) model = ChatOpenAI(temperature=0) # Build categorizing chain human_message_prompt = HumanMessagePromptTemplate.from_template( "Parse through and find the following details from the text extracted from a travel " "bill. Fields with formats specified as date, time, or datetime should be ISO 8601 " "compliant.\n" "{format_instructions}\n" "{text}" ) chat_prompt = ChatPromptTemplate.from_messages([human_message_prompt]) output_parser = PydanticOutputParser(pydantic_object=PydanticModel) fixing_parser = OutputFixingParser.from_llm(llm=model, parser=output_parser) chain = LLMChain(llm=model, prompt=chat_prompt, output_parser=fixing_parser)