1212pytest test/scripts/model/llm/test_rag_metrics.py -v
1313"""
1414
15- from unittest .mock import Mock , patch
15+ from unittest .mock import patch
1616
1717import pytest
1818
@@ -376,11 +376,14 @@ def test_process_response_low_relevancy(self):
376376class TestIntegration :
377377 """集成测试(使用 mock)"""
378378
379- @patch ('dingo.model.llm.llm_rag_faithfulness.LLMRAGFaithfulness.call_llm' )
380- def test_faithfulness_end_to_end (self , mock_call_llm ):
379+ @patch ('dingo.model.llm.base_openai.BaseOpenAI.send_messages' )
380+ @patch ('dingo.model.llm.base_openai.BaseOpenAI.create_client' )
381+ def test_faithfulness_end_to_end (self , mock_create_client , mock_send_messages ):
381382 """测试忠实度端到端评估"""
383+ # Mock 客户端创建
384+ mock_create_client .return_value = None
382385 # Mock LLM 响应
383- mock_call_llm .return_value = '{"score": 8, "reason": "答案基本忠实于上下文。"}'
386+ mock_send_messages .return_value = '{"score": 8, "reason": "答案基本忠实于上下文。"}'
384387
385388 data = Data (
386389 data_id = "test_integration" ,
@@ -393,12 +396,16 @@ def test_faithfulness_end_to_end(self, mock_call_llm):
393396
394397 assert result .score == 8
395398 assert result .error_status is False
396- assert mock_call_llm .called
399+ assert mock_send_messages .called
397400
398- @patch ('dingo.model.llm.llm_rag_answer_relevancy.LLMRAGAnswerRelevancy.call_llm' )
399- def test_answer_relevancy_end_to_end (self , mock_call_llm ):
401+ @patch ('dingo.model.llm.base_openai.BaseOpenAI.send_messages' )
402+ @patch ('dingo.model.llm.base_openai.BaseOpenAI.create_client' )
403+ def test_answer_relevancy_end_to_end (self , mock_create_client , mock_send_messages ):
400404 """测试答案相关性端到端评估"""
401- mock_call_llm .return_value = '{"score": 9, "reason": "答案直接回答问题。"}'
405+ # Mock 客户端创建
406+ mock_create_client .return_value = None
407+ # Mock LLM 响应
408+ mock_send_messages .return_value = '{"score": 9, "reason": "答案直接回答问题。"}'
402409
403410 data = Data (
404411 data_id = "test_integration_2" ,
@@ -410,12 +417,16 @@ def test_answer_relevancy_end_to_end(self, mock_call_llm):
410417
411418 assert result .score == 9
412419 assert result .error_status is False
413- assert mock_call_llm .called
420+ assert mock_send_messages .called
414421
415- @patch ('dingo.model.llm.llm_rag_context_relevancy.LLMRAGContextRelevancy.call_llm' )
416- def test_context_relevancy_end_to_end (self , mock_call_llm ):
422+ @patch ('dingo.model.llm.base_openai.BaseOpenAI.send_messages' )
423+ @patch ('dingo.model.llm.base_openai.BaseOpenAI.create_client' )
424+ def test_context_relevancy_end_to_end (self , mock_create_client , mock_send_messages ):
417425 """测试上下文相关性端到端评估"""
418- mock_call_llm .return_value = '{"score": 6, "reason": "半数上下文相关。"}'
426+ # Mock 客户端创建
427+ mock_create_client .return_value = None
428+ # Mock LLM 响应
429+ mock_send_messages .return_value = '{"score": 6, "reason": "半数上下文相关。"}'
419430
420431 data = Data (
421432 data_id = "test_integration_3" ,
@@ -430,7 +441,7 @@ def test_context_relevancy_end_to_end(self, mock_call_llm):
430441
431442 assert result .score == 6
432443 assert result .error_status is False # 默认阈值是5
433- assert mock_call_llm .called
444+ assert mock_send_messages .called
434445
435446
436447class TestEdgeCases :
@@ -521,5 +532,5 @@ def test_missing_score_in_response(self):
521532 LLMRAGFaithfulness .process_response (response )
522533
523534
524- if __name__ == "__main__" :
525- pytest . main ([ __file__ , "-v" , "-s" ])
535+ # 使用 pytest 命令运行测试,而不是直接运行此文件
536+ # pytest test/scripts/model/llm/test_rag_metrics.py -v
0 commit comments