File tree Expand file tree Collapse file tree 3 files changed +30
-2
lines changed Expand file tree Collapse file tree 3 files changed +30
-2
lines changed Original file line number Diff line number Diff line change @@ -31,10 +31,16 @@ def generate_code(self, prompt: BasePrompt) -> str:
31
31
32
32
# Generate the code
33
33
code = self ._context .config .llm .generate_code (prompt , self ._context )
34
+ # Store the original generated code (for logging purposes)
34
35
self ._context .last_code_generated = code
35
36
self ._context .logger .log (f"Code Generated:\n { code } " )
36
37
37
- return self .validate_and_clean_code (code )
38
+ # Validate and clean the code
39
+ cleaned_code = self .validate_and_clean_code (code )
40
+ # Update with the final cleaned code (for subsequent processing and multi-turn conversations)
41
+ self ._context .last_code_generated = cleaned_code
42
+
43
+ return cleaned_code
38
44
39
45
except Exception as e :
40
46
error_message = f"An error occurred during code generation: { e } "
Original file line number Diff line number Diff line change 19
19
def get_chat_prompt_for_sql (context : AgentState ) -> BasePrompt :
20
20
return GeneratePythonCodeWithSQLPrompt (
21
21
context = context ,
22
- last_code_generated = context .get ( " last_code_generated" ) ,
22
+ last_code_generated = context .last_code_generated ,
23
23
output_type = context .output_type ,
24
24
)
25
25
Original file line number Diff line number Diff line change @@ -542,3 +542,25 @@ def test_handle_exception(self, agent):
542
542
# Verify the error was logged
543
543
mock_logger .log .assert_called_once ()
544
544
assert "Processing failed with error" in mock_logger .log .call_args [0 ][0 ]
545
+
546
+ def test_last_code_generated_retrieval (self , agent : Agent ):
547
+ """Test that last_code_generated is correctly retrieved in get_chat_prompt_for_sql."""
548
+ # Set last_code_generated
549
+ test_code = "print('Test code')"
550
+ agent ._state .last_code_generated = test_code
551
+
552
+ # 使用 get_chat_prompt_for_sql 获取提示
553
+ from pandasai .core .prompts import get_chat_prompt_for_sql
554
+
555
+ prompt = get_chat_prompt_for_sql (agent ._state )
556
+
557
+ # 验证提示中使用了正确的 last_code_generated
558
+ assert prompt .props ["last_code_generated" ] == test_code
559
+
560
+ # 验证不是从 intermediate_values 中获取的
561
+ agent ._state .add ("last_code_generated" , "Wrong code" )
562
+ prompt = get_chat_prompt_for_sql (agent ._state )
563
+
564
+ # 应该仍然使用 last_code_generated 属性,而不是 intermediate_values 中的值
565
+ assert prompt .props ["last_code_generated" ] == test_code
566
+ assert prompt .props ["last_code_generated" ] != "Wrong code"
You can’t perform that action at this time.
0 commit comments