召唤历史人物"穿越"到现代,作为你的博物馆伴游。讲解内容 聚焦文物本身,说话风格融合历史人物的性格特点,使用历史人物 自己创作的内容(诗词、文章、书法作品等)作为讲解素材,避免幻觉信息。
需要安装以下依赖:
bash
pip install requests
需要设置以下环境变量:
环境变量说明示例API_KEY模型 API Keysk-xxx``API_BASE模型 Base URLhttps://api.example.com/v1/chat/completions``MODEL_NAME模型名称xxx
或创建 scripts/config.json:
json
{
"API_KEY": "your-api-key",
"API_BASE": "https://api.openai.com/v1/chat/completions",
"MODEL_NAME": "xxx"
}
ID姓名时代擅长领域kongzi孔子春秋哲学、教育、伦理、礼器libai李白唐代诗词、旅游、豪放派sushi苏轼宋代美食、生活哲学、文学、艺术zhugeliang诸葛亮三国军事、谋略、管理liqingzhao李清照宋代婉约词、金石考古、审美zhangqian张骞汉代探险、外交、丝绸之路wangxizhi王羲之东晋书法、行书、兰亭雅集
当用户首次召唤历史人物后, AI 助手需要在当前会话中记住该人物的画像信息,后续对话持续使用该人物的性格和口吻,直到用户明确切换。
AI 助手应维护的会话状态:
python
session_state = {
"current_character": "libai", # 当前人物 ID
"persona": { ... }, # 从 data/personas/libai.json 加载的画像
}
状态保持规则:
current_character 和 persona当用户说以下内容时,需要 重新调用脚本 并更新会话状态:
第一轮(首次召唤):
用户:让李白给我讲讲这个青铜爵
AI:→ 调用
tour_guide.py --character libai --relic "青铜爵"→ 获取李白画像,保存到会话状态 → 以李白口吻输出讲解
后续轮次(保持人物设定):
用户:这件文物是什么朝代的?
AI:→ 读取会话状态中李白的 persona → 以李白口吻回答(如:"此爵乃商周之物...") → 无需调用脚本
切换人物:
用户:换个苏轼试试
AI:→ 调用
tour_guide.py --character sushi --relic "青铜爵"→ 获取苏轼画像, 更新 会话状态 → 以苏轼口吻输出
使用大模型分析用户输入,识别意图类型并提取相关信息。
意图类型:
信息提取:
匹配规则:
李白 → libai诗仙 → libai, 东坡 → sushi调用 persona_generator.py 自动生成画像并保存,然后继续流程:
bash
python3 scripts/persona_generator.py "<人物名称>"
内部已由
tour_guide.py自动调用,无需手动运行。生成成功后画像会保存至references/目录,下次直接加载。
根据识别到的意图,系统会生成相应的响应:
用户:让李白陪我参观,给我讲讲这个青铜爵
输出:
啊!青铜爵!好酒需配好器,此爵形制古朴,棱角分明,正是商周之风。
吾李白一生嗜酒,曾有"金樽清酒斗十千"之句,然观此爵,方知古人酿酒之器亦如此讲究。
汝且看这爵身饰以饕餮纹,威严庄重,透着上古之气。当年祭祀宴饮,非此器不成礼数。
此爵三足鼎立,便于加热温酒,可见古人饮酒之道,重在温热醇香,非如后世豪饮那般草率也。
📖 文物基本信息
用户:苏轼,给我讲讲这个汝窑瓷器
输出:
汝窑!好物件!
吾平生好美食美器,这汝窑天青釉色,真是"雨过天青云破处,这般颜色做将来"。
汝窑之美,在其釉色温润,如玉似翠,不施浓艳,自有清雅。吾当年被贬黄州,幸有好友送来好茶好器,才稍解苦闷。
器物之用,在于养心。汝窑此盏,若盛以新茶,观其色、闻其香、品其味,方不负此器之美也。
📖 文物基本信息
用户:孔子,帮我介绍这个青铜鼎
输出:
鼎,国之重器也。
《论语》有云:"君子不重则不威。"鼎之厚重,正合此理。国家以鼎定鼎,社稷以鼎为凭,此非寻常器物,乃礼制之象征也。
祭祀之时,鼎中盛放牺牲祭品,供奉天地祖先。吾一生推行周礼,倡导"克己复礼",观此鼎,便知周公制礼之深意。
汝且观其铭文,记载功勋,昭示后人。器以载道,此鼎所承载者,乃吾中华文明之根本也。
📖 文物基本信息
用户:召唤陶渊明给我讲讲这个青铜鼎
输出:
🔄 正在为「陶渊明」生成画像... ✅ 人物「陶渊明」画像生成成功并已保存! 🎭 召唤历史人物: 陶渊明 (隐逸诗人之宗)#
吾观此青铜鼎,形制厚重端庄,三足如柱,双耳如翼,腹身饰以云雷纹与饕餮纹,虽历经千年,仍见当年铸工之精湛。此鼎非寻常器物,乃商周时祭天祀祖之重器,所谓「国之大事,在祀与戎」,鼎便是祭祀中的核心礼器。
鼎身纹饰繁复,云雷纹如天地云气,饕餮纹似神兽守护,一器之中,尽藏古人对天地的敬畏与对祖先的追思。吾虽惯于田园耕作,却也知此等重器所承载的礼乐文化,实乃华夏文明之根脉。
此鼎虽无铭文,然其形制已足见时代特征,当是商代晚期之物。三千年前的匠人以范铸之法成此巨器,壁厚均匀,纹饰清晰,足见技艺之高超,非后世所能轻易仿造。
鼎之重,不在其铜料,而在其承载的文化意义。它见证了商周的礼乐文明,是祖先留给我们的宝贵遗产,值得后人倍加珍视。
📖 文物名称:青铜鼎 📅 朝代:商代晚期 📦 材质:青铜 🎯 用途:古代祭祀礼器,用于盛放祭品,象征权力与地位
text
historical-guide/
├── SKILL.md
├── scripts/
│ ├── tour_guide.py # 主入口脚本(支持交互式会话)
│ ├── character_loader.py # 人物画像加载
│ ├── relic_presenter.py # 文物讲解生成
│ ├── persona_generator.py # 动态生成画像
│ ├── api_config.py # API配置加载
│ ├── utils.py # 共享工具模块
│ ├── session_manager.py # 会话状态管理
│ └── config.json # API配置(可选)
└── references/ # 人物画像库
├── kongzi.json
├── libai.json
├── sushi.json
├── zhugeliang.json
├── liqingzhao.json
├── zhangqian.json
└── wangxizhi.json
bash
python3 scripts/tour_guide.py --interactive
进入交互式会话后:
bash
# 讲解文物
python3 scripts/tour_guide.py --character libai --relic "青铜爵"
# 人物问候
python3 scripts/tour_guide.py --character libai --mode greeting
# 人物自我介绍
python3 scripts/tour_guide.py --character sushi --mode intro