@@ -539,7 +539,29 @@ def test_location_awareness(docs_fixture) -> None:
539
539
540
540
541
541
def test_query (docs_fixture ) -> None :
542
- docs_fixture .query ("Is XAI usable in chemistry?" )
542
+ settings = Settings (prompts = {"answer_iteration_prompt" : None })
543
+ docs_fixture .query ("Is XAI usable in chemistry?" , settings = settings )
544
+
545
+
546
+ def test_query_with_iteration (docs_fixture ) -> None :
547
+ # we store these results to check that the prompts are OK
548
+ my_results : list [LLMResult ] = []
549
+ # explicitly set the prompt to use QA iterations
550
+ settings = Settings ()
551
+ llm = settings .get_llm ()
552
+ llm .llm_result_callback = my_results .append
553
+ prior_answer = "No, it isn't usable in chemistry."
554
+ question = "Is XAI usable in chemistry?"
555
+ prior_session = PQASession (question = question , answer = prior_answer )
556
+ docs_fixture .query (prior_session , llm_model = llm , settings = settings )
557
+ assert prior_answer in cast (
558
+ "str" , my_results [- 1 ].prompt [1 ].content # type: ignore[union-attr, index]
559
+ ), "prior answer not in prompt"
560
+ # run without a prior session to check that the flow works correctly
561
+ docs_fixture .query (question , llm_model = llm , settings = settings )
562
+ assert settings .prompts .answer_iteration_prompt [:10 ] not in cast ( # type: ignore[index]
563
+ "str" , my_results [- 1 ].prompt [1 ].content # type: ignore[union-attr, index]
564
+ ), "prior answer prompt should not be inserted"
543
565
544
566
545
567
def test_llmresult_callback (docs_fixture : Docs ) -> None :
0 commit comments