{ "file_path": "document/content_transformer.py", "file_size": 6367, "line_count": 235, "functions": [ { "name": "__init__", "line_start": 34, "line_end": 42, "args": [ { "name": "self" }, { "name": "config", "type_hint": "Optional[Dict[str, Any]]" } ], "return_type": null, "docstring": "", "is_async": false, "decorators": [], "code": " def __init__(self, config: Optional[Dict[str, Any]] = None):\n self.config = config or {}\n self.supported_formats = {\n 'attraction_standard': self._transform_to_attraction_standard,\n 'product_sales': self._transform_to_product_sales,\n 'travel_guide': self._transform_to_travel_guide,\n 'blog_post': self._transform_to_blog_post,\n 'summary': self._transform_to_summary\n }", "code_hash": "f19b5b8b0d5eed1c0c7392d2ce0987f8" }, { "name": "transform_content", "line_start": 44, "line_end": 83, "args": [ { "name": "self" }, { "name": "integrated_content", "type_hint": "IntegratedContent" }, { "name": "format_type", "type_hint": "str" }, { "name": "custom_prompt", "type_hint": "Optional[str]" } ], "return_type": "TransformedContent", "docstring": "转换内容\n\nArgs:\n integrated_content: 整合后的内容\n format_type: 转换格式类型\n custom_prompt: 自定义提示词\n \nReturns:\n TransformedContent: 转换后的内容", "is_async": false, "decorators": [], "code": " def transform_content(self, \n integrated_content: IntegratedContent,\n format_type: str = 'summary',\n custom_prompt: Optional[str] = None) -> TransformedContent:\n \"\"\"转换内容\n \n Args:\n integrated_content: 整合后的内容\n format_type: 转换格式类型\n custom_prompt: 自定义提示词\n \n Returns:\n TransformedContent: 转换后的内容\n \"\"\"\n if format_type not in self.supported_formats:\n raise ValueError(f\"不支持的格式类型: {format_type}\")\n \n logger.info(f\"开始转换内容,格式: {format_type}\")\n \n # 执行转换\n transform_func = self.supported_formats[format_type]\n transformed_text = transform_func(integrated_content, custom_prompt)\n \n # 生成转换元数据\n transformation_metadata = {\n 'format_type': format_type,\n 'source_document_count': integrated_content.document_count,\n 'source_content_length': integrated_content.total_content_length,\n 'transformed_content_length': len(transformed_text),\n 'key_topics_used': integrated_content.key_topics,\n 'custom_prompt_used': custom_prompt is not None\n }\n \n return TransformedContent(\n original_content=integrated_content,\n transformed_text=transformed_text,\n format_type=format_type,\n transformation_metadata=transformation_metadata,\n transformed_at=datetime.now()\n )", "code_hash": "b3158819b342ecc0d8b11db5875f250d" }, { "name": "_transform_to_attraction_standard", "line_start": 85, "line_end": 109, "args": [ { "name": "self" }, { "name": "content", "type_hint": "IntegratedContent" }, { "name": "custom_prompt", "type_hint": "Optional[str]" } ], "return_type": "str", "docstring": "转换为景点标准格式", "is_async": false, "decorators": [], "code": " def _transform_to_attraction_standard(self, content: IntegratedContent, custom_prompt: Optional[str] = None) -> str:\n \"\"\"转换为景点标准格式\"\"\"\n template = \"\"\"\n# 景点信息整理\n\n## 基本信息\n- 文档来源: {document_count}个文档\n- 主要主题: {key_topics}\n\n## 详细内容\n{combined_content}\n\n## 内容摘要\n{content_summary}\n\n---\n*基于提供的文档整理,如需更多信息请参考原始文档*\n\"\"\"\n \n return template.format(\n document_count=content.document_count,\n key_topics=\", \".join(content.key_topics[:5]),\n combined_content=content.combined_content,\n content_summary=content.content_summary\n )", "code_hash": "d3a3f55615511c7d8bd4b02f9aa7e1fe" }, { "name": "_transform_to_product_sales", "line_start": 111, "line_end": 138, "args": [ { "name": "self" }, { "name": "content", "type_hint": "IntegratedContent" }, { "name": "custom_prompt", "type_hint": "Optional[str]" } ], "return_type": "str", "docstring": "转换为产品销售格式", "is_async": false, "decorators": [], "code": " def _transform_to_product_sales(self, content: IntegratedContent, custom_prompt: Optional[str] = None) -> str:\n \"\"\"转换为产品销售格式\"\"\"\n template = \"\"\"\n# 产品销售资料\n\n## 产品特色\n基于{document_count}个文档的信息整理:\n\n{content_summary}\n\n## 详细介绍\n{combined_content}\n\n## 关键卖点\n{key_topics}\n\n---\n*内容整理自提供的文档资料*\n\"\"\"\n \n key_points = \"\\n\".join([f\"• {topic}\" for topic in content.key_topics[:8]])\n \n return template.format(\n document_count=content.document_count,\n content_summary=content.content_summary,\n combined_content=content.combined_content,\n key_topics=key_points\n )", "code_hash": "a860f96bd784753d94d9f034ae105e7f" }, { "name": "_transform_to_travel_guide", "line_start": 140, "line_end": 164, "args": [ { "name": "self" }, { "name": "content", "type_hint": "IntegratedContent" }, { "name": "custom_prompt", "type_hint": "Optional[str]" } ], "return_type": "str", "docstring": "转换为旅游指南格式", "is_async": false, "decorators": [], "code": " def _transform_to_travel_guide(self, content: IntegratedContent, custom_prompt: Optional[str] = None) -> str:\n \"\"\"转换为旅游指南格式\"\"\"\n template = \"\"\"\n# 旅游指南\n\n## 概述\n{content_summary}\n\n## 详细信息\n{combined_content}\n\n## 重要提示\n- 信息来源: {document_count}个文档\n- 关键主题: {key_topics}\n\n---\n*本指南基于提供的文档整理,出行前请核实最新信息*\n\"\"\"\n \n return template.format(\n content_summary=content.content_summary,\n combined_content=content.combined_content,\n document_count=content.document_count,\n key_topics=\", \".join(content.key_topics[:5])\n )", "code_hash": "fd420a017573fc6c409be67b2d261e81" }, { "name": "_transform_to_blog_post", "line_start": 166, "line_end": 195, "args": [ { "name": "self" }, { "name": "content", "type_hint": "IntegratedContent" }, { "name": "custom_prompt", "type_hint": "Optional[str]" } ], "return_type": "str", "docstring": "转换为博客文章格式", "is_async": false, "decorators": [], "code": " def _transform_to_blog_post(self, content: IntegratedContent, custom_prompt: Optional[str] = None) -> str:\n \"\"\"转换为博客文章格式\"\"\"\n template = \"\"\"\n# 博客文章\n\n## 前言\n本文基于{document_count}个文档资料整理而成。\n\n## 主要内容\n\n{combined_content}\n\n## 总结\n{content_summary}\n\n## 相关主题\n{key_topics}\n\n---\n*本文内容整理自多个文档资料*\n\"\"\"\n \n topics_list = \"\\n\".join([f\"- {topic}\" for topic in content.key_topics[:10]])\n \n return template.format(\n document_count=content.document_count,\n combined_content=content.combined_content,\n content_summary=content.content_summary,\n key_topics=topics_list\n )", "code_hash": "6259ddcd588233aa6f3e1b2dff5baba4" }, { "name": "_transform_to_summary", "line_start": 197, "line_end": 227, "args": [ { "name": "self" }, { "name": "content", "type_hint": "IntegratedContent" }, { "name": "custom_prompt", "type_hint": "Optional[str]" } ], "return_type": "str", "docstring": "转换为摘要格式", "is_async": false, "decorators": [], "code": " def _transform_to_summary(self, content: IntegratedContent, custom_prompt: Optional[str] = None) -> str:\n \"\"\"转换为摘要格式\"\"\"\n template = \"\"\"\n# 文档内容摘要\n\n## 文档统计\n- 文档数量: {document_count}\n- 文档类型: {document_types}\n- 内容长度: {content_length}字符\n\n## 内容摘要\n{content_summary}\n\n## 关键主题\n{key_topics}\n\n## 完整内容\n{combined_content}\n\"\"\"\n \n doc_types = \", \".join([f\"{k}({v}个)\" for k, v in content.document_types.items()])\n topics_list = \"\\n\".join([f\"• {topic}\" for topic in content.key_topics])\n \n return template.format(\n document_count=content.document_count,\n document_types=doc_types,\n content_length=content.total_content_length,\n content_summary=content.content_summary,\n key_topics=topics_list,\n combined_content=content.combined_content\n )", "code_hash": "859feec79f159c45dff61141a5352bf4" }, { "name": "get_supported_formats", "line_start": 229, "line_end": 231, "args": [ { "name": "self" } ], "return_type": "List[str]", "docstring": "获取支持的格式列表", "is_async": false, "decorators": [], "code": " def get_supported_formats(self) -> List[str]:\n \"\"\"获取支持的格式列表\"\"\"\n return list(self.supported_formats.keys())", "code_hash": "47e50c765f82c40651edf4dfbb844b84" }, { "name": "add_custom_format", "line_start": 233, "line_end": 236, "args": [ { "name": "self" }, { "name": "format_name", "type_hint": "str" }, { "name": "transform_func" } ], "return_type": null, "docstring": "添加自定义格式", "is_async": false, "decorators": [], "code": " def add_custom_format(self, format_name: str, transform_func):\n \"\"\"添加自定义格式\"\"\"\n self.supported_formats[format_name] = transform_func\n logger.info(f\"添加自定义格式: {format_name}\") ", "code_hash": "9885a21f2593a53e6467877bec1bb86a" } ], "classes": [ { "name": "TransformedContent", "line_start": 23, "line_end": 29, "bases": [], "methods": [], "docstring": "转换后的内容", "decorators": [ "dataclass" ], "code": "class TransformedContent:\n \"\"\"转换后的内容\"\"\"\n original_content: IntegratedContent\n transformed_text: str\n format_type: str\n transformation_metadata: Dict[str, Any]\n transformed_at: datetime", "code_hash": "6b6a514261663141708e7d495120a97b" }, { "name": "ContentTransformer", "line_start": 31, "line_end": 236, "bases": [], "methods": [ { "name": "__init__", "line_start": 34, "line_end": 42, "args": [ { "name": "self" }, { "name": "config", "type_hint": "Optional[Dict[str, Any]]" } ], "return_type": null, "docstring": "", "is_async": false, "decorators": [], "code": " def __init__(self, config: Optional[Dict[str, Any]] = None):\n self.config = config or {}\n self.supported_formats = {\n 'attraction_standard': self._transform_to_attraction_standard,\n 'product_sales': self._transform_to_product_sales,\n 'travel_guide': self._transform_to_travel_guide,\n 'blog_post': self._transform_to_blog_post,\n 'summary': self._transform_to_summary\n }", "code_hash": "f19b5b8b0d5eed1c0c7392d2ce0987f8" }, { "name": "transform_content", "line_start": 44, "line_end": 83, "args": [ { "name": "self" }, { "name": "integrated_content", "type_hint": "IntegratedContent" }, { "name": "format_type", "type_hint": "str" }, { "name": "custom_prompt", "type_hint": "Optional[str]" } ], "return_type": "TransformedContent", "docstring": "转换内容\n\nArgs:\n integrated_content: 整合后的内容\n format_type: 转换格式类型\n custom_prompt: 自定义提示词\n \nReturns:\n TransformedContent: 转换后的内容", "is_async": false, "decorators": [], "code": " def transform_content(self, \n integrated_content: IntegratedContent,\n format_type: str = 'summary',\n custom_prompt: Optional[str] = None) -> TransformedContent:\n \"\"\"转换内容\n \n Args:\n integrated_content: 整合后的内容\n format_type: 转换格式类型\n custom_prompt: 自定义提示词\n \n Returns:\n TransformedContent: 转换后的内容\n \"\"\"\n if format_type not in self.supported_formats:\n raise ValueError(f\"不支持的格式类型: {format_type}\")\n \n logger.info(f\"开始转换内容,格式: {format_type}\")\n \n # 执行转换\n transform_func = self.supported_formats[format_type]\n transformed_text = transform_func(integrated_content, custom_prompt)\n \n # 生成转换元数据\n transformation_metadata = {\n 'format_type': format_type,\n 'source_document_count': integrated_content.document_count,\n 'source_content_length': integrated_content.total_content_length,\n 'transformed_content_length': len(transformed_text),\n 'key_topics_used': integrated_content.key_topics,\n 'custom_prompt_used': custom_prompt is not None\n }\n \n return TransformedContent(\n original_content=integrated_content,\n transformed_text=transformed_text,\n format_type=format_type,\n transformation_metadata=transformation_metadata,\n transformed_at=datetime.now()\n )", "code_hash": "b3158819b342ecc0d8b11db5875f250d" }, { "name": "_transform_to_attraction_standard", "line_start": 85, "line_end": 109, "args": [ { "name": "self" }, { "name": "content", "type_hint": "IntegratedContent" }, { "name": "custom_prompt", "type_hint": "Optional[str]" } ], "return_type": "str", "docstring": "转换为景点标准格式", "is_async": false, "decorators": [], "code": " def _transform_to_attraction_standard(self, content: IntegratedContent, custom_prompt: Optional[str] = None) -> str:\n \"\"\"转换为景点标准格式\"\"\"\n template = \"\"\"\n# 景点信息整理\n\n## 基本信息\n- 文档来源: {document_count}个文档\n- 主要主题: {key_topics}\n\n## 详细内容\n{combined_content}\n\n## 内容摘要\n{content_summary}\n\n---\n*基于提供的文档整理,如需更多信息请参考原始文档*\n\"\"\"\n \n return template.format(\n document_count=content.document_count,\n key_topics=\", \".join(content.key_topics[:5]),\n combined_content=content.combined_content,\n content_summary=content.content_summary\n )", "code_hash": "d3a3f55615511c7d8bd4b02f9aa7e1fe" }, { "name": "_transform_to_product_sales", "line_start": 111, "line_end": 138, "args": [ { "name": "self" }, { "name": "content", "type_hint": "IntegratedContent" }, { "name": "custom_prompt", "type_hint": "Optional[str]" } ], "return_type": "str", "docstring": "转换为产品销售格式", "is_async": false, "decorators": [], "code": " def _transform_to_product_sales(self, content: IntegratedContent, custom_prompt: Optional[str] = None) -> str:\n \"\"\"转换为产品销售格式\"\"\"\n template = \"\"\"\n# 产品销售资料\n\n## 产品特色\n基于{document_count}个文档的信息整理:\n\n{content_summary}\n\n## 详细介绍\n{combined_content}\n\n## 关键卖点\n{key_topics}\n\n---\n*内容整理自提供的文档资料*\n\"\"\"\n \n key_points = \"\\n\".join([f\"• {topic}\" for topic in content.key_topics[:8]])\n \n return template.format(\n document_count=content.document_count,\n content_summary=content.content_summary,\n combined_content=content.combined_content,\n key_topics=key_points\n )", "code_hash": "a860f96bd784753d94d9f034ae105e7f" }, { "name": "_transform_to_travel_guide", "line_start": 140, "line_end": 164, "args": [ { "name": "self" }, { "name": "content", "type_hint": "IntegratedContent" }, { "name": "custom_prompt", "type_hint": "Optional[str]" } ], "return_type": "str", "docstring": "转换为旅游指南格式", "is_async": false, "decorators": [], "code": " def _transform_to_travel_guide(self, content: IntegratedContent, custom_prompt: Optional[str] = None) -> str:\n \"\"\"转换为旅游指南格式\"\"\"\n template = \"\"\"\n# 旅游指南\n\n## 概述\n{content_summary}\n\n## 详细信息\n{combined_content}\n\n## 重要提示\n- 信息来源: {document_count}个文档\n- 关键主题: {key_topics}\n\n---\n*本指南基于提供的文档整理,出行前请核实最新信息*\n\"\"\"\n \n return template.format(\n content_summary=content.content_summary,\n combined_content=content.combined_content,\n document_count=content.document_count,\n key_topics=\", \".join(content.key_topics[:5])\n )", "code_hash": "fd420a017573fc6c409be67b2d261e81" }, { "name": "_transform_to_blog_post", "line_start": 166, "line_end": 195, "args": [ { "name": "self" }, { "name": "content", "type_hint": "IntegratedContent" }, { "name": "custom_prompt", "type_hint": "Optional[str]" } ], "return_type": "str", "docstring": "转换为博客文章格式", "is_async": false, "decorators": [], "code": " def _transform_to_blog_post(self, content: IntegratedContent, custom_prompt: Optional[str] = None) -> str:\n \"\"\"转换为博客文章格式\"\"\"\n template = \"\"\"\n# 博客文章\n\n## 前言\n本文基于{document_count}个文档资料整理而成。\n\n## 主要内容\n\n{combined_content}\n\n## 总结\n{content_summary}\n\n## 相关主题\n{key_topics}\n\n---\n*本文内容整理自多个文档资料*\n\"\"\"\n \n topics_list = \"\\n\".join([f\"- {topic}\" for topic in content.key_topics[:10]])\n \n return template.format(\n document_count=content.document_count,\n combined_content=content.combined_content,\n content_summary=content.content_summary,\n key_topics=topics_list\n )", "code_hash": "6259ddcd588233aa6f3e1b2dff5baba4" }, { "name": "_transform_to_summary", "line_start": 197, "line_end": 227, "args": [ { "name": "self" }, { "name": "content", "type_hint": "IntegratedContent" }, { "name": "custom_prompt", "type_hint": "Optional[str]" } ], "return_type": "str", "docstring": "转换为摘要格式", "is_async": false, "decorators": [], "code": " def _transform_to_summary(self, content: IntegratedContent, custom_prompt: Optional[str] = None) -> str:\n \"\"\"转换为摘要格式\"\"\"\n template = \"\"\"\n# 文档内容摘要\n\n## 文档统计\n- 文档数量: {document_count}\n- 文档类型: {document_types}\n- 内容长度: {content_length}字符\n\n## 内容摘要\n{content_summary}\n\n## 关键主题\n{key_topics}\n\n## 完整内容\n{combined_content}\n\"\"\"\n \n doc_types = \", \".join([f\"{k}({v}个)\" for k, v in content.document_types.items()])\n topics_list = \"\\n\".join([f\"• {topic}\" for topic in content.key_topics])\n \n return template.format(\n document_count=content.document_count,\n document_types=doc_types,\n content_length=content.total_content_length,\n content_summary=content.content_summary,\n key_topics=topics_list,\n combined_content=content.combined_content\n )", "code_hash": "859feec79f159c45dff61141a5352bf4" }, { "name": "get_supported_formats", "line_start": 229, "line_end": 231, "args": [ { "name": "self" } ], "return_type": "List[str]", "docstring": "获取支持的格式列表", "is_async": false, "decorators": [], "code": " def get_supported_formats(self) -> List[str]:\n \"\"\"获取支持的格式列表\"\"\"\n return list(self.supported_formats.keys())", "code_hash": "47e50c765f82c40651edf4dfbb844b84" }, { "name": "add_custom_format", "line_start": 233, "line_end": 236, "args": [ { "name": "self" }, { "name": "format_name", "type_hint": "str" }, { "name": "transform_func" } ], "return_type": null, "docstring": "添加自定义格式", "is_async": false, "decorators": [], "code": " def add_custom_format(self, format_name: str, transform_func):\n \"\"\"添加自定义格式\"\"\"\n self.supported_formats[format_name] = transform_func\n logger.info(f\"添加自定义格式: {format_name}\") ", "code_hash": "9885a21f2593a53e6467877bec1bb86a" } ], "docstring": "内容转换器 - 将整合的内容转换为指定格式", "decorators": [], "code": "class ContentTransformer:\n \"\"\"内容转换器 - 将整合的内容转换为指定格式\"\"\"\n \n def __init__(self, config: Optional[Dict[str, Any]] = None):\n self.config = config or {}\n self.supported_formats = {\n 'attraction_standard': self._transform_to_attraction_standard,\n 'product_sales': self._transform_to_product_sales,\n 'travel_guide': self._transform_to_travel_guide,\n 'blog_post': self._transform_to_blog_post,\n 'summary': self._transform_to_summary\n }\n \n def transform_content(self, \n integrated_content: IntegratedContent,\n format_type: str = 'summary',\n custom_prompt: Optional[str] = None) -> TransformedContent:\n \"\"\"转换内容\n \n Args:\n integrated_content: 整合后的内容\n format_type: 转换格式类型\n custom_prompt: 自定义提示词\n \n Returns:\n TransformedContent: 转换后的内容\n \"\"\"\n if format_type not in self.supported_formats:\n raise ValueError(f\"不支持的格式类型: {format_type}\")\n \n logger.info(f\"开始转换内容,格式: {format_type}\")\n \n # 执行转换\n transform_func = self.supported_formats[format_type]\n transformed_text = transform_func(integrated_content, custom_prompt)\n \n # 生成转换元数据\n transformation_metadata = {\n 'format_type': format_type,\n 'source_document_count': integrated_content.document_count,\n 'source_content_length': integrated_content.total_content_length,\n 'transformed_content_length': len(transformed_text),\n 'key_topics_used': integrated_content.key_topics,\n 'custom_prompt_used': custom_prompt is not None\n }\n \n return TransformedContent(\n original_content=integrated_content,\n transformed_text=transformed_text,\n format_type=format_type,\n transformation_metadata=transformation_metadata,\n transformed_at=datetime.now()\n )\n \n def _transform_to_attraction_standard(self, content: IntegratedContent, custom_prompt: Optional[str] = None) -> str:\n \"\"\"转换为景点标准格式\"\"\"\n template = \"\"\"\n# 景点信息整理\n\n## 基本信息\n- 文档来源: {document_count}个文档\n- 主要主题: {key_topics}\n\n## 详细内容\n{combined_content}\n\n## 内容摘要\n{content_summary}\n\n---\n*基于提供的文档整理,如需更多信息请参考原始文档*\n\"\"\"\n \n return template.format(\n document_count=content.document_count,\n key_topics=\", \".join(content.key_topics[:5]),\n combined_content=content.combined_content,\n content_summary=content.content_summary\n )\n \n def _transform_to_product_sales(self, content: IntegratedContent, custom_prompt: Optional[str] = None) -> str:\n \"\"\"转换为产品销售格式\"\"\"\n template = \"\"\"\n# 产品销售资料\n\n## 产品特色\n基于{document_count}个文档的信息整理:\n\n{content_summary}\n\n## 详细介绍\n{combined_content}\n\n## 关键卖点\n{key_topics}\n\n---\n*内容整理自提供的文档资料*\n\"\"\"\n \n key_points = \"\\n\".join([f\"• {topic}\" for topic in content.key_topics[:8]])\n \n return template.format(\n document_count=content.document_count,\n content_summary=content.content_summary,\n combined_content=content.combined_content,\n key_topics=key_points\n )\n \n def _transform_to_travel_guide(self, content: IntegratedContent, custom_prompt: Optional[str] = None) -> str:\n \"\"\"转换为旅游指南格式\"\"\"\n template = \"\"\"\n# 旅游指南\n\n## 概述\n{content_summary}\n\n## 详细信息\n{combined_content}\n\n## 重要提示\n- 信息来源: {document_count}个文档\n- 关键主题: {key_topics}\n\n---\n*本指南基于提供的文档整理,出行前请核实最新信息*\n\"\"\"\n \n return template.format(\n content_summary=content.content_summary,\n combined_content=content.combined_content,\n document_count=content.document_count,\n key_topics=\", \".join(content.key_topics[:5])\n )\n \n def _transform_to_blog_post(self, content: IntegratedContent, custom_prompt: Optional[str] = None) -> str:\n \"\"\"转换为博客文章格式\"\"\"\n template = \"\"\"\n# 博客文章\n\n## 前言\n本文基于{document_count}个文档资料整理而成。\n\n## 主要内容\n\n{combined_content}\n\n## 总结\n{content_summary}\n\n## 相关主题\n{key_topics}\n\n---\n*本文内容整理自多个文档资料*\n\"\"\"\n \n topics_list = \"\\n\".join([f\"- {topic}\" for topic in content.key_topics[:10]])\n \n return template.format(\n document_count=content.document_count,\n combined_content=content.combined_content,\n content_summary=content.content_summary,\n key_topics=topics_list\n )\n \n def _transform_to_summary(self, content: IntegratedContent, custom_prompt: Optional[str] = None) -> str:\n \"\"\"转换为摘要格式\"\"\"\n template = \"\"\"\n# 文档内容摘要\n\n## 文档统计\n- 文档数量: {document_count}\n- 文档类型: {document_types}\n- 内容长度: {content_length}字符\n\n## 内容摘要\n{content_summary}\n\n## 关键主题\n{key_topics}\n\n## 完整内容\n{combined_content}\n\"\"\"\n \n doc_types = \", \".join([f\"{k}({v}个)\" for k, v in content.document_types.items()])\n topics_list = \"\\n\".join([f\"• {topic}\" for topic in content.key_topics])\n \n return template.format(\n document_count=content.document_count,\n document_types=doc_types,\n content_length=content.total_content_length,\n content_summary=content.content_summary,\n key_topics=topics_list,\n combined_content=content.combined_content\n )\n \n def get_supported_formats(self) -> List[str]:\n \"\"\"获取支持的格式列表\"\"\"\n return list(self.supported_formats.keys())\n \n def add_custom_format(self, format_name: str, transform_func):\n \"\"\"添加自定义格式\"\"\"\n self.supported_formats[format_name] = transform_func\n logger.info(f\"添加自定义格式: {format_name}\") ", "code_hash": "73d87f260e5283f6aba0121e65499a04" } ], "imports": [ { "type": "import", "modules": [ "logging" ], "aliases": [] }, { "type": "from_import", "module": "typing", "names": [ "Dict", "Any", "Optional", "List" ], "aliases": [], "level": 0 }, { "type": "from_import", "module": "dataclasses", "names": [ "dataclass" ], "aliases": [], "level": 0 }, { "type": "from_import", "module": "datetime", "names": [ "datetime" ], "aliases": [], "level": 0 }, { "type": "import", "modules": [ "uuid" ], "aliases": [] }, { "type": "from_import", "module": "content_integrator", "names": [ "IntegratedContent" ], "aliases": [], "level": 1 }, { "type": "from_import", "module": "core.ai.ai_agent", "names": [ "AIAgent" ], "aliases": [], "level": 0 }, { "type": "from_import", "module": "core.config.manager", "names": [ "ConfigManager" ], "aliases": [], "level": 0 }, { "type": "from_import", "module": "utils.file_io", "names": [ "OutputManager" ], "aliases": [], "level": 0 } ], "constants": [], "docstring": "内容转换器模块\n使用LLM将解析的文档内容转换为标准化的景区和产品资料格式", "content_hash": "29c88acacc336c3f98ab977fad672104" }