近年来,人工智能技术火热发展,尤其随着ChatGPT和DeepSeek被提出,其能够基于在预训练阶段所见的模式、统计规律和知识来生成回答,还能根据聊天的上下文进行互动,真正像人类一样来聊天交流以及完成复杂的NLP任务。基于此,为更好地学习前沿AI知识,了解LLM和AIGC应用实战,本人开启了《LLM+AIGC》专栏,一方面作为在线笔记记录和分享自己的学习过程,另一方面期望帮助更多初学者以及对LLM感兴趣的同学。知识无价人有情,希望我们都能在人生路上开心快乐、共同成长。
该系列主要涵盖三方面:
- 原理篇——以原理介绍和论文阅读为主
- 实战篇——以编程实现和构建自制LLM和RAG为主
- 应用篇——以应用实践和API、Prompt探索为主
前一篇文章带领大家了解如何利用DeepSeek+Cherry Studio搭建个人知识库,以安全论文为例进行探索。这篇文章将分享如何利用DeepSeek生成可视化科研图形,包括结合XMind生成思维导图,结合Mermaid生成流程图,结合Chart.js生成HTML趋势图,最终生成Python代码实现词云分析。大家可以结合自己需求进行尝试。基础性文章,希望对初学者有所帮助,尤其是从事科学研究的童鞋!且看且珍惜,加油 O(∩_∩)O
文章目录
前文赏析:
- [LLM+AIGC] 01.应用篇之中文ChatGPT初探及利用ChatGPT润色论文对比浅析(文心一言 | 讯飞星火)
- [LLM+AIGC] 02.零基础DeepSeek入门初探及云端搭建详解(ChatGPT对比)
- [LLM+AIGC] 03.零基础DeepSeek云端(硅基流动、腾讯云、国家超算平台)搭建及API接入
- [LLM+AIGC] 04.零基础DeepSeek接入WPS实现智能办公
- [LLM+AIGC] 05.零基础DeepSeek接入Kimi自动生成PPT(威胁狩猎领域)
- [LLM+AIGC] 06.零基础DeepSeek+Cherry Studio搭建个人知识库(安全论文)
- [LLM+AIGC] 07.零基础DeepSeek生成可视化科研图形(思维导图、流程图、词云图)
一.DeepSeek+XMind生成思维导图
首先,我们尝试生成威胁情报相关的思维导图。目标为ATT&CK网站,如下图所示:
第一步,DeepSeek同时选择深度思考和联网搜索模式,输入如下所示的提示词。
提示1:
假设您是一名网络安全专家,现在需要介绍ATT&CK相关知识,需要您现从https://attack.mitre.org 官方网站中学习,再撰写一个思维导图介绍ATT&CK,最终以Markdown的形式输出。
输出结果如下图所示:
第二步,复制输出的Markdown内容。
点击复制按钮,生成的Markdown内容如下:
# MITRE ATT&CK框架
## 1. 框架概述 :cite[4]:cite[7]
- **定义**:Adversarial Tactics, Techniques, and Common Knowledge(对抗战术、技术与通用知识)
- **开发者**:MITRE公司(非营利组织,维护CVE漏洞数据库)
- **目标**:为攻防双方提供标准化攻击行为描述,提升威胁建模与防御能力
## 2. 核心组成
### 2.1 战术(Tactics):cite[1]:cite[6]
- **定义**:攻击者的高级目标或阶段(共14项)
- 信息侦查(Reconnaissance)
- 资源建立(Resource Development)
- 初始访问(Initial Access)
- 执行(Execution)
- 持久化(Persistence)
- 权限提升(Privilege Escalation)
- 防御规避(Defense Evasion)
- 凭据访问(Credential Access)
- 发现(Discovery)
- 横向移动(Lateral Movement)
- 收集(Collection)
- 命令与控制(Command and Control)
- 数据窃取(Exfiltration)
- 影响(Impact)
### 2.2 技术(Techniques):cite[2]:cite[7]
- **定义**:实现战术的具体方法(超200项技术)
- 示例:
- 初始访问:钓鱼攻击(Phishing)、供应链攻击(Supply Chain Compromise)
- 防御规避:反调试(Debugger Evasion)、文件混淆(Obfuscated Files)
- 数据窃取:C2通道渗出(Exfiltration Over C2 Channel)
### 2.3 矩阵(Matrices):cite[1]
- **功能**:将战术与技术关联为矩阵表
- **作用**:直观展示攻击链全生命周期
## 3. 应用场景 :cite[7]
- **威胁情报分析**:识别攻击者行为模式(如APT组织常用技术)
- **安全评估**:对照ATT&CK检查防御体系覆盖度
- **防御体系设计**:针对高频技术部署检测与缓解措施
- 示例:针对"凭据访问"技术启用多因素认证(MFA)
- **红队/蓝队演练**:模拟攻击路径与验证防御有效性
## 4. 防御体系构建 :cite[1]:cite[6]
### 4.1 缓解措施(Mitigations)
- 应用白名单(限制未授权代码执行)
- 日志审计(记录系统/网络行为)
- 系统加固(如CIS基线配置)
### 4.2 检测措施(Detection)
- 数据源:进程监控、网络流量分析、注册表变更
- 工具:EDR、SIEM、IDS/IPS
## 5. 未来发展趋势 :cite[7]:cite[9]
- **扩展领域**:工控系统(ICS ATT&CK)、云原生环境
- **智能化升级**:结合AI实现自动化威胁狩猎
- **国际协作**:统一全球网络安全术语标准
并且会给出使用说明。
第三步,将上述Markdown内容复制到Typora中,如果大家没有该软件,直接复制到TXT文件中,并将后缀名修改为“.md”即可。
第四步,打开XMind软件,并选择导入Markdown格式文件。
最终生成内容如下图所示,效果还不错喔!
二.DeepSeek+Mermaid生成流程图
接着分享流程图的是生成。大家在搜索引擎中搜索“mermaid”,可以找到对应的在线网站。譬如:
如下图所示,左边为输入的代码,右边为生成的图形。
此外,官网包括代表性的实例,包括时序图、甘特图等。通过更改文本就可以自动生成右侧图表,对新手非常友好!
第一步,使用DeepSeek生成如下所示的提示,实现快速排序流程图。
提示2:
假设您是一名人工智能专家,现在需要撰写一个快速排序的C语言代码,请您给出该代码的流程图,并使用mermaid格式输出。
第二步,复制生成的mermaid内容。
生成的关键代码如下:
flowchart TD
Start([开始]) --> Main[主函数]
Main --> InitArray[初始化数组]
InitArray --> CallQuickSort[调用quicksort函数]
CallQuickSort --> QS{quicksort函数}
QS --> CheckCondition["low < high?"]
CheckCondition -- 是 --> FindPivot[选取基准并分区]
CheckCondition -- 否 --> Return[直接返回]
FindPivot --> Partition[调用partition函数]
Partition --> Init["初始化pivot=arr[high], i=low-1"]
Init --> Loop[循环j从low到high-1]
Loop --> Compare{"arr[j] <= pivot?"}
Compare -- 是 --> IncI["++i并交换arr[i]和arr[j]"]
Compare -- 否 --> Continue[继续循环]
IncI --> Continue
Continue --> Loop
Loop --> EndLoop{循环结束?}
EndLoop -- 否 --> Loop
EndLoop -- 是 --> SwapPivot["交换arr[i+1]和arr[high]"]
SwapPivot --> ReturnPi[返回i+1]
ReturnPi --> RecursiveLeft[递归处理左子数组]
RecursiveLeft --> RecursiveRight[递归处理右子数组]
RecursiveRight --> QSEnd[quicksort结束]
Return --> End([结束])
同时,DeepSeek会生成对应的C语言代码以及具体的流程。
第三步,将上述mermaid格式复制到对应网站中,生成的流程图如下所示。
此外,点击“Full Screen”可以全屏观看,点击左下角“Action”可以保存图片。
同时,我们还可以撰写各个领域的流程图,比如新闻文稿、招商引资、网络安全等。
提示3:
假设您是一名人工智能销售,现在需要撰写分享Eastmount博主的博客专栏的流程图,请您使用mermaid格式输出。
生成结果如下图所示,确实与作者的博客比较相关,包括公众号、星球、Github等。
流程图更多用法请读者去官网学习。
三.DeepSeek生成HTML趋势图
HTML图像可编辑性会更强,利用Chart.js实现。如下所示的提示词,同时我们也可以输入数据,比如贵州省各县市近10年的GDP。
第一步,利用DeepSeek输入如下所示提示。
提示4:
现在需要生成2014年到2024年C/C++、Python、Java、PHP、C#、JavaScript编程语言每年的火热度。随后,请生成一个HTML页面,利用趋势图展现该情况,要求页面美观大方,内容后续可编辑。
第二步,将生成的HTML代码复制至本地。同时,DeepSeek本地可以运行该HTML代码。
生成结果如下图所示:
建议大家结合实际需求来学习Chart.js的用法。
四.DeepSeek生成PyEcharts代码绘制词云
接下来,我们将介绍对计算机相关专业的图形绘制方法,利用DeepSeek生成Python代码,再进行PyEcharts可视化分析,大家既可以完成具体功能,还能学习Python代码的具体用法。
以作者从事数字人文研究为例,假设存在从知网下载的2200篇相关文献。
第一步,准备数据集。
复制每篇论文的关键词,形成如下所示的TXT文件,部分多余换行需要清除下。
第二步,结合DeepSeek和大模型做数据分析。
提示5:
假设您是一名数据分析专家,先存在一个data.txt文件,里面包含多篇论文的关键词,每行对应一篇文章关键词,关键词之间采用”;“连接,现在请撰写Pthon代码统计关键词的词频,并按照从大到小的顺序依次存储至CSV文件中。
生成代码如下所示:
第三步,将生成的Python代码复制到编辑器中运行。
生成的代码包含try-catch,还是比较规范的。
import csv
from collections import Counter
def count_keywords(input_file, output_file):
"""
统计关键词词频并生成CSV文件
:param input_file: 输入文本文件路径
:param output_file: 输出CSV文件路径
"""
try:
# 读取数据并统计词频
keyword_counter = Counter()
with open(input_file, 'r', encoding='utf-8') as f:
for line in f:
# 清洗并分割关键词
keywords = [kw.strip() for kw in line.strip().split(';') if kw.strip()]
keyword_counter.update(keywords)
# 按词频降序排序
sorted_keywords = keyword_counter.most_common()
# 写入CSV文件
with open(output_file, 'w', encoding='utf-8', newline='') as csvfile:
writer = csv.writer(csvfile)
writer.writerow(['Keyword', 'Frequency']) # 写入表头
for keyword, count in sorted_keywords:
writer.writerow([keyword, count])
print(f"成功生成词频文件:{output_file}")
print(f"共统计到 {len(sorted_keywords)} 个唯一关键词")
except FileNotFoundError:
print(f"错误:输入文件 {input_file} 不存在")
except Exception as e:
print(f"程序运行出错:{str(e)}")
if __name__ == '__main__':
# 使用示例
count_keywords('keywords.txt', 'keyword_frequency.csv')
运行结果如下图所示:
第四步,利用DeepSeek生成计算词云的Python代码。
提示6:
假设您是一名数据分析专家,现存在CSV文件,包括关键词和词频,现在需要读取该文件内容,并绘制词云图将其进行可视化展示,调用PyEcharts库绘制词云。
完整代码如下所示:
import csv
from pyecharts import options as opts
from pyecharts.charts import WordCloud
def generate_wordcloud(csv_file, output_html="wordcloud.html"):
"""
生成词云图并保存为HTML文件
:param csv_file: 输入CSV文件路径
:param output_html: 输出HTML文件名
"""
try:
# 读取CSV数据
data = []
with open(csv_file, 'r', encoding='utf-8') as f:
reader = csv.DictReader(f)
for row in reader:
try:
keyword = row['Keyword'].strip()
frequency = int(row['Frequency'])
data.append((keyword, frequency))
except (KeyError, ValueError) as e:
print(f"数据格式错误,跳过该行: {row}")
continue
if not data:
print("错误:未读取到有效数据")
return
# 生成词云
wordcloud = (
WordCloud()
.add(series_name="关键词云",
data_pair=data,
word_size_range=[20, 100], # 单词字体大小范围
shape="circle", # 词云形状
rotate_step=45, # 旋转角度间隔
)
.set_global_opts(
title_opts=opts.TitleOpts(
title="关键词词云分析",
subtitle="基于词频数据生成",
title_textstyle_opts=opts.TextStyleOpts(font_size=24)
),
tooltip_opts=opts.TooltipOpts(is_show=True)
)
)
# 保存为HTML文件
wordcloud.render(output_html)
print(f"词云图已生成:{output_html}")
except FileNotFoundError:
print(f"错误:文件 {csv_file} 不存在")
except Exception as e:
print(f"程序运行出错:{str(e)}")
if __name__ == "__main__":
# 使用示例
generate_wordcloud("keyword_frequency.csv", "keyword_cloud.html")
第五步,将生成的代码复制至编辑器中运行。
运行结果如下图所示,读者可以进行更丰富的拓展。
五.总结
写到这里,这篇文章介绍结束,希望对您有所帮助!
作为原创博客创作者和程序员,大模型对我们的影响极大,拥抱变化,紧紧跟随。本文主要带领大家了解什么是LLM、AIGC、DeepSeek和ChatGPT。基础性文章,希望对您有所帮助。后续作者会继续深入,分享更多LLM和AIGC内容,加油,共勉!
2024年4月28日是Eastmount的安全星球——『网络攻防和AI安全之家』正式创建和运营的日子,该星球目前主营业务为 安全零基础答疑、安全技术分享、AI安全技术分享、AI安全论文交流、威胁情报每日推送、网络攻防技术总结、系统安全技术实战、面试求职、安全考研考博、简历修改及润色、学术交流及答疑、人脉触达、认知提升等。下面是星球的新人券,欢迎新老博友和朋友加入,一起分享更多安全知识,比较良心的星球,非常适合初学者和换安全专业的读者学习。
目前收到了很多博友、朋友和老师的支持和点赞,尤其是一些看了我文章多年的老粉,购买来感谢,真的很感动,类目。未来,我将分享更多高质量文章,更多安全干货,真心帮助到大家。虽然起步晚,但贵在坚持,像十多年如一日的博客分享那样,脚踏实地,只争朝夕。继续加油,再次感谢!
(By:Eastmount 2025-02-22 夜于贵州 http://blog.csdn.net/eastmount/ )