项目概述
在数字化时代,如何让传统文化焕发新的生机?本文将介绍一个基于LazyLLM框架和DeepSeek模型开发的智能24节气文化解析工具,它不仅能够深度解析每个节气的文化内涵,还能提供农事指导、养生建议、诗词赏析等多维度的智能分析。
核心功能概述
主要功能:
- 🔍 节气智能分析:文化内涵、农事指导、养生建议、诗词赏析、气候特征等多维度解析
- ⚖️ 节气对比分析:深度比较不同节气的特点和差异
- 🌱 季节概览:四季整体特征和文化解读
- 🔎 智能搜索:基于关键词的节气知识检索
- ❓ 自定义分析:针对用户个性化问题的AI智能回答
- 💾 多格式导出:支持Markdown、HTML、纯文本等格式保存
一、环境准备
在使用这个工具之前,需要进行一些环境准备工作。下面是详细的步骤:
1. 安装依赖包
首先,需要安装项目所需的依赖包。主要包括 LazyLLM 和相关组件:
pip install lazyllm gradio pandas numpy jieba pypinyin python-dateutil
2. 配置 API 密钥
这个工具使用SenseNova API调用DeepSeek-V3-1模型进行智能分析:
# 配置 SenseNova API 密钥
export SENSENOVA_API_KEY=your_sensenova_api_key
或者,也可以在代码中直接设置这些密钥(不推荐,存在安全风险)。
3. 项目结构
24节气解析/
├── main.py # 主程序入口
├── config.py # 配置文件
├── solar_terms_engine.py # 核心解析引擎
├── solar_terms_web.py # Web界面
├── solar_terms_cli.py # 命令行界面
├── requirements.txt # 依赖包列表
├── outputs/ # 输出文件目录
│ ├── markdown/ # Markdown格式输出
│ ├── html/ # HTML格式输出
│ └── text/ # 文本格式输出
└── README.md # 项目说明
二、代码结构解析
1. 核心解析引擎模块
基于LazyLLM框架和DeepSeek-V3-1模型构建的智能解析引擎:
class SolarTermsEngine:
"""24节气解析引擎"""
def __init__(self):
"""初始化解析引擎"""
self.llm = None
self._init_llm()
self.solar_terms_data = {term["name"]: term for term in SOLAR_TERMS}
def _init_llm(self):
"""初始化大语言模型"""
try:
self.llm = lazyllm.OnlineChatModule(
source=LLM_CONFIG["source"], # sensenova
model=LLM_CONFIG["model"] # DeepSeek-V3-1
)
print("✅ 大语言模型初始化成功")
except Exception as e:
print(f"❌ 大语言模型初始化失败: {e}")
raise
def analyze_solar_term(self, term_name: str, analysis_type: str = "comprehensive") -> str:
"""分析指定节气"""
# 获取节气基本信息
term_info = self.get_solar_term_by_name(term_name)
if not term_info:
return f"❌ 未找到节气:{term_name}"
# 获取分析类型配置
analysis_config = ANALYSIS_TYPES.get(analysis_type, ANALYSIS_TYPES["comprehensive"])
try:
# 构建提示词
prompt = self._build_analysis_prompt(term_info, analysis_config)
# 设置LLM提示词
self.llm.prompt(lazyllm.ChatPrompter(
instruction=prompt,
extra_keys=["term_info", "analysis_type"]
))
# 执行分析
result = self.llm({
"term_info": json.dumps(term_info, ensure_ascii=False, indent=2),
"analysis_type": analysis_config["name"]
})
return result
except Exception as e:
return f"❌ 分析过程中出现错误: {str(e)}"
2. 智能提示词构建模块
精心设计的提示词是获得高质量分析结果的关键:
def _build_analysis_prompt(self, term_info: Dict, analysis_config: Dict) -> str:
"""构建分析提示词"""
base_prompt = f"""你是一位精通中华传统文化的专家学者,特别擅长二十四节气的文化解析。
请根据以下节气信息,进行{analysis_config['name']}分析。
节气信息:
{{term_info}}
分析要求:
{analysis_config['description']}
请按照以下结构进行分析:
"""
if analysis_config.get("name") == "文化内涵":
structure = """
1. 节气起源与历史背景
2. 文化象征意义
3. 民俗传统活动
4. 在现代社会中的文化价值
5. 对当代生活的启示和指导
"""
elif analysis_config.get("name") == "农事指导":
structure = """
1. 传统农事活动
2. 作物种植指导
3. 农业生产要点
4. 现代农业应用
5. 农谚与经验总结
"""
# ... 其他分析类型的结构定义
return base_prompt + structure + "\n请用中文回答,内容要详实、准确、富有文化内涵。"
3. Web界面模块
使用Gradio框架构建的现代化Web界面:
class SolarTermsWeb:
"""24节气解析Web界面"""
def __init__(self):
"""初始化Web应用"""
self.engine = None
self.init_engine()
def create_interface(self):
"""创建Gradio界面"""
# 自定义CSS样式
custom_css = """
.main-title {
text-align: center;
color: #2c3e50;
margin-bottom: 20px;
}
.feature-box {
border: 1px solid #e0e0e0;
border-radius: 8px;
padding: 15px;
margin: 10px 0;
background-color: #f9f9f9;
}
"""
with gr.Blocks(
title=WEB_CONFIG["title"],
theme=WEB_CONFIG["theme"],
css=custom_css
) as interface:
# 标题和介绍
gr.HTML(f"""
<div class="main-title">
<h1>🌸 {APP_NAME} v{APP_VERSION} 🌸</h1>
<p>{WEB_CONFIG["description"]}</p>
</div>
""")
# 主要功能选项卡
with gr.Tabs():
# 节气分析
with gr.Tab("🔍 节气分析"):
with gr.Row():
with gr.Column(scale=1):
term_dropdown = gr.Dropdown(
choices=[term["name"] for term in SOLAR_TERMS],
label="选择节气",
value="立春"
)
analysis_type_dropdown = gr.Dropdown(
choices=[(config["name"], key) for key, config in ANALYSIS_TYPES.items()],
label="分析类型",
value="comprehensive"
)
analyze_btn = gr.Button("🔍 开始分析", variant="primary")
with gr.Column(scale=2):
analysis_output = gr.Markdown(label="分析结果")
# 其他功能选项卡...
return interface
4. 命令行界面模块
提供丰富的命令行交互体验:
def run_cli_mode(args):
"""运行CLI模式"""
engine = SolarTermsEngine()
command = args[0] if args else "help"
if command == "analyze" and len(args) >= 3:
term_name = args[1]
analysis_type = args[2]
result = engine.analyze_solar_term(term_name, analysis_type)
# 使用Rich库美化输出
panel = Panel(
result,
title=f"📊 {term_name} - {ANALYSIS_TYPES.get(analysis_type, {}).get('name', analysis_type)}",
border_style="green",
padding=(1, 2)
)
console.print(panel)
elif command == "compare" and len(args) >= 3:
term1, term2 = args[1], args[2]
result = engine.compare_solar_terms(term1, term2)
# 输出比较结果...
# 其他命令处理...
三、核心特性详解
1. 多维度分析能力
工具支持六种不同的分析维度:
- 📚 文化内涵:深度解析节气的历史渊源、文化象征、民俗传统
- 🌾 农事指导:传统农业活动、现代农业应用、农谚经验
- 🏥 养生保健:中医养生理论、饮食调理、运动指导
- 📝 诗词赏析:相关古诗词收集、文学作品解析
- 🌤️ 气候特征:天气变化、自然现象、气候规律
- 🔍 综合解析:全方位多角度综合分析
2. 智能对比功能
def compare_solar_terms(self, term1: str, term2: str) -> str:
"""比较两个节气"""
# 获取两个节气的基本信息
info1 = self.get_solar_term_by_name(term1)
info2 = self.get_solar_term_by_name(term2)
if not info1 or not info2:
return "❌ 节气信息获取失败"
# 构建比较分析的提示词
prompt = f"""
请对比分析以下两个节气的特点和差异:
节气一:{term1}
{json.dumps(info1, ensure_ascii=False, indent=2)}
节气二:{term2}
{json.dumps(info2, ensure_ascii=False, indent=2)}
请从以下角度进行对比:
1. 时间位置和季节特征
2. 气候变化和自然现象
3. 文化内涵和象征意义
4. 农事活动和生产指导
5. 养生保健和生活建议
6. 诗词文学和艺术表现
"""
# 调用AI模型进行分析
result = self.llm({"prompt": prompt})
return result
3. 季节性概览功能
def get_seasonal_overview(self, season: str) -> str:
"""获取季节概览"""
# 筛选指定季节的节气
seasonal_terms = [term for term in SOLAR_TERMS if term["season"] == season]
if not seasonal_terms:
return f"❌ 未找到{season}的节气信息"
# 构建季节分析提示词
prompt = f"""
请对{season}进行全面的文化和自然特征分析。
{season}包含的节气:
{json.dumps(seasonal_terms, ensure_ascii=False, indent=2)}
请从以下角度进行分析:
1. 季节整体特征和自然变化
2. 各节气的递进关系和过渡特点
3. 季节性文化活动和民俗传统
4. 农业生产和生活指导
5. 养生保健和饮食调理
6. 文学艺术中的季节表现
"""
result = self.llm({"prompt": prompt})
return result
四、使用示例
1. 命令行快速分析
# 文化内涵分析
python main.py --cli analyze 立春 cultural
# 农事指导分析
python main.py --cli analyze 芒种 agricultural
# 养生保健分析
python main.py --cli analyze 冬至 health
# 节气对比
python main.py --cli compare 立春 立秋
# 季节概览
python main.py --cli seasonal 春季
# 自定义问题
python main.py --cli custom 清明 "清明节有哪些传统习俗?"
2. Web 界面使用
启动 Web 服务:
python main.py --web --port 7860
然后在浏览器中访问 http://localhost:7860,享受可视化的分析体验。
3. 交互式 CLI
python main.py --interactive
在交互式界面中选择功能:
============================================================
🎯 请选择功能:
1. 📋 查看24节气列表
2. 🔍 分析指定节气
3. ⚖️ 比较两个节气
4. 🌱 季节性节气概览
5. 🔎 搜索节气
6. ❓ 自定义问题分析
7. 📊 查看分析类型
8. 🚪 退出程序
============================================================
五、分析结果展示
工具会生成详细的分析报告,以下是立春文化内涵分析的示例输出:
立春 - 文化内涵分析
1. 节气起源与历史背景
立春作为二十四节气之首,起源于中国古代的天文观测和农业实践。早在春秋时期,古人就通过观察太阳的位置变化来确定立春的时间…
2. 文化象征意义
立春象征着新的开始、希望与生机。在中华文化中,春天代表着万物复苏、生命力的觉醒…
3. 民俗传统活动
- 迎春仪式:古代帝王会在立春日举行盛大的迎春仪式
- 鞭春牛:用彩鞭抽打春牛,寓意催促春耕
- 咬春:立春日吃萝卜、春饼等,寓意迎接春天
4. 在现代社会中的文化价值
尽管现代社会的生活方式发生了巨大变化,但立春的文化价值依然重要…
5. 对当代生活的启示和指导
立春提醒我们顺应自然规律,保持积极向上的心态…
六、技术亮点
1. LazyLLM框架优势
- 简化开发流程:LazyLLM提供了简洁的API接口,大大简化了AI应用的开发
- 多模型支持:支持多种大语言模型,可根据需求灵活切换
- 高效的提示词管理:内置的ChatPrompter简化了提示词的构建和管理
2. DeepSeek-V3-1模型特色
- 强大的中文理解能力:在中文文化内容分析方面表现出色
- 丰富的知识储备:涵盖历史、文学、农业、医学等多个领域
- 逻辑推理能力:能够进行深度的文化内涵分析和比较
3. 用户体验设计
- 多种交互方式:Web界面、命令行、交互式CLI满足不同用户需求
- 美观的输出格式:使用Rich库美化命令行输出,Gradio构建现代化Web界面
- 灵活的导出功能:支持多种格式保存分析结果
希望这个项目能够为传统文化的数字化传承提供新的思路,也为AI应用开发者提供有价值的参考。让我们一起用技术的力量,传承和弘扬中华优秀传统文化!
项目地址:https://github.com/amazaingz/Analysis-of-the-24-Solar-Terms

1785

被折叠的 条评论
为什么被折叠?



