import json import pytest from langchain import PromptTemplate, LLMChain from langchain.chat_models import ChatOpenAI from FOMCTexts.prompts import PROMPT_EXTRACT_DATE PROMPT_DATE = PromptTemplate.from_template(PROMPT_EXTRACT_DATE) date_extractor = LLMChain(prompt=PROMPT_DATE, llm=ChatOpenAI(temperature=0, model_name='gpt-3.5-turbo')) @pytest.mark.parametrize( "statement, expected_dict_date", [ ('Summarize in two paragraphs the monetary policy outlook discussed by the participants during the meeting of June 2023', {"year": "2023", "month": "06"}), ("What were the key takeaways from the conference in September 2022?", {"year": "2022", "month": "09"}), ("Provide an update on the project status in March 2023.", {"year": "2023", "month": "03"}), ("Who attended the meeting on May 2021?", {"year": "2021", "month": "05"}), ("Please summarize the findings of the study conducted in January 2022.", {"year": "2022", "month": "01"}), ("Who were the participants in the event on July 2020?", {"year": "2020", "month": "07"}), ("Provide an overview of the report in August 2019.", {"year": "2019", "month": "08"}), ("Who presented the findings of the research in November 2021?", {"year": "2021", "month": "11"}), ("What were the discussions during the meeting in December 2024?", {"year": "2024", "month": "12"}) ] ) def test_date_extraction(statement, expected_dict_date): dict_date = json.loads(date_extractor.run(statement).replace('\n', '').replace(' ', '')) for k in dict_date: assert dict_date[k] == expected_dict_date[k]