Skill: yangmingchen1994-dotcom/museum-guide (version 1.4.6)

--- name: museum-guide description: 博物馆参观路线规划助手。支持故宫珍宝馆、国博、上博、陕历博、南博、河博等热门博物馆，根据参观时长、兴趣偏好、是否带儿童，自动生成必看文物清单、镇馆之宝路线和更高效的参观顺序。适合搜索：博物馆路线规划、国家博物馆必看、museum itinerary、must-see artifacts。 metadata: openclaw: emoji: "🏛️" requires: env: AUTH_GATEWAY_PORT: description: ProSearch 代理端口 default: "19000" config: - path: scripts/config.json description: 本地配置文件，需配置 API_KEY、API_BASE、MODEL_NAME trigger: # 博物馆名称类 - 博物馆 - 国博 # 规划意图类 - 路线规划 - 怎么逛 - 参观路线 - 镇馆之宝 # 英文触发 - museum - museum route - museum itinerary --- # 博物馆参观路线规划师 告诉我你想去哪个博物馆、打算逛多久、重点想看什么，我会给你一份更适合真实参观的路线建议，而不是只给你一堆泛泛介绍。 --- ## 适合场景 - 第一次去大型博物馆，不知道从哪里开始看 - 只有 2–3 小时，希望优先看最值得的文物 - 想看"镇馆之宝 / 必看国宝 / 网红文物" - 带孩子一起去，希望路线轻松、重点直观 - 只对某类文物感兴趣，例如青铜器、瓷器、书画、玉器 - 对某些朝代更感兴趣，例如汉唐、宋元、明清 --- ## 你可以这样问 - 帮我规划国家博物馆 3 小时参观路线 - 去国家博物馆半天，重点看书画和瓷器，怎么逛 - 带孩子去博物馆，推荐一条轻松的重点路线 - 我只想看青铜器和汉代文物，怎么走更高效 - 上海博物馆 2 小时必看什么 - 天津博物馆有什么镇馆之宝 - Plan a 3-hour museum route for the National Museum of China --- ## 你会得到什么 我通常会输出一份可直接照着走的参观建议，包括： - 推荐参观顺序 - 必看文物清单 - 镇馆之宝 / 核心文物优先级 - 每件文物的推荐理由 - 尽量减少折返的浏览路径 - 针对亲子、时间限制、兴趣偏好的个性化取舍 输出示例： | 序号 | 文物名称 | 展馆 | 时期 | 推荐理由 | |---|---|---|---|---| | 1 | 后母戊鼎 ⭐ | 青铜馆 | 商代 | 世界最重青铜礼器，镇国之宝 | | 2 | 四羊方尊 ⭐ | 青铜馆 | 商代 | 造型辨识度极高，青铜工艺巅峰 | | 3 | 孝端皇后凤冠 ⭐ | 明清展厅 | 明代 | 视觉冲击强，服饰饰品精品 | | 4 | 汝窑天青釉洗 | 陶瓷馆 | 宋代 | 汝窑存世极少，天青釉温润如玉 | | 5 | 清明上河图 | 书画馆 | 宋代 | 北宋风俗画长卷，汴京盛世全景 | 说明：⭐ 表示镇馆之宝或高优先级重点文物。 --- ## 推荐使用方式 为了得到更准确的路线，建议在问题里尽量包含以下信息： - **博物馆名称**（必填） - **参观时长**（如：2小时、半天、一天） - **是否带儿童** - **兴趣领域**（如：青铜器、瓷器、书画、玉器） - **朝代偏好**（如：汉唐、宋元、明清） 例如： - 故宫珍宝馆，半天，带孩子，想看皇家文物 - 国家博物馆，3小时，不带孩子，重点看青铜器、玉器、汉唐文物 - 上海博物馆，2小时，重点看书法、绘画、瓷器 如果你没有提供完整信息，我会根据常见参观习惯进行合理补全，并先给你一个可调整版本。 --- ## 工作流程 ``` 用户输入 → 画像提取 → 文物检索 → 路线规划 → 输出表格 ``` **阶段一：画像提取** - 从用户输入中解析博物馆名称、参观时长、兴趣偏好等 - 缺失信息自动推断并确认 **阶段二：文物检索** - 优先使用离线数据（references/ 目录下的 CSV） - 无离线数据时走 ProSearch 联网搜索 **阶段三：路线规划** - 按权重评分筛选文物（朝代、种类、镇馆之宝等） - 按参观顺序排定路线 - LLM 生成每件文物的推荐理由 --- ## 输出控制 **AI助手必须严格遵守以下顺序：** ``` Step 1 → 运行 Phase 1 → 拿到 confirmation_prompt → 展示给用户 ↑ 等待用户回复 Step 2 → 用户确认后 → 运行 Phase 2 → 输出路线 ``` **AI助手必须遵守以下输出规则：** 1. **保持内容完整性**：不得删除脚本输出的文物列表、博物馆信息、表格格式等核心内容。 2. **可优化格式**：可以调整表格格式或添加emoji以提升可读性。 --- ### Phase 1：画像提取 + 确认 ```bash python3 scripts/museum_assistant.py "帮我规划国博的参观路线" ``` **输出示例：** ```json { "phase": 1, "profile": { ... }, "confirmation_needed": true, "confirmation_prompt": "📋 基于您的输入，我已提取以下参观信息：...", "next_step": "phase2", "usage_hint": "用户确认后，运行 Phase 2..." } ``` **此时AI助手必须：** - 将 `confirmation_prompt` 内容原样展示给用户 - **等用户回复**（确认/修改/补充信息） - 禁止在此阶段调用 Phase 2 ### Phase 2：用户确认后，生成路线 用户确认后，有两种方式运行 Phase 2： **方式 1：使用 --profile-json 参数**（适用于 Mac/Linux 系统） ```bash python3 scripts/museum_assistant.py --phase2 --profile-json '<profile JSON>' ``` **方式 2：使用 --profile-file 参数**（适用于所有系统，特别是 Windows 系统） 1. 将 Phase 1 返回的 `profile` JSON 保存到文件中，例如 `profile.json` 2. 运行命令： ```bash python3 scripts/museum_assistant.py --phase2 --profile-file profile.json ``` ### ❌ 禁止行为 - **禁止**将 Phase 1 + Phase 2 合并为一次调用 - **禁止**在用户未回复确认的情况下自行生成路线 --- ## 注意事项 - 博物馆名称为**必填**，不可跳过 - 离线模式：已支持故宫珍宝馆、国家博物馆等热门博物馆，无需联网即可使用 - 在线模式：需要 ProSearch 代理服务（默认端口 19000）和大模型 API

path: scripts/config.json

path: scripts/plan_route.py
content: #!/usr/bin/env python3
"""
博物馆参观路线规划模块：根据用户画像和文物列表生成最优参观路线
"""

import json
import random
import sys
from typing import List, Dict, Any
from collections import defaultdict

from extract_profile import call_llm_api


def normalize_profile(profile: Dict[str, Any]) -> Dict[str, Any]:
    """标准化用户画像，确保字段格式一致"""
    normalized = {
        "museum_name": profile.get("museum_name", ""),
        "duration": profile.get("duration", "2-3小时"),
        "with_children": profile.get("with_children", False),
        "artifact_types": profile.get("artifact_types", []),
        "dynasties": profile.get("dynasties", []),
        "domains": profile.get("domains", []),
        "first_visit": profile.get("first_visit", False)
    }
    
    # 处理文物种类别名
    artifact_mapping = {
        "铜器": "青铜器",
        "玉器": "玉器宝石",
        "书画": "书画古籍"
    }
    normalized_artifacts = []
    for t in normalized["artifact_types"]:
        normalized_artifacts.append(artifact_mapping.get(t, t))
    normalized["artifact_types"] = normalized_artifacts
    
    return normalized


# 朝代别名映射
PERIOD_ALIAS = {
    "远古时期":       ["远古", "史前", "新石器", "旧石器", "新石器时代", "旧石器时代"],
    "夏商西周":       ["夏", "商", "殷", "西周", "殷商"],
    "春秋战国":       ["春秋", "战国", "东周"],
    "秦汉":           ["秦", "西汉", "东汉", "汉"],
    "三国两晋南北朝": ["三国", "魏", "蜀", "吴", "晋", "西晋", "东晋", "南北朝", "北朝", "南朝"],
    "隋唐五代":       ["隋", "唐", "五代", "五代十国"],
    "辽宋夏金元":     ["宋", "北宋", "南宋", "辽", "金", "元", "西夏"],
    "明清":           ["明", "清", "清代", "明代"],
}

def match_period(artifact_period: str, user_dynasties: list) -> bool:
    """判断文物时期是否匹配用户选择的朝代（含别名，自动去除"时期"后缀）"""
    normalized = artifact_period.replace("时期", "").strip()
    for user_dynasty in user_dynasties:
        # 直接匹配
        if user_dynasty == artifact_period or user_dynasty == normalized:
            return True
        
        # 检查文物时期是否在用户朝代的别名中
        for key, aliases in PERIOD_ALIAS.items():
            # 如果用户朝代是某个朝代的名称或别名
            if user_dynasty == key or user_dynasty in aliases:
                # 检查文物时期是否匹配该朝代或其别名
                if artifact_period == key or normalized == key or artifact_period in aliases or normalized in aliases:
                    return True
    return False


def calculate_score(artifact: Dict[str, Any], profile: Dict[str, Any]) -> float:
    """计算文物的匹配得分"""
    score = 0.0

    # 1. 文物种类匹配：一致 +2，不一致 +0.5
    artifact_type = artifact.get("type", "")
    if artifact_type in profile.get("artifact_types", []):
        score += 2.0
    else:
        score += 0.5

    # 2. 朝代匹配：一致 +2，不一致 +0
    artifact_period = artifact.get("period", "")
    if match_period(artifact_period, profile.get("dynasties", [])):
        score += 2.0

    # 3. 镇馆之宝 vs 一般文物
    is_treasure = artifact.get("is_treasure", False)
    first_visit = profile.get("first_visit", None)
    if first_visit is True:
        # 首次参观：镇馆之宝 +3，一般文物 +0
        if is_treasure:
            score += 3.0
    else:
        # 非首次参观（含 None）：镇馆之宝 +0.5，一般文物 +0
        if is_treasure:
            score += 0.5

    # 4. 领域匹配（辅助加分）
    artifact_domains = artifact.get("domains", [])
    for domain in artifact_domains:
        if domain in profile.get("domains", []):
            score += 0.5

    return score


def select_and_sort(artifacts: List[Dict[str, Any]], profile: Dict[str, Any]) -> List[Dict[str, Any]]:
    """根据用户画像筛选并排序文物"""
    if not artifacts:
        return []
    
    # 带儿童时，直接过滤掉不适合儿童的文物
    if profile.get("with_children"):
        artifacts = [a for a in artifacts if a.get("child_friendly", True)]

    # 计算每个文物的得分
    scored_artifacts = []
    for artifact in artifacts:
        score = calculate_score(artifact, profile)
        scored_artifacts.append((artifact, score))
    
    # 按得分降序排序
    scored_artifacts.sort(key=lambda x: -x[1])
    
    # 根据参观时长确定目标数量
    duration = profile["duration"]
    if duration == "2-3小时":
        target_n = 15
    elif duration == "4-5小时":
        target_n = 25
    else:
        target_n = 15

    # 分数阈值
    score_threshold = 4.5
    
    # 高于阈值的文物
    high_score_items = [(a, s) for a, s in scored_artifacts if s >= score_threshold]
    high_score_items.sort(key=lambda x: -x[1])
    len_high_score = len(high_score_items)
    
    output_items = []
    used_names = set()
    
    if len_high_score >= target_n:
        # 得分去重降序，取倒数第二小的分数
        unique_scores = sorted(set(s for _, s in high_score_items), reverse=True)
        if len(unique_scores) >= 2:
            second_lowest_score = unique_scores[-2]
        else:
            second_lowest_score = unique_scores[0]
        
        above_second = [(a, s) for a, s in high_score_items if s > second_lowest_score]
        num_above = len(above_second)
        
        equals_second = [(a, s) for a, s in scored_artifacts if s == second_lowest_score]
        num_needed = target_n - num_above
        
        if num_needed > 0:
            sample_size = min(num_needed, len(equals_second))
            sampled = random.sample(equals_second, sample_size) if equals_second else []
            output_items = above_second + sampled
        else:
            output_items = above_second
    else:
        output_items = high_score_items
    
    # 去重（按文物名称）
    output_list = []
    for artifact, score in output_items:
        name = artifact.get("name", "")
        if name not in used_names:
            output_list.append(artifact)
            used_names.add(name)
    
    current_n = len(output_list)
    
    # 如果不够 target_n，继续补充更低分数的文物
    if current_n < target_n:
        all_scores = sorted(set(s for _, s in scored_artifacts), reverse=True)
        for score in all_scores:
            if score <= score_threshold or len_high_score < target_n:
                candidates = [(a, s) for a, s in scored_artifacts if s == score and a.get("name", "") not in used_names]
                num_left = target_n - current_n
                if candidates:
                    sample_size = min(num_left, len(candidates))
                    sampled = random.sample(candidates, sample_size)
                    for artifact, _ in sampled:
                        name = artifact.get("name", "")
                        if name not in used_names:
                            output_list.append(artifact)
                            used_names.add(name)
                            current_n += 1
                if current_n >= target_n:
                    break
    
    # 按 visit_order > hall > period 排序
    period_order = ["远古时期","夏商西周","春秋战国","秦汉","三国两晋南北朝","隋唐五代","辽宋夏金元","明清"]
    
    def sort_key(artifact):
        if "visit_order" in artifact:
            return (0, artifact["visit_order"])
        hall = artifact.get("hall", "")
        if hall and hall not in ("待确认", "unknown", ""):
            return (1, hall, period_order.index(artifact.get("period", "")) if artifact.get("period", "") in period_order else 99)
        period = artifact.get("period", "")
        period_index = period_order.index(period) if period in period_order else 99
        return (2, period_index)
    
    output_list = sorted(output_list, key=sort_key)

    return output_list


def summarize_reasons_with_llm(artifacts: List[Dict[str, Any]], profile: Dict[str, Any]) -> List[Dict[str, Any]]:
    """使用大模型生成每个文物的推荐理由"""
    if not artifacts:
        return []
    
    # 准备文物数据（含博物馆名称，离线模式下由 artifact.museum_name 提供）
    museum_name = profile.get("museum_name", "")
    artifacts_data = []
    for artifact in artifacts:
        artifacts_data.append({
            "name": artifact.get("name", ""),
            "museum": artifact.get("museum_name", museum_name),
            "type": artifact.get("type", ""),
            "period": artifact.get("period", ""),
            "hall": artifact.get("hall", ""),
            "description": artifact.get("description", ""),
            "is_treasure": artifact.get("is_treasure", False),
        })
    
    prompt = f"""
你是一位专业的博物馆讲解员，请为以下文物各生成一句简短推荐理由（30字以内）。
要求：突出文物的历史价值、艺术特色或趣味亮点，语气积极正向，不要出现任何否定表述。

文物列表：
{json.dumps(artifacts_data, ensure_ascii=False, indent=2)}

请返回JSON格式，key为文物名称，value为推荐理由：
{{
    "文物名称1": "推荐理由1",
    "文物名称2": "推荐理由2"
}}
"""
    
    try:
        result = call_llm_api(prompt)
        if "error" in result:
            # 如果API调用失败，生成默认理由
            for artifact in artifacts:
                artifact["reason"] = f"{artifact.get('name', '文物')}，{artifact.get('description', '')}"
            return artifacts
            
        # 为每个文物添加推荐理由
        for artifact in artifacts:
            name = artifact.get("name", "")
            if name in result:
                artifact["reason"] = result[name]
            else:
                artifact["reason"] = f"{artifact.get('name', '文物')}，{artifact.get('description', '')[:30]}..."
                
    except Exception as e:
        print(f"生成推荐理由失败: {e}", file=sys.stderr)
        for artifact in artifacts:
            artifact["reason"] = f"{artifact.get('name', '文物')}，{artifact.get('description', '')[:30]}..."
    
    return artifacts


def get_museum_info(museum_name: str) -> str:
    """获取博物馆信息"""
    prompt = f"""
    请提供{museum_name}的基本信息，包括：
    1. 位置
    2. 开放时间
    3. 门票信息
    4. 交通信息
    5. 馆内设施（如餐厅、厕所、寄存处等）
    6. 附近景点或设施
 
    要求：
    1. 信息准确，简洁明了，不要包含多余的描述
    2. 请严格按照以下JSON格式返回结果，不要添加任何其他内容：
    {{
        "位置": "博物馆的具体位置",
        "开放时间": "开放时间信息",
        "门票信息": "门票价格和预约方式",
        "交通信息": "如何到达博物馆",
        "馆内设施": "馆内设施信息",
        "附近景点或设施": "附近的景点或设施"
    }}
    """
    
    try:
        result = call_llm_api(prompt)
        if isinstance(result, dict):
            info = []
            if result.get("位置"):
                info.append(f"**📍 位置：** {result['位置']}")
            if result.get("开放时间"):
                info.append(f"**⏰ 开放时间：** {result['开放时间']}")
            if result.get("门票信息"):
                info.append(f"**🎫 门票：** {result['门票信息']}")
            if result.get("交通信息"):
                info.append(f"**🚗 交通：** {result['交通信息']}")
            if result.get("馆内设施"):
                info.append(f"**🏪 馆内设施：** {result['馆内设施']}")
            if result.get("附近景点或设施"):
                info.append(f"**🏙️ 附近：** {result['附近景点或设施']}")
            if info:
                return "\n".join(info)
    except Exception as e:
        print(f"获取博物馆信息失败: {e}", file=sys.stderr)
    
    # 默认信息
    default_info = [
        f"**📍 位置：** 请查询{museum_name}官方网站获取准确位置",
        f"**⏰ 开放时间：** 请查询{museum_name}官方网站获取准确开放时间",
        f"**🎫 门票：** 请查询{museum_name}官方网站获取准确门票信息",
        f"**🚗 交通：** 请查询{museum_name}官方网站获取准确交通信息",
        f"**🏪 馆内设施：** 请查询{museum_name}官方网站获取馆内设施信息",
        f"**🏙️ 附近：** 请查询{museum_name}官方网站获取附近景点信息"
    ]
    return "\n".join(default_info)


def format_markdown_table(artifacts: List[Dict[str, Any]]) -> str:
    """将文物列表格式化为Markdown表格"""
    if not artifacts:
        return "没有找到符合条件的文物"
    
    # 检查展馆信息是否充足
    valid_hall_count = 0
    for artifact in artifacts:
        hall = artifact.get("hall", "")
        if hall and hall != "待确认":
            valid_hall_count += 1
    
    # 决定是否显示展馆列
    show_hall = valid_hall_count > len(artifacts) * 0.3
    
    # 构建表头
    if show_hall:
        headers = ["序号", "文物名称", "展馆", "时期", "推荐理由"]
    else:
        headers = ["序号", "文物名称", "时期", "推荐理由"]
    
    table = "| " + " | ".join(headers) + " |\n"
    table += "| " + " | ".join(["---" for _ in headers]) + " |\n"
    
    # 构建表格内容
    for i, artifact in enumerate(artifacts, 1):
        name = artifact.get("name", "未知文物")
        period = artifact.get("period", "未知时期")
        reason = artifact.get("reason", "无推荐理由")
        
        # 处理长文本
        if len(reason) > 50:
            reason = reason[:47] + "..."
        
        # 为文物名称加粗
        bold_name = f"**{name}**"
    
        is_treasure = artifact.get("is_treasure", False)
        
        # 为镇馆之宝添加⭐标注
        if is_treasure:
            display_name = f"{bold_name} ⭐"
        else:
            display_name = bold_name
            
        if show_hall:
            hall = artifact.get("hall", "待确认")
            row = [
                str(i),
                display_name,
                hall,
                period,
                reason
            ]
        else:
            row = [
                str(i),
                display_name,
                period,
                reason
            ]
        
        table += "| " + " | ".join(row) + " |\n"
    
    return table


def main():
    import argparse
    parser = argparse.ArgumentParser(description="博物馆参观路线规划")
    parser.add_argument("--profile", required=True, help="用户画像JSON文件路径")
    parser.add_argument("--artifacts", required=True, help="文物列表JSON文件路径")
    parser.add_argument("--output", help="输出结果文件路径")
    args = parser.parse_args()
    
    # 读取用户画像
    with open(args.profile, 'r', encoding='utf-8') as f:
        profile = json.load(f)
    
    # 读取文物列表
    with open(args.artifacts, 'r', encoding='utf-8') as f:
        artifacts = json.load(f)
    
    # 标准化用户画像
    normalized_profile = normalize_profile(profile)
    
    # 筛选并排序文物
    selected_artifacts = select_and_sort(artifacts, normalized_profile)
    
    # 生成推荐理由
    selected_artifacts = summarize_reasons_with_llm(selected_artifacts, normalized_profile)
    
    # 格式化为Markdown表格
    markdown_table = format_markdown_table(selected_artifacts)
    
    # 生成最终结果
    final_output = build_output(normalized_profile, selected_artifacts, markdown_table)
    
    # 输出结果
    if args.output:
        with open(args.output, 'w', encoding='utf-8') as f:
            f.write(final_output)
        print(f"路线规划结果已保存到: {args.output}")
    else:
        print(final_output)


def build_output(profile: dict, artifacts: list, markdown_table: str) -> str:
    """构建最终输出
    
    Args:
        profile: 标准化后的用户画像
        artifacts: 选中的文物列表
        markdown_table: 文物表格
        
    Returns:
        最终的Markdown输出
    """
    museum_name = profile.get("museum_name", "博物馆")
    header = f"\n## 🗺️ {museum_name} 参观路线规划\n"
    meta = f"### 📊 参观信息\n"
    meta += f"- ⏱️ 参观时长：{profile.get('duration')}\n"
    meta += f"- 📍 推荐文物数：{len(artifacts)} 件\n"
    meta += f"- 👣 首次参观：{'是' if profile.get('first_visit') else '否'}\n"
    meta += f"- 👶 携带儿童：{'是' if profile.get('with_children') else '否'}\n\n"
    
    # 添加博物馆信息
    museum_info = get_museum_info(museum_name)
    museum_info_section = f"\n## 🏛️ {museum_name} 基本信息\n{museum_info}\n"
    
    return header + meta + markdown_table + museum_info_section


if __name__ == "__main__":
    main()

path: scripts/search_artifacts.py
content: #!/usr/bin/env python3
"""
根据博物馆名称检索在展文物信息。
使用 ProSearch 搜索，大模型提取并整理文物列表。

用法：python3 search_artifacts.py "<museum_name>"
输出：JSON格式的文物列表，供 plan_route.py 使用
"""

import sys
import json
import os
import requests
from pathlib import Path
from typing import Optional, List, Dict, Any

# 导入离线数据加载器
sys.path.insert(0, str(Path(__file__).parent))
from load_references import load_artifacts_from_csv, list_available_museums

SEARCH_QUERIES = [
    "{museum} 镇馆之宝",
    "{museum} 文物 名单",
    "{museum} 在展文物",
    "{museum} 精品文物",
    "{museum} 著名文物",
    "{museum} 必看文物",
    "{museum} 馆藏珍品",
    "{museum} 参观攻略 文物",
]


from extract_profile import call_llm_api


def prosearch(keyword: str, count: int = 10) -> dict:
    """调用天集 ProSearch API 进行搜索"""
    port = os.environ.get("AUTH_GATEWAY_PORT", "19000")
    url = f"http://localhost:{port}/proxy/prosearch/search"
    
    payload = {"keyword": keyword, "cnt": count}
    headers = {"Content-Type": "application/json"}
    
    try:
        response = requests.post(url, json=payload, headers=headers, timeout=30)
        response.raise_for_status()
        return response.json()
    except Exception as e:
        return {"error": str(e)}


def extract_artifacts_with_llm(search_results: List[str], museum_name: str) -> List[Dict]:
    """使用大模型从搜索结果中提取文物信息"""
    
    combined_content = "\n\n".join([
        f"--- 搜索结果 {i+1} ---\n{result[:1500]}"
        for i, result in enumerate(search_results[:12])
    ])

    prompt = f"""
你是一位博物馆文物专家。请从以下{museum_name}的搜索结果中提取文物信息。

要求：
1. 只提取该博物馆的**常设馆藏文物**，排除借展、巡展、复制品、仿品
2. 提取文物名称、所属展馆、所属时期、文物种类、是否是镇馆之宝、简要描述
2. 时期必须从以下列表中选择：远古时期、夏商西周、春秋战国、秦汉、三国两晋南北朝、隋唐五代、辽宋夏金元、明清
3. 文物种类必须从以下列表中选择：青铜器、陶器、瓷器、漆器、玉器宝石、石器石刻、书画古籍、服饰、砖瓦、钱币、化石、金银器、其他
4. 关注的领域从以下列表中选择：农耕、狩猎、饮食、建筑、人物、武器、文房四宝、牌章证件、货币、书法、绘画、雕像、服装、饰品、仪器、佛教、乐器、纹饰、花瓶、礼制、古生物、新石器、旧石器、陈设品、科技、其他
5. 如果搜索结果中未提及展馆，请使用"待确认"
6. 尽可能多地提取文物（至少20件）

请返回JSON数组格式：
[
    {{
        "name": "文物名称",
        "hall": "展馆名称",
        "period": "时期",
        "type": "文物种类",
        "is_treasure": true/false,
        "description": "简要描述",
        "domains": ["领域1", "领域2"],
        "child_friendly": true/false
    }}
]

搜索结果：
{combined_content}
"""

    try:
        result = call_llm_api(prompt)
        if "error" in result:
            print(f"大模型提取失败: {result['error']}", file=sys.stderr)
            return []
        return result if isinstance(result, list) else []
    except Exception as e:
        print(f"大模型提取异常: {e}", file=sys.stderr)
        return []


def search_artifacts(museum_name: str) -> list:
    """使用天集 ProSearch 搜索文物，大模型提取"""
    search_results = []
    
    for query_template in SEARCH_QUERIES:
        query = query_template.format(museum=museum_name)
        try:
            result = prosearch(query, count=10)
            
            docs = result.get('data', {}).get('docs', [])
            if not docs:
                continue
                
            for item in docs:
                passage = item.get('passage', '')
                if passage:
                    search_results.append(passage)
        except Exception:
            pass
    
    if not search_results:
        return []
    
    artifacts = extract_artifacts_with_llm(search_results, museum_name)
    return artifacts


def get_artifacts(museum_name: str) -> tuple:
    """
    获取博物馆文物列表。
    返回 (artifacts, source)，source 为 "offline" 或 "online"。
    """
    # 优先查找离线数据
    offline = load_artifacts_from_csv(museum_name)
    if offline is not None:
        print(f"[离线模式] 使用 references/ 中的数据，共 {len(offline)} 件文物", file=sys.stderr)
        return offline, "offline"

    # 没有离线数据，走在线搜索
    print(f"[在线模式] 未找到 {museum_name} 的离线数据，启动联网搜索...", file=sys.stderr)
    artifacts = search_artifacts(museum_name)
    return artifacts, "online"


def main():
    museum_name = " ".join(sys.argv[1:]) if len(sys.argv) > 1 else ""
    if not museum_name:
        print(json.dumps({"error": "请提供博物馆名称"}, ensure_ascii=False))
        sys.exit(1)

    artifacts, source = get_artifacts(museum_name)

    # 描述由 plan_route.py 的 summarize_reasons_with_llm 统一生成
    print(json.dumps({
        "museum_name": museum_name,
        "source": source,
        "artifacts_count": len(artifacts),
        "artifacts": artifacts
    }, ensure_ascii=False, indent=2))


if __name__ == "__main__":
    main()


path: scripts/museum_assistant.py
content: #!/usr/bin/env python3
"""museum_assistant.py

入口脚本：
  Phase 1（画像提取）→ 展示确认 → Phase 2（路线生成）

用法：
  Step 1：python3 museum_assistant.py "帮我规划去上海博物馆的参观路线"
          → 输出画像 + confirmation_prompt，等用户确认

  Step 2：用户确认后
          python3 museum_assistant.py --phase2 --profile-json '<Phase1返回的profile的JSON>'
          → 输出完整路线
"""

import argparse
import json
import sys
from typing import Any, Dict

import extract_profile as ep
import plan_route as pr
import search_artifacts as sa


# ─────────────────────────────────────────────
# Phase 1：画像提取 + 确认
# ─────────────────────────────────────────────

def run_phase1(user_input: str) -> Dict[str, Any]:
    """
    Phase 1：仅提取用户画像并构建确认信息。

    返回值永远包含 confirmation_needed: True，
    AI 将此内容展示给用户，等用户回复后再进入 Phase 2。
    """
    llm_profile = ep.extract_profile(user_input)
    if not llm_profile:
        return {
            "phase": 1,
            "error": "画像提取失败，请检查 API 配置与网络连接",
            "confirmation_needed": False,
        }

    inferred_fields = _collect_inferred_fields(llm_profile)

    # 阶段一所有未提取的信息都标注为未指定
    llm_profile = ep.normalize_profile_for_scoring(llm_profile)

    confirmation_prompt = ep.build_confirmation_prompt(llm_profile, inferred_fields)

    return {
        "phase": 1,
        "profile": llm_profile,
        "inferred_fields": inferred_fields,
        "has_unfilled_mandatory": not llm_profile.get("museum_name"),
        "confirmation_needed": True,
        "confirmation_prompt": confirmation_prompt,
        "next_step": "phase2",
        "usage_hint": (
            "用户确认后，将 --profile-json '<JSON>' 传入 Phase 2，例如：\n"
            "  python3 museum_assistant.py --phase2 --profile-json '<此处粘贴profile>'"
        ),
    }


# ─────────────────────────────────────────────
# Phase 2：用户确认后，执行文物检索 + 路线生成
# ─────────────────────────────────────────────

def run_phase2(profile: Dict[str, Any], user_confirmation: str = "") -> Dict[str, Any]:
    """
    Phase 2：在用户明确确认 Phase 1 画像之后运行。
    接收确认后的 profile 和用户补充信息，执行二次提取和推断，然后进行文物检索与路线规划。
    """
    museum_name = profile.get("museum_name", "").strip()
    if not museum_name:
        return {
            "phase": 2,
            "error": "缺少博物馆名称，无法继续。请在 Phase 1 确认时提供博物馆名称。",
        }

    # 二次提取和推断：如果用户提供了补充信息，使用大模型进行二次提取
    if user_confirmation:
        # 调用 extract_profile 函数进行二次提取
        llm_result = ep.extract_profile(user_confirmation, current_profile=profile)
        if llm_result:
            # 更新profile
            profile.update(llm_result)

    # 对于缺失的维度，默认全选该维度的所有元素
    if not profile.get("domains"):
        profile["domains"] = ep.DOMAINS_LIST
    if not profile.get("artifact_types"):
        profile["artifact_types"] = ep.ARTIFACT_TYPES_LIST
    if not profile.get("dynasties"):
        profile["dynasties"] = ep.DYNASTIES_LIST

    # 确保所有值都来自原列表
    profile["domains"] = [d for d in profile.get("domains", []) if d in ep.DOMAINS_LIST]
    profile["artifact_types"] = [a for a in profile.get("artifact_types", []) if a in ep.ARTIFACT_TYPES_LIST]
    profile["dynasties"] = [d for d in profile.get("dynasties", []) if d in ep.DYNASTIES_LIST]

    # 如果过滤后为空，则全选
    if not profile.get("domains"):
        profile["domains"] = ep.DOMAINS_LIST
    if not profile.get("artifact_types"):
        profile["artifact_types"] = ep.ARTIFACT_TYPES_LIST
    if not profile.get("dynasties"):
        profile["dynasties"] = ep.DYNASTIES_LIST

    artifacts, source = sa.get_artifacts(museum_name)

    if not artifacts:
        return {
            "phase": 2,
            "error": f"无法检索到「{museum_name}」的文物信息，请检查网络或尝试其他博物馆。",
            "profile": profile,
        }

    result = _plan_route_inline(profile, artifacts)
    return {
        "phase": 2,
        "source": source,
        "markdown": result["markdown"],
        "selected_count": result["selected_count"],
        "selected": result["selected"],
        "profile": profile,
    }


# ─────────────────────────────────────────────
# 内部辅助函数
# ─────────────────────────────────────────────

def _collect_inferred_fields(profile: Dict[str, Any]) -> list:
    fields = []
    if not profile.get("duration"):
        fields.append("duration")
    if profile.get("first_visit") is None:
        fields.append("first_visit")
    if profile.get("with_children") is None:
        fields.append("with_children")
    if not profile.get("domains"):
        fields.append("domains")
    if not profile.get("artifact_types"):
        fields.append("artifact_types")
    if not profile.get("dynasties"):
        fields.append("dynasties")
    if not profile.get("museum_name"):
        fields.append("museum_name")
    return fields

def _plan_route_inline(profile: Dict[str, Any], artifacts: list) -> Dict[str, Any]:
    normalized_profile = pr.normalize_profile(profile)
    artifacts_selected = pr.select_and_sort(artifacts, normalized_profile)
    pr.summarize_reasons_with_llm(artifacts_selected, normalized_profile)
    table = pr.format_markdown_table(artifacts_selected)
    markdown_output = pr.build_output(profile, artifacts_selected, table)
    
    return {
        "markdown": markdown_output,
        "selected_count": len(artifacts_selected),
        "selected": artifacts_selected,
    }


# ─────────────────────────────────────────────
# main：两阶段路由
# ─────────────────────────────────────────────

def main() -> None:
    parser = argparse.ArgumentParser(
        description="博物馆参观路线规划（两阶段：Phase1画像提取 → 确认 → Phase2路线生成）"
    )
    parser.add_argument("user_input", nargs="*", default=[],
                        help="用户原始需求描述（Phase 1 使用）")
    parser.add_argument("--phase2", dest="phase2", action="store_true",
                        help="运行 Phase 2（需配合 --profile-json）")
    parser.add_argument("--profile-json", dest="profile_json",
                        help="Phase 2 所需 profile JSON（Phase 1 返回的完整 JSON）")
    parser.add_argument("--profile-file", dest="profile_file",
                        help="Phase 2 所需 profile JSON 文件路径（替代 --profile-json）")
    parser.add_argument("--user-confirmation", dest="user_confirmation", default="",
                        help="用户的补充信息（Phase 2 使用）")


    args = parser.parse_args()

    # ── Phase 1 ───────────────────────────────
    if not args.phase2 and not getattr(args, "profile_json", None) and not getattr(args, "profile_file", None):
        user_input = " ".join(args.user_input).strip()
        if not user_input:
            print(json.dumps({"error": "请提供用户输入文本"}, ensure_ascii=False))
            sys.exit(1)

        result = run_phase1(user_input)
        if "error" in result and result.get("phase") != 1:
            print(json.dumps(result, ensure_ascii=False, indent=2))
            sys.exit(1)

        print(json.dumps(result, ensure_ascii=False, indent=2))
        return

    # ── Phase 2 ────────────────────────────────────────────
    if args.phase2 or getattr(args, "profile_json", None) or getattr(args, "profile_file", None):
        # 优先从文件读取profile
        if getattr(args, "profile_file", None):
            try:
                with open(args.profile_file, 'r', encoding='utf-8') as f:
                    profile = json.load(f)
            except Exception as e:
                print(json.dumps({"error": f"从文件读取 profile 失败：{e}", "phase": 2}, ensure_ascii=False))
                sys.exit(1)
        elif getattr(args, "profile_json", None):
            try:
                # 处理可能的引号问题，去除首尾的单引号或双引号
                profile_json = args.profile_json
                if (profile_json.startswith('\'') and profile_json.endswith('\'')) or \
                   (profile_json.startswith('"') and profile_json.endswith('"')):
                    profile_json = profile_json[1:-1]
                # 处理转义字符问题
                profile_json = profile_json.replace('\\n', '\n').replace('\\t', '\t')
                profile = json.loads(profile_json)
            except json.JSONDecodeError as e:
                print(json.dumps({"error": f"profile JSON 解析失败：{e}", "phase": 2}, ensure_ascii=False))
                sys.exit(1)
        else:
            print(json.dumps({
                "error": "Phase 2 需要 --profile-json 或 --profile-file 参数，请先运行 Phase 1 获取 profile。",
                "phase": 2,
            }, ensure_ascii=False))
            sys.exit(1)
        
        # 获取用户补充信息
        user_confirmation = getattr(args, "user_confirmation", "")
        result = run_phase2(profile, user_confirmation)
        if "error" in result:
            print(json.dumps(result, ensure_ascii=False, indent=2))
            sys.exit(1)
        print(result["markdown"])
        return


if __name__ == "__main__":
    main()


path: scripts/extract_profile.py
content: #!/usr/bin/env python3
"""
基于大模型的博物馆参观信息提取工具
"""

import sys
import json
import requests
import re
from pathlib import Path
from typing import Dict, Optional, List

def load_api_config() -> dict:
    """从配置文件加载大模型配置"""
    from pathlib import Path
    import json

    config_path = Path(__file__).parent / "config.json"
    if config_path.exists():
        with open(config_path, 'r', encoding='utf-8') as f:
            config = json.load(f)

        [REDACTED_SECRET]"API_KEY", "")
        api_base = config.get("API_BASE", "")
        model_name = config.get("MODEL_NAME", "")
        
        if api_key and api_base and model_name:
            if not api_base.endswith("/chat/completions"):
                api_base = f"{api_base.rstrip('/')}/chat/completions"

            return {
                "api_key": api_key,
                "api_base": api_base,
                "model": model_name,
                "provider": "config",
                "api_type": "openai-completions"
            }
    
    return None

# 完整的可选列表
DOMAINS_LIST = ["农耕", "狩猎", "饮食", "建筑", "人物", "武器", "文房四宝", "牌章证件", "货币", "书法", "绘画", "雕像", "服装", "饰品", "仪器", "佛教", "乐器", "纹饰", "花瓶", "礼制", "古生物", "新石器", "旧石器", "陈设品", "科技", "其他"]
ARTIFACT_TYPES_LIST = ["铜器", "陶器", "瓷器", "漆器", "玉器宝石", "金银器", "石器石刻", "书画古籍", "服饰", "砖瓦", "钱币", "化石", "其他"]
DYNASTIES_LIST = ["远古时期", "夏商西周", "春秋战国", "秦汉", "三国两晋南北朝", "隋唐五代", "辽宋夏金元", "明清"]

# 通用的 prompt 模板
PROMPT_TEMPLATE = """
你是一位专业的博物馆参观路线规划助手，请{instruction}以下7个维度的信息：
1. 博物馆名称（如：中国国家博物馆、上海博物馆，尽量使用全称）
2. 计划参观时间（只能是：2-3小时、4-5小时，无法确定则返回null）
3. 是否首次参观（只能是：是、否，无法确定则返回null）
4. 是否携带儿童（只能是：是、否，无法确定则返回null）
5. 关注的领域（从以下列表中选择：农耕、狩猎、饮食、建筑、人物、武器、文房四宝、牌章证件、货币、书法、绘画、雕像、服装、饰品、仪器、佛教、乐器、纹饰、花瓶、礼制、古生物、新石器、旧石器、陈设品、科技、其他，可多选）
6. 喜欢的文物种类（从以下列表中选择：铜器、陶器、瓷器、漆器、玉器宝石、金银器、石器石刻、书画古籍、服饰、砖瓦、钱币、化石、其他，可多选）
7. 着重关注的朝代（从以下列表中选择：远古时期、夏商西周、春秋战国、秦汉、三国两晋南北朝、隋唐五代、辽宋夏金元、明清，可多选）

{context}

请严格按照以下JSON格式返回结果，不要添加任何其他内容：
{{
    "museum_name": "提取的博物馆名称或简称",
    "duration": "2-3小时"/"4-5小时"/null,
    "first_visit": "是"/"否"/null,
    "with_children": "是"/"否"/null,
    "domains": ["关注领域1", "关注领域2", ...],
    "artifact_types": ["文物种类1", "文物种类2", ...],
    "dynasties": ["朝代1", "朝代2", ...]
}}
"""

# 第一次提取的指令和上下文
FIRST_EXTRACT_INSTRUCTION = "从用户的输入中提取"
FIRST_EXTRACT_CONTEXT = "用户输入：{user_input}"

# 第二次提取的指令和上下文
SECOND_EXTRACT_INSTRUCTION = "根据当前提取的信息和用户的补充信息，重新提取"
SECOND_EXTRACT_CONTEXT = "当前提取的信息：\n{current_info}\n\n用户的补充信息：\n{user_input}"

# 博物馆别名映射（简称 → 全称）
MUSEUM_ALIAS = {
    "国博": "中国国家博物馆",
    "故宫": "故宫珍宝馆",
    "上博": "上海博物馆",
    "南博": "南京博物院",
    "陕博": "陕西历史博物馆",
    "湘博": "湖南省博物馆",
    "鄂博": "湖北省博物馆",
    "川博": "四川博物院",
    "浙博": "浙江省博物馆",
    "广博": "广东省博物馆",
    "首博": "首都博物馆",
    "苏博": "苏州博物馆",
    "河博": "河南博物院",
    "晋博": "山西博物院",
    "辽博": "辽宁省博物馆",
    "甘博": "甘肃省博物馆",
    "云博": "云南省博物馆",
    "三峡博物馆": "重庆中国三峡博物馆",
    "成博": "成都博物馆",
    "西博": "西安博物院",
    "洛博": "洛阳博物馆",
}

# 专科博物馆关键词（包含这些关键词的博物馆跳过确认）
SPECIALTY_MUSEUM_KEYWORDS = [
    "兵马俑", "秦始皇帝陵", "秦始皇陵",
    "军事", "军博", "航空", "航天",
    "铁路", "火车", "轨道交通",
    "自然", "地质", "科技", "天文", "海洋", "生物", "植物", "动物",
    "昆虫", "古生物", "化石",
    "陶瓷", "玉器", "钱币", "邮票", "印章", "家具", "织绣", "服饰",
    "民族", "民俗", "人类学", "非遗", "非物质文化遗产",
    "美术", "书法", "绘画", "雕塑", "摄影",
    "汽车", "党史", "革命", "历史纪念馆", "烈士陵园",
    "大学博物馆", "高校博物馆",
    "石窟", "船舶", "航海", "航运", "轮船", "桥梁", "隧道",
    "气象", "湿地", "沼泽", "火山",
    "冰川", "冰河", "恐龙", "花卉", "园艺", "园林",
    "电影", "通信", "电信", "邮政",
    "戏剧", "戏曲", "曲艺",
    "音乐", "乐器", "体育", "奥林匹克","茶叶"
]


def is_specialty_museum(museum_name: str) -> bool:
    """判断是否是专科博物馆"""
    if not museum_name:
        return False
    for keyword in SPECIALTY_MUSEUM_KEYWORDS:
        if keyword in museum_name:
            return True
    return False

def call_llm_api(prompt: str) -> Dict:
    """调用大模型API获取提取结果"""
    config = load_api_config()
    if not config:
        return {"error": "未配置 API Key，请在 scripts/config.json 中配置"}
    
    headers = {
        "Content-Type": "application/json",
        "Authorization": f"Bearer {config['api_key']}"
    }

    data = {
        "model": config['model'],
        "messages": [
            {"role": "user", "content": prompt}
        ],
        "temperature": 0.1,
        "max_tokens": 4000,
        "thinking": {"type": "disabled"}
    }

    try:
        response = requests.post(config['api_base'], headers=headers, json=data, timeout=120)
        response.raise_for_status()
        result = response.json()

        # 解析返回的JSON
        if "choices" in result and len(result["choices"]) > 0:
            content = result["choices"][0]["message"]["content"]
            # 清理可能的markdown格式
            content = content.replace("```json", "").replace("```", "").strip()
            # 去除 <think>...</think> 推理标签
            import re as _re
            content = _re.sub(r'<think>.*?</think>', '', content, flags=_re.DOTALL).strip()
            # 提取第一个 JSON 对象或数组
            match = _re.search(r'(\{[\s\S]*\}|\[[\s\S]*\])', content)
            if match:
                content = match.group(1)
            return json.loads(content)
        else:
            return {"error": "Invalid API response"}
    except Exception as e:
        print(f"调用大模型API失败: {e}", file=sys.stderr)
        return {"error": str(e)}

def standardize_museum_name(name: str) -> str:
    """标准化博物馆名称，将简称转换为全称"""
    if not name:
        return None

    for alias, full_name in MUSEUM_ALIAS.items():
        import re
        pattern = r'(^' + re.escape(alias) + r'(?:博物院|博物馆|$)|(?:^|博物院|博物馆)' + re.escape(alias) + r'$)'
        if re.search(pattern, name):
            return full_name

    return name

def extract_profile(user_input: str, current_profile: dict = None) -> Dict:
    """从用户输入中提取参观信息（使用大模型）
    
    Args:
        user_input: 用户输入文本
        current_profile: 当前已提取的信息，用于二次提取
        
    Returns:
        提取的参观信息
    """
    # 构建prompt
    if current_profile:
        # 二次提取的prompt
        current_info = f"当前提取的信息：\n"
        current_info += f"博物馆名称：{current_profile.get('museum_name', '（未指定）')}\n"
        current_info += f"参观时长：{current_profile.get('duration', '（未指定）')}\n"
        current_info += f"是否首次参观：{'是' if current_profile.get('first_visit') else '否' if current_profile.get('first_visit') is not None else '（未指定）'}\n"
        current_info += f"是否携带儿童：{'是' if current_profile.get('with_children') else '否' if current_profile.get('with_children') is not None else '（未指定）'}\n"
        current_info += f"关注的领域：{', '.join(current_profile.get('domains', [])) or '（未指定）'}\n"
        current_info += f"喜欢的文物种类：{', '.join(current_profile.get('artifact_types', [])) or '（未指定）'}\n"
        current_info += f"着重关注的朝代：{', '.join(current_profile.get('dynasties', [])) or '（未指定）'}\n"

        context = SECOND_EXTRACT_CONTEXT.format(current_info=current_info, user_input=user_input)
        prompt = PROMPT_TEMPLATE.format(instruction=SECOND_EXTRACT_INSTRUCTION, context=context)
    else:
        # 第一次提取的prompt
        context = FIRST_EXTRACT_CONTEXT.format(user_input=user_input)
        prompt = PROMPT_TEMPLATE.format(instruction=FIRST_EXTRACT_INSTRUCTION, context=context)

    # 调用大模型
    llm_result = call_llm_api(prompt)

    # 处理结果
    if "error" in llm_result:
        print(f"大模型提取失败: {llm_result['error']}", file=sys.stderr)
        return {}

    # 标准化博物馆名称
    if llm_result.get("museum_name"):
        llm_result["museum_name"] = standardize_museum_name(llm_result["museum_name"])

    # 处理空值
    for key in ["duration", "first_visit", "with_children"]:
        if llm_result.get(key) == "null":
            llm_result[key] = None

    # 将"是/否"转换为布尔值
    for key in ["first_visit", "with_children"]:
        v = llm_result.get(key)
        if v == "是":
            llm_result[key] = True
        elif v == "否":
            llm_result[key] = False

    # 处理列表为空的情况
    for key in ["domains", "artifact_types", "dynasties"]:
        if not llm_result.get(key):
            llm_result[key] = []

    return llm_result


def normalize_profile_for_scoring(profile: dict) -> dict:
    """修正朝代别名，保证 plan_route 的评分逻辑能正确匹配。"""
    domains = list(profile.get("domains") or [])
    artifact_types = list(profile.get("artifact_types") or [])

    dynasties = list(profile.get("dynasties") or [])
    dynasties = ["隋唐五代" if d == "隋唐" else d for d in dynasties]

    profile["domains"] = domains
    profile["artifact_types"] = artifact_types
    profile["dynasties"] = dynasties
    return profile

def build_confirmation_prompt(profile: dict, inferred_fields: list = []) -> str:
    """构建确认提示"""
    lines = [
        "📋 基于您的输入，我已提取并整理以下参观信息：",
        "",
    ]

    # 博物馆名称（始终展示）
    museum = profile.get("museum_name")
    lines.append(f"• **博物馆名称**：{museum if museum else '（未指定）'}")
    if not museum:
        lines.append("  ⚠️ 请告诉我您想参观哪个博物馆")

    # 时长
    duration = profile.get("duration") or "（未指定）"
    lines.append(f"• **参观时长**：{duration}")

    # 是否首次参观
    fv = profile.get("first_visit")
    fv_text = "是" if fv is True else ("否" if fv is False else "（未指定）")
    lines.append(f"• **是否首次参观**：{fv_text}")

    # 是否带儿童
    wc = profile.get("with_children")
    wc_text = "是" if wc is True else ("否" if wc is False else "（未指定）")
    lines.append(f"• **是否携带儿童**：{wc_text}")

    # 关注的领域
    domains = ", ".join(profile.get("domains", [])) or "（未指定）"
    lines.append(f"• **关注的领域**：{domains}")

    # 喜欢的文物种类
    artifact_types = ", ".join(profile.get("artifact_types", [])) or "（未指定）"
    lines.append(f"• **喜欢的文物种类**：{artifact_types}")

    # 朝代偏好
    dynasties = ", ".join(profile.get("dynasties", [])) or "（未指定）"
    lines.append(f"• **着重关注的朝代**：{dynasties}")

    lines.extend([
        "",
        "请确认以上信息，如果需要调整或有补充，请告诉我。比如：",
        "1. 是否有特别想看的文物类型？（如：铜器、陶器、瓷器、漆器、玉器宝石、金银器、石器石刻、书画古籍、服饰、砖瓦、钱币、化石、其他，可多选）",
        "2. 关注的领域是什么？（如：农耕、狩猎、饮食、建筑、人物、武器、文房四宝、牌章证件、货币、书法、绘画、雕像、服装、饰品、仪器、佛教、乐器、纹饰、花瓶、礼制、古生物、新石器、旧石器、陈设品、科技、其他，可多选）",
        "3. 着重关注的朝代有哪些？（如：远古时期、夏商西周、春秋战国、秦汉、三国两晋南北朝、隋唐五代、辽宋夏金元、明清，可多选）",
    ])

    return "\n".join(lines)


if __name__ == "__main__":
    user_input = " ".join(sys.argv[1:]) if len(sys.argv) > 1 else ""
    if not user_input:
        print(json.dumps({"error": "请提供用户输入文本"}, ensure_ascii=False))
        sys.exit(1)

    profile = extract_profile(user_input)

    inferred_fields = []
    missing_duration = not profile.get("duration")
    missing_first_visit = profile.get("first_visit") is None
    missing_with_children = profile.get("with_children") is None
    missing_domains = not profile.get("domains")
    missing_artifact_types = not profile.get("artifact_types")
    missing_dynasties = not profile.get("dynasties")
    missing_museum_name = not profile.get("museum_name")

    if missing_museum_name:
        inferred_fields.append("museum_name")
    if missing_duration:
        inferred_fields.append("duration")
    if missing_first_visit:
        inferred_fields.append("first_visit")
    if missing_with_children:
        inferred_fields.append("with_children")
    if missing_domains:
        inferred_fields.append("domains")
    if missing_artifact_types:
        inferred_fields.append("artifact_types")
    if missing_dynasties:
        inferred_fields.append("dynasties")

    profile = normalize_profile_for_scoring(profile)

    result = {
        "profile": profile,
        "has_unfilled_mandatory": not profile.get("museum_name"),
        "confirmation_needed": len(inferred_fields) > 0,
        "confirmation_prompt": build_confirmation_prompt(profile) if len(inferred_fields) > 0 else ""
    }

    print(json.dumps(result, ensure_ascii=False, indent=2))

path: scripts/load_references.py
content: #!/usr/bin/env python3
"""
从 references/ 目录加载离线博物馆文物数据。

CSV 表头约定：
  文物名称, 展厅, 时期, 参观顺序, 是否镇馆之宝, 文物种类, 所属领域, 人员类别

人员类别：1 = 不适合儿童（child_friendly=False），其他值视为适合
是否镇馆之宝：t/true/1/yes/是 → True，其余 → False
所属领域：JSON 数组字符串，如 ["绘画","书法"]，或逗号分隔字符串
"""

import csv
import json
import os
from pathlib import Path
from typing import Optional, List, Dict


# references 目录相对于本脚本的位置
REFERENCES_DIR = Path(__file__).parent.parent / "references"


def list_available_museums() -> List[str]:
    """返回 references/ 中所有可用的博物馆名称（不含 .csv 后缀）"""
    if not REFERENCES_DIR.exists():
        return []
    return [f.stem for f in REFERENCES_DIR.glob("*.csv")]


def find_reference_file(museum_name: str) -> Optional[Path]:
    """
    根据博物馆名称查找对应的 CSV 文件。
    支持精确匹配和包含匹配（如"国博"匹配"中国国家博物馆"）。
    """
    if not REFERENCES_DIR.exists():
        return None

    # 精确匹配
    exact = REFERENCES_DIR / f"{museum_name}.csv"
    if exact.exists():
        return exact

    # 包含匹配：CSV 文件名包含用户输入，或用户输入包含 CSV 文件名
    for csv_file in REFERENCES_DIR.glob("*.csv"):
        stem = csv_file.stem
        if museum_name in stem or stem in museum_name:
            return csv_file

    return None


def _parse_bool(value: str) -> bool:
    """解析是否镇馆之宝字段"""
    return value.strip().lower() in ("t", "true", "1", "yes", "是")


def _parse_domains(value: str) -> List[str]:
    """解析所属领域字段，支持 JSON 数组或逗号分隔"""
    value = value.strip()
    if not value:
        return []
    try:
        result = json.loads(value)
        if isinstance(result, list):
            return [str(d) for d in result]
    except (json.JSONDecodeError, ValueError):
        pass
    # 逗号分隔
    return [d.strip() for d in value.split(",") if d.strip()]


def load_artifacts_from_csv(museum_name: str) -> Optional[List[Dict]]:
    """
    加载指定博物馆的离线文物数据。
    找不到对应 CSV 时返回 None（触发在线搜索）。
    找到但解析失败时返回空列表。
    """
    csv_path = find_reference_file(museum_name)
    if csv_path is None:
        return None  # 没有离线数据，走在线流程

    artifacts = []
    try:
        with open(csv_path, "r", encoding="utf-8-sig") as f:
            reader = csv.DictReader(f)
            for row in reader:
                name = row.get("文物名称", "").strip()
                if not name:
                    continue  # 跳过空行

                # 参观顺序（用于最终排序）
                try:
                    visit_order = int(row.get("参观顺序", "9999").strip())
                except ValueError:
                    visit_order = 9999

                artifact = {
                    "name": name,
                    "hall": row.get("展厅", "").strip() or "待确认",
                    "period": row.get("时期", "").strip(),
                    "visit_order": visit_order,
                    "is_treasure": _parse_bool(row.get("是否镇馆之宝", "f")),
                    "type": row.get("文物种类", "").strip(),
                    "domains": _parse_domains(row.get("所属领域", "")),
                    "child_friendly": row.get("人员类别", "0").strip() != "1",
                    "description": "",   # 离线数据暂无描述，推荐理由由 LLM 生成
                    "museum_name": csv_path.stem,  # 博物馆全称，供 LLM 生成理由时使用
                }
                artifacts.append(artifact)

        # 按参观顺序排序
        artifacts.sort(key=lambda a: a["visit_order"])
        return artifacts

    except Exception as e:
        import sys
        print(f"读取 CSV 失败 ({csv_path}): {e}", file=sys.stderr)
        return []


if __name__ == "__main__":
    import sys
    museum = " ".join(sys.argv[1:]) if len(sys.argv) > 1 else ""
    available = list_available_museums()
    print(f"可用离线博物馆: {available}")
    if museum:
        result = load_artifacts_from_csv(museum)
        if result is None:
            print(f"未找到 {museum} 的离线数据")
        else:
            print(f"加载 {len(result)} 件文物")
            import json as _json
            print(_json.dumps(result[:2], ensure_ascii=False, indent=2))


path: references/中国国家博物馆.csv
content: 文物名称,展厅,时期,参观顺序,是否镇馆之宝,文物种类,所属领域,人员类别,,,,,,,,,
元谋人上门齿,远古时期,远古时期,1,f,化石,"[""古生物""]",0,,,,,,,,,
蓝田人头骨,远古时期,远古时期,2,f,化石,"[""古生物""]",1,,,,,,,,,
郧县人头骨,远古时期,远古时期,3,f,化石,"[""古生物""]",1,,,,,,,,,
北京人头盖骨,远古时期,远古时期,4,f,化石,"[""古生物""]",1,,,,,,,,,
石锤石砧,远古时期,远古时期,5,f,石器石刻,"[""旧石器""]",0,,,,,,,,,
砍砸器_2,远古时期,远古时期,6,f,石器石刻,"[""旧石器""]",0,,,,,,,,,
灰烬,远古时期,远古时期,7,f,其他,"[""其他""]",1,,,,,,,,,
烧骨,远古时期,远古时期,8,f,化石,"[""狩猎"", ""古生物""]",1,,,,,,,,,
剑齿虎头骨上犬齿化石,远古时期,远古时期,9,f,化石,"[""古生物""]",1,,,,,,,,,
肿骨鹿下颌骨化石,远古时期,远古时期,10,f,化石,"[""古生物""]",0,,,,,,,,,
葛氏斑鹿角及下颌骨化石,远古时期,远古时期,11,f,化石,"[""古生物""]",0,,,,,,,,,
原始牛犄角,远古时期,远古时期,12,f,化石,"[""古生物""]",0,,,,,,,,,
柳江人头骨,远古时期,远古时期,13,f,化石,"[""古生物""]",1,,,,,,,,,
马坝人头骨,远古时期,远古时期,14,f,化石,"[""古生物""]",1,,,,,,,,,
金牛山人头骨,远古时期,远古时期,15,f,化石,"[""古生物""]",1,,,,,,,,,
山顶洞人头骨,远古时期,远古时期,16,f,化石,"[""古生物""]",1,,,,,,,,,
石球,远古时期,远古时期,17,f,石器石刻,"[""旧石器"", ""狩猎""]",0,,,,,,,,,
大三棱尖状石器,远古时期,远古时期,18,f,石器石刻,"[""旧石器""]",0,,,,,,,,,
鹿角铲,远古时期,远古时期,19,f,石器石刻,"[""旧石器""]",0,,,,,,,,,
骨鱼镖,远古时期,远古时期,20,f,石器石刻,"[""旧石器"", ""狩猎""]",0,,,,,,,,,
骨针_2,远古时期,远古时期,21,f,化石,"[""旧石器"", ""科技""]",0,,,,,,,,,
穿孔兽牙,远古时期,远古时期,22,f,化石,"[""饰品""]",0,,,,,,,,,
饰珠,远古时期,远古时期,23,f,玉器宝石,"[""饰品""]",0,,,,,,,,,
赤铁矿,远古时期,远古时期,24,f,其他,"[""其他""]",1,,,,,,,,,
炭化稻谷,远古时期,远古时期,25,f,其他,"[""农耕""]",0,,,,,,,,,
骨耜,远古时期,远古时期,26,f,化石,"[""农耕"", ""新石器""]",0,,,,,,,,,
石镰,远古时期,远古时期,27,f,石器石刻,"[""农耕"", ""新石器""]",0,,,,,,,,,
石磨盘石磨棒,远古时期,远古时期,28,f,石器石刻,"[""农耕"", ""新石器""]",0,,,,,,,,,
陶猪_2,远古时期,远古时期,29,f,陶器,"[""雕像"", ""陈设品""]",0,,,,,,,,,
陶罐,远古时期,远古时期,30,f,陶器,"[""饮食""]",0,,,,,,,,,
舞蹈纹彩陶盆,远古时期,远古时期,31,t,陶器,"[""纹饰"", ""饮食""]",0,,,,,,,,,
鹰形陶鼎,远古时期,远古时期,32,t,陶器,"[""雕像"", ""饮食"", ""礼制""]",0,,,,,,,,,
双格石研磨盘,远古时期,远古时期,33,f,石器石刻,"[""新石器"", ""绘画""]",0,,,,,,,,,
黑陶罐,远古时期,远古时期,34,f,陶器,"[""新石器"", ""饮食""]",0,,,,,,,,,
陶釜陶灶,远古时期,远古时期,35,f,陶器,"[""饮食""]",0,,,,,,,,,
陶甑,远古时期,远古时期,36,f,陶器,"[""饮食""]",0,,,,,,,,,
小口尖底陶瓶,远古时期,远古时期,37,f,陶器,"[""饮食""]",0,,,,,,,,,
点眉纹双耳彩陶罐,远古时期,远古时期,38,f,陶器,"[""饮食""]",0,,,,,,,,,
骨梭,远古时期,远古时期,39,f,化石,"[""服装""]",0,,,,,,,,,
陶纺轮,远古时期,远古时期,40,f,陶器,"[""服装"", ""雕像""]",0,,,,,,,,,
人面鱼纹彩陶盆,远古时期,远古时期,41,t,陶器,"[""纹饰"", ""饮食""]",0,,,,,,,,,
鱼鸟纹彩陶壶,远古时期,远古时期,42,f,陶器,"[""纹饰"", ""饮食""]",0,,,,,,,,,
玉龙,远古时期,远古时期,43,f,玉器宝石,"[""饰品"", ""礼制""]",0,,,,,,,,,
玉琮_1,远古时期,远古时期,44,f,玉器宝石,"[""礼制""]",0,,,,,,,,,
鹳鱼石斧图彩绘陶缸,远古时期,远古时期,45,t,陶器,"[""绘画"", ""纹饰"", ""新石器""]",0,,,,,,,,,
裸体浮雕彩陶壶,远古时期,远古时期,46,f,陶器,"[""雕像"", ""纹饰""]",1,,,,,,,,,
刻符陶尊,远古时期,远古时期,47,f,陶器,"[""书法""]",0,,,,,,,,,
白陶鬶,远古时期,远古时期,48,f,陶器,"[""礼制"", ""饮食""]",0,,,,,,,,,
彩陶背壶,远古时期,远古时期,49,f,陶器,"[""饮食"", ""纹饰""]",0,,,,,,,,,
薄胎黑陶高柄杯,远古时期,远古时期,50,f,陶器,"[""饮食""]",0,,,,,,,,,
九孔石刀,远古时期,远古时期,51,f,石器石刻,"[""武器"", ""农耕"", ""新石器""]",0,,,,,,,,,
石铲,远古时期,远古时期,52,f,石器石刻,"[""农耕"", ""新石器""]",0,,,,,,,,,
玉璋,远古时期,远古时期,53,f,玉器宝石,"[""礼制""]",0,,,,,,,,,
姜寨聚落遗址,远古时期,远古时期,54,f,其他,"[""建筑""]",0,,,,,,,,,
牙雕凤鸟匕形器,远古时期,远古时期,55,f,其他,"[""雕像"", ""饰品"", ""礼制""]",0,,,,,,,,,
船形彩陶壶,远古时期,远古时期,56,t,陶器,"[""纹饰"", ""饮食""]",0,,,,,,,,,
镂雕旋纹象牙梳,远古时期,远古时期,57,f,玉器宝石,"[""饰品""]",0,,,,,,,,,
锥形玉饰,远古时期,远古时期,58,f,玉器宝石,"[""饰品""]",0,,,,,,,,,
玉钺,远古时期,远古时期,59,f,玉器宝石,"[""武器"", ""礼制""]",0,,,,,,,,,
石钺,远古时期,远古时期,60,f,石器石刻,"[""武器"", ""新石器""]",0,,,,,,,,,
青铜刀,远古时期,远古时期,61,f,铜器,"[""武器""]",0,,,,,,,,,
涡纹四系彩陶罐,远古时期,远古时期,62,f,陶器,"[""纹饰"", ""饮食""]",0,,,,,,,,,
扁足陶鼎,远古时期,远古时期,63,f,陶器,"[""礼制"", ""饮食""]",0,,,,,,,,,
骨笛,远古时期,远古时期,64,f,化石,"[""乐器""]",0,,,,,,,,,
利青铜簋,夏商西周时期,夏商西周时期,65,t,铜器,"[""礼制"", ""纹饰""]",0,,,,,,,,,
天亡青铜簋,夏商西周时期,夏商西周时期,66,t,铜器,"[""礼制"", ""纹饰""]",0,,,,,,,,,
禽青铜簋,夏商西周时期,夏商西周时期,67,f,铜器,"[""礼制"", ""纹饰""]",0,,,,,,,,,
宜侯夨青铜簋,夏商西周时期,夏商西周时期,68,f,铜器,"[""礼制"", ""纹饰""]",0,,,,,,,,,
匽侯青铜盂,夏商西周时期,夏商西周时期,69,f,铜器,"[""饮食"", ""纹饰""]",0,,,,,,,,,
康侯青铜斧,夏商西周时期,夏商西周时期,70,f,铜器,"[""武器""]",0,,,,,,,,,
乳丁纹青铜方鼎,夏商西周时期,夏商西周时期,71,f,铜器,"[""礼制"", ""纹饰""]",0,,,,,,,,,
王令众人曰协田刻辞卜骨,夏商西周时期,夏商西周时期,72,f,石器石刻,"[""书法"", ""农耕""]",0,,,,,,,,,
陶鬲外范,夏商西周时期,夏商西周时期,73,f,其他,"[""科技""]",0,,,,,,,,,
作册般甗,夏商西周时期,夏商西周时期,74,f,铜器,"[""饮食"", ""礼制""]",0,,,,,,,,,
妇好青铜偶方彝,夏商西周时期,夏商西周时期,75,f,铜器,"[""饮食"", ""纹饰""]",0,,,,,,,,,
妇好青铜三联甗,夏商西周时期,夏商西周时期,76,f,铜器,"[""饮食"", ""纹饰""]",0,,,,,,,,,
青铜爵,夏商西周时期,夏商西周时期,77,f,铜器,"[""饮食"", ""礼制""]",0,,,,,,,,,
后母戊青铜方鼎,夏商西周时期,夏商西周时期,78,t,铜器,"[""礼制"", ""纹饰""]",0,,,,,,,,,
子龙青铜鼎,夏商西周时期,夏商西周时期,79,f,铜器,"[""礼制"", ""纹饰""]",0,,,,,,,,,
货贝,夏商西周时期,夏商西周时期,80,f,钱币,"[""货币""]",0,,,,,,,,,
妇好青铜鸮尊,夏商西周时期,夏商西周时期,81,f,铜器,"[""礼制"", ""陈设品"", ""纹饰""]",0,,,,,,,,,
后母辛青铜觥,夏商西周时期,夏商西周时期,82,f,铜器,"[""饮食"", ""礼制"", ""纹饰""]",0,,,,,,,,,
玉戚,夏商西周时期,夏商西周时期,83,f,玉器宝石,"[""武器"", ""礼制""]",0,,,,,,,,,
玉凤,夏商西周时期,夏商西周时期,84,f,玉器宝石,"[""饰品"", ""雕像""]",0,,,,,,,,,
玉鸟_2,夏商西周时期,夏商西周时期,85,f,玉器宝石,"[""饰品"", ""纹饰""]",0,,,,,,,,,
玉蝉,夏商西周时期,夏商西周时期,86,f,玉器宝石,"[""饰品"", ""纹饰""]",0,,,,,,,,,
玉人,夏商西周时期,夏商西周时期,87,f,玉器宝石,"[""雕像"", ""人物"", ""陈设品""]",0,,,,,,,,,
大型牛骨刻辞,夏商西周时期,夏商西周时期,88,f,其他,"[""书法""]",1,,,,,,,,,
宰丰骨匕,夏商西周时期,夏商西周时期,89,f,其他,"[""书法"", ""纹饰""]",0,,,,,,,,,
卜骨,夏商西周时期,夏商西周时期,90,f,其他,"[""书法""]",1,,,,,,,,,
刻干支表牛骨,夏商西周时期,夏商西周时期,91,f,其他,"[""书法"", ""科技""]",0,,,,,,,,,
虎纹石磬,夏商西周时期,夏商西周时期,92,f,石器石刻,"[""乐器"", ""纹饰""]",0,,,,,,,,,
盂青铜鼎,夏商西周时期,夏商西周时期,93,t,铜器,"[""礼制"", ""纹饰""]",0,,,,,,,,,
虢季子白青铜盘,夏商西周时期,夏商西周时期,94,t,铜器,"[""礼制"", ""纹饰""]",0,,,,,,,,,
盠青铜方彝,夏商西周时期,夏商西周时期,95,f,铜器,"[""礼制"", ""纹饰""]",0,,,,,,,,,
颂青铜壶,夏商西周时期,夏商西周时期,96,f,铜器,"[""礼制"", ""陈设品""]",0,,,,,,,,,
盠青铜驹尊,夏商西周时期,夏商西周时期,97,f,铜器,"[""雕像"", ""礼制""]",0,,,,,,,,,
四羊青铜方尊,夏商西周时期,夏商西周时期,98,t,铜器,"[""礼制"", ""纹饰""]",0,,,,,,,,,
龙虎纹青铜尊,夏商西周时期,夏商西周时期,99,f,铜器,"[""礼制"", ""纹饰""]",0,,,,,,,,,
青铜人首,夏商西周时期,夏商西周时期,100,f,铜器,"[""雕像"", ""礼制""]",0,,,,,,,,,
青铜面具,夏商西周时期,夏商西周时期,101,t,铜器,"[""礼制"", ""雕像""]",0,,,,,,,,,
王子婴次青铜炉,春秋战国时期,春秋战国时期,102,f,铜器,"[""陈设品""]",0,,,,,,,,,
鸟形青铜匜,春秋战国时期,春秋战国时期,103,f,铜器,"[""饮食"", ""纹饰""]",0,,,,,,,,,
秦公青铜簋,春秋战国时期,春秋战国时期,104,f,铜器,"[""礼制""]",0,,,,,,,,,
青铜盏,春秋战国时期,春秋战国时期,105,f,铜器,"[""饮食""]",0,,,,,,,,,
洹子孟姜青铜壶,春秋战国时期,春秋战国时期,106,f,铜器,"[""饮食"", ""礼制""]",0,,,,,,,,,
错金青铜舟,春秋战国时期,春秋战国时期,107,f,铜器,"[""饮食"", ""纹饰""]",0,,,,,,,,,
令狐君嗣子青铜壶,春秋战国时期,春秋战国时期,108,f,铜器,"[""饮食"", ""礼制""]",0,,,,,,,,,
王子午青铜鼎,春秋战国时期,春秋战国时期,109,t,铜器,"[""礼制"", ""纹饰""]",0,,,,,,,,,
熊悍青铜鼎,春秋战国时期,春秋战国时期,110,f,铜器,"[""礼制"", ""纹饰""]",1,,,,,,,,,
鎏金银盘,春秋战国时期,春秋战国时期,111,f,金银器,"[""饮食"", ""陈设品""]",0,,,,,,,,,
栾书青铜缶,春秋战国时期,春秋战国时期,112,f,铜器,"[""饮食"", ""礼制""]",0,,,,,,,,,
三戈青铜戟,春秋战国时期,春秋战国时期,113,f,铜器,"[""武器""]",1,,,,,,,,,
虢太子元徒青铜戈,春秋战国时期,春秋战国时期,114,f,铜器,"[""武器""]",1,,,,,,,,,
锦纹青铜戈,春秋战国时期,春秋战国时期,115,f,铜器,"[""武器"", ""纹饰""]",1,,,,,,,,,
宋公栾青铜戈,春秋战国时期,春秋战国时期,116,f,铜器,"[""武器""]",1,,,,,,,,,
四年相邦吕不韦青铜戈,春秋战国时期,春秋战国时期,117,f,铜器,"[""武器""]",1,,,,,,,,,
郑右库青铜戈,春秋战国时期,春秋战国时期,118,f,铜器,"[""武器""]",1,,,,,,,,,
楚高青铜缶,春秋战国时期,春秋战国时期,119,f,铜器,"[""饮食"", ""礼制""]",0,,,,,,,,,
青铜冰鉴,春秋战国时期,春秋战国时期,120,f,铜器,"[""饮食"", ""科技""]",0,,,,,,,,,
青铜柄铁剑,春秋战国时期,春秋战国时期,121,f,铜器,"[""武器""]",0,,,,,,,,,
双镰铁范,春秋战国时期,春秋战国时期,122,f,其他,"[""科技"", ""农耕""]",0,,,,,,,,,
嵌赤铜狩猎纹青铜壶,春秋战国时期,春秋战国时期,123,f,铜器,"[""纹饰"", ""饮食""]",0,,,,,,,,,
镂空兽纹青铜熏,春秋战国时期,春秋战国时期,124,f,铜器,"[""饮食"", ""纹饰""]",0,,,,,,,,,
错金银马首形青铜䡇,春秋战国时期,春秋战国时期,125,f,铜器,"[""饰品"", ""纹饰"", ""陈设品""]",0,,,,,,,,,
立人陶范,春秋战国时期,春秋战国时期,126,f,其他,"[""科技"", ""雕像""]",0,,,,,,,,,
兽头陶模,春秋战国时期,春秋战国时期,127,f,其他,"[""科技"", ""雕像""]",1,,,,,,,,,
鲁伯大父青铜簋,春秋战国时期,春秋战国时期,128,f,铜器,"[""礼制""]",0,,,,,,,,,
薛子仲安簠,春秋战国时期,春秋战国时期,129,f,铜器,"[""饮食"", ""礼制""]",0,,,,,,,,,
青铜兽尊,春秋战国时期,春秋战国时期,130,f,铜器,"[""礼制""]",0,,,,,,,,,
青铜缶,春秋战国时期,春秋战国时期,131,f,铜器,"[""纹饰"", ""饮食""]",0,,,,,,,,,
曾仲斿父青铜方壶,春秋战国时期,春秋战国时期,132,f,铜器,"[""礼制"", ""纹饰""]",0,,,,,,,,,
蔡侯申青铜方壶,春秋战国时期,春秋战国时期,133,f,铜器,"[""饮食"", ""礼制""]",0,,,,,,,,,
鎏金嵌玉龙首银带钩,春秋战国时期,春秋战国时期,134,t,铜器,"[""饰品""]",0,,,,,,,,,
甘斿银匜,春秋战国时期,春秋战国时期,135,f,金银器,"[""饮食""]",0,,,,,,,,,
云兽纹青玉璜,春秋战国时期,春秋战国时期,136,f,玉器宝石,"[""饰品"", ""纹饰""]",0,,,,,,,,,
嵌铜兽纹豆,春秋战国时期,春秋战国时期,137,f,铜器,"[""饮食""]",0,,,,,,,,,
青铜空首布,春秋战国时期,春秋战国时期,138,f,钱币,"[""货币""]",0,,,,,,,,,
宋子三孔布,春秋战国时期,春秋战国时期,139,f,钱币,"[""货币""]",0,,,,,,,,,
梁夸五十当锊平首布,春秋战国时期,春秋战国时期,140,f,钱币,"[""货币""]",0,,,,,,,,,
青铜贝币,春秋战国时期,春秋战国时期,141,f,钱币,"[""货币""]",0,,,,,,,,,
郢爯金版,春秋战国时期,春秋战国时期,142,f,钱币,"[""货币""]",0,,,,,,,,,
王青铜衡,春秋战国时期,春秋战国时期,143,f,铜器,"[""仪器""]",0,,,,,,,,,
子禾子青铜釜,春秋战国时期,春秋战国时期,144,f,铜器,"[""饮食"", ""仪器""]",0,,,,,,,,,
六山纹青铜镜,春秋战国时期,春秋战国时期,145,f,铜器,"[""陈设品"", ""纹饰""]",0,,,,,,,,,
十六联弧三兽纹青铜镜,春秋战国时期,春秋战国时期,146,f,铜器,"[""陈设品"", ""纹饰""]",0,,,,,,,,,
错银卧牛青铜镇,春秋战国时期,春秋战国时期,147,f,铜器,"[""陈设品"", ""纹饰"", ""雕像""]",0,,,,,,,,,
人形青铜灯,春秋战国时期,春秋战国时期,148,f,铜器,"[""陈设品"", ""雕像""]",0,,,,,,,,,
漆耳杯,春秋战国时期,春秋战国时期,149,f,漆器,"[""饮食""]",0,,,,,,,,,
鄂君启错金青铜节,春秋战国时期,春秋战国时期,150,f,铜器,"[""牌章证件"", ""纹饰""]",0,,,,,,,,,
青铜编钟,春秋战国时期,春秋战国时期,151,f,铜器,"[""乐器"", ""礼制""]",0,,,,,,,,,
邾公华青铜甬钟,春秋战国时期,春秋战国时期,152,f,铜器,"[""乐器"", ""礼制""]",0,,,,,,,,,
狼噬牛纹金牌饰,春秋战国时期,春秋战国时期,153,f,金银器,"[""饰品"", ""纹饰""]",0,,,,,,,,,
双兽三轮青铜盘,春秋战国时期,春秋战国时期,154,f,铜器,"[""饮食"", ""科技"", ""纹饰""]",0,,,,,,,,,
曲刃青铜剑,春秋战国时期,春秋战国时期,155,f,铜器,"[""武器""]",0,,,,,,,,,
青铜尊,春秋战国时期,春秋战国时期,156,f,铜器,"[""礼制"", ""纹饰""]",0,,,,,,,,,
靴形青铜钺,春秋战国时期,春秋战国时期,157,f,铜器,"[""武器""]",0,,,,,,,,,
人首方柱形青铜器,春秋战国时期,春秋战国时期,158,f,铜器,"[""礼制""]",0,,,,,,,,,
虎纹青铜钲,春秋战国时期,春秋战国时期,159,f,铜器,"[""乐器"", ""纹饰""]",0,,,,,,,,,
错金银犀牛青铜带钩,春秋战国时期,春秋战国时期,160,f,铜器,"[""饰品"", ""纹饰""]",0,,,,,,,,,
吴王夫差青铜剑,春秋战国时期,春秋战国时期,161,f,铜器,"[""武器""]",0,,,,,,,,,
龙梁原始瓷壶,春秋战国时期,春秋战国时期,162,f,瓷器,"[""饮食""]",0,,,,,,,,,
陶俑,秦汉时期,秦汉时期,163,f,陶器,"[""雕像""]",0,,,,,,,,,
陶马_1,秦汉时期,秦汉时期,164,f,陶器,"[""雕像""]",0,,,,,,,,,
琅琊刻石,秦汉时期,秦汉时期,165,f,石器石刻,"[""书法""]",0,,,,,,,,,
两诏青铜版,秦汉时期,秦汉时期,166,f,铜器,"[""仪器""]",0,,,,,,,,,
半两青铜钱及石钱范,秦汉时期,秦汉时期,167,f,钱币,"[""货币""]",0,,,,,,,,,
彩绘陶兵马俑,秦汉时期,秦汉时期,168,f,陶器,"[""雕像"", ""绘画""]",0,,,,,,,,,
金缕玉柙,秦汉时期,秦汉时期,169,t,玉器宝石,"[""服装""]",0,,,,,,,,,
汉并天下瓦当,秦汉时期,秦汉时期,170,f,砖瓦,"[""建筑"", ""纹饰""]",0,,,,,,,,,
单于天降瓦当,秦汉时期,秦汉时期,171,f,砖瓦,"[""建筑"", ""纹饰""]",0,,,,,,,,,
王莽钱币,秦汉时期,秦汉时期,172,f,钱币,"[""货币""]",0,,,,,,,,,
国宝金匮直万铜钱,秦汉时期,秦汉时期,173,f,钱币,"[""货币""]",0,,,,,,,,,
青铜方斗,秦汉时期,秦汉时期,174,f,铜器,"[""仪器""]",0,,,,,,,,,
绿釉陶楼,秦汉时期,秦汉时期,175,f,陶器,"[""建筑""]",0,,,,,,,,,
陶坞堡,秦汉时期,秦汉时期,176,f,陶器,"[""建筑""]",0,,,,,,,,,
陶部曲俑,秦汉时期,秦汉时期,177,f,陶器,"[""雕像""]",0,,,,,,,,,
铁犁铧铁犁壁,秦汉时期,秦汉时期,178,f,其他,"[""农耕""]",0,,,,,,,,,
带辘轳水槽的陶井,秦汉时期,秦汉时期,179,f,陶器,"[""建筑"", ""科技""]",0,,,,,,,,,
鎏金青铜尊,秦汉时期,秦汉时期,180,f,铜器,"[""饮食"", ""纹饰"", ""陈设品""]",0,,,,,,,,,
彩绘雁鱼青铜釭灯,秦汉时期,秦汉时期,181,f,铜器,"[""陈设品"", ""绘画""]",0,,,,,,,,,
彩绘陶仓,秦汉时期,秦汉时期,182,f,陶器,"[""建筑"", ""农耕"", ""绘画""]",0,,,,,,,,,
错金银云纹青铜犀尊,秦汉时期,秦汉时期,183,t,铜器,"[""礼制"", ""纹饰"", ""陈设品""]",0,,,,,,,,,
错金银鸟篆纹青铜壶,秦汉时期,秦汉时期,184,f,铜器,"[""书法"", ""纹饰"", ""饮食""]",0,,,,,,,,,
永初六年钢刀,秦汉时期,秦汉时期,185,f,其他,"[""武器""]",0,,,,,,,,,
鎏金熊形青铜镇,秦汉时期,秦汉时期,186,f,铜器,"[""陈设品"", ""雕像""]",0,,,,,,,,,
银釦马蹄形漆盒,秦汉时期,秦汉时期,187,f,漆器,"[""饰品""]",0,,,,,,,,,
彩绘龙虎纹陶壶,秦汉时期,秦汉时期,188,f,陶器,"[""绘画"", ""纹饰""]",0,,,,,,,,,
青瓷四系罐,秦汉时期,秦汉时期,189,f,瓷器,"[""饮食""]",0,,,,,,,,,
延年益寿大宜子孙锦袜,秦汉时期,秦汉时期,190,f,服饰,"[""服装""]",0,,,,,,,,,
乘云绣,秦汉时期,秦汉时期,191,f,服饰,"[""服装"", ""纹饰""]",0,,,,,,,,,
印花敷彩纱,秦汉时期,秦汉时期,192,f,服饰,"[""服装"", ""纹饰""]",0,,,,,,,,,
陶仓,秦汉时期,秦汉时期,193,f,陶器,"[""饮食"", ""农耕""]",0,,,,,,,,,
陶猪圈,秦汉时期,秦汉时期,194,f,陶器,"[""建筑"", ""农耕""]",0,,,,,,,,,
陶灶,秦汉时期,秦汉时期,195,f,陶器,"[""饮食""]",0,,,,,,,,,
龙纹空心砖,秦汉时期,秦汉时期,196,f,砖瓦,"[""建筑"", ""纹饰""]",0,,,,,,,,,
绿釉陶水亭,秦汉时期,秦汉时期,197,f,陶器,"[""建筑"", ""雕像""]",0,,,,,,,,,
三合式陶屋_2,秦汉时期,秦汉时期,198,f,陶器,"[""建筑""]",0,,,,,,,,,
辎车画像砖,秦汉时期,秦汉时期,199,f,砖瓦,"[""建筑"", ""绘画""]",0,,,,,,,,,
宅院画像砖,秦汉时期,秦汉时期,200,f,砖瓦,"[""建筑"", ""绘画""]",0,,,,,,,,,
盐场画像砖,秦汉时期,秦汉时期,201,f,砖瓦,"[""建筑"", ""绘画""]",0,,,,,,,,,
收获渔猎画像砖,秦汉时期,秦汉时期,202,f,砖瓦,"[""绘画"", ""农耕"", ""狩猎""]",0,,,,,,,,,
市楼画像砖,秦汉时期,秦汉时期,203,f,砖瓦,"[""建筑"", ""绘画""]",0,,,,,,,,,
舂米画像砖,秦汉时期,秦汉时期,204,f,砖瓦,"[""绘画"", ""农耕""]",0,,,,,,,,,
酿酒画像砖,秦汉时期,秦汉时期,205,f,砖瓦,"[""绘画"", ""饮食""]",0,,,,,,,,,
松塔形墨,秦汉时期,秦汉时期,206,f,其他,"[""文房四宝""]",0,,,,,,,,,
旱滩坡带字纸,秦汉时期,秦汉时期,207,f,其他,"[""文房四宝""]",0,,,,,,,,,
石砚及研石,秦汉时期,秦汉时期,208,f,石器石刻,"[""文房四宝""]",0,,,,,,,,,
日晷,秦汉时期,秦汉时期,209,f,石器石刻,"[""仪器"", ""科技""]",0,,,,,,,,,
青铜漏壶,秦汉时期,秦汉时期,210,f,铜器,"[""仪器"", ""科技""]",0,,,,,,,,,
医工青铜盆,秦汉时期,秦汉时期,211,f,铜器,"[""仪器"", ""科技""]",0,,,,,,,,,
平索戏车车骑出行画像砖,秦汉时期,秦汉时期,212,f,砖瓦,"[""建筑"", ""绘画""]",0,,,,,,,,,
观伎画像砖,秦汉时期,秦汉时期,213,f,砖瓦,"[""建筑"", ""绘画""]",0,,,,,,,,,
彩绘石骑马人,秦汉时期,秦汉时期,214,f,石器石刻,"[""雕像""]",0,,,,,,,,,
击鼓说唱俑,秦汉时期,秦汉时期,215,t,陶器,"[""雕像"", ""乐器""]",0,,,,,,,,,
熹平石经残石,秦汉时期,秦汉时期,216,f,石器石刻,"[""书法""]",0,,,,,,,,,
狩猎纹骨饰,秦汉时期,秦汉时期,217,f,其他,"[""饰品"", ""狩猎"", ""纹饰""]",0,,,,,,,,,
汉匈奴归义亲汉长青铜印,秦汉时期,秦汉时期,218,f,铜器,"[""牌章证件""]",0,,,,,,,,,
滇王之印金印,秦汉时期,秦汉时期,219,f,金银器,"[""牌章证件""]",0,,,,,,,,,
吊人青铜矛,秦汉时期,秦汉时期,220,f,铜器,"[""武器""]",1,,,,,,,,,
七牛虎耳青铜贮贝器,秦汉时期,秦汉时期,221,f,铜器,"[""礼制"", ""雕像""]",0,,,,,,,,,
诅盟场面青铜贮贝器,秦汉时期,秦汉时期,222,f,铜器,"[""礼制"", ""雕像""]",1,,,,,,,,,
贡纳场面青铜贮贝器,秦汉时期,秦汉时期,223,f,铜器,"[""礼制"", ""雕像""]",0,,,,,,,,,
五牛青铜枕,秦汉时期,秦汉时期,224,f,铜器,"[""其他""]",0,,,,,,,,,
鎏金四人舞俑青铜扣饰,秦汉时期,秦汉时期,225,f,铜器,"[""雕像"", ""饰品"", ""纹饰""]",0,,,,,,,,,
鎏金神兽青铜牌饰,秦汉时期,秦汉时期,226,f,铜器,"[""饰品"", ""雕像""]",0,,,,,,,,,
四联陶罐,秦汉时期,秦汉时期,227,f,陶器,"[""饮食"", ""雕像""]",0,,,,,,,,,
五铢钱纹青铜鼓,秦汉时期,秦汉时期,228,f,铜器,"[""乐器"", ""纹饰""]",0,,,,,,,,,
汉归义羌长青铜印,秦汉时期,秦汉时期,229,f,铜器,"[""牌章证件""]",0,,,,,,,,,
玻璃杯,秦汉时期,秦汉时期,230,f,其他,"[""饮食"", ""陈设品""]",0,,,,,,,,,
羊首铜刀,秦汉时期,秦汉时期,231,f,铜器,"[""武器""]",0,,,,,,,,,
陶船,秦汉时期,秦汉时期,232,f,陶器,"[""雕像""]",0,,,,,,,,,
青瓷羊形烛台_1,三国两晋南北朝时期,三国两晋南北朝时期,233,f,瓷器,"[""陈设品"", ""雕像""]",0,,,,,,,,,
陶武士俑,三国两晋南北朝时期,三国两晋南北朝时期,234,f,陶器,"[""雕像""]",0,,,,,,,,,
独孤信墓志,三国两晋南北朝时期,三国两晋南北朝时期,235,f,石器石刻,"[""书法""]",1,,,,,,,,,
《齐民要术》,三国两晋南北朝时期,三国两晋南北朝时期,236,f,书画古籍,"[""科技"", ""农耕"", ""书法""]",0,,,,,,,,,
青瓷羊形烛台_2,三国两晋南北朝时期,三国两晋南北朝时期,237,f,瓷器,"[""陈设品"", ""雕像""]",0,,,,,,,,,
青瓷熊灯,三国两晋南北朝时期,三国两晋南北朝时期,238,f,瓷器,"[""陈设品"", ""雕像""]",0,,,,,,,,,
青瓷香薰,三国两晋南北朝时期,三国两晋南北朝时期,239,f,瓷器,"[""陈设品""]",0,,,,,,,,,
青瓷莲花尊,三国两晋南北朝时期,三国两晋南北朝时期,240,t,瓷器,"[""佛教"", ""陈设品"", ""纹饰""]",0,,,,,,,,,
青瓷印花唾壶,三国两晋南北朝时期,三国两晋南北朝时期,241,f,瓷器,"[""其他"", ""纹饰""]",0,,,,,,,,,
黑釉鸡首瓷壶,三国两晋南北朝时期,三国两晋南北朝时期,242,f,瓷器,"[""陈设品""]",0,,,,,,,,,
青瓷双柄鸡首壶,三国两晋南北朝时期,三国两晋南北朝时期,243,f,瓷器,"[""陈设品""]",0,,,,,,,,,
大秦龙兴化牟古圣瓦当,三国两晋南北朝时期,三国两晋南北朝时期,244,f,砖瓦,"[""建筑"", ""纹饰""]",0,,,,,,,,,
传祚无穷瓦当,三国两晋南北朝时期,三国两晋南北朝时期,245,f,砖瓦,"[""建筑"", ""纹饰""]",0,,,,,,,,,
青瓷褐釉十足砚,三国两晋南北朝时期,三国两晋南北朝时期,246,f,瓷器,"[""文房四宝""]",0,,,,,,,,,
陶院落,三国两晋南北朝时期,三国两晋南北朝时期,247,f,陶器,"[""建筑"", ""雕像""]",0,,,,,,,,,
彩绘文官陶俑彩绘武官陶俑,三国两晋南北朝时期,三国两晋南北朝时期,248,f,陶器,"[""雕像""]",0,,,,,,,,,
圈足青铜鍑,三国两晋南北朝时期,三国两晋南北朝时期,249,f,铜器,"[""饮食""]",0,,,,,,,,,
青瓷托盏,三国两晋南北朝时期,三国两晋南北朝时期,250,f,瓷器,"[""饮食""]",0,,,,,,,,,
陶耳杯,三国两晋南北朝时期,三国两晋南北朝时期,251,f,陶器,"[""其他""]",0,,,,,,,,,
鲜卑服武士陶俑_1,三国两晋南北朝时期,三国两晋南北朝时期,252,f,陶器,"[""雕像"", ""服装""]",0,,,,,,,,,
鲜卑服武士陶俑,三国两晋南北朝时期,三国两晋南北朝时期,253,f,陶器,"[""雕像"", ""服装""]",0,,,,,,,,,
笼冠女官陶俑,三国两晋南北朝时期,三国两晋南北朝时期,254,f,陶器,"[""雕像"", ""服装""]",0,,,,,,,,,
马头鹿角形金步摇,三国两晋南北朝时期,三国两晋南北朝时期,255,f,金银器,"[""饰品""]",0,,,,,,,,,
职贡图北宋摹本,三国两晋南北朝时期,三国两晋南北朝时期,256,f,书画古籍,"[""绘画""]",0,,,,,,,,,
鎏金镶嵌高足青铜杯,三国两晋南北朝时期,三国两晋南北朝时期,257,f,铜器,"[""饮食"", ""陈设品"", ""纹饰""]",0,,,,,,,,,
网纹玻璃杯,三国两晋南北朝时期,三国两晋南北朝时期,258,f,其他,"[""饮食"", ""纹饰""]",0,,,,,,,,,
三体石经,三国两晋南北朝时期,三国两晋南北朝时期,259,f,石器石刻,"[""书法""]",0,,,,,,,,,
陶牛车,三国两晋南北朝时期,三国两晋南北朝时期,260,f,陶器,"[""雕像""]",0,,,,,,,,,
白双且造石塔,三国两晋南北朝时期,三国两晋南北朝时期,261,f,石器石刻,"[""佛教"", ""建筑""]",0,,,,,,,,,
陶镇墓兽,三国两晋南北朝时期,三国两晋南北朝时期,262,f,陶器,"[""雕像""]",1,,,,,,,,,
陶马_2,三国两晋南北朝时期,三国两晋南北朝时期,263,f,陶器,"[""雕像""]",0,,,,,,,,,
陶骆驼,三国两晋南北朝时期,三国两晋南北朝时期,264,f,陶器,"[""雕像""]",0,,,,,,,,,
白雀元年施胶纸,三国两晋南北朝时期,三国两晋南北朝时期,265,f,其他,"[""文房四宝""]",0,,,,,,,,,
黑釉楼阁佛像陶魂瓶,三国两晋南北朝时期,三国两晋南北朝时期,266,f,陶器,"[""佛教"", ""雕像"", ""建筑""]",1,,,,,,,,,
白石观音菩萨像,三国两晋南北朝时期,三国两晋南北朝时期,267,f,石器石刻,"[""佛教"", ""雕像""]",1,,,,,,,,,
王阿善造石像,三国两晋南北朝时期,三国两晋南北朝时期,268,f,石器石刻,"[""佛教"", ""雕像""]",1,,,,,,,,,
吕氏砖,三国两晋南北朝时期,三国两晋南北朝时期,269,f,砖瓦,"[""建筑""]",0,,,,,,,,,
永固陵石券门,三国两晋南北朝时期,三国两晋南北朝时期,270,f,石器石刻,"[""建筑""]",0,,,,,,,,,
彩绘弹琵琶陶俑,三国两晋南北朝时期,三国两晋南北朝时期,271,f,陶器,"[""雕像"", ""乐器""]",0,,,,,,,,,
黄釉乐舞图瓷扁壶,三国两晋南北朝时期,三国两晋南北朝时期,272,t,瓷器,"[""乐器"", ""饮食"", ""绘画""]",0,,,,,,,,,
陶女俑,三国两晋南北朝时期,三国两晋南北朝时期,273,f,陶器,"[""雕像""]",0,,,,,,,,,
陶女乐俑,三国两晋南北朝时期,三国两晋南北朝时期,274,f,陶器,"[""雕像""]",0,,,,,,,,,
彩绘执盾武士陶俑,三国两晋南北朝时期,三国两晋南北朝时期,275,f,陶器,"[""雕像"", ""武器""]",0,,,,,,,,,
贵妇出游画像砖,三国两晋南北朝时期,三国两晋南北朝时期,276,f,砖瓦,"[""绘画"", ""建筑""]",0,,,,,,,,,
鎏金青铜衔环铺首,隋唐五代时期,隋唐五代时期,277,f,铜器,"[""建筑"", ""雕像""]",0,,,,,,,,,
钱镠铁券,隋唐五代时期,隋唐五代时期,278,f,其他,"[""牌章证件""]",0,,,,,,,,,
三彩釉陶载乐骆驼,隋唐五代时期,隋唐五代时期,279,t,陶器,"[""雕像"", ""乐器""]",0,,,,,,,,,
灵山孕宝瑞兽青铜镜,隋唐五代时期,隋唐五代时期,280,f,铜器,"[""饰品"", ""纹饰""]",0,,,,,,,,,
都省铜坊青铜镜,隋唐五代时期,隋唐五代时期,281,f,铜器,"[""饰品""]",0,,,,,,,,,
花鸟人物螺钿青铜镜,隋唐五代时期,隋唐五代时期,282,t,铜器,"[""饰品"", ""纹饰""]",0,,,,,,,,,
葵口三足狮子纹鎏金银盘,隋唐五代时期,隋唐五代时期,283,f,金银器,"[""饮食"", ""纹饰""]",0,,,,,,,,,
狩猎纹高足银杯_2,隋唐五代时期,隋唐五代时期,284,f,金银器,"[""饮食"", ""纹饰""]",0,,,,,,,,,
白瓷龙柄传瓶,隋唐五代时期,隋唐五代时期,285,f,瓷器,"[""花瓶""]",0,,,,,,,,,
白瓷鸡首壶,隋唐五代时期,隋唐五代时期,286,f,瓷器,"[""陈设品"", ""雕像""]",0,,,,,,,,,
秘色瓷盘,隋唐五代时期,隋唐五代时期,287,f,瓷器,"[""饮食""]",0,,,,,,,,,
开元通宝青铜钱,隋唐五代时期,隋唐五代时期,288,f,钱币,"[""货币""]",0,,,,,,,,,
鎏金银茶托,隋唐五代时期,隋唐五代时期,289,f,金银器,"[""饮食"", ""纹饰""]",0,,,,,,,,,
鎏金银簪钗,隋唐五代时期,隋唐五代时期,290,f,金银器,"[""饮食"", ""饰品""]",0,,,,,,,,,
鎏金银香囊,隋唐五代时期,隋唐五代时期,291,f,金银器,"[""饰品"", ""纹饰""]",0,,,,,,,,,
七子纹青瓷盒,隋唐五代时期,隋唐五代时期,292,f,瓷器,"[""饮食"", ""纹饰""]",0,,,,,,,,,
笼冠陶俑_2,隋唐五代时期,隋唐五代时期,293,f,陶器,"[""雕像"", ""服装""]",0,,,,,,,,,
彩绘武服陶俑,隋唐五代时期,隋唐五代时期,294,f,陶器,"[""雕像"", ""服装""]",0,,,,,,,,,
青白釉瓷牛车,隋唐五代时期,隋唐五代时期,295,f,瓷器,"[""雕像""]",0,,,,,,,,,
蓝釉陶驴,隋唐五代时期,隋唐五代时期,296,f,陶器,"[""雕像""]",0,,,,,,,,,
白瓷枕,隋唐五代时期,隋唐五代时期,297,f,瓷器,"[""其他""]",0,,,,,,,,,
白瓷砚,隋唐五代时期,隋唐五代时期,298,f,瓷器,"[""文房四宝""]",0,,,,,,,,,
三彩女坐陶俑,隋唐五代时期,隋唐五代时期,299,f,陶器,"[""雕像""]",0,,,,,,,,,
男装女陶俑,隋唐五代时期,隋唐五代时期,300,f,陶器,"[""雕像"", ""服装""]",0,,,,,,,,,
饺子点心及食具,隋唐五代时期,隋唐五代时期,301,f,其他,"[""饮食""]",0,,,,,,,,,
越窑青瓷瓜棱执壶,隋唐五代时期,隋唐五代时期,302,f,瓷器,"[""饮食""]",0,,,,,,,,,
白瓷茶具及陆羽像,隋唐五代时期,隋唐五代时期,303,f,瓷器,"[""饮食"", ""雕像""]",0,,,,,,,,,
镶金口白玉杯,隋唐五代时期,隋唐五代时期,304,f,玉器宝石,"[""饮食"", ""饰品""]",0,,,,,,,,,
三彩釉陶狩猎骑俑,隋唐五代时期,隋唐五代时期,305,f,陶器,"[""雕像"", ""狩猎""]",0,,,,,,,,,
舞蹈陶俑,隋唐五代时期,隋唐五代时期,306,f,陶器,"[""雕像""]",0,,,,,,,,,
彩绘陶打马球女俑,隋唐五代时期,隋唐五代时期,307,f,陶器,"[""雕像""]",0,,,,,,,,,
红衣舞女壁画,隋唐五代时期,隋唐五代时期,308,f,其他,"[""绘画""]",0,,,,,,,,,
跪坐奏乐陶俑一组,隋唐五代时期,隋唐五代时期,309,f,陶器,"[""雕像"", ""乐器""]",0,,,,,,,,,
成都府成都县龙池坊卞家印卖咒本陀罗尼经咒,隋唐五代时期,隋唐五代时期,310,f,书画古籍,"[""佛教""]",1,,,,,,,,,
三彩釉陶胡俑,隋唐五代时期,隋唐五代时期,311,f,陶器,"[""雕像""]",0,,,,,,,,,
绿琉璃釉兽头,隋唐五代时期,隋唐五代时期,312,f,陶器,"[""建筑"", ""雕像""]",1,,,,,,,,,
步辇图摹本,隋唐五代时期,隋唐五代时期,313,f,书画古籍,"[""绘画""]",0,,,,,,,,,
安济桥石栏板,隋唐五代时期,隋唐五代时期,314,f,石器石刻,"[""建筑"", ""雕像""]",0,,,,,,,,,
三彩釉陶女俑,隋唐五代时期,隋唐五代时期,315,f,陶器,"[""雕像""]",0,,,,,,,,,
描金石刻武士俑,隋唐五代时期,隋唐五代时期,316,f,石器石刻,"[""雕像""]",0,,,,,,,,,
三彩釉陶马,隋唐五代时期,隋唐五代时期,317,f,陶器,"[""雕像""]",0,,,,,,,,,
鎏金铜观音造像,隋唐五代时期,隋唐五代时期,318,f,铜器,"[""佛教"", ""雕像""]",1,,,,,,,,,
波斯银币,隋唐五代时期,隋唐五代时期,319,f,钱币,"[""货币""]",0,,,,,,,,,
嵌珍珠宝石金项链,隋唐五代时期,隋唐五代时期,320,t,服饰,"[""饰品""]",0,,,,,,,,,
金手镯一对,隋唐五代时期,隋唐五代时期,321,f,服饰,"[""饰品""]",0,,,,,,,,,
鹿纹银碗,隋唐五代时期,隋唐五代时期,322,f,金银器,"[""饮食"", ""纹饰""]",0,,,,,,,,,
环柄银杯,隋唐五代时期,隋唐五代时期,323,f,金银器,"[""饮食"", ""纹饰""]",0,,,,,,,,,
莲花纹方砖,隋唐五代时期,隋唐五代时期,324,f,砖瓦,"[""建筑"", ""纹饰""]",0,,,,,,,,,
昆仑人陶俑,隋唐五代时期,隋唐五代时期,325,f,陶器,"[""雕像""]",0,,,,,,,,,
孔雀蓝釉陶瓶,隋唐五代时期,隋唐五代时期,326,f,陶器,"[""花瓶""]",0,,,,,,,,,
玄奘题名石佛座,隋唐五代时期,隋唐五代时期,327,f,石器石刻,"[""佛教"", ""雕像""]",1,,,,,,,,,
鎏金银鞍桥饰,辽宋夏金元时期,辽宋夏金元时期,328,f,金银器,"[""饰品"", ""纹饰""]",0,,,,,,,,,
绿釉鸱吻,辽宋夏金元时期,辽宋夏金元时期,329,f,陶器,"[""建筑"", ""雕像""]",0,,,,,,,,,
鄜延第四将带器械铜牌,辽宋夏金元时期,辽宋夏金元时期,330,f,铜器,"[""牌章证件""]",1,,,,,,,,,
西夏文敕牌,辽宋夏金元时期,辽宋夏金元时期,331,f,铜器,"[""牌章证件""]",1,,,,,,,,,
中兴四将图卷,辽宋夏金元时期,辽宋夏金元时期,332,f,书画古籍,"[""绘画""]",0,,,,,,,,,
成吉思汗像,辽宋夏金元时期,辽宋夏金元时期,333,f,其他,"[""雕像""]",0,,,,,,,,,
钧窑玫瑰紫釉瓷花盆,辽宋夏金元时期,辽宋夏金元时期,334,t,瓷器,"[""陈设品"", ""花瓶""]",0,,,,,,,,,
褐釉剔刻花瓷扁壶,辽宋夏金元时期,辽宋夏金元时期,335,f,陶器,"[""饮食"", ""花瓶"", ""纹饰""]",0,,,,,,,,,
耀州窑青釉刻花莱菔瓷尊,辽宋夏金元时期,辽宋夏金元时期,336,f,瓷器,"[""花瓶"", ""纹饰""]",0,,,,,,,,,
佛宫寺释迦塔模型,辽宋夏金元时期,辽宋夏金元时期,337,f,其他,"[""建筑"", ""佛教""]",0,,,,,,,,,
木棉搅车图,辽宋夏金元时期,辽宋夏金元时期,338,f,其他,"[""科技""]",0,,,,,,,,,
行在会子库铜钞版,辽宋夏金元时期,辽宋夏金元时期,339,f,铜器,"[""牌章证件""]",0,,,,,,,,,
至元通行宝钞,辽宋夏金元时期,辽宋夏金元时期,340,f,钱币,"[""货币""]",0,,,,,,,,,
嘉祐青铜则,辽宋夏金元时期,辽宋夏金元时期,341,f,铜器,"[""仪器""]",0,,,,,,,,,
大德八年大都路青铜权,辽宋夏金元时期,辽宋夏金元时期,342,f,铜器,"[""仪器""]",0,,,,,,,,,
开宝寺塔龙纹砖,辽宋夏金元时期,辽宋夏金元时期,343,f,砖瓦,"[""建筑"", ""纹饰""]",0,,,,,,,,,
繁塔砖,辽宋夏金元时期,辽宋夏金元时期,344,f,砖瓦,"[""建筑""]",0,,,,,,,,,
湖州仪凤桥石家真正一色青铜镜,辽宋夏金元时期,辽宋夏金元时期,345,f,铜器,"[""饰品"", ""纹饰""]",0,,,,,,,,,
吉州李道工夫葵花青铜镜,辽宋夏金元时期,辽宋夏金元时期,346,f,铜器,"[""饰品"", ""纹饰""]",0,,,,,,,,,
张四郎银圆碟,辽宋夏金元时期,辽宋夏金元时期,347,f,金银器,"[""饮食""]",0,,,,,,,,,
济南刘家功夫针铺广告青铜版,辽宋夏金元时期,辽宋夏金元时期,348,f,铜器,"[""牌章证件""]",0,,,,,,,,,
鳞纹银壶,辽宋夏金元时期,辽宋夏金元时期,349,f,金银器,"[""饮食"", ""纹饰""]",0,,,,,,,,,
鎏金鹿纹银鸡冠壶,辽宋夏金元时期,辽宋夏金元时期,350,f,金银器,"[""饮食"", ""纹饰""]",0,,,,,,,,,
柳毅传书故事场面青铜镜,辽宋夏金元时期,辽宋夏金元时期,351,f,铜器,"[""饰品"", ""纹饰""]",0,,,,,,,,,
菱花形漆奁,辽宋夏金元时期,辽宋夏金元时期,352,f,漆器,"[""饰品""]",0,,,,,,,,,
妇女斫鲙雕砖,辽宋夏金元时期,辽宋夏金元时期,353,f,砖瓦,"[""雕像"", ""建筑""]",1,,,,,,,,,
妇女涤器雕砖,辽宋夏金元时期,辽宋夏金元时期,354,f,砖瓦,"[""雕像"", ""建筑""]",1,,,,,,,,,
青白釉刻莲瓣纹执壶温碗,辽宋夏金元时期,辽宋夏金元时期,355,f,瓷器,"[""饮食"", ""花瓶""]",0,,,,,,,,,
银玉壶春瓶,辽宋夏金元时期,辽宋夏金元时期,356,f,金银器,"[""饮食""]",0,,,,,,,,,
双凤麒麟纹石雕,辽宋夏金元时期,辽宋夏金元时期,357,f,石器石刻,"[""雕像"", ""纹饰""]",0,,,,,,,,,
持注子侍女石刻_1,辽宋夏金元时期,辽宋夏金元时期,358,f,石器石刻,"[""雕像""]",0,,,,,,,,,
托盘侍女石刻_1,辽宋夏金元时期,辽宋夏金元时期,359,f,石器石刻,"[""雕像""]",0,,,,,,,,,
持扇侍女石刻,辽宋夏金元时期,辽宋夏金元时期,360,f,石器石刻,"[""雕像""]",0,,,,,,,,,
官窑青釉贯耳瓶,辽宋夏金元时期,辽宋夏金元时期,361,f,瓷器,"[""陈设品"", ""花瓶""]",0,,,,,,,,,
汝窑青釉洗,辽宋夏金元时期,辽宋夏金元时期,362,f,瓷器,"[""文房四宝""]",0,,,,,,,,,
青釉贯耳瓶,辽宋夏金元时期,辽宋夏金元时期,363,f,瓷器,"[""花瓶"", ""纹饰""]",0,,,,,,,,,
官窑粉青釉三足瓷炉,辽宋夏金元时期,辽宋夏金元时期,364,f,瓷器,"[""礼制"", ""陈设品""]",0,,,,,,,,,
哥窑鱼耳炉,辽宋夏金元时期,辽宋夏金元时期,365,f,瓷器,"[""陈设品"", ""纹饰""]",0,,,,,,,,,
定窑白釉刻花莲瓣纹碗,辽宋夏金元时期,辽宋夏金元时期,366,f,瓷器,"[""饮食"", ""纹饰""]",0,,,,,,,,,
龙泉窑粉青釉凸花葫芦瓶,辽宋夏金元时期,辽宋夏金元时期,367,f,瓷器,"[""饮食"", ""纹饰""]",0,,,,,,,,,
定窑白釉龙纹瓷盘,辽宋夏金元时期,辽宋夏金元时期,368,f,瓷器,"[""饮食"", ""纹饰""]",0,,,,,,,,,
吉州窑玳瑁釉碗,辽宋夏金元时期,辽宋夏金元时期,369,f,瓷器,"[""饮食""]",0,,,,,,,,,
绿釉圆身捏梁式瓷鸡冠壶,辽宋夏金元时期,辽宋夏金元时期,370,f,陶器,"[""花瓶""]",0,,,,,,,,,
三彩釉印花游鱼海棠式瓷长盘,辽宋夏金元时期,辽宋夏金元时期,371,f,陶器,"[""饮食"", ""纹饰""]",0,,,,,,,,,
青花云龙纹玉壶春瓷瓶,辽宋夏金元时期,辽宋夏金元时期,372,f,瓷器,"[""花瓶""]",0,,,,,,,,,
枢府窑瓷盘,辽宋夏金元时期,辽宋夏金元时期,373,f,瓷器,"[""饮食""]",0,,,,,,,,,
钧窑镂空座四兽面双螭耳瓷瓶,辽宋夏金元时期,辽宋夏金元时期,374,f,瓷器,"[""陈设品"", ""花瓶""]",0,,,,,,,,,
龙泉窑青釉缠枝牡丹纹瓷瓶,辽宋夏金元时期,辽宋夏金元时期,375,f,瓷器,"[""陈设品"", ""花瓶""]",0,,,,,,,,,
磁州窑白釉黑花婴戏图瓷罐,辽宋夏金元时期,辽宋夏金元时期,376,f,瓷器,"[""陈设品"", ""花瓶""]",0,,,,,,,,,
叉手男侍石刻,辽宋夏金元时期,辽宋夏金元时期,377,f,石器石刻,"[""雕像""]",0,,,,,,,,,
托盘侍女石刻,辽宋夏金元时期,辽宋夏金元时期,378,f,石器石刻,"[""雕像""]",0,,,,,,,,,
二侍填香石刻,辽宋夏金元时期,辽宋夏金元时期,379,f,石器石刻,"[""雕像""]",0,,,,,,,,,
持注子侍女石刻_2,辽宋夏金元时期,辽宋夏金元时期,380,f,石器石刻,"[""雕像""]",0,,,,,,,,,
伎乐石刻,辽宋夏金元时期,辽宋夏金元时期,381,f,石器石刻,"[""雕像"", ""乐器""]",0,,,,,,,,,
捧奁侍女石刻,辽宋夏金元时期,辽宋夏金元时期,382,f,石器石刻,"[""雕像""]",0,,,,,,,,,
捧镜台侍女石刻,辽宋夏金元时期,辽宋夏金元时期,383,f,石器石刻,"[""雕像""]",0,,,,,,,,,
新铸铜人腧穴针灸图经刻石,辽宋夏金元时期,辽宋夏金元时期,384,f,石器石刻,"[""科技"", ""书法""]",1,,,,,,,,,
丁都赛戏曲雕砖,辽宋夏金元时期,辽宋夏金元时期,385,f,砖瓦,"[""建筑"", ""雕像""]",0,,,,,,,,,
傀儡戏纹青铜镜,辽宋夏金元时期,辽宋夏金元时期,386,f,铜器,"[""饰品"", ""纹饰""]",0,,,,,,,,,
蹴鞠纹青铜镜,辽宋夏金元时期,辽宋夏金元时期,387,f,铜器,"[""饰品"", ""纹饰""]",0,,,,,,,,,
针灸铜人,辽宋夏金元时期,辽宋夏金元时期,388,f,铜器,"[""科技"", ""仪器"", ""雕像""]",1,,,,,,,,,
阿拉伯数码字铁方盘,辽宋夏金元时期,辽宋夏金元时期,389,f,其他,"[""科技"", ""仪器""]",0,,,,,,,,,
铜壶滴漏,辽宋夏金元时期,辽宋夏金元时期,390,f,铜器,"[""科技"", ""仪器""]",0,,,,,,,,,
西夏文石碑残片,辽宋夏金元时期,辽宋夏金元时期,391,f,石器石刻,"[""书法""]",1,,,,,,,,,
海船纹青铜镜,辽宋夏金元时期,辽宋夏金元时期,392,f,铜器,"[""饰品"", ""纹饰""]",0,,,,,,,,,
青花缠枝纹贯耳瓶,明清时期,明清时期,393,f,瓷器,"[""陈设品"", ""纹饰""]",0,,,,,,,,,
青花海水云龙纹扁瓷瓶,明清时期,明清时期,394,f,瓷器,"[""陈设品"", ""纹饰""]",0,,,,,,,,,
甜白釉暗花缠枝莲纹三系罐,明清时期,明清时期,395,f,瓷器,"[""陈设品"", ""纹饰""]",0,,,,,,,,,
斗彩花蝶纹罐,明清时期,明清时期,396,f,瓷器,"[""陈设品"", ""纹饰""]",0,,,,,,,,,
五彩鱼藻纹瓷盖罐,明清时期,明清时期,397,f,瓷器,"[""陈设品"", ""纹饰""]",0,,,,,,,,,
锦衣卫印木印,明清时期,明清时期,398,f,其他,"[""牌章证件""]",0,,,,,,,,,
北平行都指挥使司夜巡铜牌,明清时期,明清时期,399,f,铜器,"[""牌章证件""]",0,,,,,,,,,
“皇城校尉”铜牌,明清时期,明清时期,400,f,铜器,"[""牌章证件""]",0,,,,,,,,,
“九宫长随”牙牌,明清时期,明清时期,401,f,其他,"[""牌章证件""]",0,,,,,,,,,
北京宫城图,明清时期,明清时期,402,f,书画古籍,"[""绘画""]",0,,,,,,,,,
河防一览图卷,明清时期,明清时期,403,f,书画古籍,"[""绘画""]",0,,,,,,,,,
剔红花鸟纹长方盒,明清时期,明清时期,404,f,漆器,"[""陈设品"", ""纹饰""]",0,,,,,,,,,
江千里制黑漆嵌螺钿执壶,明清时期,明清时期,405,f,漆器,"[""陈设品"", ""纹饰""]",0,,,,,,,,,
铜金刚铃、金刚杵,明清时期,明清时期,406,f,铜器,"[""佛教"", ""乐器""]",1,,,,,,,,,
青铜火铳,明清时期,明清时期,407,f,铜器,"[""武器""]",1,,,,,,,,,
南都繁会图卷,明清时期,明清时期,408,f,书画古籍,"[""绘画""]",0,,,,,,,,,
皇都积胜图卷,明清时期,明清时期,409,f,书画古籍,"[""绘画""]",0,,,,,,,,,
货郎图轴,明清时期,明清时期,410,f,书画古籍,"[""绘画""]",0,,,,,,,,,
金花银银锭,明清时期,明清时期,411,f,钱币,"[""货币""]",0,,,,,,,,,
大明通行宝钞壹贯钞版,明清时期,明清时期,412,f,铜器,"[""货币""]",0,,,,,,,,,
大明通行宝钞,明清时期,明清时期,413,f,钱币,"[""货币""]",0,,,,,,,,,
治平四年青白釉释迦牟尼坐像,明清时期,明清时期,414,f,瓷器,"[""佛教"", ""雕像""]",1,,,,,,,,,
宪宗元宵行乐图卷,明清时期,明清时期,415,f,书画古籍,"[""绘画""]",0,,,,,,,,,
孝端皇后凤冠,明清时期,明清时期,416,t,服饰,"[""服装"", ""饰品""]",0,,,,,,,,,
郑和铸青铜钟,明清时期,明清时期,417,f,铜器,"[""乐器""]",0,,,,,,,,,
郑成功像轴,明清时期,明清时期,418,f,其他,"[""绘画"", ""人物""]",0,,,,,,,,,
北征督运图册,明清时期,明清时期,419,f,书画古籍,"[""绘画""]",0,,,,,,,,,
黑绒嵌银花撒袋,明清时期,明清时期,420,f,服饰,"[""武器""]",0,,,,,,,,,
皇帝之宝玉印,明清时期,明清时期,421,f,玉器宝石,"[""牌章证件""]",0,,,,,,,,,
捕蝗图册,明清时期,明清时期,422,f,书画古籍,"[""绘画"", ""农耕""]",0,,,,,,,,,
青玉嵌花把皮鞘腰刀,明清时期,明清时期,423,f,玉器宝石,"[""武器""]",0,,,,,,,,,
大龙邮票,明清时期,明清时期,424,f,其他,"[""牌章证件""]",0,,,,,,,,,
外国银行在中国发行的钞票,明清时期,明清时期,425,f,钱币,"[""货币""]",0,,,,,,,,,
中国早期的电话机,明清时期,明清时期,426,f,其他,"[""科技""]",0,,,,,,,,,
医林改错,明清时期,明清时期,427,f,书画古籍,"[""科技""]",0,,,,,,,,,
《聊斋图册》,明清时期,明清时期,428,f,书画古籍,"[""绘画""]",1,,,,,,,,,
大观园图横披,明清时期,明清时期,429,f,其他,"[""绘画""]",0,,,,,,,,,
霁青釉金彩海晏河清尊,明清时期,明清时期,430,f,瓷器,"[""陈设品""]",0,,,,,,,,,
粉彩镂空转心瓶,明清时期,明清时期,431,f,瓷器,"[""陈设品""]",0,,,,,,,,,
簪镶宝石金冠,明清时期,明清时期,432,f,服饰,"[""服装"", ""饰品""]",0,,,,,,,,,
抗倭图卷,明清时期,明清时期,433,f,书画古籍,"[""绘画""]",0,,,,,,,,,
平定准噶尔图卷,明清时期,明清时期,434,f,书画古籍,"[""绘画""]",0,,,,,,,,,
五世达赖喇嘛银像,明清时期,明清时期,435,f,铜器,"[""佛教"", ""雕像""]",1,,,,,,,,,
开荒执照,明清时期,明清时期,436,f,其他,"[""牌章证件""]",0,,,,,,,,,
乾隆南巡图卷,明清时期,明清时期,437,f,书画古籍,"[""绘画""]",0,,,,,,,,,

path: references/上海博物馆.csv
content: 文物名称,展厅,时期,参观顺序,是否镇馆之宝,文物种类,所属领域,人员类别,,,,,,,,,
镶嵌十字纹方钺,中国古代青铜馆,夏商西周,1,t,铜器,['武器'],1,,,,,,,,,
牺尊,中国古代青铜馆,夏商西周,2,t,铜器,"['礼制', '饮食']",0,,,,,,,,,
晋侯稣钟,中国古代青铜馆,三国两晋南北朝,3,t,铜器,['乐器'],0,,,,,,,,,
战国商鞅方升,中国古代青铜馆,春秋战国,4,t,铜器,['科技'],0,,,,,,,,,
大克鼎,中国古代青铜馆,夏商西周,5,t,铜器,"['礼制', '陈设品']",0,,,,,,,,,
管流爵,中国古代青铜馆,夏商西周,6,f,铜器,"['饮食', '礼制']",0,,,,,,,,,
兽面纹斝_1,中国古代青铜馆,夏商西周,7,f,铜器,"['礼制', '饮食']",0,,,,,,,,,
商父乙觥,中国古代青铜馆,夏商西周,8,f,铜器,"['饮食', '礼制']",0,,,,,,,,,
亚夫方罍,中国古代青铜馆,夏商西周,9,f,铜器,"['礼制', '饮食']",0,,,,,,,,,
戊箙卣,中国古代青铜馆,夏商西周,10,f,铜器,"['礼制', '饮食']",0,,,,,,,,,
鄂叔簋,中国古代青铜馆,夏商西周,11,f,铜器,"['礼制', '饮食']",0,,,,,,,,,
吴王夫差鉴,中国古代青铜馆,春秋战国,12,f,铜器,"['礼制', '饮食']",0,,,,,,,,,
兽面纹觚,中国古代青铜馆,夏商西周,13,f,铜器,"['礼制', '饮食']",0,,,,,,,,,
子仲姜盘,中国古代青铜馆,春秋战国,14,f,铜器,"['礼制', '饮食']",0,,,,,,,,,
小臣单觯,中国古代青铜馆,夏商西周,15,f,铜器,"['礼制', '饮食']",0,,,,,,,,,
倗生簋,中国古代青铜馆,夏商西周,16,f,铜器,"['礼制', '饮食']",0,,,,,,,,,
德鼎,中国古代青铜馆,夏商西周,17,f,铜器,"['礼制', '饮食']",0,,,,,,,,,
黄觚,中国古代青铜馆,夏商西周,18,f,铜器,"['礼制', '饮食']",0,,,,,,,,,
八牛贮贝器,中国古代青铜馆,秦汉,19,f,铜器,"['货币', '陈设品']",0,,,,,,,,,
兽面纹铜鼎,中国古代青铜馆,夏商西周,20,f,铜器,"['礼制', '饮食']",0,,,,,,,,,
兽面纹斝_2,中国古代青铜馆,夏商西周,21,f,铜器,"['礼制', '饮食']",0,,,,,,,,,
镶嵌狩猎纹豆,中国古代青铜馆,春秋战国,22,f,铜器,"['礼制', '饮食', '纹饰']",0,,,,,,,,,
兽面纹爵,中国古代青铜馆,夏商西周,23,f,铜器,"['礼制', '饮食']",0,,,,,,,,,
兽面纹鬲,中国古代青铜馆,夏商西周,24,f,铜器,"['礼制', '饮食']",0,,,,,,,,,
透雕蟠龙鼓座,中国古代青铜馆,春秋战国,25,f,铜器,"['乐器', '纹饰']",0,,,,,,,,,
吴王光剑,中国古代青铜馆,春秋战国,26,t,铜器,['武器'],0,,,,,,,,,
郘钟,中国古代青铜馆,春秋战国,27,f,铜器,['乐器'],0,,,,,,,,,
父庚觯铸造过程示意模型,中国古代青铜馆,夏商西周,28,f,铜器,"['科技', '礼制']",0,,,,,,,,,
透光镜_2,中国古代青铜馆,秦汉,29,t,铜器,"['仪器', '纹饰']",0,,,,,,,,,
师遽方彝,中国古代青铜馆,夏商西周,30,f,铜器,"['礼制', '饮食']",0,,,,,,,,,
迦叶木雕头像,中国古代雕塑馆,隋唐五代,31,f,其他,"['雕像', '佛教']",0,,,,,,,,,
菩萨石像,中国古代雕塑馆,隋唐五代,32,f,石器石刻,"['雕像', '佛教']",0,,,,,,,,,
阿弥陀佛三尊铜像,中国古代雕塑馆,隋唐五代,33,f,铜器,"['雕像', '佛教']",0,,,,,,,,,
释迦牟尼佛石像,中国古代雕塑馆,隋唐五代,34,f,石器石刻,"['雕像', '佛教']",0,,,,,,,,,
东汉抚琴陶俑,中国古代雕塑馆,秦汉,35,f,陶器,"['雕像', '人物', '乐器']",0,,,,,,,,,
王龙生等造佛像石碑,中国古代雕塑馆,三国两晋南北朝,36,f,石器石刻,"['雕像', '佛教']",0,,,,,,,,,
北齐佛石像,中国古代雕塑馆,三国两晋南北朝,37,f,石器石刻,"['雕像', '佛教']",0,,,,,,,,,
唐陶仕女彩绘俑,中国古代雕塑馆,隋唐五代,38,f,陶器,"['雕像', '人物']",0,,,,,,,,,
宋菩萨漆金彩绘木像,中国古代雕塑馆,辽宋夏金元,39,f,漆器,"['雕像', '佛教']",0,,,,,,,,,
三螭纹玉觚,中国古代玉器馆,明清,40,t,玉器宝石,"['礼制', '陈设品']",0,,,,,,,,,
春水玉饰,中国古代玉器馆,辽宋夏金元,41,f,玉器宝石,"['饰品', '纹饰']",0,,,,,,,,,
龙凤纹玉剑璏,中国古代玉器馆,秦汉,42,f,玉器宝石,"['武器', '饰品']",0,,,,,,,,,
玉神人,中国古代玉器馆,远古时期,43,t,玉器宝石,"['雕像', '人物', '佛教']",0,,,,,,,,,
神像飞鸟纹琮,中国古代玉器馆,远古时期,44,f,玉器宝石,"['礼制', '佛教', '纹饰']",0,,,,,,,,,
神人首,中国古代玉器馆,远古时期,45,f,玉器宝石,"['雕像', '人物', '佛教']",0,,,,,,,,,
神面纹玉琮,中国古代玉器馆,远古时期,46,f,玉器宝石,"['礼制', '佛教', '纹饰']",0,,,,,,,,,
四灵纹玉胜,中国古代玉器馆,秦汉,47,f,玉器宝石,"['饰品', '纹饰']",0,,,,,,,,,
兽面纹玉戚,中国古代玉器馆,夏商西周,48,f,玉器宝石,"['武器', '纹饰']",0,,,,,,,,,
玉权杖,中国古代玉器馆,远古时期,49,f,玉器宝石,"['礼制', '武器']",0,,,,,,,,,
凤龙纹玉饰,中国古代玉器馆,春秋战国,50,f,玉器宝石,"['饰品', '纹饰']",0,,,,,,,,,
重环谷纹玉璧,中国古代玉器馆,秦汉,51,f,玉器宝石,"['礼制', '饰品']",0,,,,,,,,,
龙纹鲜卑头,中国古代玉器馆,三国两晋南北朝,52,f,玉器宝石,"['饰品', '纹饰']",0,,,,,,,,,
云龙纹葵口玉盘,中国古代玉器馆,明清,53,f,玉器宝石,"['饮食', '纹饰']",0,,,,,,,,,
鹰攫人首玉佩,中国古代玉器馆,远古时期,54,f,玉器宝石,"['饰品', '纹饰']",1,,,,,,,,,
莲鹭纹炉顶,中国古代玉器馆,辽宋夏金元,55,f,玉器宝石,"['陈设品', '纹饰']",0,,,,,,,,,
嵌宝八角盒,中国古代玉器馆,明清,56,f,金银器,"['陈设品', '饰品']",0,,,,,,,,,
近代胡钁硬黄一卷写兰亭石章,中国历代玺印篆刻馆,明清,57,f,石器石刻,['牌章证件'],0,,,,,,,,,
赵之谦赐兰堂石章,中国历代玺印篆刻馆,明清,58,f,石器石刻,['牌章证件'],0,,,,,,,,,
河间王玺封泥,中国历代玺印篆刻馆,秦汉,59,f,其他,['牌章证件'],0,,,,,,,,,
西汉广汉大将军章银印,中国历代玺印篆刻馆,秦汉,60,f,金银器,['牌章证件'],0,,,,,,,,,
春安君玉玺,中国历代玺印篆刻馆,春秋战国,61,f,玉器宝石,['牌章证件'],0,,,,,,,,,
东汉魏霸玉印,中国历代玺印篆刻馆,秦汉,62,f,玉器宝石,['牌章证件'],0,,,,,,,,,
晋归义氐王金印,中国历代玺印篆刻馆,三国两晋南北朝,63,f,金银器,['牌章证件'],0,,,,,,,,,
何震笑谈间气吐霓虹石章,中国历代玺印篆刻馆,明清,64,f,石器石刻,['牌章证件'],0,,,,,,,,,
涡纹玺,中国历代玺印篆刻馆,夏商西周,65,f,玉器宝石,['牌章证件'],0,,,,,,,,,
战国禺疆,中国历代玺印篆刻馆,春秋战国,66,f,其他,['雕像'],0,,,,,,,,,
战国匈奴相邦玉玺,中国历代玺印篆刻馆,春秋战国,67,f,玉器宝石,['牌章证件'],0,,,,,,,,,
新莽设屏农尉章,中国历代玺印篆刻馆,秦汉,68,f,其他,['牌章证件'],0,,,,,,,,,
浮雕八仙上寿图寿山石田黄印,中国历代玺印篆刻馆,明清,69,f,玉器宝石,['牌章证件'],0,,,,,,,,,
多罗定郡王印,中国历代玺印篆刻馆,明清,70,f,其他,['牌章证件'],0,,,,,,,,,
晋王羲之上虞帖卷,中国历代书法馆,三国两晋南北朝,71,f,书画古籍,['书法'],0,,,,,,,,,
唐怀素苦筍帖卷,中国历代书法馆,隋唐五代,72,f,书画古籍,['书法'],0,,,,,,,,,
明祝允明草书牡丹赋卷,中国历代书法馆,明清,73,f,书画古籍,['书法'],0,,,,,,,,,
北宋苏轼真书祭黄几道文卷,中国历代书法馆,辽宋夏金元,74,f,书画古籍,['书法'],0,,,,,,,,,
禾牛骨刻辞,中国历代书法馆,夏商西周,75,f,石器石刻,['礼制'],0,,,,,,,,,
清蒋廷锡芍药图轴,中国历代绘画馆,明清,76,f,书画古籍,['绘画'],0,,,,,,,,,
明徐渭竹石牡丹图轴,中国历代绘画馆,明清,77,f,书画古籍,['绘画'],0,,,,,,,,,
明唐寅秋风纨扇图轴,中国历代绘画馆,明清,78,f,书画古籍,['绘画'],0,,,,,,,,,
元王冕墨梅图轴,中国历代绘画馆,辽宋夏金元,79,f,书画古籍,['绘画'],0,,,,,,,,,
宋艳艳女史草虫花蝶图卷,中国历代绘画馆,辽宋夏金元,80,f,书画古籍,['绘画'],0,,,,,,,,,
戴进青山积翠图轴,中国历代绘画馆,明清,81,f,书画古籍,['绘画'],0,,,,,,,,,
文徽明石湖清胜图卷,中国历代绘画馆,明清,82,f,书画古籍,['绘画'],0,,,,,,,,,
倪瓒渔庄秋霁图轴,中国历代绘画馆,辽宋夏金元,83,f,书画古籍,['绘画'],0,,,,,,,,,
任仁发秋水凫鹥图轴,中国历代绘画馆,辽宋夏金元,84,f,书画古籍,['绘画'],0,,,,,,,,,
清雍正景德镇窑粉彩蝠桃纹瓶,中国古代陶瓷馆,明清,85,f,瓷器,"['花瓶', '绘画']",0,,,,,,,,,
明嘉靖景德镇窑五彩鱼藻纹罐,中国古代陶瓷馆,明清,86,f,瓷器,"['花瓶', '纹饰']",0,,,,,,,,,
唐彩绘彩色釉陶骑马女俑,中国古代陶瓷馆,隋唐五代,87,f,陶器,"['雕像', '人物', '陈设品']",0,,,,,,,,,
马家窑文化彩陶涡纹壶,中国古代陶瓷馆,远古时期,88,f,陶器,"['新石器', '饮食', '纹饰']",0,,,,,,,,,
宋哥窑五足洗,中国古代陶瓷馆,辽宋夏金元,89,f,瓷器,"['饮食', '陈设品']",0,,,,,,,,,
青釉弦纹尊,中国古代陶瓷馆,夏商西周,90,f,瓷器,"['礼制', '饮食']",0,,,,,,,,,
越窑青釉海棠式碗,中国古代陶瓷馆,隋唐五代,91,f,瓷器,"['饮食', '陈设品']",0,,,,,,,,,
长沙窑青釉褐绿彩花卉纹枕,中国古代陶瓷馆,隋唐五代,92,f,瓷器,"['陈设品', '纹饰']",0,,,,,,,,,
龙泉窑青釉鬲式炉,中国古代陶瓷馆,辽宋夏金元,93,f,瓷器,"['礼制', '陈设品']",0,,,,,,,,,
景德镇青花缠枝花卉纹执壶,中国古代陶瓷馆,明清,94,f,瓷器,"['花瓶', '纹饰']",0,,,,,,,,,
孔雀绿釉青花莲鱼纹盘,中国古代陶瓷馆,明清,95,f,瓷器,"['饮食', '纹饰']",0,,,,,,,,,
景德镇窑青釉云龙纹缸,中国古代陶瓷馆,明清,96,t,瓷器,"['花瓶', '纹饰']",0,,,,,,,,,
冬青釉暗花茶叶末座描金盖碗,中国古代陶瓷馆,明清,97,f,瓷器,"['饮食', '陈设品']",0,,,,,,,,,
黄釉绞胎陶三足盘,中国古代陶瓷馆,隋唐五代,98,f,陶器,"['饮食', '陈设品']",0,,,,,,,,,
高丽青釉划花花卉纹杯托,中国古代陶瓷馆,辽宋夏金元,99,f,瓷器,"['饮食', '纹饰']",0,,,,,,,,,
白釉镂雕宫殿人物枕,中国古代陶瓷馆,辽宋夏金元,100,t,瓷器,"['陈设品', '人物', '建筑']",0,,,,,,,,,
汝窑盘,中国古代陶瓷馆,辽宋夏金元,101,f,瓷器,"['饮食', '陈设品']",0,,,,,,,,,
耀州窑青釉刻花牡丹纹瓶,中国古代陶瓷馆,辽宋夏金元,102,f,瓷器,"['花瓶', '纹饰']",0,,,,,,,,,
彩色釉陶凤首壶,中国古代陶瓷馆,隋唐五代,103,f,陶器,"['花瓶', '纹饰']",0,,,,,,,,,
粉彩八仙人物图瓶,中国古代陶瓷馆,明清,104,f,瓷器,"['花瓶', '人物', '绘画']",0,,,,,,,,,
良渚文化黑陶高柄盖罐,中国古代陶瓷馆,远古时期,105,f,陶器,"['新石器', '饮食']",0,,,,,,,,,
崧泽文化黑陶刻纹盖罐,中国古代陶瓷馆,远古时期,106,f,陶器,"['新石器', '饮食', '纹饰']",0,,,,,,,,,
红陶听琴女俑,中国古代陶瓷馆,三国两晋南北朝,107,f,陶器,"['雕像', '人物', '乐器']",0,,,,,,,,,
彩色釉陶骆驼,中国古代陶瓷馆,隋唐五代,108,f,陶器,"['雕像', '陈设品', '古生物']",0,,,,,,,,,
白釉莲花口弦纹六管瓶,中国古代陶瓷馆,辽宋夏金元,109,f,瓷器,"['花瓶', '纹饰', '陈设品']",0,,,,,,,,,
宋建窑進琖款茶盏,中国古代陶瓷馆,辽宋夏金元,110,f,瓷器,"['饮食', '礼制']",0,,,,,,,,,
景德镇窑青花云龙纹春寿瓶,中国古代陶瓷馆,明清,111,f,瓷器,"['花瓶', '纹饰', '陈设品']",0,,,,,,,,,
景德镇窑青花釉里红三果纹高足碗,中国古代陶瓷馆,明清,112,f,瓷器,"['饮食', '纹饰']",0,,,,,,,,,
景德镇窑仿法华釉花鸟纹罐,中国古代陶瓷馆,明清,113,f,瓷器,"['花瓶', '纹饰', '陈设品']",0,,,,,,,,,
景德镇窑粉彩镂空旋转瓶,中国古代陶瓷馆,明清,114,f,瓷器,"['花瓶', '陈设品', '科技']",0,,,,,,,,,
龙窑,中国古代陶瓷馆,辽宋夏金元,115,f,其他,"['建筑', '科技']",0,,,,,,,,,
彩色釉陶镇墓兽,中国古代陶瓷馆,三国两晋南北朝,116,f,陶器,"['雕像', '佛教', '陈设品']",1,,,,,,,,,
景德镇窑唐英款粉彩人物图笔筒,中国古代陶瓷馆,明清,117,f,瓷器,"['文房四宝', '人物', '绘画']",0,,,,,,,,,
清康熙景德镇窑苹果绿釉印盒,中国古代陶瓷馆,明清,118,f,瓷器,"['文房四宝', '陈设品']",0,,,,,,,,,
年广东沙面万国宝通银行一元,中国历代货币馆,明清,119,f,钱币,['货币'],0,,,,,,,,,
广东寿字一两银币,中国历代货币馆,明清,120,f,钱币,['货币'],0,,,,,,,,,
建武十七年五铢叠铸铜制范盒,中国历代货币馆,秦汉,121,f,铜器,['货币'],0,,,,,,,,,
贞祐宝券伍贯钞版,中国历代货币馆,辽宋夏金元,122,f,钱币,['货币'],0,,,,,,,,,
天策府宝,中国历代货币馆,隋唐五代,123,f,钱币,['货币'],0,,,,,,,,,
口口小化口平肩弧足空首布五字铭文平肩弧足空首布,中国历代货币馆,春秋战国,124,f,钱币,['货币'],0,,,,,,,,,
安邑半釿圆肩方足布,中国历代货币馆,春秋战国,125,f,钱币,['货币'],0,,,,,,,,,
马蹄金,中国历代货币馆,秦汉,126,f,金银器,['货币'],0,,,,,,,,,
一刀平五千,中国历代货币馆,秦汉,127,f,钱币,['货币'],0,,,,,,,,,
开元通宝_2,中国历代货币馆,隋唐五代,128,f,钱币,['货币'],0,,,,,,,,,
永乐通宝三钱,中国历代货币馆,明清,129,f,钱币,['货币'],0,,,,,,,,,
咸丰七年大清宝钞百千文,中国历代货币馆,明清,130,f,钱币,['货币'],0,,,,,,,,,
年德华银行二十两年英商香港汇丰银行五元,中国历代货币馆,明清,131,f,钱币,['货币'],0,,,,,,,,,
马其顿国王亚历山大三世德拉克马银币,中国历代货币馆,春秋战国,132,f,钱币,['货币'],0,,,,,,,,,
成吉思汗金币,中国历代货币馆,辽宋夏金元,133,f,钱币,['货币'],0,,,,,,,,,

path: references/故宫珍宝馆.csv
content: 文物名称,展厅,时期,参观顺序,是否镇馆之宝,文物种类,所属领域,人员类别,,,,,,,,,
金累丝龙纹嵌珍珠宝石帽顶,珠光宝气,明清,1,f,金银器,"['饰品', '礼制']",0,,,,,,,,,
点翠嵌珍珠宝石金龙凤冠,珠光宝气,明清,2,f,金银器,"['饰品', '礼制']",0,,,,,,,,,
貂皮嵌珠皇后冬朝冠,珠光宝气,明清,3,f,服饰,"['服装', '饰品', '礼制']",0,,,,,,,,,
金嵌珍珠宝石圆花,珠光宝气,明清,4,f,金银器,"['饰品', '礼制']",0,,,,,,,,,
金嵌珍珠宝石帽花,珠光宝气,明清,5,f,金银器,"['饰品', '礼制']",0,,,,,,,,,
金累丝嵌珍珠宝石九凤钿口,珠光宝气,明清,6,f,金银器,"['饰品', '礼制']",0,,,,,,,,,
金累丝嵌珍珠宝石五凤钿,珠光宝气,明清,7,f,金银器,"['饰品', '礼制']",0,,,,,,,,,
金嵌珍珠宝石蜻蜓式簪,珠光宝气,明清,8,f,金银器,"['饰品', '礼制']",0,,,,,,,,,
金镂空嵌宝石富贵吉祥扁方,珠光宝气,明清,9,f,金银器,"['饰品', '礼制']",0,,,,,,,,,
金镂空嵌珠石扁方,珠光宝气,明清,10,f,金银器,"['饰品', '礼制']",0,,,,,,,,,
镶青金石金约,珠光宝气,明清,11,f,金银器,"['饰品', '礼制']",0,,,,,,,,,
银镀金镶珊瑚领约,珠光宝气,明清,12,f,金银器,"['饰品', '礼制']",0,,,,,,,,,
银镀金点翠串珠流苏,珠光宝气,明清,13,f,金银器,"['饰品', '礼制']",0,,,,,,,,,
碧玺手串,珠光宝气,明清,14,f,玉器宝石,['饰品'],0,,,,,,,,,
翠十八子手串,珠光宝气,明清,15,f,玉器宝石,['饰品'],0,,,,,,,,,
伽南香木嵌金珠寿字手镯,珠光宝气,明清,16,f,玉器宝石,['饰品'],0,,,,,,,,,
金镶珍珠耳环,珠光宝气,明清,17,f,金银器,['饰品'],0,,,,,,,,,
东珠朝珠,珠光宝气,明清,18,t,玉器宝石,"['饰品', '礼制']",0,,,,,,,,,
金胎绿珐琅嵌红宝石高足盖碗,珠光宝气,明清,19,f,金银器,"['饮食', '陈设品']",0,,,,,,,,,
翠镶金里扳指,珠光宝气,明清,20,f,玉器宝石,['饰品'],0,,,,,,,,,
金镶珍珠翡翠戒指,珠光宝气,明清,21,f,玉器宝石,['饰品'],0,,,,,,,,,
白玉错金嵌宝石碗,珠光宝气,明清,22,f,玉器宝石,"['饮食', '陈设品']",0,,,,,,,,,
银胎绿珐琅嵌红宝石右旋螺盒,珠光宝气,明清,23,t,金银器,"['饰品', '陈设品']",0,,,,,,,,,
金嵌珊瑚松石斋戒牌,珠光宝气,明清,24,f,金银器,"['牌章证件', '饰品']",0,,,,,,,,,
金嵌珠宝带饰丝带,珠光宝气,明清,25,f,金银器,"['饰品', '服装']",0,,,,,,,,,
金累丝点翠嵌珍珠香囊,珠光宝气,明清,26,f,金银器,"['饰品', '陈设品']",0,,,,,,,,,
碧玺巧雕松鼠葡萄纹佩,珠光宝气,明清,27,f,玉器宝石,['饰品'],0,,,,,,,,,
碧玺雕瓜形佩,珠光宝气,明清,28,f,玉器宝石,['饰品'],0,,,,,,,,,
翡翠嵌珠宝鱼式盒,珠光宝气,明清,29,f,玉器宝石,"['饰品', '陈设品']",0,,,,,,,,,
金錾花卉纹嵌宝石盒,珠光宝气,明清,30,f,金银器,"['饰品', '陈设品']",0,,,,,,,,,
金亭式香薰,金昭银辉,明清,31,f,金银器,"['陈设品', '礼制']",0,,,,,,,,,
金甪端香熏,金昭银辉,明清,32,f,金银器,"['陈设品', '礼制']",0,,,,,,,,,
金云龙纹提炉,金昭银辉,明清,33,f,金银器,"['陈设品', '礼制']",0,,,,,,,,,
金双凤纹盆,金昭银辉,明清,34,f,金银器,"['陈设品', '礼制']",0,,,,,,,,,
金爵杯,金昭银辉,明清,35,f,金银器,"['饮食', '礼制']",0,,,,,,,,,
金錾花卉纹嵌珠宝如意式香薰,金昭银辉,明清,36,f,金银器,"['陈设品', '礼制']",0,,,,,,,,,
金胎珊瑚雕云龙福寿纹桃式盒,金昭银辉,明清,37,f,金银器,"['陈设品', '礼制']",0,,,,,,,,,
金錾夔龙宝相花纹扁壶,金昭银辉,明清,38,f,金银器,"['陈设品', '礼制']",0,,,,,,,,,
金盖托白玉杯,金昭银辉,明清,39,f,金银器,"['饮食', '陈设品']",0,,,,,,,,,
银方斗式套杯,金昭银辉,明清,40,f,金银器,"['饮食', '陈设品']",0,,,,,,,,,
银錾山水人物图提梁壶,金昭银辉,明清,41,f,金银器,"['陈设品', '饰品', '绘画', '人物']",0,,,,,,,,,
金嵌珍珠天球仪,金昭银辉,明清,42,f,金银器,"['仪器', '科技']",0,,,,,,,,,
银累丝瓜棱式瓶,金昭银辉,明清,43,f,金银器,"['花瓶', '陈设品']",0,,,,,,,,,
金镂空大吉葫芦式香薰,金昭银辉,明清,44,f,金银器,"['陈设品', '饰品', '礼制']",0,,,,,,,,,
金奉天之宝玺,金昭银辉,明清,45,f,金银器,"['牌章证件', '礼制']",0,,,,,,,,,
金胎掐丝珐琅嵌画珐琅人物图葫芦式执壶,金昭银辉,明清,46,f,金银器,"['陈设品', '饰品', '绘画', '人物']",0,,,,,,,,,
金錾双喜团寿字茶碗,金昭银辉,明清,47,f,金银器,"['饮食', '饰品', '礼制']",0,,,,,,,,,
金胎画珐琅杯盘,金昭银辉,明清,48,f,金银器,"['饮食', '陈设品']",0,,,,,,,,,
金錾云龙纹嵌珠杯盘,金昭银辉,明清,49,f,金银器,"['饮食', '陈设品', '纹饰']",0,,,,,,,,,
金嵌珍珠松石楼式佛龛,金昭银辉,明清,50,f,金银器,"['佛教', '陈设品', '建筑']",0,,,,,,,,,
金盖托白玉碗,金昭银辉,明清,51,f,金银器,"['饮食', '陈设品']",0,,,,,,,,,
金嵌珍珠宝石藏经匣,金昭银辉,明清,52,f,金银器,"['佛教', '陈设品']",0,,,,,,,,,
金嵌松石佛瓶,金昭银辉,明清,53,f,金银器,"['佛教', '陈设品', '花瓶']",0,,,,,,,,,
金錾花嵌松石军持,金昭银辉,明清,54,f,金银器,"['佛教', '陈设品']",0,,,,,,,,,
金嵌珍珠宝石七珍,金昭银辉,明清,55,f,金银器,"['佛教', '饰品']",0,,,,,,,,,
金嵌珍珠宝石八宝,金昭银辉,明清,56,f,金银器,"['佛教', '饰品']",0,,,,,,,,,
金累丝嵌松石坛城,金昭银辉,明清,57,f,金银器,"['佛教', '陈设品']",0,,,,,,,,,
金嵌宝石释迦牟尼像,金昭银辉,明清,58,f,金银器,"['佛教', '雕像']",0,,,,,,,,,
金嵌珍珠弥勒立像,金昭银辉,明清,59,f,金银器,"['佛教', '雕像']",0,,,,,,,,,
金累丝嵌珍珠宝石覆钵式塔,金昭银辉,明清,60,f,金银器,"['佛教', '建筑', '陈设品']",0,,,,,,,,,
金累丝万年如意,金昭银辉,明清,61,f,金银器,"['饰品', '陈设品']",0,,,,,,,,,
金嵌宝石八角覆钵式塔,金昭银辉,明清,62,f,金银器,"['佛教', '饰品', '建筑']",0,,,,,,,,,
玛瑙雕螭耳杯,球琳集萃,明清,63,f,玉器宝石,"['饮食', '饰品']",0,,,,,,,,,
玛瑙雕撇口碗,球琳集萃,明清,64,f,玉器宝石,"['饮食', '饰品']",0,,,,,,,,,
黄玉雕佛手式花插,球琳集萃,明清,65,f,玉器宝石,"['陈设品', '饰品']",0,,,,,,,,,
白玉雕羊首瓜棱壶,球琳集萃,明清,66,f,玉器宝石,"['饮食', '饰品']",0,,,,,,,,,
白玉雕桐荫仕女图山子,球琳集萃,明清,67,f,玉器宝石,"['雕像', '绘画', '人物']",0,,,,,,,,,
翠雕白菜式花插,球琳集萃,明清,68,f,玉器宝石,"['陈设品', '饰品']",0,,,,,,,,,
青玉嵌红宝石炉瓶盒,球琳集萃,明清,69,f,玉器宝石,"['陈设品', '饰品']",0,,,,,,,,,
碧玉雕司寇匜,球琳集萃,明清,70,f,玉器宝石,"['礼制', '饮食']",0,,,,,,,,,
碧玉雕西园雅集笔筒,球琳集萃,明清,71,f,玉器宝石,"['文房四宝', '绘画', '人物']",0,,,,,,,,,
玛瑙雕梅竹松桩式花插,球琳集萃,明清,72,f,玉器宝石,"['陈设品', '饰品']",0,,,,,,,,,
芙蓉石炉,球琳集萃,明清,73,f,玉器宝石,"['陈设品', '饰品']",0,,,,,,,,,
寿山石雕伏虎罗汉,球琳集萃,明清,74,f,玉器宝石,"['雕像', '佛教', '人物']",0,,,,,,,,,
田黄三连印,球琳集萃,明清,75,t,玉器宝石,"['牌章证件', '饰品']",0,,,,,,,,,
孔雀石雕山水人物图插屏,球琳集萃,明清,76,f,玉器宝石,"['雕像', '绘画', '人物']",0,,,,,,,,,
孔雀石盘,球琳集萃,明清,77,f,玉器宝石,"['陈设品', '饰品']",0,,,,,,,,,
玛瑙巧雕三足蟾纹鼻烟壶,球琳集萃,明清,78,f,玉器宝石,"['饰品', '陈设品']",0,,,,,,,,,
青金石雕瓜式鼻烟壶,球琳集萃,明清,79,f,玉器宝石,"['饰品', '陈设品']",0,,,,,,,,,
发晶鼻烟壶,球琳集萃,明清,80,f,玉器宝石,"['饰品', '陈设品']",0,,,,,,,,,
琥珀刻乾隆御题诗鼻烟壶,球琳集萃,明清,81,f,玉器宝石,"['饰品', '陈设品', '书法']",0,,,,,,,,,
水晶雕天鸡尊,球琳集萃,明清,82,f,玉器宝石,"['陈设品', '饰品']",0,,,,,,,,,
水晶雕兕觥,球琳集萃,明清,83,f,玉器宝石,"['陈设品', '饰品']",0,,,,,,,,,
翠雕太平有象式磬,球琳集萃,明清,84,f,玉器宝石,"['乐器', '陈设品']",0,,,,,,,,,
翠雕卧牛,球琳集萃,明清,85,f,玉器宝石,"['雕像', '陈设品']",0,,,,,,,,,
珊瑚狮子,球琳集萃,明清,86,f,玉器宝石,"['雕像', '陈设品']",0,,,,,,,,,
填漆八仙图筒式盆碧玉万年青盆景,球琳集萃,明清,87,f,漆器,"['陈设品', '绘画', '人物']",0,,,,,,,,,
翠雕鹤鹿人物图山子,球琳集萃,明清,88,f,玉器宝石,"['雕像', '绘画', '人物']",0,,,,,,,,,
青金石雕山水图山子,球琳集萃,明清,89,f,玉器宝石,"['雕像', '绘画']",0,,,,,,,,,
青金石雕松泉人物图山子,球琳集萃,明清,90,f,玉器宝石,"['雕像', '绘画', '人物']",0,,,,,,,,,
玛瑙雕瓜叶式水盛,球琳集萃,明清,91,f,玉器宝石,"['文房四宝', '陈设品']",0,,,,,,,,,
铜镀金錾寿字盆红宝石梅花盆景,金枝玉叶,明清,92,f,金银器,"['陈设品', '饰品']",0,,,,,,,,,
画珐琅长方盆玉兰盆景,金枝玉叶,明清,93,f,瓷器,"['陈设品', '饰品']",0,,,,,,,,,
木胎海棠式盆翠竹盆景,金枝玉叶,明清,94,f,漆器,"['陈设品', '饰品']",0,,,,,,,,,
银六方盆金桃树盆景,金枝玉叶,明清,95,f,金银器,"['陈设品', '饰品']",0,,,,,,,,,
银六方盆金铁树盆景,金枝玉叶,明清,96,f,金银器,"['陈设品', '饰品']",0,,,,,,,,,
碧玉雕采玉图山子,金枝玉叶,明清,97,f,玉器宝石,"['雕像', '绘画', '人物']",0,,,,,,,,,
金嵌松石方瓶玉石花卉景,金枝玉叶,明清,98,f,金银器,"['陈设品', '饰品']",0,,,,,,,,,
铜镀金嵌珐琅海棠式盆红珊瑚盆景,金枝玉叶,明清,99,f,金银器,"['陈设品', '饰品']",0,,,,,,,,,

Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: suspicious (MEDIUM)