import unittest from models import AssistantConfig from services.pipecat.pipeline import _knowledge_tool_description class KnowledgeToolDescriptionTest(unittest.TestCase): def test_includes_bound_knowledge_scope(self): description = _knowledge_tool_description( AssistantConfig( knowledge_base_name="产品服务知识库", knowledge_base_description="产品价格、售后政策和退换货条件", ) ) self.assertIn("知识库名称:产品服务知识库", description) self.assertIn("资料适用范围:产品价格、售后政策和退换货条件", description) self.assertIn("与该范围无关的问题不要调用", description) def test_falls_back_when_metadata_is_empty(self): description = _knowledge_tool_description(AssistantConfig()) self.assertEqual( description, "在当前助手绑定的知识库中检索与问题最相关的资料片段。", ) def test_compacts_and_limits_description(self): description = _knowledge_tool_description( AssistantConfig(knowledge_base_description=("范围\n 内容 " * 200)) ) self.assertNotIn("\n ", description) self.assertLess(len(description), 1000) if __name__ == "__main__": unittest.main()