基于LangChain构建安全Agent应用实践(含代码)

打印 上一主题 下一主题

主题 1944|帖子 1944|积分 5832

概述:本文基于langchain和Cyber Security Breaches数据集构建Agent,并基于该Agent实现了数据分析、趋势图输出、推测攻击态势三个功能,最后给出Agent在安全范畴应用的三点启示。
前提:
1、拥有openai API KEY;(需付费)
2、熟悉Google colab 环境;(T4显卡可免费利用12个小时)
3、下载好数据集。
一、选定数据集

数据集的选择是根据我们想要做的事情定的,基于我们的目的事件,去HG上寻找是否有相关数据集。这里笔者想要分析网络安全漏洞影响,所以选择了“Cyber Security Breaches”数据集。

&&网络安全漏洞库Cyber Security Breaches
Cyber Security Breaches数据集,该数据集包罗了各种有关网络安全漏洞的信息,如受影响组织的名称、国家、受影响人数、数据泄露类型等。用户可以通过该页面检察数据集的详细信息,并利用Hugging Face库进行数据集的访问和处理。页面提供了数据集的统计信息、示例数据和数据集字段的详细描述,资助用户更好地相识数据集内容。
数据集地址:https://huggingface.co/datasets/schooly/Cyber-Security-Breaches/viewer
上传数据集:下载好Cyber Security Breaches到本地计算机后运行上传代码,并打印前面10行进行有原数据进行比对并确认无错误。
  1. from google.colab import files
  2. def load_csv_file():
  3. #  """Loads a CSV file into a Pandas dataframe."""
  4.   uploaded_file = files.upload()
  5.   file_path = next(iter(uploaded_file))
  6.   document = pd.read_csv(file_path)
  7.   return document
  8. if __name__ == "__main__":
  9.   document = load_csv_file()
  10.   #print(document)
复制代码

二、基于langchian搭建agent
通常来说,基于langchain搭建agent重要包罗定义代理类型、配置工具和语言模型,并根据需要将代理摆设在应用步调中等步骤:以下是一个基于 LangChain 搭建根本 agent 的示例流程:
2.1、安装依赖

确保安装了 LangChain 和其他必要的依赖。

2.2、导入模块
导入 LangChain 的核心模块,包括代理、工具和语言模型。

2.3、定义语言模型
设置 OpenAI 的语言模型,好比 ChatOpenAI 或 OpenAI,并调解温度等参数来控制模型相应的创造性。

2.4、配置工具
定义代理将利用的工具(Tool),这些工具可以包括搜刮、数据库查询、文件读取等利用。

langchain常见工具举例,本文将利用到PandasDataFrame工具进行数据分析。
函数名称说明利用场景举例SearchTool一个简单的搜刮工具,允许通过查询访问网络信息。用户扣问最新的科技消息,代理利用搜刮工具提供最新的信息。Wikipedia从维基百科提取信息的工具,可以用于快速获取知识性内容。用户扣问某个历史事件,代理调用维基百科工具提供相关信息。PandasDataFrame处理和分析 Pandas DataFrame 的工具,支持数据利用。用户请求对某数据集进行统计分析,代理利用 Pandas 工具实行利用。Calculator根本计算器工具,用于实行数学计算。用户扣问复杂的数学标题,如积分或代数,代理调用计算器工具进行计算。WebScraper网页抓取工具,用于从网页中提取数据。用户希望获取某个电商网站的产物代价信息,代理利用网页抓取工具提取数据。FileReader读取文件内容的工具,如文本文件或 CSV 文件。用户上传文件并请求数据分析,代理利用文件读取工具加载数据。ChatTool处理对话的工具,用于与用户进行交互。用户与代理进行问答,代理调用对话工具生整天然语言相应。OpenAIFunctions调用 OpenAI API 的工具,进行天然语言处理和生成。用户请求生成一篇文章,代理调用 OpenAI 函数生成文本内容。 2.5、 初始化代理
利用 initialize_agent 函数创建代理,指定类型、工具和语言模型。

2.6、利用代理
一旦代理配置完成,便可以用天然语言向代理发送请求,并获取相应的相应。

   常用代理类型
  - Zero-Shot React:适用于直接相应的代理,重要用于简单的 Q&A。
- Self-Ask with Search:将复杂标题分解成简单标题,并利用搜刮工具查找答案。
- React Docstore:得当访问和查询文档库数据的代理类型。
  扩展功能
你可以根据需求添加更多工具,或利用特定的代理类型来处理特定任务,好比 Structured Chat 用于多输入工具或复杂谈天对话。
  代理的应用场景
可以将构建的代理用于各种应用场景,包括智能客服、数据分析助手、文档检索工具等。
  https://carta.blog.csdn.net/article/details/143366461?spm=1001.2014.3001.5502
  三、 智能体应用
3.1、创建Agent

基于langchain框架导入模块并创建数据框agent,通过 create_pandas_dataframe_agent 函数,创建了一个 Pandas 数据框代理 sm_ds_OAI。该代剖析与 OpenAI 的模型结合,能够接受天然语言的指令来分析和查询 document 中的数据,实现智能的数据处理和分析
  1. # 导入模块
  2. from langchain.agents.agent_types import AgentType  #导入 AgentType 枚举,用于指定代理类型。
  3. from langchain_experimental.agents.agent_toolkits import create_pandas_dataframe_agent
  4. #从实验模块中导入 create_pandas_dataframe_agent 函数,这个函数允许我们创建一个 Pandas DataFrame 的智能代理。
  5. from langchain_openai import ChatOpenAI
  6. from langchain_openai import OpenAI
  7. #创建数据框代理
  8. sm_ds_OAI = create_pandas_dataframe_agent(
  9.     OpenAI(temperature=0),
  10.     document,
  11.     verbose=True
  12. )
复制代码
3.2、实践一:分析总结

利用sm_ds_OAI.invok()进行数据分析,invok是Langchain中向智能体发送天然语言指令的方法,它允许agent根据这些指令实行相关任务并返回效果,详细功能包括任务调度、天然语言实行、支持多种工具调用和生成相应。
  1. sm_ds_OAI.invoke("请分析此数据,并用大约 100 字的中文简要说明。请将分析过程的标记,如'Thought'和'Action'替换为'思考'和'执行'")
复制代码
在 LangChain 中,有多个方法可以用于实行不同任务。下面是一些常见的方法,包括说明、利用场景和 Python 调用示例:
函数名称说明利用场景举例函数调用示例invoke发送指令到代理,自动匹配工具或模型实行任务,并返回效果。进行数据分析、生成陈诉、回答标题等任务agent.invoke("Describe the dataset")run雷同于 invoke,但通常用于快速实行单步指令,得当简单任务。用户请求快速标题回答,如“本日的天气如何?”agent.run("What is the weather today?")add_tool动态添加工具到代理中,使代理在调用时可以利用新工具。用户希望添加一个新的搜刮工具,以增强代理的本领agent.add_tool(search_tool)get_tools获取当前代理中的所有可用工具,便于相识代理的本领范围。用户希望检察代理具备哪些工具来完成特定任务agent.get_tools()set_verbose设置代理的详细模式,表现实行过程的详细信息,有助于调试。在调试过程中检察代理调用的每个步骤和输出细节agent.set_verbose(True)clear_memory清除代理的临时记忆,适用于多轮对话中重置上下文的环境。用户在会话中想从头开始攀谈,以避免前面内容的干扰agent.clear_memory()initialize_agent初始化代理,配置语言模型、工具等资源,用于设置代理环境。初始化代理的配置,如加载数据处理工具和模型initialize_agent(tools, llm) 运行上面的语言后,Agent开始运行,可以看到经过九步思索与实行后,agent给出了最终的分析结论。
  1. > Finished chain.
  2. {'input': "请分析此数据,并用大约 100 字的中文简要说明。请将分析过程的标记,如'Thought'和'Action'替换为'思考'和'执行'",
  3. 'output': '根据对该数据的分析,可以发现该数据集包含1055条记录,涉及到不同州的医疗机构发生的违规事件。其中,受影响人数最多的州是加利福尼亚州,受影响人数最少的州是阿拉斯加州。同时,通过散点图可以发现,随着年份的增加,受影响人数也呈现增加的趋势。此外,还发现数据中存在大量缺失值,需要进一步处理。'}
复制代码

Entering new AgentExecutor chain…一步Thought: 我需要利用pandas来分析这个数据Action: python_repl_astAction Input: import pandas as pdObservation:两步Thought: 我需要将数据读取到一个pandas dataframe中Action: python_repl_astAction Input: df = pd.read_csv(‘data.csv’)Observation:三步Thought: 我需要先将数据文件下载到本地Action: 下载数据文件Action Input: data.csvObservation:四步Thought: 我需要利用pandas的head()函数来检察数据的前几行Action: python_repl_astAction Input: print(df.head())Observation:五步Thought: 我需要对数据进行简单的描述性统计分析Action: python_repl_astAction Input: df.describe()Observation:六步Thought: 我需要对数据进行更深入的分析,好比检察缺失值和数据类型Action: python_repl_astAction Input: df.info()七步Thought: 我需要对数据进行可视化分析,好比绘制柱状图来检察不同州的数据数目 Action: python_repl_astAction Input: df[‘State’].value_counts().plot(kind=‘bar’)Observation: Axes(0.125,0.11;0.775x0.77)Observation: Axes(0.125,0.11;0.775x0.77)八步Thought: 我需要对数据进行更深入的可视化分析,好比绘制散点图来检察受影响人数和年份的关系 Action: python_repl_ast Action Input: df.plot.scatter(x=‘year’, y=‘Individuals_Affected’) Observation: Axes(0.125,0.11;0.775x0.77)九步Thought: 我如今知道了数据的大致环境,可以开始撰写分析陈诉了Final Answer: 根据对该数据的分析,可以发现该数据集包罗1055条记录,涉及到不同州的医疗机构发生的违规事件。其中,受影响人数最多的州是加利福尼亚州,受影响人数最少的州是阿拉斯加州。同时,通过散点图可以发现,随着年份的增加,受影响人数也出现增加的趋势。别的,还发现数据中存在大量缺失值,需要进一步处理。Finished chain.{‘input’: “请分析此数据,并用约莫 100 字的中文扼要说明。请将分析过程的标记,如’Thought’和’Action’替换为’思索’和’实行’”,‘output’: ‘根据对该数据的分析,可以发现该数据集包罗1055条记录,涉及到不同州的医疗机构发生的违规事件。其中,受影响人数最多的州是加利福尼亚州,受影响人数最少的州是阿拉斯加州。同时,通过散点图可以发现,随着年份的增加,受影响人数也出现增加的趋势。别的,还发现数据中存在大量缺失值,需要进一步处理。’} 备注:因为Observation数据较多,为节省空间,前面几步的内容不再文章内出现。

如何学习大模型

如今社会上大模型越来越遍及了,已经有很多人都想往这里面扎,但是却找不到得当的方法去学习。
作为一名资深码农,初入大模型时也吃了很多亏,踩了无数坑。如今我想把我的履历和知识分享给你们,资助你们学习AI大模型,能够解决你们学习中的困难。
下面这些都是我当初辛劳整理和花钱购买的资料,如今我已将重要的AI大模型资料包括市面上AI大模型各大白皮书、AGI大模型系统学习门路、AI大模型视频教程、实战学习,等录播视频免费分享出来,需要的小伙伴可以扫取。
一、AGI大模型系统学习门路
很多人学习大模型的时候没有方向,东学一点西学一点,像只无头苍蝇乱闯,我下面分享的这个学习门路希望能够资助到你们学习AI大模型。

二、AI大模型视频教程

三、AI大模型各大学习书籍

四、AI大模型各大场景实战案例

五、竣事语
学习AI大模型是当前科技发展的趋势,它不仅能够为我们提供更多的机会和挑战,还能够让我们更好地理解和应用人工智能技能。通过学习AI大模型,我们可以深入相识深度学习、神经网络等核心概念,并将其应用于天然语言处理、计算机视觉、语音识别等范畴。同时,掌握AI大模型还能够为我们的职业发展增加竞争力,成为将来技能范畴的领导者。
再者,学习AI大模型也能为我们本身创造更多的价值,提供更多的岗位以及副业创收,让本身的生活更上一层楼。
因此,学习AI大模型是一项有远景且值得投入的时间和精力的重要选择。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

科技颠覆者

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表