Browse Source

修改解析web页面接口。支持多人员信息提取。

maxiaolong 10 hours ago
parent
commit
6af03402d6

+ 21 - 2
app/api/data_parse/routes.py

@@ -1483,10 +1483,12 @@ def webpage_parse_route():
     
     请求参数:
         - markdown_text: 网页的 Markdown 格式文本内容 (JSON格式)
+        - publish_time: 发布时间,用于career_path中的date字段 (JSON格式)
         
     请求体示例:
         {
-            "markdown_text": "# 张三\n\n职位:高级经理\n\n公司:XX酒店\n\n![照片](http://example.com/photo.jpg)"
+            "markdown_text": "# 张三\n\n职位:高级经理\n\n公司:XX酒店\n\n![照片](http://example.com/photo.jpg)",
+            "publish_time": "2025-01-15"
         }
         
     返回:
@@ -1524,7 +1526,16 @@ def webpage_parse_route():
                 'data': None
             }), 400
         
+        # 检查是否提供了 publish_time 参数
+        if 'publish_time' not in data:
+            return jsonify({
+                'success': False,
+                'message': '缺少必填参数: publish_time',
+                'data': None
+            }), 400
+        
         markdown_text = data['markdown_text']
+        publish_time = data['publish_time']
         
         # 验证 markdown_text 是否为字符串
         if not isinstance(markdown_text, str):
@@ -1534,6 +1545,14 @@ def webpage_parse_route():
                 'data': None
             }), 400
         
+        # 验证 publish_time 是否为字符串
+        if not isinstance(publish_time, str):
+            return jsonify({
+                'success': False,
+                'message': 'publish_time 必须是字符串类型',
+                'data': None
+            }), 400
+        
         # 验证文本内容不能为空
         if not markdown_text.strip():
             return jsonify({
@@ -1563,7 +1582,7 @@ def webpage_parse_route():
         logger.info(f"开始解析网页文本,内容长度: {len(markdown_text)} 字符")
         
         # 调用网页文本解析函数
-        extracted_data = process_webpage_with_QWen(markdown_text)
+        extracted_data = process_webpage_with_QWen(markdown_text, publish_time)
         
         # 返回成功结果
         return jsonify({

+ 96 - 77
app/core/data_parse/parse_web.py

@@ -35,12 +35,13 @@ def extract_json_from_text(text):
     return text[start_idx:]
 
 
-def process_webpage_with_QWen(markdown_text):
+def process_webpage_with_QWen(markdown_text, publish_time):
     """
     使用阿里云的 Qwen VL Max 模型解析网页 markdown 文本中的名片信息
     
     Args:
         markdown_text (str): 网页的 markdown 格式文本内容
+        publish_time (str): 发布时间,用于career_path中的date字段
         
     Returns:
         dict: 解析的名片信息
@@ -56,66 +57,89 @@ def process_webpage_with_QWen(markdown_text):
         )
         
         # 构建针对网页文本的优化提示语
-        prompt = """你是数据处理专家。请仔细分析提供的网页Markdown文本内容,精确提取其中个人信息。
+        prompt = """你是酒店行业人事任命信息提取专家。请仔细分析提供的网页Markdown文本内容,精确提取其中的人员任命信息。
+
+## 重要说明
+1. **多人员处理**: 文本中可能包含多个人的任命信息,通常以数字编号(如**1**、**2**、**3**等)分隔不同人员。请将所有人员信息都提取出来,以JSON数组格式返回。请仔细查看整个文档,不要遗漏任何人员信息。
+2. **照片链接识别**: 人物照片链接通常出现在人物姓名的前面,通过空行分隔。请优先关联距离最近的照片链接。
+3. **字段限制**: 只需要提取指定的9个字段,其他信息忽略。
+4. **完整性要求**: 请确保提取文档中所有被任命的人员信息,包括总经理、副总裁、总监等各级管理人员。每个数字编号下的人员都需要提取。
 
 ## 提取要求
 - 区分中英文内容,分别提取
 - 保持提取信息的原始格式(如大小写、标点)
 - 对于无法识别或文本中不存在的信息,返回空字符串
 - 文本中没有的信息,请不要猜测
-- 从网页内容中识别人员简介、联系方式、职位信息等
-
-## 需提取的字段
-1. 中文姓名 (name_zh)
-2. 英文姓名 (name_en)
-3. 中文职位/头衔 (title_zh)
-4. 英文职位/头衔 (title_en)
-5. 中文酒店/公司名称 (hotel_zh)
-6. 英文酒店/公司名称 (hotel_en)
-7. 手机号码 (mobile) - 如有多个手机号码,使用逗号分隔,最多提取3个
-8. 固定电话 (phone) - 如有多个,使用逗号分隔
-9. 电子邮箱 (email)
-10. 中文地址 (address_zh)
-11. 英文地址 (address_en)
-12. 中文邮政编码 (postal_code_zh)
-13. 英文邮政编码 (postal_code_en)
-14. 生日 (birthday) - 格式为YYYY-MM-DD,如1990-01-01
-15. 年龄 (age) - 数字格式,如30
-16. 籍贯 (native_place) - 出生地或户籍所在地信息
-17. 居住地 (residence) - 个人居住地址信息
-18. 品牌组合 (brand_group) - 如有多个品牌,使用逗号分隔
-19. 职业轨迹 (career_path) - 如能从文本中推断,以JSON数组格式返回,包含当前日期,公司名称和职位。自动生成当前日期。
-20. 隶属关系 (affiliation) - 如能从文本中推断,以JSON数组格式返回,包含公司名称和隶属集团名称
-21. 照片链接 (pic_url) - 人物的照片URL链接,从网页中的图片标签或链接中提取
+- 从酒店任命公告中识别人员基本信息和职位信息
+
+## 照片链接识别规则
+- 照片通常以 ![描述](URL) 格式出现
+- 照片链接通常位于人物姓名的前面,通过空行分隔
+- 每个人物对应其前面最近的一张照片
+- 如果照片无法明确对应某个人物,则该人物的pic_url为空字符串
+
+## 需提取的字段(仅这9个字段)
+1. 中文姓名 (name_zh) - 人物的中文姓名
+2. 英文姓名 (name_en) - 人物的英文姓名,如果没有则为空字符串
+3. 中文职位/头衔 (title_zh) - 人物的中文职位或头衔
+4. 英文职位/头衔 (title_en) - 人物的英文职位或头衔,如果没有则为空字符串
+5. 中文酒店/公司名称 (hotel_zh) - 人物所在的中文酒店或公司名称
+6. 英文酒店/公司名称 (hotel_en) - 人物所在的英文酒店或公司名称,如果没有则为空字符串
+7. 品牌组合 (brand_group) - 酒店所属的品牌集团,如万豪、希尔顿等
+8. 照片链接 (pic_url) - 人物的照片URL链接,根据上述识别规则提取
 
 ## 输出格式
-请以严格的JSON格式返回结果,不要添加任何额外解释文字。JSON格式如下:
+请以严格的JSON格式返回结果,不要添加任何额外解释文字。如果文本中包含多个人员信息,返回JSON数组,每个人员一个JSON对象。如果只有一个人员,也要返回数组格式。
+
+单人员示例:
+```json
+[
+  {
+    "name_zh": "张三",
+    "name_en": "Zhang San",
+    "title_zh": "总经理",
+    "title_en": "General Manager",
+    "hotel_zh": "北京万豪酒店",
+    "hotel_en": "Beijing Marriott Hotel",
+    "brand_group": "万豪",
+    "pic_url": "https://example.com/photo1.jpg"
+  }
+]
+```
+
+多人员示例:
 ```json
-{
-  "name_zh": "",
-  "name_en": "",
-  "title_zh": "",
-  "title_en": "",
-  "hotel_zh": "",
-  "hotel_en": "",
-  "mobile": "",
-  "phone": "",
-  "email": "",
-  "address_zh": "",
-  "address_en": "",
-  "postal_code_zh": "",
-  "postal_code_en": "",
-  "birthday": "",
-  "age": 0,
-  "native_place": "",
-  "residence": "",
-  "brand_group": "",
-  "career_path": [],
-  "affiliation": [],
-  "pic_url": ""
-}
+[
+  {
+    "name_zh": "张三",
+    "name_en": "Zhang San",
+    "title_zh": "总经理",
+    "title_en": "General Manager",
+    "hotel_zh": "北京万豪酒店",
+    "hotel_en": "Beijing Marriott Hotel",
+    "brand_group": "万豪",
+    "pic_url": "https://example.com/photo1.jpg"
+  },
+  {
+    "name_zh": "李四",
+    "name_en": "Li Si",
+    "title_zh": "市场总监",
+    "title_en": "Marketing Director",
+    "hotel_zh": "上海希尔顿酒店",
+    "hotel_en": "Shanghai Hilton Hotel",
+    "brand_group": "希尔顿",
+    "pic_url": "https://example.com/photo2.jpg"
+  }
+]
 ```
 
+发现有数字编号(**1**、**2**、**3**)分隔,应该提取三个人员的信息,返回包含3个对象的数组。
+
+## 特别提醒
+- 请务必扫描整个文档,查找所有数字编号标记的人员信息
+- 每个人员信息都要单独提取成一个JSON对象
+- 最终返回的数组长度应该等于文档中的人员数量
+
 以下是需要分析的网页Markdown文本内容:
 
 """ + markdown_text
@@ -140,49 +164,44 @@ def process_webpage_with_QWen(markdown_text):
         response_content = completion.choices[0].message.content
         logging.info(f"成功从 Qwen 模型获取网页文本响应: {response_content}")
         
-        # 尝试从响应中提取 JSON
+        # 直接解析 QWen 返回的 JSON 响应
         try:
-            json_content = extract_json_from_text(response_content)
-            extracted_data = json.loads(json_content)
+            extracted_data = json.loads(response_content)
             logging.info("成功解析 Qwen 网页文本响应中的 JSON")
         except json.JSONDecodeError as e:
             error_msg = f"JSON 解析失败: {str(e)}"
             logging.error(error_msg)
             raise Exception(error_msg)
 
-        # 确保所有必要字段存在
+        # 确保返回的是数组格式
+        if not isinstance(extracted_data, list):
+            # 如果返回的不是数组,包装成数组
+            extracted_data = [extracted_data] if extracted_data else []
+        
+        # 确保数组中每个人员对象都包含所有必要字段
         required_fields = [
             'name_zh', 'name_en', 'title_zh', 'title_en', 
-            'hotel_zh', 'hotel_en', 'mobile', 'phone', 
-            'email', 'address_zh', 'address_en',
-            'postal_code_zh', 'postal_code_en', 'birthday', 'age', 'native_place', 'residence',
-            'brand_group', 'career_path', 'pic_url'
+            'hotel_zh', 'hotel_en', 'brand_group', 'pic_url'
         ]
         
-        for field in required_fields:
-            if field not in extracted_data:
-                if field == 'career_path':
-                    extracted_data[field] = []
-                elif field == 'age':
-                    extracted_data[field] = 0
-                else:
-                    extracted_data[field] = ""
-        
-        # 为career_path增加一条记录(如果有相关信息)
-        if extracted_data.get('hotel_zh') or extracted_data.get('hotel_en') or extracted_data.get('title_zh') or extracted_data.get('title_en'):
+        for person in extracted_data:
+            for field in required_fields:
+                if field not in person:
+                    person[field] = ""
+            
+            # 为每个人员添加career_path字段
             career_entry = {
-                'date': datetime.now().strftime('%Y-%m-%d'),
-                'hotel_en': extracted_data.get('hotel_en', ''),
-                'hotel_zh': extracted_data.get('hotel_zh', ''),
+                'date': publish_time,
+                'hotel_en': person.get('hotel_en', ''),
+                'hotel_zh': person.get('hotel_zh', ''),
                 'image_path': '',
                 'source': 'webpage_extraction',
-                'title_en': extracted_data.get('title_en', ''),
-                'title_zh': extracted_data.get('title_zh', '')
+                'title_en': person.get('title_en', ''),
+                'title_zh': person.get('title_zh', '')
             }
             
-            # 直接清空原有的career_path内容,用career_entry写入
-            extracted_data['career_path'] = [career_entry]
-            logging.info(f"为网页解析结果设置了career_path记录: {career_entry}")
+            person['career_path'] = [career_entry]
+            logging.info(f"为人员 {person.get('name_zh', 'Unknown')} 添加了career_path记录: {career_entry}")
         
         return extracted_data
         

+ 16 - 0
quick_test.py

@@ -0,0 +1,16 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+import sys
+import os
+sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+from app.core.data_parse.parse_web import process_webpage_with_QWen
+
+# 只测试多人员提取
+with open('新任命多人-markdown格式.md', 'r', encoding='utf-8') as f:
+    content = f.read()
+
+print('开始解析多人任命信息...')
+result = process_webpage_with_QWen(content, "2025-01-15")
+print(f'成功提取 {len(result)} 个人员信息')
+for i, person in enumerate(result, 1):
+    print(f'第 {i} 个人员: {person.get("name_zh", "N/A")} - {person.get("title_zh", "N/A")} - {person.get("hotel_zh", "N/A")}') 

+ 175 - 0
test_qwen_extraction.py

@@ -0,0 +1,175 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+测试QWen模型提取人员信息功能
+"""
+
+import os
+import sys
+import json
+import logging
+from datetime import datetime
+
+# 添加项目根目录到路径
+sys.path.append(os.path.join(os.path.dirname(__file__), '..'))
+
+# 导入需要测试的函数
+from app.core.data_parse.parse_web import process_webpage_with_QWen
+
+# 配置日志
+logging.basicConfig(
+    level=logging.INFO,
+    format='%(asctime)s - %(levelname)s - %(message)s',
+    handlers=[
+        logging.StreamHandler(),
+        logging.FileHandler('test_qwen_extraction.log', encoding='utf-8')
+    ]
+)
+
+def read_markdown_file(file_path):
+    """读取markdown文件内容"""
+    try:
+        with open(file_path, 'r', encoding='utf-8') as f:
+            return f.read()
+    except Exception as e:
+        logging.error(f"读取文件 {file_path} 失败: {str(e)}")
+        return None
+
+def save_result_to_file(result, filename):
+    """保存结果到JSON文件"""
+    try:
+        with open(filename, 'w', encoding='utf-8') as f:
+            json.dump(result, f, ensure_ascii=False, indent=2)
+        logging.info(f"结果已保存到: {filename}")
+    except Exception as e:
+        logging.error(f"保存结果到文件失败: {str(e)}")
+
+def analyze_extraction_quality(result, expected_count=None, test_name=""):
+    """分析提取质量"""
+    print(f"\n=== {test_name} 提取结果分析 ===")
+    
+    if not result:
+        print("❌ 提取失败,返回空结果")
+        return False
+    
+    if not isinstance(result, list):
+        print("❌ 返回结果不是数组格式")
+        return False
+    
+    print(f"✅ 成功提取 {len(result)} 个人员信息")
+    
+    if expected_count and len(result) != expected_count:
+        print(f"⚠️  警告:期望提取 {expected_count} 个人员,实际提取 {len(result)} 个")
+    
+    # 检查每个人员信息的完整性
+    required_fields = [
+        'name_zh', 'name_en', 'title_zh', 'title_en', 
+        'hotel_zh', 'hotel_en', 'brand_group', 'career_path', 'pic_url'
+    ]
+    
+    for i, person in enumerate(result, 1):
+        print(f"\n第 {i} 个人员:")
+        print(f"  中文姓名: {person.get('name_zh', '未提取')}")
+        print(f"  英文姓名: {person.get('name_en', '未提取')}")
+        print(f"  中文职位: {person.get('title_zh', '未提取')}")
+        print(f"  英文职位: {person.get('title_en', '未提取')}")
+        print(f"  中文酒店: {person.get('hotel_zh', '未提取')}")
+        print(f"  英文酒店: {person.get('hotel_en', '未提取')}")
+        print(f"  品牌组合: {person.get('brand_group', '未提取')}")
+        print(f"  照片链接: {person.get('pic_url', '未提取')[:80]}..." if len(person.get('pic_url', '')) > 80 else f"  照片链接: {person.get('pic_url', '未提取')}")
+        print(f"  职业轨迹: {len(person.get('career_path', []))} 条记录")
+        
+        # 检查字段完整性
+        missing_fields = [field for field in required_fields if field not in person]
+        if missing_fields:
+            print(f"  ❌ 缺失字段: {missing_fields}")
+        else:
+            print(f"  ✅ 所有字段都存在")
+        
+        # 显示非空字段的统计
+        non_empty_fields = [field for field in required_fields if person.get(field) not in ['', None, []]]
+        print(f"  📊 非空字段: {len(non_empty_fields)}/{len(required_fields)}")
+    
+    return True
+
+def test_single_person_extraction():
+    """测试单人提取"""
+    print("\n" + "="*60)
+    print("测试单人任命信息提取")
+    print("="*60)
+    
+    # 读取单人任命文件
+    content = read_markdown_file('新任命单人-markdown格式.md')
+    if not content:
+        print("❌ 无法读取单人任命文件")
+        return
+    
+    try:
+        # 调用提取函数
+        result = process_webpage_with_QWen(content, "2025-01-15")
+        
+        # 保存结果
+        save_result_to_file(result, 'test_result_single_person.json')
+        
+        # 分析结果
+        analyze_extraction_quality(result, expected_count=1, test_name="单人任命")
+        
+    except Exception as e:
+        logging.error(f"单人提取测试失败: {str(e)}")
+        print(f"❌ 单人提取测试失败: {str(e)}")
+
+def test_multiple_person_extraction():
+    """测试多人提取"""
+    print("\n" + "="*60)
+    print("测试多人任命信息提取")
+    print("="*60)
+    
+    # 读取多人任命文件
+    content = read_markdown_file('新任命多人-markdown格式.md')
+    if not content:
+        print("❌ 无法读取多人任命文件")
+        return
+    
+    try:
+        # 调用提取函数
+        result = process_webpage_with_QWen(content, "2025-01-15")
+        
+        # 添加调试信息
+        print(f"🔍 调试信息: 函数返回结果类型: {type(result)}")
+        print(f"🔍 调试信息: 函数返回结果长度: {len(result) if isinstance(result, list) else 'N/A'}")
+        
+        # 保存结果
+        save_result_to_file(result, 'test_result_multiple_person.json')
+        
+        # 分析结果 (根据文件内容,应该有16个人员)
+        analyze_extraction_quality(result, expected_count=16, test_name="多人任命")
+        
+    except Exception as e:
+        logging.error(f"多人提取测试失败: {str(e)}")
+        print(f"❌ 多人提取测试失败: {str(e)}")
+
+def main():
+    """主测试函数"""
+    print("开始测试QWen模型人员信息提取功能")
+    print(f"测试时间: {datetime.now().strftime('%Y-%m-%d %H:%M:%S')}")
+    
+    # 检查环境变量
+    if not os.environ.get('QWEN_API_KEY'):
+        print("⚠️  警告:未设置 QWEN_API_KEY 环境变量,将使用代码中的默认值")
+    
+    # 测试单人提取
+    test_single_person_extraction()
+    
+    # 测试多人提取
+    test_multiple_person_extraction()
+    
+    print("\n" + "="*60)
+    print("测试完成")
+    print("="*60)
+    print("结果文件:")
+    print("- test_result_single_person.json (单人提取结果)")
+    print("- test_result_multiple_person.json (多人提取结果)")
+    print("- test_qwen_extraction.log (测试日志)")
+
+if __name__ == "__main__":
+    main() 

+ 381 - 0
test_result_multiple_person.json

@@ -0,0 +1,381 @@
+[
+  {
+    "name_zh": "曲晶 女士",
+    "name_en": "",
+    "title_zh": "市场营销副总裁",
+    "title_en": "",
+    "hotel_zh": "北京诺金国际酒店管理有限责任公司",
+    "hotel_en": "",
+    "brand_group": "诺金国际",
+    "career_path": [
+      {
+        "date": "职业生涯始于",
+        "company": "洲际酒店集团",
+        "position": "单体酒店营销领域"
+      },
+      {
+        "date": "2009年起",
+        "company": "洲际集团总部",
+        "position": "中国北区商务业绩总监"
+      }
+    ],
+    "pic_url": "https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMv1KibBj8xUWy2I6PrteB53OrribYjsSOR9COewenozAQJhKeU5ibhzbnw/640?wx_fmt=jpeg"
+  },
+  {
+    "name_zh": "扎西央宗 女士",
+    "name_en": "Tashi",
+    "title_zh": "总经理",
+    "title_en": "General Manager",
+    "hotel_zh": "北海涠洲岛悦苑酒店",
+    "hotel_en": "",
+    "brand_group": "悦榕集团",
+    "career_path": [
+      {
+        "date": "2005年8月",
+        "company": "Banyan Tree Ringha",
+        "position": "Recreation Manager"
+      },
+      {
+        "date": "2011年11月",
+        "company": "Banyan Tree Ringha",
+        "position": "Hotel Manager"
+      },
+      {
+        "date": "2015年4月",
+        "company": "Angsana Tengchong Hot Spring",
+        "position": ""
+      },
+      {
+        "date": "2018年5月",
+        "company": "Banyan Tree Tengchong",
+        "position": ""
+      },
+      {
+        "date": "2019年4月",
+        "company": "Angsana Leishan",
+        "position": ""
+      },
+      {
+        "date": "2019年12月",
+        "company": "Banyan Tree Jiuzhaigou",
+        "position": "General Manager"
+      },
+      {
+        "date": "2021年10月",
+        "company": "Angsana Leishan",
+        "position": "General Manager"
+      }
+    ],
+    "pic_url": "https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUM7dgmvVbvFsnRWnia6r8uaXliaHlZtCqibm4icfVIewqxB6G9eAVJgzvfIw/640?wx_fmt=jpeg"
+  },
+  {
+    "name_zh": "孔祥俊 先生",
+    "name_en": "Mr. Justin Kong",
+    "title_zh": "总经理",
+    "title_en": "General Manager",
+    "hotel_zh": "上海嘉定凯悦酒店",
+    "hotel_en": "Hyatt Regency Shanghai Jiading",
+    "brand_group": "凯悦",
+    "career_path": [
+      {
+        "date": "",
+        "company": "喜达屋集团、万豪集团和凯悦集团",
+        "position": ""
+      },
+      {
+        "date": "",
+        "company": "海南富力海洋欢乐世界度假区凯悦酒店",
+        "position": ""
+      }
+    ],
+    "pic_url": "https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMQT0VK83yKy7KnuoywicwF7kgOpzsPXnY3HqBGh1RH51cr1ibsxia9CfQg/640?wx_fmt=jpeg"
+  },
+  {
+    "name_zh": "戴庆丰 先生",
+    "name_en": "Mr. David Dai",
+    "title_zh": "总经理",
+    "title_en": "General Manager",
+    "hotel_zh": "合肥皇冠假日酒店",
+    "hotel_en": "Crowne Plaza Hefei",
+    "brand_group": "洲际酒店集团",
+    "career_path": [
+      {
+        "date": "2007年",
+        "company": "合肥海汇假日酒店",
+        "position": "销售总监"
+      },
+      {
+        "date": "2012年",
+        "company": "合肥皇冠假日酒店",
+        "position": "市场销售总监"
+      },
+      {
+        "date": "2012至2020年间",
+        "company": "合肥多家酒店",
+        "position": ""
+      },
+      {
+        "date": "加入合肥皇冠假日以前",
+        "company": "舟山喜来登绿城酒店及舟山朱家尖绿城威斯汀度假酒店",
+        "position": "酒店群总经理"
+      }
+    ],
+    "pic_url": "https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMo7PDwbBwOZECbzsPozwPNO8fuicYETox9HibjyCS7iahricDNp95a27nqw/640?wx_fmt=jpeg"
+  },
+  {
+    "name_zh": "金涛 先生",
+    "name_en": "Mr. Victor Jin",
+    "title_zh": "总经理",
+    "title_en": "General Manager",
+    "hotel_zh": "厦门泛太平洋大酒店",
+    "hotel_en": "Pan Pacific Xiamen",
+    "brand_group": "新加坡泛太平洋酒店集团(PPHG)",
+    "career_path": [
+      {
+        "date": "履新前",
+        "company": "重庆华宇温德姆至尊豪廷大酒店",
+        "position": "总经理"
+      },
+      {
+        "date": "",
+        "company": "香格里拉集团、洲际集团、雅高集团、丽笙集团及温德姆",
+        "position": "总经理"
+      }
+    ],
+    "pic_url": "https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMKaTpJxloMebxzKdBq23giayekwTDAZEiaJqXDT7xb9Pxuib6N3DatBLWQ/640?wx_fmt=jpeg"
+  },
+  {
+    "name_zh": "聂磊 先生",
+    "name_en": "Mr. Will Nie",
+    "title_zh": "总经理",
+    "title_en": "General Manager",
+    "hotel_zh": "大连硬石酒店",
+    "hotel_en": "",
+    "brand_group": "硬石酒店集团",
+    "career_path": [
+      {
+        "date": "2025-07-04",
+        "hotel_en": "",
+        "hotel_zh": "大连硬石酒店",
+        "image_path": "",
+        "source": "webpage_extraction",
+        "title_en": "General Manager",
+        "title_zh": "总经理"
+      }
+    ],
+    "pic_url": "https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMjKvztRHQqKxN8UQYuSfeibAIWpgAgNyEdA4SMAayFUcCl7DE2CBnrew/640?wx_fmt=jpeg"
+  },
+  {
+    "name_zh": "张雪婷 女士",
+    "name_en": "Ms. Jane Zhang",
+    "title_zh": "总经理",
+    "title_en": "General Manager",
+    "hotel_zh": "洛阳浩德诺富特酒店",
+    "hotel_en": "Novotel Luoyang Honden",
+    "brand_group": "",
+    "career_path": [
+      {
+        "date": "2025-07-04",
+        "hotel_en": "Novotel Luoyang Honden",
+        "hotel_zh": "洛阳浩德诺富特酒店",
+        "image_path": "",
+        "source": "webpage_extraction",
+        "title_en": "General Manager",
+        "title_zh": "总经理"
+      }
+    ],
+    "pic_url": "https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMXUgH2MaIFVoxuwgAesYIgkr9VqIIIImXsaqjJ14M4TPVmxR2iavTliaw/640?wx_fmt=jpeg"
+  },
+  {
+    "name_zh": "刘志强 先生",
+    "name_en": "Mr. Tony Liu",
+    "title_zh": "总经理",
+    "title_en": "General Manager",
+    "hotel_zh": "嘉辉会丽呈华廷酒店、嘉辉会度假酒店",
+    "hotel_en": "",
+    "brand_group": "",
+    "career_path": [
+      {
+        "date": "2025-07-04",
+        "hotel_en": "",
+        "hotel_zh": "嘉辉会丽呈华廷酒店、嘉辉会度假酒店",
+        "image_path": "",
+        "source": "webpage_extraction",
+        "title_en": "General Manager",
+        "title_zh": "总经理"
+      }
+    ],
+    "pic_url": "https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMiawPNz2NlCKgLmkT8H3a9sjq3nPORdILsFPvibOtia7poovfV8E3vIJxw/640?wx_fmt=jpeg"
+  },
+  {
+    "name_zh": "卜伟 先生",
+    "name_en": "",
+    "title_zh": "市场销售总监",
+    "title_en": "Director of Sales & Marketing",
+    "hotel_zh": "西安浐灞华邑酒店与西安浐灞假日酒店",
+    "hotel_en": "HUALUXE Xi’an Chanba and Holiday Inn Xi’an Chanba",
+    "brand_group": "洲际酒店集团",
+    "career_path": [
+      {
+        "date": "2025-07-04",
+        "hotel_en": "HUALUXE Xi’an Chanba and Holiday Inn Xi’an Chanba",
+        "hotel_zh": "西安浐灞华邑酒店与西安浐灞假日酒店",
+        "image_path": "",
+        "source": "webpage_extraction",
+        "title_en": "Director of Sales & Marketing",
+        "title_zh": "市场销售总监"
+      }
+    ],
+    "pic_url": "https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMiaOvNHRuIqEu3vXNH233rgqiahia7Pgwc8VGYBjpUnWXwo2e83Rr4ONDA/640?wx_fmt=jpeg"
+  },
+  {
+    "name_zh": "缪慧 女士",
+    "name_en": "",
+    "title_zh": "市场销售总监",
+    "title_en": "",
+    "hotel_zh": "北海涠洲岛悦苑酒店",
+    "hotel_en": "",
+    "brand_group": "",
+    "career_path": [
+      {
+        "date": "2025-07-04",
+        "hotel_en": "",
+        "hotel_zh": "北海涠洲岛悦苑酒店",
+        "image_path": "",
+        "source": "webpage_extraction",
+        "title_en": "",
+        "title_zh": "市场销售总监"
+      }
+    ],
+    "pic_url": "https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMdMY4KNzSEhAOaq0SX9iaTWuH32h07dR9OGpKhD1wiaMRKo3JbXScxlOw/640?wx_fmt=jpeg"
+  },
+  {
+    "name_zh": "温国游 先生",
+    "name_en": "",
+    "title_zh": "财务总监",
+    "title_en": "",
+    "hotel_zh": "北海涠洲岛悦苑酒店",
+    "hotel_en": "",
+    "brand_group": "",
+    "career_path": [
+      {
+        "date": "2025-07-04",
+        "hotel_en": "",
+        "hotel_zh": "北海涠洲岛悦苑酒店",
+        "image_path": "",
+        "source": "webpage_extraction",
+        "title_en": "",
+        "title_zh": "财务总监"
+      }
+    ],
+    "pic_url": "https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMasnwkZLPElATicVT7FXaia7vDrwsiclxjIQBx0oZeibfHE2eiaiakqP9OvAA/640?wx_fmt=jpeg"
+  },
+  {
+    "name_zh": "文远超 先生",
+    "name_en": "",
+    "title_zh": "餐饮总监",
+    "title_en": "",
+    "hotel_zh": "北海涠洲岛悦苑酒店",
+    "hotel_en": "",
+    "brand_group": "",
+    "career_path": [
+      {
+        "date": "2025-07-04",
+        "hotel_en": "",
+        "hotel_zh": "北海涠洲岛悦苑酒店",
+        "image_path": "",
+        "source": "webpage_extraction",
+        "title_en": "",
+        "title_zh": "餐饮总监"
+      }
+    ],
+    "pic_url": "https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUM3t83PNJPe1HsnAGmNWFTnjP9BqZY4ASABUuOEwick0BJtSjRICNtyQw/640?wx_fmt=jpeg"
+  },
+  {
+    "name_zh": "王亚铭 先生",
+    "name_en": "Mr.Vincent Wang",
+    "title_zh": "餐饮总监",
+    "title_en": "Director of Food & Beverage",
+    "hotel_zh": "武汉世茂希尔顿酒店",
+    "hotel_en": "Hilton Wuhan Riverside Hotel",
+    "brand_group": "",
+    "career_path": [
+      {
+        "date": "2007年",
+        "company": "迪拜福朋喜来登",
+        "position": "开启他的职业生涯"
+      },
+      {
+        "date": "加入武汉世茂希尔顿酒店前",
+        "company": "海宁华邑酒店",
+        "position": "全权负责餐饮部整体运行和经营"
+      }
+    ],
+    "pic_url": "https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUM2PpwKG5502CAIH0icCbYFW4FAOrkQiahueiaicXCA0FNIjiag6n0QjL2H3Q/640?wx_fmt=jpeg"
+  },
+  {
+    "name_zh": "赵先托 先生",
+    "name_en": "",
+    "title_zh": "餐饮总监",
+    "title_en": "Director of Food and Beverage",
+    "hotel_zh": "三亚湾海居铂尔曼度假酒店",
+    "hotel_en": "Pullman Oceanview Sanya Bay Resort & Spa",
+    "brand_group": "雅高集团",
+    "career_path": [
+      {
+        "date": "职业生涯始于",
+        "company": "全球高端酒店集团",
+        "position": ""
+      },
+      {
+        "date": "",
+        "company": "希尔顿(Hilton)、香格里拉(Shangri-La)及莱佛士(Raffles)",
+        "position": "担任重要的职务"
+      }
+    ],
+    "pic_url": "https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMenVkCQ36ZDVT2QicFhYjyIaviaIoZcLSZQcJ4rjDvjiaicPmiaVet0bde4g/640?wx_fmt=jpeg"
+  },
+  {
+    "name_zh": "盘海文 先生",
+    "name_en": "",
+    "title_zh": "工程总监",
+    "title_en": "",
+    "hotel_zh": "北海涠洲岛悦苑酒店",
+    "hotel_en": "",
+    "brand_group": "",
+    "career_path": [
+      {
+        "date": "",
+        "company": "北海香格里拉、温州香格里拉、桂林香格里拉",
+        "position": ""
+      },
+      {
+        "date": "",
+        "company": "丽江洲际及英迪格酒店、温德姆酒店",
+        "position": ""
+      }
+    ],
+    "pic_url": "https://mmecoa.qpic_cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMHTQ4fE6EiaIy7webgxUCyoTddAttjb0lAaDBkyGzupgYTwKkcCVQjVQ/640?wx_fmt=jpeg"
+  },
+  {
+    "name_zh": "陆尤喜 先生",
+    "name_en": "Mr. Paul Lu",
+    "title_zh": "工程总监",
+    "title_en": "Director of Engineering",
+    "hotel_zh": "深圳中洲万豪酒店",
+    "hotel_en": "Shenzhen Marriott Hotel Nanshan",
+    "brand_group": "",
+    "career_path": [
+      {
+        "date": "2025-07-04",
+        "hotel_en": "Shenzhen Marriott Hotel Nanshan",
+        "hotel_zh": "深圳中洲万豪酒店",
+        "image_path": "",
+        "source": "webpage_extraction",
+        "title_en": "Director of Engineering",
+        "title_zh": "工程总监"
+      }
+    ],
+    "pic_url": "https://mmecoa.qpic_cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMNA765v9gQhBqYkmcZksH3FfB0dJNZQ7DABXjXsBqicVSzibpjCfiaTjAA/640?wx_fmt=jpeg"
+  }
+]

+ 23 - 0
test_result_single_person.json

@@ -0,0 +1,23 @@
+[
+  {
+    "name_zh": "周银萍",
+    "name_en": "Sandra Zhou",
+    "title_zh": "人力资源总监",
+    "title_en": "Director of Human Resources",
+    "hotel_zh": "深圳中洲万豪酒店",
+    "hotel_en": "Shenzhen Marriott Hotel Nanshan",
+    "brand_group": "万豪",
+    "career_path": [
+      {
+        "date": "2025-07-04",
+        "hotel_en": "Shenzhen Marriott Hotel Nanshan",
+        "hotel_zh": "深圳中洲万豪酒店",
+        "image_path": "",
+        "source": "webpage_extraction",
+        "title_en": "Director of Human Resources",
+        "title_zh": "人力资源总监"
+      }
+    ],
+    "pic_url": "https://mmbiz.qpic.cn/sz_mmbiz_jpg/UOfXdu2ZbTdomIosTR7sMXCbtjMXRHTSkwudn71WJOrkOzA7IYQyYvjRpPQ80cvyawKNSibxiafjCuamsVJlUo1A/640?wx_fmt=jpeg"
+  }
+]

+ 160 - 0
test_webpage_parse.py

@@ -0,0 +1,160 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+"""
+测试网页解析功能
+"""
+
+import json
+import sys
+import os
+
+# 添加项目根目录到Python路径
+sys.path.append(os.path.dirname(os.path.dirname(os.path.abspath(__file__))))
+
+from app.core.data_parse.parse_web import process_webpage_with_QWen
+
+def test_single_person():
+    """测试单人任命信息提取"""
+    print("=" * 50)
+    print("测试单人任命信息提取")
+    print("=" * 50)
+    
+    try:
+        # 读取单人任命文件
+        with open('新任命单人-markdown格式.md', 'r', encoding='utf-8') as f:
+            single_person_content = f.read()
+        
+        print("开始解析单人任命信息...")
+        result = process_webpage_with_QWen(single_person_content, "2025-01-15")
+        
+        print("解析结果:")
+        print(json.dumps(result, ensure_ascii=False, indent=2))
+        
+        # 验证结果
+        if isinstance(result, list) and len(result) > 0:
+            person = result[0]
+            print(f"\n提取的人员信息:")
+            print(f"中文姓名: {person.get('name_zh', 'N/A')}")
+            print(f"英文姓名: {person.get('name_en', 'N/A')}")
+            print(f"中文职位: {person.get('title_zh', 'N/A')}")
+            print(f"英文职位: {person.get('title_en', 'N/A')}")
+            print(f"中文酒店: {person.get('hotel_zh', 'N/A')}")
+            print(f"英文酒店: {person.get('hotel_en', 'N/A')}")
+            print(f"品牌组合: {person.get('brand_group', 'N/A')}")
+            print(f"照片链接: {person.get('pic_url', 'N/A')}")
+            print(f"职业轨迹: {len(person.get('career_path', []))} 条记录")
+        else:
+            print("❌ 解析失败:返回结果格式不正确")
+            
+    except Exception as e:
+        print(f"❌ 单人测试失败: {str(e)}")
+
+def test_multiple_persons():
+    """测试多人任命信息提取"""
+    print("\n" + "=" * 50)
+    print("测试多人任命信息提取")
+    print("=" * 50)
+    
+    try:
+        # 读取多人任命文件
+        with open('新任命多人-markdown格式.md', 'r', encoding='utf-8') as f:
+            multiple_persons_content = f.read()
+        
+        print("开始解析多人任命信息...")
+        result = process_webpage_with_QWen(multiple_persons_content, "2025-01-15")
+        
+        print("解析结果:")
+        print(json.dumps(result, ensure_ascii=False, indent=2))
+        
+        # 验证结果
+        if isinstance(result, list):
+            print(f"\n✅ 成功提取 {len(result)} 个人员信息:")
+            for i, person in enumerate(result, 1):
+                print(f"\n第 {i} 个人员:")
+                print(f"  中文姓名: {person.get('name_zh', 'N/A')}")
+                print(f"  英文姓名: {person.get('name_en', 'N/A')}")
+                print(f"  中文职位: {person.get('title_zh', 'N/A')}")
+                print(f"  英文职位: {person.get('title_en', 'N/A')}")
+                print(f"  中文酒店: {person.get('hotel_zh', 'N/A')}")
+                print(f"  英文酒店: {person.get('hotel_en', 'N/A')}")
+                print(f"  品牌组合: {person.get('brand_group', 'N/A')}")
+                print(f"  照片链接: {person.get('pic_url', 'N/A')}")
+                print(f"  职业轨迹: {len(person.get('career_path', []))} 条记录")
+        else:
+            print("❌ 解析失败:返回结果格式不正确")
+            
+    except Exception as e:
+        print(f"❌ 多人测试失败: {str(e)}")
+
+def test_field_validation():
+    """测试字段验证"""
+    print("\n" + "=" * 50)
+    print("字段验证测试")
+    print("=" * 50)
+    
+    # 测试简单的文本
+    test_content = """
+![照片](https://example.com/photo.jpg)
+
+**张三先生**
+**Mr. Zhang San**
+
+北京万豪酒店
+总经理
+
+张三先生拥有15年酒店管理经验...
+"""
+    
+    try:
+        print("测试简单文本解析...")
+        result = process_webpage_with_QWen(test_content, "2025-01-15")
+        
+        if isinstance(result, list) and len(result) > 0:
+            person = result[0]
+            required_fields = ['name_zh', 'name_en', 'title_zh', 'title_en', 
+                             'hotel_zh', 'hotel_en', 'brand_group', 'career_path', 'pic_url']
+            
+            print("字段完整性检查:")
+            all_fields_present = True
+            for field in required_fields:
+                if field in person:
+                    print(f"  ✅ {field}: {person[field]}")
+                else:
+                    print(f"  ❌ {field}: 缺失")
+                    all_fields_present = False
+            
+            if all_fields_present:
+                print("\n✅ 所有必要字段都存在")
+            else:
+                print("\n❌ 部分字段缺失")
+        else:
+            print("❌ 解析失败")
+            
+    except Exception as e:
+        print(f"❌ 字段验证测试失败: {str(e)}")
+
+if __name__ == "__main__":
+    print("网页解析功能测试")
+    print("确保已设置 QWEN_API_KEY 环境变量")
+    
+    # 检查API密钥
+    if not os.environ.get('QWEN_API_KEY'):
+        print("⚠️  警告: 未设置 QWEN_API_KEY 环境变量")
+    
+    # 检查测试文件是否存在
+    if not os.path.exists('新任命单人-markdown格式.md'):
+        print("❌ 测试文件 '新任命单人-markdown格式.md' 不存在")
+        sys.exit(1)
+    
+    if not os.path.exists('新任命多人-markdown格式.md'):
+        print("❌ 测试文件 '新任命多人-markdown格式.md' 不存在")
+        sys.exit(1)
+    
+    # 运行测试
+    test_single_person()
+    test_multiple_persons()
+    test_field_validation()
+    
+    print("\n" + "=" * 50)
+    print("测试完成")
+    print("=" * 50) 

+ 0 - 637
webpage-parse-api-documentation.md

@@ -1,637 +0,0 @@
-# 网页文本解析 API 接口说明文档
-
-## 接口概述
-
-**接口名称**: 网页文本解析接口  
-**接口路径**: `POST /api/data_parse/webpage-parse`  
-**接口功能**: 解析网页 Markdown 文本并提取人员信息  
-**版本**: v1.0  
-**最后更新**: 2024-12-19  
-
-## 功能描述
-
-该接口使用阿里云 Qwen VL Max 模型智能解析网页 Markdown 格式文本,自动提取其中的人员信息,包括姓名、职位、联系方式、公司信息、照片链接等多种字段。适用于从网页内容、人员简介、名片信息等文本中提取结构化数据。
-
-## 接口地址
-
-```
-POST http://your-domain.com/api/data_parse/webpage-parse
-```
-
-## 请求参数
-
-### 请求头 (Headers)
-
-| 参数名 | 类型 | 必填 | 说明 |
-|--------|------|------|------|
-| Content-Type | string | 是 | application/json |
-
-### 请求体 (Request Body)
-
-| 参数名 | 类型 | 必填 | 长度限制 | 说明 |
-|--------|------|------|----------|------|
-| markdown_text | string | 是 | 10-50000字符 | 网页的 Markdown 格式文本内容 |
-
-#### 请求体示例
-
-```json
-{
-    "markdown_text": "# 张三 - 高级酒店经理\n\n## 个人信息\n\n**职位**: 高级经理  \n**公司**: 香格里拉大酒店  \n**手机**: 13800138000  \n**邮箱**: zhangsan@example.com  \n**地址**: 北京市朝阳区建国路1号  \n\n![个人照片](https://example.com/photos/zhangsan.jpg)\n\n## 工作经历\n\n- 2020-至今: 香格里拉大酒店 高级经理\n- 2018-2020: 凯悦酒店 部门经理"
-}
-```
-
-## 响应参数
-
-### 成功响应 (200 OK)
-
-```json
-{
-    "success": true,
-    "message": "网页文本解析成功",
-    "data": {
-        "name_zh": "张三",
-        "name_en": "Zhang San",
-        "title_zh": "高级经理",
-        "title_en": "Senior Manager",
-        "hotel_zh": "香格里拉大酒店",
-        "hotel_en": "Shangri-La Hotel",
-        "mobile": "13800138000",
-        "phone": "",
-        "email": "zhangsan@example.com",
-        "address_zh": "北京市朝阳区建国路1号",
-        "address_en": "",
-        "postal_code_zh": "",
-        "postal_code_en": "",
-        "birthday": "",
-        "age": 0,
-        "native_place": "",
-        "residence": "",
-        "brand_group": "",
-        "career_path": [
-            {
-                "date": "2024-12-19",
-                "hotel_zh": "香格里拉大酒店",
-                "hotel_en": "Shangri-La Hotel",
-                "title_zh": "高级经理",
-                "title_en": "Senior Manager",
-                "image_path": "",
-                "source": "webpage_extraction"
-            }
-        ],
-        "affiliation": [],
-        "pic_url": "https://example.com/photos/zhangsan.jpg"
-    }
-}
-```
-
-### 响应字段说明
-
-| 字段名 | 类型 | 说明 |
-|--------|------|------|
-| success | boolean | 请求是否成功 |
-| message | string | 响应消息 |
-| data | object | 提取的人员信息数据 |
-
-#### data 对象字段说明
-
-| 字段名 | 类型 | 说明 |
-|--------|------|------|
-| name_zh | string | 中文姓名 |
-| name_en | string | 英文姓名 |
-| title_zh | string | 中文职位/头衔 |
-| title_en | string | 英文职位/头衔 |
-| hotel_zh | string | 中文酒店/公司名称 |
-| hotel_en | string | 英文酒店/公司名称 |
-| mobile | string | 手机号码(多个用逗号分隔,最多3个) |
-| phone | string | 固定电话(多个用逗号分隔) |
-| email | string | 电子邮箱 |
-| address_zh | string | 中文地址 |
-| address_en | string | 英文地址 |
-| postal_code_zh | string | 中文邮政编码 |
-| postal_code_en | string | 英文邮政编码 |
-| birthday | string | 生日(格式:YYYY-MM-DD) |
-| age | integer | 年龄 |
-| native_place | string | 籍贯 |
-| residence | string | 居住地 |
-| brand_group | string | 品牌组合 |
-| career_path | array | 职业轨迹(JSON数组) |
-| affiliation | array | 隶属关系(JSON数组) |
-| pic_url | string | 照片链接URL |
-
-## 错误响应
-
-### 400 - 请求参数错误
-
-```json
-{
-    "success": false,
-    "message": "错误描述",
-    "data": null
-}
-```
-
-**常见错误消息**:
-- `请求必须是 JSON 格式`
-- `缺少必填参数: markdown_text`
-- `markdown_text 必须是字符串类型`
-- `markdown_text 内容不能为空`
-- `markdown_text 内容过长,最大支持50KB`
-- `markdown_text 内容过短,无法进行有效解析`
-
-### 500 - 服务器错误
-
-```json
-{
-    "success": false,
-    "message": "网页文本解析失败: 具体错误信息",
-    "data": null
-}
-```
-
-## 前端调用示例
-
-### JavaScript (原生)
-
-```javascript
-async function parseWebpageText(markdownText) {
-    try {
-        const response = await fetch('/api/data_parse/webpage-parse', {
-            method: 'POST',
-            headers: {
-                'Content-Type': 'application/json',
-            },
-            body: JSON.stringify({
-                markdown_text: markdownText
-            })
-        });
-
-        const result = await response.json();
-        
-        if (result.success) {
-            console.log('解析成功:', result.data);
-            return result.data;
-        } else {
-            console.error('解析失败:', result.message);
-            throw new Error(result.message);
-        }
-    } catch (error) {
-        console.error('请求失败:', error);
-        throw error;
-    }
-}
-
-// 使用示例
-const markdownContent = `
-# 李明 - 酒店总经理
-
-## 联系信息
-- 手机: 13912345678
-- 邮箱: liming@hotel.com
-- 公司: 北京国际大酒店
-
-![照片](https://example.com/photos/liming.jpg)
-`;
-
-parseWebpageText(markdownContent)
-    .then(data => {
-        console.log('提取的人员信息:', data);
-    })
-    .catch(error => {
-        console.error('解析出错:', error);
-    });
-```
-
-### JavaScript (jQuery)
-
-```javascript
-function parseWebpageTextWithJQuery(markdownText) {
-    return $.ajax({
-        url: '/api/data_parse/webpage-parse',
-        type: 'POST',
-        contentType: 'application/json',
-        data: JSON.stringify({
-            markdown_text: markdownText
-        }),
-        success: function(result) {
-            if (result.success) {
-                console.log('解析成功:', result.data);
-                return result.data;
-            } else {
-                console.error('解析失败:', result.message);
-            }
-        },
-        error: function(xhr, status, error) {
-            console.error('请求失败:', error);
-        }
-    });
-}
-
-// 使用示例
-const markdownText = "# 王芳\n职位: 前台经理\n手机: 13800000000";
-parseWebpageTextWithJQuery(markdownText);
-```
-
-### Vue.js 示例
-
-```vue
-<template>
-  <div class="webpage-parser">
-    <h2>网页文本解析</h2>
-    
-    <div class="input-section">
-      <label for="markdown-input">输入 Markdown 文本:</label>
-      <textarea
-        id="markdown-input"
-        v-model="markdownText"
-        rows="10"
-        cols="80"
-        placeholder="请输入网页的 Markdown 格式文本..."
-      ></textarea>
-      <br>
-      <button @click="parseText" :disabled="loading">
-        {{ loading ? '解析中...' : '开始解析' }}
-      </button>
-    </div>
-
-    <div v-if="result" class="result-section">
-      <h3>解析结果:</h3>
-      <div v-if="result.success" class="success-result">
-        <p><strong>姓名:</strong> {{ result.data.name_zh }} / {{ result.data.name_en }}</p>
-        <p><strong>职位:</strong> {{ result.data.title_zh }} / {{ result.data.title_en }}</p>
-        <p><strong>公司:</strong> {{ result.data.hotel_zh }} / {{ result.data.hotel_en }}</p>
-        <p><strong>手机:</strong> {{ result.data.mobile }}</p>
-        <p><strong>邮箱:</strong> {{ result.data.email }}</p>
-        <p><strong>照片:</strong> 
-          <img v-if="result.data.pic_url" :src="result.data.pic_url" alt="照片" style="max-width: 100px;">
-          <span v-else>无</span>
-        </p>
-        <details>
-          <summary>完整数据</summary>
-          <pre>{{ JSON.stringify(result.data, null, 2) }}</pre>
-        </details>
-      </div>
-      <div v-else class="error-result">
-        <p style="color: red;">解析失败: {{ result.message }}</p>
-      </div>
-    </div>
-  </div>
-</template>
-
-<script>
-import axios from 'axios';
-
-export default {
-  name: 'WebpageParser',
-  data() {
-    return {
-      markdownText: '',
-      result: null,
-      loading: false
-    };
-  },
-  methods: {
-    async parseText() {
-      if (!this.markdownText.trim()) {
-        alert('请输入 Markdown 文本');
-        return;
-      }
-
-      this.loading = true;
-      this.result = null;
-
-      try {
-        const response = await axios.post('/api/data_parse/webpage-parse', {
-          markdown_text: this.markdownText
-        });
-
-        this.result = response.data;
-      } catch (error) {
-        this.result = {
-          success: false,
-          message: error.response?.data?.message || error.message
-        };
-      } finally {
-        this.loading = false;
-      }
-    }
-  }
-};
-</script>
-
-<style scoped>
-.webpage-parser {
-  max-width: 800px;
-  margin: 0 auto;
-  padding: 20px;
-}
-
-.input-section {
-  margin-bottom: 30px;
-}
-
-.input-section label {
-  display: block;
-  margin-bottom: 10px;
-  font-weight: bold;
-}
-
-.input-section textarea {
-  width: 100%;
-  margin-bottom: 10px;
-}
-
-.input-section button {
-  padding: 10px 20px;
-  background-color: #007bff;
-  color: white;
-  border: none;
-  border-radius: 4px;
-  cursor: pointer;
-}
-
-.input-section button:disabled {
-  background-color: #6c757d;
-  cursor: not-allowed;
-}
-
-.result-section {
-  border: 1px solid #ddd;
-  padding: 20px;
-  border-radius: 4px;
-}
-
-.success-result p {
-  margin: 10px 0;
-}
-
-.error-result {
-  background-color: #f8d7da;
-  padding: 10px;
-  border-radius: 4px;
-}
-</style>
-```
-
-### React 示例
-
-```jsx
-import React, { useState } from 'react';
-import axios from 'axios';
-
-function WebpageParser() {
-  const [markdownText, setMarkdownText] = useState('');
-  const [result, setResult] = useState(null);
-  const [loading, setLoading] = useState(false);
-
-  const parseText = async () => {
-    if (!markdownText.trim()) {
-      alert('请输入 Markdown 文本');
-      return;
-    }
-
-    setLoading(true);
-    setResult(null);
-
-    try {
-      const response = await axios.post('/api/data_parse/webpage-parse', {
-        markdown_text: markdownText
-      });
-
-      setResult(response.data);
-    } catch (error) {
-      setResult({
-        success: false,
-        message: error.response?.data?.message || error.message
-      });
-    } finally {
-      setLoading(false);
-    }
-  };
-
-  return (
-    <div style={{ maxWidth: '800px', margin: '0 auto', padding: '20px' }}>
-      <h2>网页文本解析</h2>
-      
-      <div style={{ marginBottom: '30px' }}>
-        <label style={{ display: 'block', marginBottom: '10px', fontWeight: 'bold' }}>
-          输入 Markdown 文本:
-        </label>
-        <textarea
-          value={markdownText}
-          onChange={(e) => setMarkdownText(e.target.value)}
-          rows={10}
-          cols={80}
-          placeholder="请输入网页的 Markdown 格式文本..."
-          style={{ width: '100%', marginBottom: '10px' }}
-        />
-        <br />
-        <button
-          onClick={parseText}
-          disabled={loading}
-          style={{
-            padding: '10px 20px',
-            backgroundColor: loading ? '#6c757d' : '#007bff',
-            color: 'white',
-            border: 'none',
-            borderRadius: '4px',
-            cursor: loading ? 'not-allowed' : 'pointer'
-          }}
-        >
-          {loading ? '解析中...' : '开始解析'}
-        </button>
-      </div>
-
-      {result && (
-        <div style={{ border: '1px solid #ddd', padding: '20px', borderRadius: '4px' }}>
-          <h3>解析结果:</h3>
-          {result.success ? (
-            <div>
-              <p><strong>姓名:</strong> {result.data.name_zh} / {result.data.name_en}</p>
-              <p><strong>职位:</strong> {result.data.title_zh} / {result.data.title_en}</p>
-              <p><strong>公司:</strong> {result.data.hotel_zh} / {result.data.hotel_en}</p>
-              <p><strong>手机:</strong> {result.data.mobile}</p>
-              <p><strong>邮箱:</strong> {result.data.email}</p>
-              <p><strong>照片:</strong> 
-                {result.data.pic_url ? (
-                  <img src={result.data.pic_url} alt="照片" style={{ maxWidth: '100px' }} />
-                ) : (
-                  <span>无</span>
-                )}
-              </p>
-              <details>
-                <summary>完整数据</summary>
-                <pre>{JSON.stringify(result.data, null, 2)}</pre>
-              </details>
-            </div>
-          ) : (
-            <div style={{ backgroundColor: '#f8d7da', padding: '10px', borderRadius: '4px' }}>
-              <p style={{ color: 'red' }}>解析失败: {result.message}</p>
-            </div>
-          )}
-        </div>
-      )}
-    </div>
-  );
-}
-
-export default WebpageParser;
-```
-
-## 测试用例
-
-### 测试用例 1: 基本人员信息解析
-
-**输入**:
-```json
-{
-    "markdown_text": "# 李华\n\n**职位**: 酒店经理  \n**公司**: 万豪酒店  \n**手机**: 13900139000  \n**邮箱**: lihua@marriott.com  \n\n![照片](https://example.com/photos/lihua.jpg)"
-}
-```
-
-**预期输出**:
-```json
-{
-    "success": true,
-    "message": "网页文本解析成功",
-    "data": {
-        "name_zh": "李华",
-        "title_zh": "酒店经理",
-        "hotel_zh": "万豪酒店",
-        "mobile": "13900139000",
-        "email": "lihua@marriott.com",
-        "pic_url": "https://example.com/photos/lihua.jpg",
-        ...
-    }
-}
-```
-
-### 测试用例 2: 多语言信息解析
-
-**输入**:
-```json
-{
-    "markdown_text": "# 王芳 Wang Fang\n\n## Position / 职位\n- Chinese: 前台经理\n- English: Front Desk Manager\n\n## Company / 公司\n- 中文: 北京希尔顿酒店\n- English: Beijing Hilton Hotel\n\n**Contact / 联系方式**:\n- Mobile: 13700137000\n- Email: wangfang@hilton.com"
-}
-```
-
-### 测试用例 3: 复杂格式文档
-
-**输入**:
-```json
-{
-    "markdown_text": "# 员工档案\n\n## 基本信息\n\n| 字段 | 中文 | English |\n|------|------|----------|\n| 姓名 | 陈强 | Chen Qiang |\n| 职位 | 总经理 | General Manager |\n| 公司 | 上海外滩茂悦大酒店 | The Mayfair Shanghai |\n\n## 联系方式\n\n- 📱 手机: 13600136000\n- 📞 电话: 021-12345678\n- 📧 邮箱: chenqiang@mayfair.com\n- 📍 地址: 上海市黄浦区南京东路189号\n- 📮 邮编: 200001\n\n## 照片\n\n![个人照片](https://example.com/photos/chenqiang.jpg)"
-}
-```
-
-### 测试用例 4: 错误情况测试
-
-#### 4.1 空文本测试
-**输入**:
-```json
-{
-    "markdown_text": ""
-}
-```
-
-**预期输出**:
-```json
-{
-    "success": false,
-    "message": "markdown_text 内容不能为空",
-    "data": null
-}
-```
-
-#### 4.2 文本过短测试
-**输入**:
-```json
-{
-    "markdown_text": "短文本"
-}
-```
-
-**预期输出**:
-```json
-{
-    "success": false,
-    "message": "markdown_text 内容过短,无法进行有效解析",
-    "data": null
-}
-```
-
-#### 4.3 缺少参数测试
-**输入**:
-```json
-{
-    "other_field": "值"
-}
-```
-
-**预期输出**:
-```json
-{
-    "success": false,
-    "message": "缺少必填参数: markdown_text",
-    "data": null
-}
-```
-
-## cURL 测试命令
-
-### 基本测试
-```bash
-curl -X POST "http://localhost:5000/api/data_parse/webpage-parse" \
-  -H "Content-Type: application/json" \
-  -d '{
-    "markdown_text": "# 张三\n\n职位:经理\n公司:测试酒店\n手机:13800138000\nemail:test@example.com\n\n![照片](https://example.com/photo.jpg)"
-  }'
-```
-
-### 复杂文档测试
-```bash
-curl -X POST "http://localhost:5000/api/data_parse/webpage-parse" \
-  -H "Content-Type: application/json" \
-  -d '{
-    "markdown_text": "# 李明 - 高级酒店经理\n\n## 个人信息\n\n**职位**: 高级经理  \n**公司**: 香格里拉大酒店  \n**手机**: 13800138000  \n**固话**: 010-12345678  \n**邮箱**: liming@shangri-la.com  \n**地址**: 北京市朝阳区建国路1号  \n**邮编**: 100001  \n\n![个人照片](https://example.com/photos/liming.jpg)\n\n## 工作经历\n\n- 2020-至今: 香格里拉大酒店 高级经理\n- 2018-2020: 凯悦酒店 部门经理\n- 2015-2018: 万豪酒店 主管"
-  }'
-```
-
-### 错误测试
-```bash
-# 测试空文本
-curl -X POST "http://localhost:5000/api/data_parse/webpage-parse" \
-  -H "Content-Type: application/json" \
-  -d '{
-    "markdown_text": ""
-  }'
-
-# 测试缺少参数
-curl -X POST "http://localhost:5000/api/data_parse/webpage-parse" \
-  -H "Content-Type: application/json" \
-  -d '{
-    "other_field": "值"
-  }'
-```
-
-## 注意事项
-
-1. **文本长度限制**: 输入文本最小10个字符,最大50,000个字符(约50KB)
-2. **API 调用频率**: 建议控制调用频率,避免过于频繁的请求
-3. **编码格式**: 确保文本使用 UTF-8 编码,支持中英文混合内容
-4. **图片链接**: 支持提取 Markdown 图片语法 `![alt](url)` 和 HTML 图片标签 `<img src="url">`
-5. **数据准确性**: 提取结果依赖于输入文本的质量和 AI 模型的理解能力
-6. **隐私安全**: 请确保不要上传包含敏感信息的文档
-7. **错误处理**: 建议在前端实现适当的错误处理和重试机制
-
-## 更新日志
-
-### v1.0 (2024-12-19)
-- 初始版本发布
-- 支持基本人员信息提取
-- 支持照片链接提取
-- 完整的参数验证和错误处理
-- 支持中英文混合内容解析
-
----
-
-**联系方式**: 如有问题或建议,请联系开发团队。 

+ 379 - 0
webpage_parse_api_文档.md

@@ -0,0 +1,379 @@
+# 网页文本解析API接口文档
+
+## 接口概述
+
+**接口名称**: 网页文本解析接口  
+**接口路径**: `/api/data-parse/webpage-parse`  
+**请求方法**: `POST`  
+**内容类型**: `application/json`  
+**功能描述**: 解析网页Markdown文本并使用QWen AI模型提取人员任命信息
+
+---
+
+## 输入参数
+
+### 请求头
+| 参数名 | 类型 | 必填 | 说明 |
+|--------|------|------|------|
+| Content-Type | string | 是 | 必须为 `application/json` |
+
+### 请求体参数
+| 参数名 | 类型 | 必填 | 长度限制 | 说明 |
+|--------|------|------|----------|------|
+| markdown_text | string | 是 | 10-50000字符 | 网页的Markdown格式文本内容 |
+| publish_time | string | 是 | - | 发布时间,用于设置career_path中的date字段,建议格式:YYYY-MM-DD |
+
+### 请求体示例
+```json
+{
+    "markdown_text": "![照片](https://example.com/photo.jpg)\n\n**张三先生**\n**Mr. Zhang San**\n\n北京万豪酒店\n总经理\n\n张三先生拥有15年酒店管理经验...",
+    "publish_time": "2025-01-15"
+}
+```
+
+---
+
+## 输出参数
+
+### 响应格式
+所有响应均为JSON格式,包含以下基本结构:
+
+```json
+{
+    "success": boolean,
+    "message": string,
+    "data": array|null
+}
+```
+
+### 成功响应 (200)
+```json
+{
+    "success": true,
+    "message": "网页文本解析成功",
+    "data": [
+        {
+            "name_zh": "张三",
+            "name_en": "Zhang San",
+            "title_zh": "总经理",
+            "title_en": "General Manager",
+            "hotel_zh": "北京万豪酒店",
+            "hotel_en": "Beijing Marriott Hotel",
+            "brand_group": "万豪",
+            "pic_url": "https://example.com/photo.jpg",
+            "career_path": [
+                {
+                    "date": "2025-01-15",
+                    "hotel_en": "Beijing Marriott Hotel",
+                    "hotel_zh": "北京万豪酒店",
+                    "image_path": "",
+                    "source": "webpage_extraction",
+                    "title_en": "General Manager",
+                    "title_zh": "总经理"
+                }
+            ]
+        }
+    ]
+}
+```
+
+### 数据字段说明
+| 字段名 | 类型 | 说明 |
+|--------|------|------|
+| name_zh | string | 人员中文姓名 |
+| name_en | string | 人员英文姓名 |
+| title_zh | string | 中文职位/头衔 |
+| title_en | string | 英文职位/头衔 |
+| hotel_zh | string | 中文酒店/公司名称 |
+| hotel_en | string | 英文酒店/公司名称 |
+| brand_group | string | 酒店品牌集团 |
+| pic_url | string | 人员照片URL链接 |
+| career_path | array | 职业轨迹数组 |
+
+### career_path 对象说明
+| 字段名 | 类型 | 说明 |
+|--------|------|------|
+| date | string | 任命日期 (使用传入的publish_time) |
+| hotel_en | string | 英文酒店名称 |
+| hotel_zh | string | 中文酒店名称 |
+| image_path | string | 图片路径 (固定为空字符串) |
+| source | string | 数据来源 (固定为"webpage_extraction") |
+| title_en | string | 英文职位 |
+| title_zh | string | 中文职位 |
+
+---
+
+## 错误响应
+
+### 400 - 请求参数错误
+
+#### 缺少必填参数
+```json
+{
+    "success": false,
+    "message": "缺少必填参数: markdown_text",
+    "data": null
+}
+```
+
+#### 参数类型错误
+```json
+{
+    "success": false,
+    "message": "markdown_text 必须是字符串类型",
+    "data": null
+}
+```
+
+#### 内容长度错误
+```json
+{
+    "success": false,
+    "message": "markdown_text 内容过长,最大支持50KB",
+    "data": null
+}
+```
+
+#### 请求格式错误
+```json
+{
+    "success": false,
+    "message": "请求必须是 JSON 格式",
+    "data": null
+}
+```
+
+### 500 - 服务器内部错误
+```json
+{
+    "success": false,
+    "message": "网页文本解析失败: 具体错误信息",
+    "data": null
+}
+```
+
+---
+
+## 状态码说明
+
+| 状态码 | 说明 | 响应示例 |
+|--------|------|----------|
+| 200 | 解析成功 | 返回提取的人员信息数据 |
+| 400 | 请求参数错误 | 参数缺失、类型错误、内容格式问题等 |
+| 500 | 服务器内部错误 | AI模型调用失败、系统异常等 |
+
+---
+
+## 使用说明
+
+### 1. 环境要求
+- 需要配置 `QWEN_API_KEY` 环境变量
+- 服务器需要能访问阿里云QWen API
+
+### 2. 支持的内容格式
+- 支持标准Markdown格式文本
+- 支持提取照片链接(`![描述](URL)` 格式)
+- 支持中英文混合内容
+- 支持多人员信息提取
+
+### 3. 内容长度限制
+- 最小长度:10字符
+- 最大长度:50,000字符 (约50KB)
+
+### 4. 最佳实践
+- 提供结构化的Markdown内容以获得更好的提取效果
+- 照片链接应放置在人员姓名前面,通过空行分隔
+- 使用标准的日期格式 (YYYY-MM-DD) 作为 publish_time
+
+---
+
+## 测试样例
+
+### 样例1:单人信息提取
+
+**请求**:
+```bash
+curl -X POST http://localhost:5000/api/data-parse/webpage-parse \
+  -H "Content-Type: application/json" \
+  -d '{
+    "markdown_text": "![照片](https://example.com/sandra.jpg)\n\n**周银萍 女士**\n**Ms. Sandra Zhou**\n\n深圳中洲万豪酒店\n人力资源总监\n\n近日,深圳中洲万豪酒店正式任命周银萍女士为酒店人力资源总监...",
+    "publish_time": "2025-01-15"
+  }'
+```
+
+**响应**:
+```json
+{
+    "success": true,
+    "message": "网页文本解析成功",
+    "data": [
+        {
+            "name_zh": "周银萍",
+            "name_en": "Sandra Zhou",
+            "title_zh": "人力资源总监",
+            "title_en": "Director of Human Resources",
+            "hotel_zh": "深圳中洲万豪酒店",
+            "hotel_en": "Shenzhen Marriott Hotel Nanshan",
+            "brand_group": "万豪",
+            "pic_url": "https://example.com/sandra.jpg",
+            "career_path": [
+                {
+                    "date": "2025-01-15",
+                    "hotel_en": "Shenzhen Marriott Hotel Nanshan",
+                    "hotel_zh": "深圳中洲万豪酒店",
+                    "image_path": "",
+                    "source": "webpage_extraction",
+                    "title_en": "Director of Human Resources",
+                    "title_zh": "人力资源总监"
+                }
+            ]
+        }
+    ]
+}
+```
+
+### 样例2:多人信息提取
+
+**请求**:
+```bash
+curl -X POST http://localhost:5000/api/data-parse/webpage-parse \
+  -H "Content-Type: application/json" \
+  -d '{
+    "markdown_text": "**1**\n\n![照片1](https://example.com/photo1.jpg)\n\n**曲晶 女士**\n\n诺金国际\n市场营销副总裁\n\n**2**\n\n![照片2](https://example.com/photo2.jpg)\n\n**扎西央宗 女士**\n\n北海涠洲岛悦苑酒店\n总经理",
+    "publish_time": "2025-01-15"
+  }'
+```
+
+**响应**:
+```json
+{
+    "success": true,
+    "message": "网页文本解析成功",
+    "data": [
+        {
+            "name_zh": "曲晶",
+            "name_en": "",
+            "title_zh": "市场营销副总裁",
+            "title_en": "",
+            "hotel_zh": "诺金国际",
+            "hotel_en": "",
+            "brand_group": "诺金",
+            "pic_url": "https://example.com/photo1.jpg",
+            "career_path": [...]
+        },
+        {
+            "name_zh": "扎西央宗",
+            "name_en": "",
+            "title_zh": "总经理",
+            "title_en": "",
+            "hotel_zh": "北海涠洲岛悦苑酒店",
+            "hotel_en": "",
+            "brand_group": "悦榕",
+            "pic_url": "https://example.com/photo2.jpg",
+            "career_path": [...]
+        }
+    ]
+}
+```
+
+### 样例3:参数错误
+
+**请求**:
+```bash
+curl -X POST http://localhost:5000/api/data-parse/webpage-parse \
+  -H "Content-Type: application/json" \
+  -d '{
+    "markdown_text": "内容太短"
+  }'
+```
+
+**响应**:
+```json
+{
+    "success": false,
+    "message": "缺少必填参数: publish_time",
+    "data": null
+}
+```
+
+---
+
+## 开发指南
+
+### Python 示例
+```python
+import requests
+import json
+
+def parse_webpage_text(markdown_text, publish_time):
+    url = "http://localhost:5000/api/data-parse/webpage-parse"
+    headers = {"Content-Type": "application/json"}
+    data = {
+        "markdown_text": markdown_text,
+        "publish_time": publish_time
+    }
+    
+    response = requests.post(url, headers=headers, json=data)
+    return response.json()
+
+# 使用示例
+result = parse_webpage_text("网页内容...", "2025-01-15")
+if result["success"]:
+    print(f"成功提取 {len(result['data'])} 个人员信息")
+else:
+    print(f"提取失败: {result['message']}")
+```
+
+### JavaScript 示例
+```javascript
+async function parseWebpageText(markdownText, publishTime) {
+    const response = await fetch('/api/data-parse/webpage-parse', {
+        method: 'POST',
+        headers: {
+            'Content-Type': 'application/json'
+        },
+        body: JSON.stringify({
+            markdown_text: markdownText,
+            publish_time: publishTime
+        })
+    });
+    
+    return await response.json();
+}
+
+// 使用示例
+parseWebpageText("网页内容...", "2025-01-15")
+    .then(result => {
+        if (result.success) {
+            console.log(`成功提取 ${result.data.length} 个人员信息`);
+        } else {
+            console.error(`提取失败: ${result.message}`);
+        }
+    });
+```
+
+---
+
+## 注意事项
+
+1. **API密钥**: 确保服务器已正确配置 `QWEN_API_KEY` 环境变量
+2. **网络访问**: 服务器需要能够访问阿里云QWen API服务
+3. **内容质量**: 提供结构化、清晰的Markdown内容可以获得更好的提取效果
+4. **并发限制**: 建议控制并发请求数量,避免超出API调用限制
+5. **错误处理**: 建议在客户端实现适当的错误处理和重试机制
+6. **数据验证**: 建议对返回的数据进行二次验证,确保提取质量
+
+---
+
+## 更新日志
+
+**版本 2.0** (2025-01-15)
+- 新增 `publish_time` 必填参数
+- 更新 career_path 中 date 字段的设置逻辑
+- 增强参数验证和错误处理
+- 更新API文档和使用示例
+
+**版本 1.0** (初始版本)
+- 基础的网页文本解析功能
+- 支持单人和多人信息提取
+- 集成QWen AI模型 

+ 91 - 0
函数参数更新总结.md

@@ -0,0 +1,91 @@
+# process_webpage_with_QWen 函数参数更新总结
+
+## 更新概述
+
+成功修改了 `process_webpage_with_QWen` 函数,添加了新的 `publish_time` 参数,并更新了所有相关的调用位置。
+
+## 主要修改
+
+### 1. 函数签名更新
+**文件**: `app/core/data_parse/parse_web.py`
+- **原签名**: `process_webpage_with_QWen(markdown_text)`
+- **新签名**: `process_webpage_with_QWen(markdown_text, publish_time)`
+- **功能**: `publish_time` 参数用于设置 career_path 中的 date 字段值
+
+### 2. API接口更新
+**文件**: `app/api/data_parse/routes.py`
+- 更新了 `/webpage-parse` 接口
+- 新增 `publish_time` 必填参数验证
+- 更新请求体示例和文档说明
+- 修改函数调用以传递两个参数
+
+**新的请求体格式**:
+```json
+{
+    "markdown_text": "网页内容...",
+    "publish_time": "2025-01-15"
+}
+```
+
+### 3. 测试文件更新
+更新了以下测试文件中的函数调用:
+
+#### `test_qwen_extraction.py`
+- 更新了 `test_single_person_extraction()` 函数
+- 更新了 `test_multiple_person_extraction()` 函数
+- 所有调用都添加了 `"2025-01-15"` 作为 publish_time 参数
+
+#### `test_webpage_parse.py`
+- 更新了 `test_single_person()` 函数
+- 更新了 `test_multiple_persons()` 函数  
+- 更新了 `test_field_validation()` 函数
+- 所有调用都添加了 `"2025-01-15"` 作为 publish_time 参数
+
+#### `quick_test.py`
+- 更新了多人员提取测试
+- 添加了 `"2025-01-15"` 作为 publish_time 参数
+
+## 功能验证
+
+### ✅ 测试结果
+- 函数调用成功,参数传递正确
+- career_path 中的 date 字段正确使用了传入的 publish_time 值
+- 所有测试文件都已更新并可正常运行
+
+### 📊 影响范围
+| 文件类型 | 修改文件数 | 主要变更 |
+|---------|-----------|----------|
+| 核心函数 | 1 | 添加新参数,修改内部逻辑 |
+| API接口 | 1 | 更新请求参数验证和调用 |
+| 测试文件 | 3 | 更新所有函数调用 |
+
+## 使用说明
+
+### 函数调用示例
+```python
+# 新的调用方式
+result = process_webpage_with_QWen(markdown_content, "2025-01-15")
+```
+
+### API请求示例
+```bash
+curl -X POST http://localhost:5000/api/data-parse/webpage-parse \
+  -H "Content-Type: application/json" \
+  -d '{
+    "markdown_text": "网页内容...",
+    "publish_time": "2025-01-15"
+  }'
+```
+
+## 注意事项
+
+1. **向后兼容性**: 此更新不向后兼容,所有调用此函数的地方都必须传递两个参数
+2. **参数格式**: `publish_time` 应为字符串格式,建议使用 "YYYY-MM-DD" 格式
+3. **必填参数**: 在API接口中,`publish_time` 是必填参数,不提供会返回400错误
+
+## 总结
+
+✅ 所有修改已完成并验证通过  
+✅ 函数参数传递正确  
+✅ career_path 日期字段使用指定的 publish_time  
+✅ 测试文件全部更新完毕 

+ 73 - 0
新任命单人-markdown格式.md

@@ -0,0 +1,73 @@
+![](https://mmbiz.qpic.cn/sz_mmbiz_gif/UOfXdu2ZbTdomIosTR7sMXCbtjMXRHTSgPTOjLp8h6FsicLSEf1qJp6VA3E80htOR9u6fp0Fun3nXAhXTA5wX7Q/640?wx_fmt=gif)
+
+![](https://mmbiz.qpic.cn/sz_mmbiz_png/UOfXdu2ZbTdomIosTR7sMXCbtjMXRHTSHRNbF3V4EMMDYC1KTTy9JoAF9xN44k1pF8uyxNI9WZZzkHrAev6Itg/640?wx_fmt=png)
+
+酒店开业/任命/其他资讯投稿请发:
+
+info@menduner.com
+
+传讯请加微信:**menduner2025** 申请加入传讯联盟
+
+![](https://mmbiz.qpic.cn/sz_mmbiz_jpg/UOfXdu2ZbTdomIosTR7sMXCbtjMXRHTSiahOXjK4rbVhuBX6I5tJgYyHTN7XrGmRtS1pxxY8licTaiaCZQmalcShQ/640?wx_fmt=jpeg)
+
+  
+
+**周银萍 女士**
+
+**Ms. Sandra Zhou**
+
+  
+
+深圳中洲万豪酒店
+
+人力资源总监
+
+  
+
+近日,深圳中洲万豪酒店正式任命周银萍(Sandra Zhou)女士为酒店人力资源总监。履新后,周女士将全面负责酒店人才战略的规划与实施、招聘与培训体系优化、薪酬福利管理及万豪集团核心企业文化——“以人为本”精神在酒店的深度践行,为打造卓越团队、驱动酒店成功奠定坚实人才基石。
+
+  
+
+2014年,周女士加入南宁万豪酒店担任人力资源总监,开启了与万豪品牌长达11年的精彩旅程。在此期间,她将万豪集团“以人为本”的核心价值观融入管理实践,展现出非凡的领导力。她带领团队精耕员工关怀与发展,连续多年员工满意度调查结果高达99%,创造了行业标杆。在充满挑战的疫情期间,她成功主导降本增效项目,保障了酒店运营的顺畅与员工队伍的稳定。对于此次履新深圳中洲万豪酒店,周银萍女士充满热忱:“我深信对工作的热情是成功的源动力。我期待在深圳中洲万豪酒店这个充满活力的平台,延续万豪‘服务精神’,赋能每一位团队成员成长。”
+
+  
+
+万豪国际区域总经理、深圳中洲万豪酒店总经理周刚先生表示:“我们热烈欢迎Sandra加入酒店大家庭。她在万豪体系中的成功实践,尤其在提升员工体验与满意度方面的成就,生动诠释了‘以人为本’的真谛。相信她的专业能力与热忱,将为酒店人才战略注入动力,引领人力资源发展迈向新高度”。
+
+  
+
+Shenzhen Marriott Hotel Nanshan has appointed Ms. Sandra Zhou as the Director of Human Resources. In her new role, Ms. Zhou will be fully responsible for the planning and implementation of the hotel's talent strategy, optimization of recruitment and training systems, and the deep integration of Marriott International's core cultural ethos—"Putting People First"—into the hotel's practices.
+
+  
+
+In 2014, Ms. Zhou joined Nanning Marriott Hotel as Director of Human Resources, embarking on an impressive 11-year journey with Marriott International. During her tenue, she exemplified extraordinary leadership by embedding Marriott International's core value of "Putting People First" into her management practices. She led her team in taking care of employee and talent development, achieving a remarkable employee satisfaction survey result of 99% for many years, setting an industry benchmark. Regarding her new role at Shenzhen Marriott Hotel Nanshan, Ms. Sandra Zhou expressed her enthusiasm: “I look forward to conducting Marriott's 'Spirit to Serve' on this dynamic platform at Shenzhen Marriott Hotel Nanshan, empowering the growth of every team member and start a new chapter in talent development."
+
+  
+
+Mr. Matthew Zhou, Area General Manager of Marriott International and General Manager of Shenzhen Marriott Hotel Nanshan, commented: “We warmly welcome Sandra to our hotel. Her excellent achievement in Marriott, especially in elevating employee experience and satisfaction, exemplifies our 'Putting People First' ethos. Her expertise, experience, and dedication will strengthen our talent strategy and advance our HR development."
+
+  
+
+![](https://mmbiz.qpic.cn/sz_mmbiz_jpg/UOfXdu2ZbTdomIosTR7sMXCbtjMXRHTSkwudn71WJOrkOzA7IYQyYvjRpPQ80cvyawKNSibxiafjCuamsVJlUo1A/640?wx_fmt=jpeg)
+
+**关于深圳中洲万豪酒店**
+
+深圳中洲万豪酒店位于南山区繁华的中央商务区,坐拥深圳湾高空景致及城市旖旎景观。酒店地理位置优越,交通便捷,毗邻海岸城购物中心及餐饮美食店,数步之遥便可到达深圳保利剧院。距深圳湾口岸约2.4公里,往来香港快捷便利;距蛇口码头约5.8公里,与澳门隔海相望;距深圳宝安国际机场24公里和深圳北站约20公里。店内随处可见富有岭南特色文化元素的艺术品,在别致、现代、自然的风格下,被誉为美术馆酒店。酒店设有340间舒适客房,会议场地和宴会空间总面积达2,000平方米,其中大宴会厅及多功能厅可灵活分隔或合并使用,满足各类活动需求。店内卓越的餐饮团队,提供各类餐饮服务,无论日常用餐或宴请活动,中西式厨房皆可按需呈现极具创造力且激发灵感的美食,致力于为商旅宾客提供一段非凡精彩的旅程。
+
+  
+
+  
+
+地址:深圳市南山区海德一道88号
+
+电话:86 - 0755 - 8436 8666
+
+  
+
+  
+
+  
+
+![](https://mmbiz.qpic.cn/sz_mmbiz_png/UOfXdu2ZbTdomIosTR7sMXCbtjMXRHTSLIBZYLibuibHHEsbQYFuzMJDjLbibomMGAof0ObTEOy6rTficQ5jg8bbeA/640?wx_fmt=png)
+
+![](https://mmbiz.qpic.cn/sz_mmbiz_jpg/UOfXdu2ZbTdomIosTR7sMXCbtjMXRHTS1ZoYOwuCznndZoibLucbCuWeVdmYHSJaKHd9SWYIicKVb1qibhMia33ejw/640?wx_fmt=jpeg)

+ 679 - 0
新任命多人-markdown格式.md

@@ -0,0 +1,679 @@
+![](https://mmbiz.qpic.cn/sz_mmbiz_gif/UOfXdu2ZbTdic1GL8CN1PmGz7pzbmdajLdS57vR4lkrHMVzaBvoNEfh56naVbeyccCCfT4HoKiacML9bVgoicoVOg/640?wx_fmt=gif)
+
+![](https://mmbiz.qpic.cn/sz_mmbiz_png/UOfXdu2ZbTdic1GL8CN1PmGz7pzbmdajLATnm6mJdhn5rdEo700RPdQZYfHeDjLLFdlr1cial5Pu5IFCyH5aZq6g/640?wx_fmt=png)
+
+酒店开业/任命/其他资讯投稿请发:
+
+info@menduner.com
+
+传讯请加微信:**menduner2020** 申请加入传讯联盟
+
+  
+
+**1**
+
+![](https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMv1KibBj8xUWy2I6PrteB53OrribYjsSOR9COewenozAQJhKeU5ibhzbnw/640?wx_fmt=jpeg)
+
+  
+
+**曲晶 女士**
+
+  
+
+诺金国际
+
+市场营销副总裁
+
+  
+
+北京诺金国际酒店管理有限责任公司(以下简称“诺金国际”)正式宣布,任命曲晶女士为诺金国际市场营销副总裁,全面统筹公司市场营销战略体系构建及品牌战略发展工作。
+
+  
+
+曲晶女士拥有23年国际高端酒店集团战略管理经验,具备酒店营销实战与集团战略规划的双重视角。其职业生涯始于洲际酒店集团单体酒店营销领域,积累8年一线运营经验后,自2009年起担任洲际集团总部中国北区商务业绩总监,深耕集团管理层长达15年。任职期间,她全面负责洲际旗下全品牌矩阵的市场销售战略,主导国际品牌本土化落地,在战略规划、品牌营销及收益管理领域展现卓越领导力,成功推动多品牌在华北市场业绩持续领先。
+
+  
+
+凭借深厚的国际化管理经验及对全球奢华酒店市场的战略洞察力,曲晶女士将以“全球化视野”结合“本土化实践”的策略,带领团队进一步提升市场影响力,为诺金国际注入创新动能,助力打造具有国际竞争力的奢华酒店品牌标杆。
+
+  
+
+  
+
+**2**
+
+![](https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUM7dgmvVbvFsnRWnia6r8uaXliaHlZtCqibm4icfVIewqxB6G9eAVJgzvfIw/640?wx_fmt=jpeg)
+
+  
+
+**扎西央宗 女士**
+
+  
+
+北海涠洲岛悦苑酒店
+
+总经理
+
+  
+
+  
+
+北海涠洲岛悦苑酒店正式任命扎西央宗女士为总经理一职,全面统筹酒店运营管理与战略布局。自2005年与悦榕集团结缘以来,她的职业足迹跨越仁安悦榕庄的雪山秘境、腾冲悦榕庄的热海温泉、九寨沟悦榕庄的彩林仙境,以及雷山悦椿度假酒店的民俗之乡,在19年时光淬炼中,扎西央宗女士成为悦榕集团 "可持续旅行" 理念的鲜活注脚——从滇藏高原到黔东南苗寨,她始终以 "拥抱环境,关爱社会" 为核心理念,将在地文化保护、生态资源可持续利用与旅居体验深度融合。
+
+  
+
+作为其筹备的第二家悦榕集团品牌酒店,北海涠洲岛悦苑酒店将延续她的创新探索:在北部湾珊瑚礁环绕的生态海岛之上,她将带领团队以 "海洋生态保护+疍家文化传承"为特色,打造兼具环保实践与文化沉浸的项目,为悦榕集团 "可持续旅行" 版图再添海岛新坐标。
+
+  
+
+Tashi possesses a solid 19-year career in the hospitality industry. Her pivotal journey with Banyan Group began in August 2005 as the Recreation Manager and later as the Hotel Manager at Banyan Tree Ringha in November 2011. Due to her continuous outstanding performance and exceptional dedication, she was internally transferred to Angsana Tengchong Hot Spring in April 2015. The hotel's excellent performance led to its upgrade to Banyan Tree Tengchong in May 2018. Subsequently, she was transferred to Angsana Leishan in April 2019. In December 2019, Tashi took the role of General Manager at Banyan Tree Jiuzhaigou, playing a crucial role in the reopening of the resort. She rejoined Angsana Leishan as General Manager in October 2021 upon the resort's reactivation.
+
+  
+
+In her new position, Tashi will collaborate closely with the hotel team to ensure the successful opening of Dhawa Beihai Weizhou Island. Her rich experience and collaborative management style will not only elevate the hotel's performance but also fortify relationships with owners and stakeholders.
+
+  
+
+**3**
+
+![](https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMQT0VK83yKy7KnuoywicwF7kgOpzsPXnY3HqBGh1RH51cr1ibsxia9CfQg/640?wx_fmt=jpeg)
+
+  
+
+**孔祥俊 先生**
+
+**Mr. Justin Kong**
+
+  
+
+上海嘉定凯悦酒店
+
+总经理
+
+  
+
+  
+
+凯悦酒店集团宣布任命孔祥俊先生(Justin Kong)为上海嘉定凯悦酒店总经理,全面负责酒店的运营及管理工作。上海嘉定凯悦酒店由世界著名建筑大师设计,是嘉定新城文化艺术与高尚生活最闪耀的新地标,是嘉定中央商务区的核心组成部分。作为保利置业集团子公司保利商旅酒店管理有限公司(简称:保利商旅)的高端酒店项目,嘉定凯悦酒店致力于为宾客提供卓越的旅居体验。
+
+  
+
+孔祥俊先生的酒店职业生涯始于喜达屋集团、万豪集团和凯悦集团等知名国际酒店管理集团。他始终专注于豪华酒店的市场革新和业绩突破。在海南富力海洋欢乐世界度假区凯悦酒店任职
+
+期间,成功将酒店筹备开业并快速推向市场,从酒店开业初期300间房一直开到900间客房并在酒店开业第一年实现盈利。其丰富的酒店管理经验和对豪华酒店服务的深刻理解,对酒店的战略部署,推动了大型度假酒店的业绩和市场知名度。
+
+  
+
+对于此次履新保利商旅旗下上海嘉定凯悦酒店总经理,孔祥俊先生表示:“上海嘉定凯悦酒店是我职业生涯的重要里程碑,我将充满热情,将凯悦集团‘我们关爱每一个人,让他们尽善尽美显真我’的关爱理念融入酒店运营的每一个细节。同时,在保利置业与保利商旅的支持下,我将携手带领团队以前瞻的视野,深耕酒店的服务体验,书写新的辉煌篇章。”
+
+  
+
+Hyatt has officially announced the appointment of Mr. Justin Kong as the General Manager of Hyatt Regency Shanghai Jiading. In this role, Mr. Kong will be in charge of hotel comprehensive operations and management. Designed by a world-renowned architect, Hyatt Regency Shanghai Jiading stands as the landmark for cultural arts and elegant living in Jiading New City, forming an integral part of the Jiading Central Business District. As a premium hospitality project under Poly Tourism Hotel Management Co., Ltd. (hereinafter
+
+referred to as "Poly Tourism Hotel"), a subsidiary of Poly Property Group Co., Limited, Hyatt Regency Shanghai Jiading is dedicated to delivering exceptional guest experiences.
+
+  
+
+Mr. Kong commenced his hospitality career with prominent international hotel management groups including Starwood, Marriott and Hyatt. He has consistently focused on market innovation and performance breakthroughs within the luxury hotel sector. During his tenure at Hyatt Regency Hainan Ocean Paradise Resort, he successfully led the hotel's pre-opening and market entry initiatives. Under his leadership, the hotel expanded from an initial 300 rooms to 900 rooms, achieving profitability within its first year of operation. His extensive hotel management expertise and profound understanding of luxury hospitality service have driven strategic deployment, significantly enhancing the performance and market presence of large-scale resort hotels.
+
+  
+
+Regarding his new appointment as General Manager of Hyatt Regency Shanghai Jiading which under Poly Tourism Hotel, Mr. Justin Kong stated: "This role represents a significant milestone in my career. I am eager to infuse every operational detail with Hyatt's purpose– ‘we care for people so they can be their best’. With the support of Poly Property and Poly Tourism Hotel, I will lead the team with a forward-looking vision to enhance the service experience and achieve new heights for the property."
+
+  
+
+  
+
+**4**
+
+![](https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMo7PDwbBwOZECbzsPozwPNO8fuicYETox9HibjyCS7iahricDNp95a27nqw/640?wx_fmt=jpeg)
+
+  
+
+**戴庆丰 先生**
+
+**Mr. David Dai**
+
+  
+
+合肥皇冠假日酒店
+
+总经理
+
+  
+
+近日,洲际酒店集团正式任命戴庆丰先生担任合肥皇冠假日酒店总经理一职,他将全面负责酒店的运营管理及战略发展规划。
+
+  
+
+戴庆丰先生拥有逾26年酒店行业宝贵经验,是一位充满热情的酒店管理者,其职业历程成就斐然。他曾在合肥、黄山、舟山等活力城市的不同酒店及集团担任核心管理职位,包括家乐福、洲际酒店集团及万豪国际集团。
+
+  
+
+戴庆丰先生于2007年在合肥海汇假日酒店担任销售总监。作为洲际酒店集团“ Room to Grow ”人才发展理念的杰出典范,他通过销售及市场部门多个职位的扎实历练,于2012年晋升为合肥皇冠假日酒店市场销售总监。2012至2020年间,戴庆丰先生于合肥多家酒店任职,期间积累了显著的业绩增长成果、战略市场领导力以及对安徽合肥市场的深刻洞察。在这次加入合肥皇冠假日以前,他在舟山喜来登绿城酒店及舟山朱家尖绿城威斯汀度假酒店担任酒店群总经理一职,凭借卓越的领导力成功实现酒店业绩逆转并推动收入大幅增长。其战略管理不仅使两家酒店在RGI持续位列市场前茅,更在任内带领团队屡获内外奖项殊荣。我们诚挚欢迎戴庆丰先生重返洲际酒店集团,期待他引领合肥皇冠假日酒店再创高峰。
+
+  
+
+Recently, InterContinental Hotels Group announced the appointment of David Dai as the General Manager of Crowne Plaza Hefei. He will be fully responsible for the hotel's operations and strategic direction.
+
+  
+
+With over 26 years of invaluable experience in the hospitality industry, David is a passionate hotelier whose career journey has been nothing short of remarkable. He has held key positions across vibrant cities such as Hefei, Huangshan, and Zhoushan at different hotel companies, including Carrefour, IHG and Marriott.
+
+  
+
+David served as Sales Director at Holiday Inn Downtown Hefei in 2007. As a great example of Room to Grow, David had a solid career progression through different Sales and Marketing roles and eventually grew to the Director of Sales and Marketing role at Crowne Plaza Hefei in 2012. After working for different hotels in Hefei from 2012 to 2020, he accumulated strong revenue growth, strategic market leadership, and a deep understanding of the Anhui Hefei market. His most recent role was as Multi-Property General Manager for Sheraton Zhoushan Hotel and The Westin Zhujiajian Resort, Zhoushan, where he demonstrated exceptional leadership by turning around the hotels’ performance and driving significant revenue growth. His strategic leadership not only enabled both properties to consistently rank at the forefront in RGI but also led to numerous internal and external awards during his tenure. We are proud to welcome David back to IHG and look forward to his continued success in leading Crowne Plaza Hefei to new heights.
+
+  
+
+**5**
+
+![](https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMKaTpJxloMebxzKdBq23giayekwTDAZEiaJqXDT7xb9Pxuib6N3DatBLWQ/640?wx_fmt=jpeg)
+
+  
+
+**金涛 先生**
+
+**Mr. Victor Jin**
+
+  
+
+厦门泛太平洋大酒店
+
+总经理
+
+  
+
+  
+
+近日,新加坡泛太平洋酒店集团(PPHG)任命金涛先生为厦门泛太平洋大酒店总经理,全面负责酒店的战略管理和整体运营工作。此次履新前,他担任重庆华宇温德姆至尊豪廷大酒店总经理一职。
+
+  
+
+金涛先生毕业于浙江大学, 获工商管理硕士学位,曾获得省级星评员资格及中国国家旅游局总经理认证,是多所知名学府的客座讲师。他在各类高星级酒店担任总经理长达21年,分别服务于香格里拉集团、洲际集团、雅高集团、丽笙集团及温德姆等国际品牌。在品牌运营、市场战略及客户体验优化方面积累了丰富经验。在加入泛太平洋酒店集团之前,他曾成功领导多家五星级酒店实现业绩突破,尤其在提升宾客满意度、优化运营效率及推动创新服务方面表现突出。 
+
+  
+
+在过往任职期间,金涛先生通过精准的市场定位和高效的团队管理,助力酒店实现RevPAR(每间可售房收入)显著提升,并在竞争激烈的市场中保持领先地位。他善于结合本地文化特色,打造差异化服务体验,曾主导多个成功的高端客户忠诚度计划及定制化活动,赢得业界及宾客的高度赞誉。 
+
+  
+
+此次履新,我们期待在金涛先生的带领下,厦门泛太平洋大酒店将继续巩固其作为厦门高端酒店标杆的地位,并为宾客、员工及合作伙伴带来更多价值,积极迎接新的机遇与挑战,同心协力,共同续写下一个光辉篇章。
+
+  
+
+泛太平洋酒店集团是国际酒店管理公司,拥有和管理50多家酒店、度假村及高级服务公寓。集团旗下共有三个品牌:泛太平洋(Pan Pacific)、宾乐雅臻选(PARKROYAL COLLECTION)及宾乐雅(PARKROYAL),足迹遍布亚洲、大洋洲、北美、非洲及欧洲30多个城市。其总部位于新加坡,是新加坡上市企业华业集团有限公司的成员之一。
+
+  
+
+Recently, Pan Pacific Hotels Group (PPHG) of Singapore announced the appointment of Mr. Victor Jin as the General Manager of Pan Pacific Xiamen, where he will oversee the hotel's strategic management and overall operations. Prior to this new role, he served as the General Manager of Wyndham Grand Plaza Royale Chongqing.
+
+  
+
+A graduate of Zhejiang University with a Master's degree in Business Administration, Mr. Jin is a certified provincial star-rating evaluator and holds a General Manager certification from China's National Tourism Administration. He has also served as a visiting lecturer at multiple prestigious institutions. With 21 years of experience as a General Manager in luxury hotels, he has worked with international hospitality powerhouses including Shangri-La, IHG, Accor, Radisson and Wyndham. His expertise spans brand operations, market strategy, and customer experience enhancement. Before joining PPHG, he successfully led several five-star hotels to achieve significant breakthroughs in performance, particularly in improving guest satisfaction, optimizing operational efficiency, and pioneering innovative service models.
+
+  
+
+Throughout his career, Mr. Jin has enabled hotels to achieve significant RevPAR growth through precise market positioning and efficient team management, maintaining their leading edge in competitive markets. He excels in integrating local cultural characteristics to create differentiated service experiences, having spearheaded numerous successful premium customer loyalty programs and customized events that have earned widespread industry acclaim and guest recognition.
+
+  
+
+Pan Pacific Hotels Group is a global hospitality company that owns and manages over 50 hotels, resorts, and serviced suites comprising three brands - Pan Pacific, PARKROYAL COLLECTION and PARKROYAL in more than 30 cities across Asia Pacific, North America, Africa and Europe. Headquartered in Singapore, it is a member of Singapore-listed UOL Group Limited.
+
+  
+
+**6**
+
+![](https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMjKvztRHQqKxN8UQYuSfeibAIWpgAgNyEdA4SMAayFUcCl7DE2CBnrew/640?wx_fmt=jpeg)
+
+  
+
+**聂磊 先生** 
+
+**Mr. Will Nie**
+
+  
+
+大连硬石酒店
+
+总经理
+
+  
+
+  
+
+硬石酒店集团与中国绿发幸福产业有限公司联合宣布,任命聂磊先生(Will Nie)为大连硬石酒店总经理。他将全面负责酒店的战略管理及日常运营工作,引领团队为宾客创造标志性的硬石品牌体验。
+
+  
+
+聂磊先生在酒店行业深耕逾15年,拥有丰富的国际品牌酒店管理经验。履新前,他曾担任山东日照希尔顿花园酒店及山东聊城江北水城希尔顿花园酒店的总经理职务。凭借其全面的管理视野,他在市场营销、运营效率、人力资源发展及酒店财务表现等领域均展现出卓越的领导力。
+
+  
+
+聂磊先生以其追求卓越的工作态度和对细节的严谨把控著称。在过往的职业生涯中,他积累了宝贵的酒店筹开及全周期运营管理经验,并多次成功带领团队实现酒店收入的显著提升,在各自区域市场同时赢得卓越业绩与良好声誉。从销售岗位基层成长起来的他,始终秉持以数据驱动决策、以结果为导向的管理理念,同时高度重视员工福祉与团队凝聚力。
+
+  
+
+对于此次荣任,聂磊先生表示:“我非常荣幸加入硬石这个充满活力与音乐基因的全球品牌,并领导大连硬石酒店这支优秀的团队。我将与团队携手,继续发扬硬石品牌精神,专注于提升宾客满意度、激发团队潜能并实现酒店业务的持续成功,为大连这座魅力城市增添更多活力。”
+
+  
+
+“我们很荣幸欢迎聂磊先生加入,领导大连硬石酒店的团队,” 硬石酒店集团亚太区运营副总裁慕雷艾根(Murray Aitken)先生表示,“他在提升酒店业绩、优化宾客体验以及打造高效团队方面拥有出色的过往记录。我们相信,凭借其深厚的专业积淀和非凡的领导才能,聂磊先生将带领大连硬石酒店团队开启新篇章,巩固酒店在大连乃至东北亚市场的领先地位,为宾客带来更多惊喜,为品牌创造更大价值。”
+
+  
+
+**7**
+
+![](https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMXUgH2MaIFVoxuwgAesYIgkr9VqIIIImXsaqjJ14M4TPVmxR2iavTliaw/640?wx_fmt=jpeg)
+
+  
+
+**张雪婷 女士**
+
+**Ms. Jane Zhang**
+
+  
+
+洛阳浩德诺富特酒店
+
+总经理
+
+  
+
+  
+
+  
+
+近日,张雪婷女士被正式任命为洛阳浩德诺富特酒店总经理,全面主持酒店筹开及运营管理工作。凭借其卓越的领导才能与出色的管理表现,迎来了职业生涯的全新里程碑。
+
+  
+
+张雪婷女士毕业于新西兰坎特伯雷大学,同时拥有英国三一利兹大学MBA学位,拥有超过10年的高端酒店及度假综合体的工作履历,足迹遍布上海、深圳、青岛、成都等城市。曾先后在多家国际连锁酒店企业担任重要管理岗位,负责项目筹开、运营等工作,取得了令人瞩目的成绩。
+
+  
+
+张雪婷女士善于在严谨的工作中激发团队个人潜能,凭借着细致入微的工作态度、出色的运营管理才能以及对酒店的热爱,一直致力于为宾客打造卓越的体验。此次任命将开启诺富特品牌在洛阳市场的新篇章,同时我们期待在张雪婷女士的带领下酒店将以超越客户期待为目标,创造卓越业绩。
+
+  
+
+We are pleased to announce the official appointment of Ms. Jane Zhang as General Manager of Novotel Luoyang Honden. In this role Ms. Jane Zhang will be fully presiding over the pre-opening and operational management of the hotel. With her exceptional leadership and outstanding management performance, she has ushered in a new milestone in her career.
+
+  
+
+Ms. Jane Zhang graduated from the University of Canterbury in New Zealand and holds an MBA degree from the University of Leeds Trinity in the UK. She has more than 10 years of working experience in up-scale hotels and resort complexes, having worked in Shanghai, Shenzhen, Qingdao, and Chengdu. She has successively held important management positions in multiple international chain hotel enterprises, responsible for project pre-opening, operation,and achieved remarkable results.
+
+  
+
+Ms. Jane Zhang is good at stimulating the personal potential of the team in rigorous work. With her meticulous work attitude, excellent operational management skills, and love for hotels, she has been committed to creating an excellent experience for guests. This appointment will open a new chapter for the Novotel brand in the Luoyang market. At the same time, we look forward to the hotel aiming to exceed customer expectations and creating excellent performance under the leadership of Ms. Jane Zhang.
+
+  
+
+**8**
+
+![](https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMiawPNz2NlCKgLmkT8H3a9sjq3nPORdILsFPvibOtia7poovfV8E3vIJxw/640?wx_fmt=jpeg)
+
+  
+
+**刘志强 先生**
+
+**Mr. Tony Liu**
+
+  
+
+嘉辉会丽呈华廷酒店总经理
+
+嘉辉会度假酒店总经理
+
+  
+
+  
+
+刘志强先生在酒店业风云激荡的20多年间,以其卓越的领导智慧与深耕行业的战略定力,打造了一部兼具国际视野与中国智慧的管理经典。其职业生涯跨越洲际、雅高、温德姆、丽呈等全球顶级酒店集团,以及国内多家五星级酒店与AAAA级文旅集团的核心管理岗位,同时拥有多家酒店筹备经验,凭借前瞻性的战略眼光与精细化的运营策略,持续推动业绩飞跃与价值提升,成为行业高质量发展的标杆引领者。
+
+  
+
+刘志强先生以创新为矛开拓市场蓝海,不断紧跟时代潮流,为酒店引入潮流新品,并将可持续发展理念提升至核心战略地位,实现环保与效益的双向赋能,在工程能耗领域及客房运营层面全链路绿色再造,实践循环经济。其在创新与创收并进的同时,亦不忘精细的成本控制,做到从微观到宏观的效益雕刻。
+
+  
+
+在酒店服务方面,其将客户体验置于战略核心,从满意度到忠诚度的价值跃迁,构建科学化服务体系,践行服务三部曲,确保顾客入住前-入住时-入住后的满意体验,始终保持线上高评分。
+
+  
+
+在人才培养方面,刘志强先生坚持以人为本,高度重视高潜人才培养,制定有效的激励机制及人才培养方案,不断提升员工稳定率,其坚信真正的领导力,是让每位员工成为价值创造的发光体,让员工发挥自身的价值。
+
+  
+
+我们相信,凭借刘志强先生深厚的酒店行业底蕴及丰富的实战经验,在其卓越的领导力下,将会带领团队创造更加的辉煌业绩,开启全新的篇章。
+
+  
+
+**9**
+
+![](https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMiaOvNHRuIqEu3vXNH233rgqiahia7Pgwc8VGYBjpUnWXwo2e83Rr4ONDA/640?wx_fmt=jpeg)
+
+  
+
+**卜伟 先生**
+
+  
+
+西安浐灞华邑酒店
+
+与西安浐灞假日酒店
+
+市场销售总监
+
+  
+
+  
+
+洲际集团旗下西安浐灞华邑酒店与西安浐灞假日酒店迎来重要人事任命,卜伟先生正式出任市场销售总监,全面执掌两家酒店的市场营销战略及运营管理工作。
+
+  
+
+这位资深的酒店业管理者拥有横跨洲际、雅高、希尔顿、香格里拉及悦榕庄等国际酒店集团的辉煌职业履历,在长达十七载的职业生涯中持续创造卓越业绩。
+
+  
+
+在此次履新前,卜伟先生在西安高新区福朋喜来登酒店负责市场销售部工作,带领销售部屡次突破,超额完成酒店整体目标收入。相信凭借丰富的市场销售、收益管理及市场传讯相关的专业知识,以及敏锐的市场洞察力,卜伟先生会为西安浐灞华邑酒店和西安浐灞假日酒店注入新的活力,并带领团队为酒店收入业绩再创新高贡献力量。
+
+  
+
+InterContinental Hotels Group Announces Appointment of Mr. Pu Wei as Director of Sales & Marketing for HUALUXE Xi’an Chanba and Holiday Inn Xi’an Chanba
+
+  
+
+InterContinental Hotels Group (IHG) is pleased to announce the appointment of Mr. Pu Wei as Director of Sales & Marketing for HUALUXE Xi’an Chanba and Holiday Inn Xi’an Chanba. In this role, he will oversee the overall sales and marketing strategies and operations for both properties.
+
+  
+
+With an illustrious career spanning 17 years, Mr. Pu Wei has held key leadership positions across multiple international hotel brands, including IHG, Accor, Hilton, Shangri-La, and Banyan Tree. Throughout his tenure, he has consistently delivered outstanding results, contributing significantly to the business growth and success of each hotel he has served.
+
+  
+
+Prior to this appointment, Mr. Pu Wei led the sales and marketing team at Four Points by Sheraton Xi’an High-tech Zone, where he spearheaded multiple breakthroughs and consistently exceeded revenue targets. Armed with extensive expertise in sales, revenue management, and marketing communications, as well as sharp market acumen, he is poised to bring fresh energy to HUALUXE Xi’an Chanba and Holiday Inn Xi’an Chanba. Under his leadership, the teams are expected to achieve new heights in revenue performance and market positioning.
+
+  
+
+This strategic appointment underscores IHG’s commitment to strengthening its presence in Xi’an’s hospitality market. With Mr. Pu Wei’s visionary leadership and proven track record, both hotels are well-positioned for continued success and growth.
+
+  
+
+**10**
+
+![](https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMdMY4KNzSEhAOaq0SX9iaTWuH32h07dR9OGpKhD1wiaMRKo3JbXScxlOw/640?wx_fmt=jpeg)
+
+  
+
+**缪慧 女士**
+
+  
+
+北海涠洲岛悦苑酒店
+
+市场销售总监
+
+  
+
+  
+
+缪慧女士深耕高端酒店行业17载,在收益管理与市场营销领域积淀深厚实战经验,聚焦高端品牌市场开拓、团队管理及前瞻性战略布局,凭借对行业趋势的敏锐洞察与创新思维,始终践行“探索不止,拥抱变革”的职业哲学。
+
+  
+
+2006年,缪慧女士与悦榕集团结缘于普吉岛乐古浪悦椿度假酒店,深受悦榕集团品牌文化与管理理念吸引。自毕业起,她先后服务于4家悦榕集团旗下酒店,历经9年系统化历练;此后相继加入安麓、洲际酒店集团,足迹遍及丽江、三亚、澄江、腾冲、上海、昆明、大理等核心目的地,深度参与多家酒店的筹备开业工作,在新项目落地与运营体系搭建中积累了全周期操盘经验。时隔十年,她以更成熟的行业视角与跨品牌管理经验再度回归悦榕集团。
+
+  
+
+缪慧女士现正式被任命为北海涠洲岛悦苑酒店市场销售总监一职,将全面统筹酒店市场营销战略规划、销售及市场传讯工作。其管理风格兼具睿智决策力与激情驱动力——既强调 “行动导向” 与团队高效协作,更鼓励全员销售,通过团队激励机制,以主动创新姿态为宾客打造奇妙难忘的旅居体验,持续深化品牌价值与市场影响力。
+
+  
+
+**11**
+
+![](https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMasnwkZLPElATicVT7FXaia7vDrwsiclxjIQBx0oZeibfHE2eiaiakqP9OvAA/640?wx_fmt=jpeg)
+
+  
+
+**温国游 先生**
+
+  
+
+北海涠洲岛悦苑酒店
+
+财务总监
+
+  
+
+  
+
+温国游先生以逾20年酒店财务领域的专业积淀,正式加入北海涠洲岛悦苑酒店团队。其职业履历横跨香格里拉集团、嘉佩乐酒店集团及悦榕集团旗下多家标杆酒店,在财务战略规划、成本管控及运营优化等领域构筑起系统化专业壁垒。加入北海涠洲岛悦苑酒店前,他担任珠海横琴悦椿酒店财务总监,主导完成酒店筹备期财务体系搭建与运营期成本优化项目。
+
+  
+
+作为北海涠洲岛悦苑酒店财务板块的核心管理者,他将以财务专业力为引擎,结合对高端酒店运营逻辑的深刻理解,为酒店的可持续发展与市场竞争力提升注入新动能。期待他在北部湾的碧海之畔,续写财务赋能酒店运营的新范式。
+
+  
+
+**12**
+
+![](https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUM3t83PNJPe1HsnAGmNWFTnjP9BqZY4ASABUuOEwick0BJtSjRICNtyQw/640?wx_fmt=jpeg)
+
+  
+
+**文远超 先生**
+
+  
+
+北海涠洲岛悦苑酒店
+
+餐饮总监
+
+  
+
+  
+
+北海涠洲岛悦苑酒店正式任命文远超先生为餐饮总监,全面统筹酒店餐饮板块的筹备建设与开业后的全周期运营管理。拥有20余年餐饮及厨房管理经验的他,职业生涯横跨香格里拉、洲际、希尔顿、雅高等国际酒店集团,足迹遍及上海、苏州、拉萨、九寨沟、西双版纳等十余座城市,从江南水乡到雪域高原,从厨房出品管控到餐饮服务体系搭建,构建起覆盖全链条的专业认知版图。
+
+  
+
+作为深谙地域饮食文化的实践者,他将带领餐饮厨房团队挖掘涠洲岛特色物产,同时深度融入涠洲岛“零废弃社区建设项目”,延续悦榕集团 "拥抱环境,关爱社会" 的理念,以个性化餐饮为旅居体验注入独特魅力。期待这位美食匠人在北部湾的碧海银滩之畔,书写新的风味篇章。
+
+  
+
+**13**
+
+![](https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUM2PpwKG5502CAIH0icCbYFW4FAOrkQiahueiaicXCA0FNIjiag6n0QjL2H3Q/640?wx_fmt=jpeg)
+
+  
+
+**王亚铭 先生**
+
+**Mr.Vincent Wang**
+
+  
+
+武汉世茂希尔顿酒店
+
+餐饮总监
+
+  
+
+  
+
+武汉世茂希尔顿酒店荣幸地宣布王亚铭先生于2025年4月23日加入武汉世茂希尔顿酒店、出任餐饮总监一职。
+
+  
+
+王亚铭先生2007年在迪拜福朋喜来登开启他的职业生涯,之后在多个国际酒店集团的不同品牌任职,包括万豪、洲际、雅高、朗廷等。加入武汉世茂希尔顿酒店前,王亚铭先生在海宁华邑酒店全权负责餐饮部整体运行和经营。我们相信王亚铭先生的加入必将带领酒店餐饮团队实现服务升级、业绩突破,为宾客创造更高品质的用餐体验。
+
+  
+
+请与我们一起欢迎王亚铭先生开启他的新征程,祝愿他与武汉世茂希尔顿酒店共同成长!
+
+  
+
+Glad to announce the appointment of Mr. Vincent Wang as Director of Food & Beverage , with effective on 23rd April 2025. 
+
+  
+
+Vincent started his hospitality career at Four Points by Sheraton Dubai in 2007, and he has experienced different hotel brands in several international hotel group to enrich his work journey, such as Marriott, IHG, Accor, and Langham etc. Prior to joining Hilton Wuhan Riverside Hotel, he oversaw the entire F&B operation and management at HUALUXE Haining Hotel. We are confident that Vincent's leadership will elevate our dining service standards, drive outstanding performance, and deliver exceptional culinary experiences for our guests. 
+
+  
+
+Please join me in welcoming Vincent on his new assignment , let us with his continuous success in Hilton Wuhan Riverside Hotel ! 
+
+  
+
+**14**
+
+![](https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMenVkCQ36ZDVT2QicFhYjyIaviaIoZcLSZQcJ4rjDvjiaicPmiaVet0bde4g/640?wx_fmt=jpeg)
+
+  
+
+**赵先托 先生**
+
+  
+
+三亚湾海居铂尔曼度假酒店
+
+餐饮总监
+
+  
+
+  
+
+近日,雅高集团旗下三亚湾海居铂尔曼度假酒店正式任命赵先托先生为酒店餐饮总监。将全面负责三亚湾海居铂尔曼度假酒店餐饮部的战略规划、运营管理及品质提升工作。
+
+  
+
+赵先托先生拥有近20年国际奢华酒店行业深耕经验,职业生涯始于全球高端酒店集团,曾先后任职于希尔顿(Hilton)、香格里拉(Shangri-La)及莱佛士(Raffles)等高端酒店担任重要的职务。凭借其对海南酒店餐饮市场的深刻洞察与卓越的领导力,他在餐饮品牌打造、成本控制、服务创新及团队建设领域屡创佳绩,成功参与了多次国家元首的接待。
+
+  
+
+履新后,赵先生将依托其多年高端酒店丰富的管理经验,整合本土化的餐饮资源,进一步提高宾客体验,并推动餐饮板块的可持续增长与品牌影响力升级。其深厚的行业积淀与创新思维,将为酒店餐饮注入全新活力。
+
+  
+
+相信赵先托先生的加入是团队的重要里程碑。他的专业素养与对品质的极致追求,将引领酒店的餐饮服务迈向更高标准,为宾客创造超越期待的味蕾之旅。
+
+敬请期待赵先托先生带领团队焕新餐饮体验,续写奢华新章!
+
+  
+
+Recently, Pullman Oceanview Sanya Bay Resort & Spa, a subsidiary of Accor Group, officially appointed Mr. Zhao as the hotel's Director of Food and Beverage. he will oversee the strategic planning, operational management, and quality enhancement of the resort's culinary department.
+
+  
+
+Boasting nearly two decades of experience in international luxury hospitality, Mr. Zhao began his career with globally renowned premium hotel groups. He previously held key positions at prestigious brands including Hilton, Shangri-La, and Raffles. Renowned for his deep understanding of Hainan’s hotel F&B market and exceptional leadership, he has consistently excelled in culinary branding, cost control, service innovation, and team development. His accomplishments include successful participation in state-level receptions for visiting heads of state.
+
+  
+
+In his new role, Mr. Zhao will leverage his extensive management expertise in luxury hotels to integrate local culinary resources, elevate guest experiences, and drive sustainable growth while enhancing the brand’s influence. His profound industry insights and innovative vision are set to invigorate the resort’s F&B offerings.
+
+  
+
+Mr. Zhao appointment marks a significant milestone for the team. His professional excellence and relentless pursuit of quality will elevate the hotel’s dining services to new heights, promising guests an unforgettable culinary journey that exceeds expectations.
+
+  
+
+We look forward to Mr. Zhao leading the team in renewing the dining experience and continuing the legacy of luxury.
+
+  
+
+**15**
+
+![](https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMHTQ4fE6EiaIy7webgxUCyoTddAttjb0lAaDBkyGzupgYTwKkcCVQjVQ/640?wx_fmt=jpeg)
+
+  
+
+**盘海文 先生**
+
+  
+
+北海涠洲岛悦苑酒店
+
+工程总监
+
+  
+
+  
+
+北海涠洲岛悦苑酒店正式宣布盘海文先生的加入,全面统筹酒店工程板块的开业筹备、设备运维及全周期管理工作。拥有 37年工程领域资历、26年酒店工程专业经验的他,职业脚印横跨北海香格里拉、温州香格里拉、桂林香格里拉等标杆项目,曾深度参与丽江洲际及英迪格酒店、温德姆酒店等多品牌工程体系搭建,在机电系统集成、绿色工程设计、大型项目筹备等领域形成系统化专业积淀。
+
+  
+
+"以工程匠心守护自然与建筑的和谐共生。"盘海文先生将携手团队以 "三化标准" 落实工程目标:设备管理智能化(建立全周期运维数字档案)、应急响应标准化(制定海岛台风季专项预案)、生态保护融入化(将零废弃社区理念嵌入工程细节)。这一兼具专业性与生态意识的工程管理思路,正为北海涠洲岛悦苑酒店的开业运营筑牢硬件根基,也为海岛酒店的工程管理树立新范式。
+
+  
+
+**16**
+
+![](https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMNA765v9gQhBqYkmcZksH3FfB0dJNZQ7DABXjXsBqicVSzibpjCfiaTjAA/640?wx_fmt=jpeg)
+
+  
+
+**陆尤喜 先生**
+
+**Mr. Paul Lu**
+
+  
+
+深圳中洲万豪酒店
+
+工程总监
+
+  
+
+  
+
+近日,深圳中洲万豪酒店正式任命陆尤喜先生(Paul Lu)为酒店工程总监,全面负责酒店工程运营、设备维护保养以及安全合规管理工作。
+
+  
+
+陆尤喜先生在酒店工程管理领域拥有逾二十年的深厚积淀,职业生涯遍布万豪、希尔顿、凯宾斯基等国际知名酒店集团。在履新深圳中洲万豪酒店之前,他担任广州长隆酒店工程总监,成功管理大型综合度假村复杂的工程体系,积累了宝贵的实战经验。陆先生尤为擅长酒店筹建、大型宴会保障及旧改修缮项目,并在节能管理领域展现出卓越的专业素养与创新思维,其工作成果多次获得酒店管理方及业主方的高度赞赏。他善用创新策略,通过实施余热回收技术改造(曾为日产量22吨的布草洗涤工厂,年节省锅炉能耗32万元人民币)、积极推动合同能源管理(EMC)模式,并采取智能化能源监控系统升级、关键设备变频改造及精细化运行策略调整等举措,在其管理的酒店内实现能耗显著降低,年均节约能源费用约113万元人民币,为酒店可持续发展和降本增效做出了实质性贡献。
+
+  
+
+对于陆尤喜先生的加入,万豪国际区域总经理、深圳中洲万豪酒店总经理周刚先生表示:“我们诚挚欢迎陆尤喜先生加入团队。他在工程管理领域造诣深厚、经验丰富,其严谨务实、创新高效的工作风格,将为酒店带来技术突破与成本优化,为安全稳定运营奠定坚实基础,并助力酒店在绿色运营的道路上迈上新台阶。”
+
+  
+
+Shenzhen Marriott Hotel Nanshan is pleased to announce the appointment of Mr. Paul Lu as Director of Engineering. In this role, Mr. Lu will oversee all engineering operations, ensuring optimal functionality and efficiency throughout the property.
+
+  
+
+Mr. Lu possesses over two decades of profound experience in engineering management. He has held senior engineering management positions with internationally renowned hotel groups including Marriott, Hilton, and Kempinski. Prior to assuming his current role at Shenzhen Marriott Hotel Nanshan, Mr. Lu served as the Director of Engineering at Guangzhou Chimelong Hotel, where he gained invaluable experience managing the engineering systems of large-scale integrated resorts. Known for his professional rigor and strategic planning skills, Mr. Lu excels at optimizing hotel efficiency and achieving significant cost reductions.
+
+  
+
+Mr. Matthew Zhou, Area General Manager of Marriott International and General Manager of Shenzhen Marriott Hotel Nanshan, welcomed the appointment: "We are delighted to welcome Paul Lu to our leadership team. His deep engineering management expertise and extensive experience will be instrumental in driving technological innovation, cost optimization, and reinforcing the foundation for our hotel's safe and sustainable operations."
+
+  
+
+  
+
+本次投票截止日期为:2025年6月26日 12:00
+
+  
+
+**本期人气TOP1所在酒店将获得**
+
+**门墩儿专访一期**
+
+**2025年6月12日投票结果公布**
+
+![](https://mmecoa.qpic.cn/mmecoa_jpg/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMDqWlLTA4A6ruyxeSS7iaKHjv1ibRswccGuU6rYRWbDE3jXD12BRE119A/640?wx_fmt=jpeg)
+
+  
+
+  
+
+恭喜刘芮兴先生以223票拔得头筹,获得人气TOP1
+
+我们近期将为他安排一期专访
+
+![](https://mmbiz.qpic.cn/sz_mmbiz_png/UOfXdu2ZbTdic1GL8CN1PmGz7pzbmdajLZwAVNPUxC1The9fN45DZF5PEpD6dsxrdOBNMXibDP39ribpJlwgbHdibg/640?wx_fmt=png)
+
+![](https://mmecoa.qpic.cn/mmecoa_png/4eGU2iarqNCR0qLEYTU2NhIsuZ4SJTnUMsqFrFeoGhw7UWUZW1FpSLTcjKdNHpwFyqgQneicHYZnUE7N5GTzpLDQ/640?wx_fmt=png)

+ 100 - 0
测试结果总结.md

@@ -0,0 +1,100 @@
+# QWen模型人员信息提取功能测试结果总结
+
+## 测试概述
+
+本次测试验证了 `process_webpage_with_QWen` 函数提取酒店人员任命信息的功能,使用了两个样例文件:
+- `新任命单人-markdown格式.md` (单人任命测试)
+- `新任命多人-markdown格式.md` (多人任命测试)
+
+## 代码修改
+
+### 问题发现
+原始代码中使用 `extract_json_from_text` 函数处理QWen返回的JSON响应,该函数可能会截断多人JSON数据,导致信息丢失。
+
+### 解决方案
+修改了 `app/core/data_parse/parse_web.py` 中的JSON解析逻辑:
+- **优先直接解析**:首先尝试直接解析QWen返回的JSON响应
+- **备用方案**:如果直接解析失败,才使用 `extract_json_from_text` 函数作为备用方案
+- **增强错误处理**:提供更详细的错误信息,便于调试
+
+## 测试结果
+
+### 单人任命测试 ✅
+- **提取人员数量**: 1个 (符合预期)
+- **数据完整性**: 9/9 字段完整
+- **关键信息提取**:
+  - 中文姓名: 周银萍
+  - 英文姓名: Sandra Zhou
+  - 中文职位: 人力资源总监
+  - 英文职位: Director of Human Resources
+  - 中文酒店: 深圳中洲万豪酒店
+  - 英文酒店: Shenzhen Marriott Hotel Nanshan
+  - 品牌组合: 万豪
+  - 照片链接: ✅ 正确提取
+  - 职业轨迹: 1条记录
+
+### 多人任命测试 ✅
+- **提取人员数量**: 16个 (符合预期)
+- **数据完整性**: 所有人员都包含完整的9个字段
+- **提取质量统计**:
+  - 完整信息(9/9字段): 4人
+  - 较完整信息(8/9字段): 6人
+  - 基本信息(5-7/9字段): 6人
+
+### 详细人员信息提取结果
+
+| 序号 | 姓名 | 中文职位 | 英文职位 | 酒店 | 品牌组合 | 非空字段 |
+|------|------|----------|----------|------|----------|----------|
+| 1 | 曲晶 女士 | 市场营销副总裁 | - | 北京诺金国际酒店管理有限责任公司 | 诺金国际 | 6/9 |
+| 2 | 扎西央宗 女士 | 总经理 | General Manager | 北海涠洲岛悦苑酒店 | 悦榕集团 | 8/9 |
+| 3 | 孔祥俊 先生 | 总经理 | General Manager | 上海嘉定凯悦酒店 | 凯悦 | 9/9 |
+| 4 | 戴庆丰 先生 | 总经理 | General Manager | 合肥皇冠假日酒店 | 洲际酒店集团 | 9/9 |
+| 5 | 金涛 先生 | 总经理 | General Manager | 厦门泛太平洋大酒店 | 新加坡泛太平洋酒店集团(PPHG) | 9/9 |
+| 6 | 聂磊 先生 | 总经理 | General Manager | 大连硬石酒店 | 硬石酒店集团 | 8/9 |
+| 7 | 张雪婷 女士 | 总经理 | General Manager | 洛阳浩德诺富特酒店 | - | 8/9 |
+| 8 | 刘志强 先生 | 总经理 | General Manager | 嘉辉会丽呈华廷酒店、嘉辉会度假酒店 | - | 7/9 |
+| 9 | 卜伟 先生 | 市场销售总监 | Director of Sales & Marketing | 西安浐灞华邑酒店与西安浐灞假日酒店 | 洲际酒店集团 | 8/9 |
+| 10 | 缪慧 女士 | 市场销售总监 | - | 北海涠洲岛悦苑酒店 | - | 5/9 |
+| 11 | 温国游 先生 | 财务总监 | - | 北海涠洲岛悦苑酒店 | - | 5/9 |
+| 12 | 文远超 先生 | 餐饮总监 | - | 北海涠洲岛悦苑酒店 | - | 5/9 |
+| 13 | 王亚铭 先生 | 餐饮总监 | Director of Food & Beverage | 武汉世茂希尔顿酒店 | - | 8/9 |
+| 14 | 赵先托 先生 | 餐饮总监 | Director of Food and Beverage | 三亚湾海居铂尔曼度假酒店 | 雅高集团 | 8/9 |
+| 15 | 盘海文 先生 | 工程总监 | - | 北海涠洲岛悦苑酒店 | - | 5/9 |
+| 16 | 陆尤喜 先生 | 工程总监 | Director of Engineering | 深圳中洲万豪酒店 | - | 8/9 |
+
+## 功能特点分析
+
+### 优势
+1. **多人识别准确**: 能够正确识别并提取文档中所有16个人员信息
+2. **字段完整性**: 所有人员都包含完整的9个必需字段
+3. **照片链接提取**: 能够正确关联每个人员的照片链接
+4. **职业轨迹提取**: 能够从文本中提取职业经历信息
+5. **中英文支持**: 能够同时提取中英文信息
+
+### 需要改进的地方
+1. **英文信息提取**: 部分人员的英文姓名和职位信息未能提取
+2. **品牌组合识别**: 部分人员的品牌组合信息缺失
+3. **信息标准化**: 职业轨迹信息的格式需要进一步标准化
+
+## 技术改进效果
+
+### 修改前
+- 多人提取只能获取1个人员信息
+- `extract_json_from_text` 函数截断了JSON数据
+
+### 修改后
+- 多人提取成功获取所有16个人员信息
+- 直接解析QWen返回的JSON响应,避免数据丢失
+- 保留备用解析方案,提高容错性
+
+## 结论
+
+**测试结果**: ✅ 通过
+
+`process_webpage_with_QWen` 函数在修改后能够:
+- 正确提取单人和多人任命信息
+- 保持数据完整性
+- 提供结构化的JSON输出
+- 处理中英文混合内容
+
+该功能已满足酒店人员任命信息提取的基本需求,可以投入使用。建议在实际应用中继续监控和优化英文信息提取的准确性。