搜索
首页科技周边人工智能使用llamaindex构建多文件代理抹布

介绍

在人工智能快速发展的领域中,处理和理解大量信息的能力变得越来越重要。输入多文件代理抹布 - 一种强大的方法,将检索功能增强的生成(RAG)与基于代理的系统结合起来,以创建可以在多个文档中推理的AI。本指南将为您介绍这项激动人心的技术的概念,实施和潜力。

学习目标

  • 了解多文件代理抹布系统及其架构的基本面。
  • 了解嵌入和基于代理的推理如何增强AI生成上下文准确响应的能力。
  • 探索高级检索机制,以改善知识密集型应用中的信息提取。
  • 洞悉多文件代理抹布在研究和法律分析等复杂领域的应用。
  • 发展评估抹布系统在AI驱动的内容生成和分析中的有效性的能力。

本文作为数据科学博客马拉松的一部分发表

目录

  • 了解抹布和多文件代理
  • 为什么多文件代理抹布是改变游戏规则的?
  • 多文件代理抹布系统的关键优势
  • 多文件代理抹布的构建块
  • 实施基本的多文档代理抹布
    • 步骤1:安装所需库
    • 步骤2:设置API键和环境变量
    • 步骤3:下载文档
    • 步骤4:创建向量和摘要工具
    • 步骤5:创建代理
    • 步骤6:分析代理的响应
    • 解释代理商与Longlora论文的互动
    • 解释代理商的行为:总结自lag和longlora
  • 挑战和考虑因素
  • 常见问题

了解抹布和多文件代理

检索增强的生成(RAG)是一种通过允许其访问和使用外部知识来增强语言模型的技术。 RAG模型不仅依靠他们的训练有素的参数,还可以从知识库中检索相关信息,以产生更准确和知情的响应。

使用llamaindex构建多文件代理抹布

多文件代理抹布通过使AI代理同时使用多个文档来进一步采用此概念。这种方法对于需要从各种来源(例如学术研究,市场分析或法律文件审查)综合信息的任务特别有价值。

为什么多文件代理抹布是改变游戏规则的?

让我们理解为什么多文件代理抹布是一个改变游戏规则的人。

  • 对上下文的更聪明理解:想象一下拥有一个超级聪明的助手,不仅读了一本书,而且要读一个图书馆来回答您的问题。这就是增强上下文理解的含义。通过分析多个文档,AI可以将更完整的图片拼凑在一起,从而为您提供真正捕捉大图的答案。
  • 提高棘手任务的准确性:我们都在小时候玩过“连接点”。多文档代理抹布做类似的事情,但是信息。通过将各种来源的事实连接起来,它可以以更高的精度解决复杂的问题。这意味着更可靠的答案,尤其是在处理复杂的主题时。
  • 处理信息超载,例如专业人士:在当今的世界中,我们淹没了数据。多文件代理抹布就像一个增压过滤器,筛选大量信息以查找真正相关的内容。这就像让一群专家全天候工作,以消化和总结大量知识图书馆。
  • 适应性和可成长的知识库:将其视为可以轻松学习和扩展的数字大脑。随着新信息的可用,多文档的代理抹布可以无缝地融合它。这意味着您的AI助手始终是最新的,随时可以用最新鲜的信息来解决最新问题。

多文件代理抹布系统的关键优势

现在,我们将研究多文件代理抹布系统的关键优势。

  • 增压学术研究:研究人员经常花数周或数月的时间综合数百篇论文的信息。多文件的代理抹布可以大大加快这一过程,帮助学者迅速确定广大文献体系之间的关键趋势,知识差距以及潜在的突破。
  • 革新法律文件分析:律师处理案件档案,合同和法律先例的山。这项技术可以迅速分析数千个文档,发现关键细节,不一致和相关判例法,这可能需要人类的几天或几周才能揭露。
  • 涡轮增压市场情报:企业需要领先于趋势和竞争。多文件代理抹布可以不断扫描新闻文章,社交媒体和行业报告,提供实时见解,并帮助公司比以往任何时候都更快地做出数据驱动的决策。
  • 轻松地导航技术文档:对于工程师和IT专业人员,在铺设技术文档中找到正确的信息可能就像在干草堆中搜索针头一样。这种AI驱动的方法可以快速查明各种手册,故障排除指南和代码存储库的相关部分,从而节省了无数小时的挫败感。

多文件代理抹布的构建块

想象一下,您正在建立一个超级智能的数字图书馆助理。该助手可以阅读数千本书,了解复杂的问题,并使用来自多个来源的信息为您提供详细的答案。从本质上讲,这就是多文档的代理抹布系统。让我们分解使其成为可能的关键组件:

使用llamaindex构建多文件代理抹布

文档处理

将所有类型的文档(PDF,网页,文字文件等)转换为我们的AI可以理解的格式。

创建嵌入

将处理的文本转换为代表信息含义和上下文的数值向量(数字序列)。

简而言之,想象一下库中每个段落的超含量摘要,但是您使用唯一的代码,而不是单词。该代码以计算机快速比较和分析的方式捕获信息的本质。

索引

它创建了一个有效的结构来存储和检索这些嵌入。这就像为我们的数字图书馆创建世界上最有效的卡目录。它允许我们的AI快速找到相关信息,而无需详细扫描每个文档。

检索

它使用查询(您的问题)从索引嵌入中找到最相关的信息。当您提出一个问题时,该组件会通过我们的数字图书馆进行比赛,使用该超高效卡目录来删除所有潜在的相关信息。

基于代理的推理

AI代理在查询的上下文中解释检索到的信息,决定如何使用它来提出答案。这就像拥有一个天才的AI代理,他不仅找到了正确的文件,而且还了解您的问题的更深层次的含义。他们可以连接不同来源的点,并找出回答您的最佳方法。

一代

它根据代理商的推理和检索到的信息产生可读的答案。这是我们的天才代理商用清晰,简洁的语言向您解释他们的发现的地方。他们采用了他们收集和分析的所有复杂信息,并以直接回答您的问题的方式呈现它。

这种功能强大的组合允许多文档的代理抹布系统提供洞察力和答案,从大量知识中汲取的洞察力和答案,使它们对于许多领域的复杂研究,分析和解决问题的任务非常有用。

实施基本的多文档代理抹布

首先,让我们构建一个可以与三本学术论文一起使用的简单代理抹布。我们将使用Llama_index库,该库为构建抹布系统提供了强大的工具。

步骤1:安装所需库

要开始构建AI代理,您需要安装必要的库。这是设置您的环境的步骤:

  • 安装Python:确保您在系统上安装了Python。您可以从Python官方网站下载它:下载Python
  • 设置虚拟环境:为您的项目管理依赖项创建虚拟环境是一个好习惯。运行以下命令来设置虚拟环境:
 Python -M Venv ai_agent_env
源ai_agent_env/bin/activate#在Windows上,使用`ai_agent_env \ scripts \ activate`
  • 安装OpenAI API和LlamainDex:
 PIP安装OpenAi Llama-index == 0.10.27 Llama-index-llms-openai == 0.1.15
PIP安装Llama-index-embeddings-openai == 0.1.7

步骤2:设置API键和环境变量

要使用OpenAI API,您需要一个API键。请按照以下步骤设置您的API密钥:

  • 获取API密钥:在OpenAI网站上注册帐户,并从API部分获取您的API密钥。
  • 设置环境变量:将API密钥存储在环境变量中以确保其安全。将以下行添加到您的.bashrc或.zshrc文件(或为操作系统使用适当的方法)
导出openai_api_key ='your_openai_api_key_here'
  • 访问代码中的API键:在Python代码,导入必要的库,然后使用OS模块访问API键
导入操作系统
进口Openai
导入NEST_ASYNCIO
来自llama_index.core.node_parser import stonencesplitter
来自llama_index.core.tools import functionTool,queryenginetool
来自llama_index.core.core.vector_stores导入元数据,滤波器条件
来自llama_index.core.agent intimpt functionCallingAgentWorker
来自llama_index.core.gagent Import Agentrunner
从输入导入列表,可选
导入子过程
OpenAI.API_KEY = OS.GEGENV('OpenAi_Api_Key')

#optionion,您只需直接添加OpenAI键即可。 (不是一个好练习)
#openai.api_key ='your_openai_api_key_here'

nest_asyncio.apply()

步骤3:下载文档

如前所述,我只使用三篇论文来制作这种代理抹布,以后我们将在其他博客中将其扩展到更多论文。您可以使用自己的文档(可选)。

 #要下载的URL列表
urls = [
    “ https://openreview.net/pdf?id=vtmbagcn7o”,
    “ https://openreview.net/pdf?id=6pmjorfdak”,
    “ https://openreview.net/pdf?id=hsyw5go0v8”,
这是给出的

#对应的文件名将文件保存为
论文= [
    “ metagpt.pdf”,
    “ longlora.pdf”,
    “ selfrag.pdf”,
这是给出的

#在这两个列表上循环并下载每个文件都有其各自的名称
对于URL,邮政纸(URL,纸):
    subprocess.run([[“ wget”,url,“ -o”,paper])

步骤4:创建向量和摘要工具

以下功能get_doc_tools旨在创建两个工具:矢量查询工具和摘要查询工具。这些工具有助于使用基于代理的检索生成(RAG)方法查询和汇总文档。以下是步骤及其解释。

 def get_doc_tools(
    file_path:str,
    名称:str,,
) - > str:
    “”“从文档获取矢量查询和摘要查询工具。”“”

加载文档并准备向量索引

该函数首先使用SimpleDirectoryReader加载文档,该函数采用提供的File_path并读取文档的内容。加载文档后,它将通过SendencesPlitter处理,该句子将文档分解为较小的块或节点,每个节点最多包含1024个字符。然后使用VectorStoreIndex索引这些节点,该工具允许有效的基于向量的查询。该索引将稍后将用于基于向量相似性对文档内容进行搜索,从而更容易检索相关信息。

 #从指定的文件路径加载文档
documents = simperedirectoryReader(input_files = [file_path])。load_data()

#将加载的文档分为1024个字符的较小块(节点)
splitter = sensencesplitter(chunk_size = 1024)
nodes = splitter.get_nodes_from_documents(文档)

#从节点创建一个矢量索引,以进行有效的基于矢量的查询
vector_index = vectorstoreIndex(节点)

定义向量查询功能

在这里,该函数定义了vector_query,该功能负责回答有关文档的特定问题。该功能接受查询字符串和页码的可选列表。如果没有提供页码,则查询整个文档。该功能首先检查是否提供了page_numbers;如果没有,则默认为空列表。

然后,它创建与指定的页码相对应的元数据过滤器。这些过滤器有助于将搜索范围缩小到文档的特定部分。 query_engine是使用向量索引创建的,并配置为使用这些过滤器以及相似性阈值,以找到最相关的结果。最后,该功能使用此引擎执行查询并返回响应。

 #向量查询功能
    def vector_query(
        查询:str, 
        page_numbers:可选[list [str]] =无
    ) - > str:
        ”“”用于通过给定论文回答问题。
    
        如果您对论文有特定的问题,有用。
        始终将page_numbers留为无,除非您要搜索特定页面。
    
        args:
            查询(str):要嵌入的字符串查询。
            page_numbers(可选[list [str]]):通过一组页过滤。没有离开 
                如果我们想执行矢量搜索
                在所有页面上。否则,通过指定页面的集合过滤。
        
        ”“”
    
        page_numbers = page_numbers或[]
        metadata_dicts = [
            {“键”:“ page_label”,“ value”:p in page_numbers中的p
        这是给出的
        
        query_engine = vector_index.as_query_engine(
            samelity_top_k = 2,
            过滤器= metadatafilters.from_dicts(
                metadata_dicts,
                条件= filterCondition.or
            )
        )
        响应= query_engine.query(query)
        返回响应

创建向量查询工具

该函数的这一部分创建了vector_query_tool,该工具将先前定义的vector_query函数链接到基于调用get_doc_tools时提供的名称参数的动态生成名称。

该工具是使用functionTool.from_defaults创建的,该工具会自动使用必要的默认设置配置它。现在,该工具可用于使用前面定义的函数对文档进行基于向量的查询。

       
    #创建向量查询工具
    vector_query_tool = functionTool.from_defaults(
        name = f“ vector_tool_ {name}”,
        fn = vector_query
    )

创建摘要查询工具

在最后一节中,该函数创建了用于汇总文档的工具。首先,它从先前被拆分和索引的节点创建了一个摘要。该索引专为摘要任务而设计。然后以“ Tree_summarize”的响应模式创建summary_query_engine,该模式允许该工具生成文档内容的简明摘要。

最终使用queryenginetool.from_defaults创建了summary_tool,该工具将查询引擎链接到基于名称参数的动态生成的名称。还给出了该工具的描述,指示其目的是与汇总相关的查询。现在,可以使用此摘要工具根据用户查询来生成文档的摘要。

 #摘要查询工具
    summary_index = summaryIndex(节点)
    summary_query_engine = summary_index.as_query_engine(
        response_mode =“ tree_summarize”,
        use_async = true,
    )
    summary_tool = queryenginetool.from_defaults(
        name = f“ summary_tool_ {name}”,
        query_engine = summary_query_engine,
        描述=((
            f“对{名称}有关的摘要问题有用”
        ),
    )

    返回vector_query_tool,summary_tool

调用功能为每篇论文构建工具

paper_to_tools_dict = {}
纸中的纸:
    打印(f“获取纸的工具:{paper}”)
    vector_tool,summary_tool = get_doc_tools(纸,路径(PAPE).stem)
    Paper_to_tools_dict [Paper] = [vector_tool,summary_tool]

prient_tools = [T paper_to_tools_dict [paper]]的纸张中的纸张
len(initial_tools)

使用llamaindex构建多文件代理抹布

该代码处理每篇论文并为每个论文创建两个工具:用于语义搜索的向量工具,以及用于生成简明摘要的摘要工具,在这种情况下为6个工具。

步骤5:创建代理

早些时候,我们为代理创建了工具,现在我们将使用然后使用FunctionCallingAgentWorker类创建代理。我们将使用“ GPT-3.5-Turbo”作为LLM。

 llm = OpenAI(型号=“ GPT-3.5-Turbo”)

agent_worker = functionCallingAgentWorker.from_tools(
    initial_tools, 
    llm = llm, 
    冗长= true
)
代理= AgentRunner(Agent_worker)

该代理现在可以回答有关我们处理过的三篇论文的问题。

步骤6:分析代理的响应

我们从三篇论文中询问了代理商的不同问题,这是它的回答。以下是有关其内部工作方式的示例和解释。

使用llamaindex构建多文件代理抹布

解释代理商与Longlora论文的互动

在此示例中,我们询问我们的代理商从三个研究论文中提取特定信息,特别是关于评估数据集以及Longlora研究中使用的结果。代理使用Vector查询工具与文档进行交互,这是对信息进行逐步处理的方式:

  • 用户输入:用户询问了有关Longlora评估方面的两个顺序问题:首先关于评估数据集,然后涉及结果。
  • 代理的查询执行:代理商确定需要专门搜索Longlora文档以获取有关评估数据集的信息。它使用vector_tool_longlora函数,该功能是专门为longlora设置的向量查询工具。
 ===调用功能===
呼叫函数:vector_tool_longlora with args:{“ query”:“评估数据集”}
  • 评估数据集的功能输出:代理从文档中检索相关部分,确定Longlora中使用的评估数据集是“ PG19测试拆分”,这是由于其长形式文本性质而用于语言模型评估的数据集。
  • 代理商的第二个查询执行:在第一个响应之后,代理然后处理用户问题的第二部分,向文档查询了longlora的评估结果。
 ===调用功能===
调用功能:with args:{“ query”:“评估结果”}
  • 评估结果的功能输出:代理返回的详细结果,显示模型在更大的上下文大小的困惑方面表现更好。它突出了关键发现,例如具有较大上下文窗口的改进和特定的上下文长度(100K,65536和32768)。它还指出了一个权衡,因为扩展模型在较小的上下文大小上经历了由于位置插值而导致的某些困惑降低,这是由于位置插值而导致的 - 这种模型中的常见限制。
  • 最终LLM响应:代理将结果综合为简洁的响应,回答有关数据集的初始问题。评估结果将进一步解释,总结了绩效结果及其含义。

其他论文的示例很少

使用llamaindex构建多文件代理抹布

解释代理商的行为:总结自lag和longlora

在这种情况下,代理人的任务是提供自橡胶和longlora的摘要。在这种情况下观察到的行为与上一个示例不同:

摘要工具用法

===调用功能===
调用函数:summary_tool_selfrag with args:{“ input”:“ self-rag”}

与较早的示例不同,该示例涉及查询特定细节(例如评估数据集和结果),这里的代理直接利用了为自lag和longlora设计的summary_tool函数。这表明了代理商根据问题的性质在查询工具之间自适应切换的能力 - 当需要更广泛的概述时摘要。

独立的呼叫来分开摘要工具

===调用功能===
调用功能:summary_tool_longlora with args:{“ input”:“ longlora”}

代理分别称为summary_tool_selfrag和summary_tool_longlora获得摘要,证明其有效处理多部分查询的能力。它确定了需要为每篇论文量身定制的不同摘要工具,而不是执行单个合并的检索。

回应的简洁性和直接性

代理商提供的答复是简洁的,并直接解决了提示。这表明代理可以有效提取高级见解,与上一个示例形成鲜明对比,在该示例中,它根据特定的向量查询提供了更多颗粒状的数据点。

这种相互作用强调了代理商提供高级概述与先前观察到的详细的,特定于上下文的响应的能力。行为的这种转变强调了代理抹布系统根据用户问题的性质调整其查询策略的多功能性 - 无论是需要深入细节还是广泛的摘要。

挑战和考虑因素

虽然多文档的代理抹布很强大,但要记住一些挑战:

  • 可伸缩性:随着文档的数量的增加,有效的索引和检索变得至关重要。
  • 连贯性:确保代理在整合来自多个来源的信息时会产生连贯的响应。
  • 偏见和准确性:系统的输出仅与其输入文档和检索机制一样好。
  • 计算资源:处理和嵌入大量文档可能是资源密集的。

结论

多文档代理抹布代表了AI领域的重大进步,通过综合来自多个来源的信息来实现更准确和上下文感知的响应。这种方法在研究,法律分析和技术文档等复杂领域中尤其有价值,而精确的信息检索和推理至关重要。通过利用嵌入,基于代理的推理和强大的检索机制,该系统不仅可以增强AI生成的内容的深度和可靠性,而且还为在知识密集型行业中更复杂的应用铺平了道路。随着技术的不断发展,多文件代理抹布有望成为从大量数据中提取有意义见解的重要工具。

关键要点

  • 多文件代理抹布通过整合来自多个来源的信息来提高AI响应精度。
  • 嵌入和基于代理的推理增强了系统生成上下文感知和可靠内容的能力。
  • 该系统在研究,法律分析和技术文档等复杂领域中特别有价值。
  • 高级检索机制可确保精确的信息提取,并支持知识密集型行业。
  • 多文档代理抹布代表了AI驱动的内容生成和数据分析中向前迈出的重要一步。

常见问题

Q1。什么是多文档代理抹布?

答:多文件代理RAG结合了检索功能生成(RAG)与基于代理的系统,使AI能够跨多个文档进行推理。

Q2。多文件代理抹布如何提高准确性?

答:通过综合来自各种来源的信息,使AI可以连接事实并提供更精确的答案,从而提高了准确性。

Q3。在哪些领域是多文件代理抹布最有益的?

答:它在学术研究,法律文档分析,市场情报和技术文档中特别有价值。

Q4。多文档代理抹布系统的关键组件是什么?

答:关键组件包括文档处理,创建嵌入,索引,检索,基于代理的推理和生成。

Q5。嵌入在该系统中的作用是什么?

A.嵌入将文本转换为数值向量,从而捕获信息的含义和上下文,以进行有效的比较和分析。

本文所示的媒体不由Analytics Vidhya拥有,并由作者酌情使用。

以上是使用llamaindex构建多文件代理抹布的详细内容。更多信息请关注PHP中文网其他相关文章!

声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
随着AI的使用飙升,公司从SEO转移到GEO随着AI的使用飙升,公司从SEO转移到GEOMay 05, 2025 am 11:09 AM

随着AI应用的爆炸式增长,企业正从传统的搜索引擎优化(SEO)转向生成式引擎优化(GEO)。 谷歌正引领这一转变。其“AI概述”功能已服务于超过十亿用户,在用户点击链接之前提供完整的答案。[^2] 其他参与者也在迅速崛起。ChatGPT、微软Copilot和Perplexity正在创造一种全新的“答案引擎”类别,完全绕过了传统的搜索结果。 如果您的企业没有出现在这些AI生成的答案中,潜在客户可能永远不会发现您——即使您在传统的搜索结果中排名靠前。 从SEO到GEO——这究竟意味着什么? 几十年来

大量赌注这些途径将推动当今的AI成为珍贵的AGI大量赌注这些途径将推动当今的AI成为珍贵的AGIMay 05, 2025 am 11:08 AM

让我们探索人工通用智能(AGI)的潜在途径。 该分析是我正在进行的《福布斯》列的AI进步的一部分,并深入研究了实现AGI和人工超智慧(ASI)的复杂性。 (请参阅相关艺术

您是训练聊天机器人,反之亦然吗?您是训练聊天机器人,反之亦然吗?May 05, 2025 am 11:07 AM

人机互动:一场互适应的微妙舞蹈 与AI聊天机器人互动,如同参与一场微妙的相互影响的舞蹈。你的提问、回应和偏好逐渐塑造着系统,使其更好地满足你的需求。现代语言模型通过显式反馈机制和隐式模式识别来适应用户的偏好。它们学习你的沟通风格,记住你的偏好,并逐渐调整其回应以符合你的预期。 然而,在我们训练数字伙伴的同时,同样重要的事情也在反向发生。我们与这些系统的互动正在微妙地重塑我们自身的沟通模式、思维过程,甚至对人际对话的期望。 我们与AI系统的互动已经开始重塑我们对人际互动的期望。我们适应了即时回应、

加利福尼亚攻击AI到快速赛道野火恢复许可证加利福尼亚攻击AI到快速赛道野火恢复许可证May 04, 2025 am 11:10 AM

AI简化了野火恢复允许 澳大利亚科技公司Archistar的AI软件利用机器学习和计算机视觉,可以自动评估建筑计划,以遵守当地法规。这种验证前具有重要意义

美国可以从爱沙尼亚AI驱动的数字政府中学到什么美国可以从爱沙尼亚AI驱动的数字政府中学到什么May 04, 2025 am 11:09 AM

爱沙尼亚的数字政府:美国的典范? 美国在官僚主义的效率低下方面挣扎,但爱沙尼亚提供了令人信服的选择。 这个小国拥有由AI支持的近100%数字化的,以公民为中心的政府。 这不是

通过生成AI的婚礼计划通过生成AI的婚礼计划May 04, 2025 am 11:08 AM

计划婚礼是一项艰巨的任务,即使是最有条理的夫妇,也常常压倒了婚礼。 本文是关于AI影响的持续福布斯系列的一部分(请参阅此处的链接),探讨了生成AI如何彻底改变婚礼计划。 婚礼上

什么是数字防御AI代理?什么是数字防御AI代理?May 04, 2025 am 11:07 AM

企业越来越多地利用AI代理商进行销售,而政府则将其用于各种既定任务。 但是,消费者倡导强调个人需要拥有自己的AI代理人作为对经常定位的辩护的必要性

商业领袖生成引擎优化指南(GEO)商业领袖生成引擎优化指南(GEO)May 03, 2025 am 11:14 AM

Google正在领导这一转变。它的“ AI概述”功能已经为10亿用户提供服务,在任何人单击链接之前提供完整的答案。[^2] 其他球员也正在迅速获得地面。 Chatgpt,Microsoft Copilot和PE

See all articles

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

Video Face Swap

Video Face Swap

使用我们完全免费的人工智能换脸工具轻松在任何视频中换脸!

热工具

mPDF

mPDF

mPDF是一个PHP库,可以从UTF-8编码的HTML生成PDF文件。原作者Ian Back编写mPDF以从他的网站上“即时”输出PDF文件,并处理不同的语言。与原始脚本如HTML2FPDF相比,它的速度较慢,并且在使用Unicode字体时生成的文件较大,但支持CSS样式等,并进行了大量增强。支持几乎所有语言,包括RTL(阿拉伯语和希伯来语)和CJK(中日韩)。支持嵌套的块级元素(如P、DIV),

DVWA

DVWA

Damn Vulnerable Web App (DVWA) 是一个PHP/MySQL的Web应用程序,非常容易受到攻击。它的主要目标是成为安全专业人员在合法环境中测试自己的技能和工具的辅助工具,帮助Web开发人员更好地理解保护Web应用程序的过程,并帮助教师/学生在课堂环境中教授/学习Web应用程序安全。DVWA的目标是通过简单直接的界面练习一些最常见的Web漏洞,难度各不相同。请注意,该软件中

螳螂BT

螳螂BT

Mantis是一个易于部署的基于Web的缺陷跟踪工具,用于帮助产品缺陷跟踪。它需要PHP、MySQL和一个Web服务器。请查看我们的演示和托管服务。

MinGW - 适用于 Windows 的极简 GNU

MinGW - 适用于 Windows 的极简 GNU

这个项目正在迁移到osdn.net/projects/mingw的过程中,你可以继续在那里关注我们。MinGW:GNU编译器集合(GCC)的本地Windows移植版本,可自由分发的导入库和用于构建本地Windows应用程序的头文件;包括对MSVC运行时的扩展,以支持C99功能。MinGW的所有软件都可以在64位Windows平台上运行。

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具