- 博客(548)
- 资源 (14)
- 收藏
- 关注
原创 人工智能在WAF安防领域的方案和框架支撑
摘要: AI/ML技术显著提升了WAF的防御能力,通过异常检测、恶意Payload识别、攻击分类、行为分析和误报优化五大方案,解决传统规则引擎的痛点。异常检测采用无监督学习(如孤立森林、自编码器)识别0day攻击;Payload识别利用NLP模型(如BERT)对抗编码混淆;攻击分类通过XGBoost/Transformer实现精准归类;行为分析使用LSTM建模用户会话异常;误报优化依赖半监督学习减少误拦截。适配框架包括Scikit-learn、TensorFlow和Hugging Face等,覆盖从数据处理
2025-11-18 15:27:38
150
原创 Simplified Guide to PDF Loaders in LangChain
LangChain提供了多种PDF加载器,可将PDF转换为包含文本和元数据的Document对象,支持下游任务如嵌入和相似性搜索。主要方法包括: PyPDFLoader:按页分割PDF,支持FAISS向量存储和OpenAI嵌入; MathPixPDFLoader:基于Daniel Gross方案的数学公式处理; UnstructuredPDFLoader:支持远程PDF和结构化元素提取; PyPDFium2/PDFMiner:提供HTML解析等高级功能。 示例代码覆盖了从安装、加载到集成的完整流程,适用于本
2025-11-18 11:40:05
245
原创 Markdown Document Loader in LangChain
摘要: LangChain 的 UnstructuredMarkdownLoader 工具可将 Markdown 文件转换为结构化 Document 对象,支持两种模式:默认模式(合并所有文本为单个文档)和 mode="elements"(保留分段结构)。需先安装 unstructured 库,通过简单代码即可加载文件内容。示例演示了基础用法,输出展示了 Markdown 文件被解析为包含标题、列表等格式的 LangChain 文档对象。该工具适用于将轻量级 Markdown 文本整合至
2025-11-17 17:51:57
489
原创 JSON Document Loader in LangChain
摘要: 本文介绍了LangChain中的JSONLoader工具,用于通过jq查询从JSON文件中提取结构化数据。JSONLoader利用jq语法筛选特定字段(如聊天记录中的content),并将结果转换为Document对象,包含提取内容(page_content)和元数据(如文件路径、序号)。 核心内容: 功能:通过jq查询(如.messages[].content)提取目标数据,依赖jq库(需pip install jq)。 示例:加载Facebook聊天JSON文件,解析messages数组中的文本
2025-11-17 17:23:10
205
原创 HTML Document Loaders in LangChain
LangChain提供两种HTML文档加载器,可将HTML文件转换为结构化Document对象。UnstructuredHTMLLoader提取纯文本内容,而BSHTMLLoader基于BeautifulSoup4库,能同时提取文本和页面标题(存储在元数据中)。使用前需安装beautifulsoup4库。两种加载器均返回包含page_content和文件路径元数据的文档对象,区别在于后者额外提供标题信息。这些工具简化了从HTML中提取文本数据的过程,适用于需要处理网页内容的LangChain工作流。
2025-11-17 15:43:15
676
原创 Directory Document Loader in LangChain
文章摘要 LangChain的DirectoryLoader可从指定目录(含子目录)加载文档至Document对象,默认使用UnstructuredLoader处理多格式文件。支持通过glob参数过滤文件类型(如仅加载.md文件),并可自定义加载行为:启用进度条(需tqdm库)、多线程加速、更换加载器(如TextLoader或PythonLoader)。若文件编码非UTF-8,可通过silent_errors=True跳过错误文件。示例代码严格遵循官方文档,涵盖基础加载、性能优化及异常处理场景。 (字数:1
2025-11-17 14:58:26
495
原创 CSV Document Loader in LangChain
摘要: 本文介绍LangChain中的CSVLoader工具,用于将CSV文件转换为Document对象(每行一个文档)。核心功能包括:自动将CSV行数据转为结构化文档(包含page_content和metadata);支持默认加载、自定义CSV解析参数(如分隔符)和指定元数据来源列。通过三个代码示例演示了基础加载、自定义解析(如修改列名)和指定来源列(替代默认文件路径)的用法,所有示例均严格遵循官方文档实现。该工具适用于需要表格数据处理的LangChain工作流。
2025-11-17 11:27:36
606
原创 Structured Output Parser in LangChain
LangChain结构化输出解析器简介 StructuredOutputParser是LangChain中用于从语言模型输出提取结构化数据的工具,支持定义多个文本字段并转换为字典格式。它自动生成格式指令引导模型输出符合要求的数据结构,适用于简单文本字段提取场景(不支持复杂验证或嵌套类型)。 核心功能: 通过ResponseSchema定义字段(如答案+来源) 生成标准化指令确保模型输出可解析 兼容普通LLM(如OpenAI)和聊天模型(如ChatOpenAI) 使用流程:定义字段→初始化解析器→构建提示模板
2025-11-14 17:15:28
689
原创 Retry Output Parser in LangChain
LangChain的RetryOutputParser通过重新调用大模型解决解析失败问题。当输出缺失必填字段时,该工具会将原始提示、错误输出及报错信息发回大模型,要求生成符合要求的结果(相较仅修复格式的OutputFixingParser更有效)。典型应用场景包括JSON缺失关键字段的情况。实现步骤:1) 定义Pydantic数据模型;2) 创建带格式指令的提示模板;3) 当常规解析失败时,使用RetryWithErrorOutputParser结合原始提示重新生成有效输出。该方法可避免人工修补数据,确保输
2025-11-14 16:02:48
627
原创 Pydantic Output Parser in LangChain
摘要: LangChain的PydanticOutputParser工具可将LLM非结构化输出转换为符合Pydantic模型的结构化数据。该方法通过注入自动生成的format_instructions指导LLM输出JSON格式数据,并支持自定义验证逻辑(如检查笑话结尾必须含问号)及复杂类型(如字符串列表)。使用步骤包括:1)导入必要模块;2)配置高性能LLM(如text-davinci-003);3)定义Pydantic模型(如Joke类含setup和punchline字段);4)通过提示模板生成格式化指令
2025-11-14 15:20:54
1035
原创 Pydantic
Pydantic Summary Pydantic is a Python library for data validation and settings management using type hints. It automatically validates data types, constraints (e.g., string length, numeric limits), and formats, ensuring structured data handling. Key Featur
2025-11-14 11:27:46
455
原创 Enum Output Parser in LangChain
本文介绍了LangChain中的EnumOutputParser工具,它能将大型语言模型(LLM)输出解析为Python枚举值。该解析器会验证输出是否匹配预定义的Enum类中的值,自动去除空格和换行符,若输入无效则抛出明确错误。使用步骤包括:导入必要模块、定义Enum类、初始化解析器、测试有效/无效输入。典型应用场景包括颜色选择、分类等需要固定选项的情况。关键特性是严格的值验证和自动格式清理功能,能有效控制LLM输出范围。
2025-11-14 10:59:14
954
原创 Datetime Output Parser in LangChain
摘要:DatetimeOutputParser是LangChain中的工具,可将LLM输出的自然语言日期/时间转换为Python的datetime对象。通过以下步骤实现:1)导入相关模块;2)初始化解析器并获取ISO 8601格式指令;3)创建包含格式指令的提示模板;4)通过LLMChain运行查询;5)将输出解析为结构化datetime对象。关键优势包括自动格式控制、支持时间计算等,适用于需要精确处理日期/时间的场景,如"比特币创始时间"查询。完整保留了原始代码和输出示例(如datet
2025-11-14 10:33:24
844
原创 OpenAI vs ChatOpenAI in LangChain
OpenAI vs ChatOpenAI in LangChain The two classes differ in API endpoints and use cases: OpenAI: Uses /v1/completions for text generation (e.g., text-davinci-003), accepts plain text input, and suits single-turn tasks like content creation. ChatOpenAI: Use
2025-11-13 18:01:27
258
原创 Comma-Separated List Output Parser in LangChain
摘要: CommaSeparatedListOutputParser是LangChain中用于将大模型输出转换为Python列表的工具。它通过以下步骤工作: 导入模块:引入必要的类(包括解析器和提示模板) 初始化解析器:创建实例并获取格式指令,确保大模型输出逗号分隔的内容 定义提示模板:结合任务描述和格式要求生成提示 调用大模型:生成符合格式的文本响应(如列出5种冰淇淋口味) 解析结果:将逗号分隔的字符串转换为标准Python列表 核心优势是自动化处理列表数据,避免手动拆分字符串,适用于需要结构化输出的场景
2025-11-13 17:45:53
473
原创 Streaming for Chat Models in LangChain
摘要(146字) 本文基于LangChain官方文档,详解聊天模型的流式输出功能(实时逐词生成响应,无需等待完整结果)。关键点包括: 功能:通过streaming=True和StreamingStdOutCallbackHandler实现逐词输出,适合实时交互场景(如"输入中"动画效果); 代码示例:严格复现文档代码,包括初始化ChatOpenAI、发送消息的完整流程; 补全案例:完善原文档未完成的歌词输出,保持风格一致; 核心优势:低延迟响应,temperature=0确保稳定性,适用
2025-11-13 17:23:08
431
原创 Prompts for Chat Models in LangChain
摘要: 本文基于LangChain官方文档,介绍了聊天模型提示的结构化方法。与普通文本提示不同,聊天模型提示围绕消息(如系统、人类、AI消息)构建,使用MessagePromptTemplate及其子类创建可复用的消息模板,并通过ChatPromptTemplate组合多个模板。文章详细展示了两种创建方法:1)使用from_template直接生成模板;2)通过外部PromptTemplate灵活构建。最后,通过format_prompt().to_messages()将模板转换为聊天模型兼容的消息格式。核
2025-11-13 15:42:34
366
原创 cpu平均负载和cpu使用率的区别
摘要:CPU平均负载(Load Average)和CPU使用率(CPU Usage)是衡量系统性能的两个关键指标,但二者本质不同。平均负载反映单位时间内处于可运行或不可中断状态的进程总数,体现系统整体繁忙程度(包括I/O等待);而CPU使用率仅表示CPU处理任务的时间占比。核心差异在于:负载衡量任务队列压力(含I/O影响),使用率反映CPU资源占用。实际应用中,负载高使用率低可能提示I/O瓶颈,两者均高则可能是CPU算力不足。需结合两者分析系统性能问题。
2025-11-12 11:36:23
259
原创 LLMChain for Chat Models in LangChain
摘要:本文介绍了LangChain中的LLMChain组件如何简化聊天模型任务处理流程。LLMChain通过将聊天提示模板(包含输入占位符)与聊天模型(如ChatOpenAI)相结合,实现了任务自动化执行。文章详细展示了五个步骤:导入模块、创建聊天提示模板、初始化聊天模型、构建LLMChain以及运行任务(以英法翻译为例)。核心要点包括LLMChain的基本构成(提示模板+聊天模型)和使用run()方法传递动态输入获取响应。整个过程严格遵循官方文档示例,保留了原始代码及输出结果。
2025-11-11 17:52:54
716
原创 Token Usage Tracking for OpenAI LLMs in LangChain
本文介绍LangChain中OpenAI模型的Token用量追踪功能,通过get_openai_callback()上下文管理器监控LLM调用的token消耗情况。主要内容包括: 功能概述:支持统计总token数(输入+输出)、明细拆分、成功请求数和估算费用(仅限OpenAI API)。 三种应用场景: 单次调用追踪(如生成笑话) 多次连续调用聚合统计 复杂工作流(如Agent工具链)的token累计 核心方法:导入模块后,在with代码块内执行LLM操作,自动生成包含token用量、费用等数据的回调报告。
2025-11-11 17:27:48
633
原创 Streaming LLM Responses in LangChain
摘要: LangChain支持流式LLM响应,允许实时处理模型生成的文本片段,无需等待完整响应。通过设置streaming=True并使用StreamingStdOutCallbackHandler回调,可实现控制台逐词输出。当前支持OpenAI、ChatOpenAI和ChatAnthropic模型,但流式模式下无法统计token用量。示例展示了如何调用流式LLM生成歌词和笑话,输出结果与原文完全一致。关键点包括:流式适用于实时场景,需搭配特定回调处理器,且generate方法虽可用但不返回token数据。
2025-11-11 16:54:15
517
原创 LLM Serialization in LangChain
摘要: LangChain的LLM序列化功能支持将LLM配置(如模型、参数等)保存为JSON/YAML文件,便于后续复用。关键步骤包括: 加载:使用load_llm()读取文件(需含_type字段指定模型类型); 保存:通过llm.save()将内存中的LLM配置写入磁盘(支持JSON/YAML格式)。 特性: 文件必须包含_type(如"openai")以正确加载; 适用于跨应用或会话共享相同配置。 示例代码展示了从文件加载及保存LLM的全过程,严格遵循官方文档内容。
2025-11-11 16:32:40
770
原创 LLM Caching in LangChain
摘要:本文基于LangChain官方文档,介绍了LLM缓存的两种实现方式(内存缓存与SQLite缓存)及其核心优势:节省API调用成本与加速响应。内存缓存适用于临时存储,而SQLite可持久化保存结果。通过代码示例演示了首次调用(无缓存)与重复调用(命中缓存)的速度差异,并展示了如何在链式调用中局部禁用缓存(如map_reduce摘要链的reduce步骤)。所有示例严格保留原始文档的代码及输出结果,未作增改。
2025-11-11 15:03:14
739
原创 Human Input LLM in LangChain(three)
HumanInputLLM中的固定格式由Agent类型的提示模板决定,而非自身定义。不同Agent类型(如ZERO_SHOT_REACT_DESCRIPTION)内置特定格式规则,要求输入必须包含Thought/Action等关键词。用户可通过自定义提示模板修改格式要求(如将Action改为Step),只需确保新模板能被Agent解析。格式实质是Agent与输入对象(人类或LLM)的交互协议,HumanInputLLM仅作为格式要求的执行中介。
2025-11-11 13:59:57
414
原创 Human Input LLM in LangChain(two)
本文通过示例解释了Agent如何依赖固定格式指令与人类交互。核心要点如下: 格式即语言:Agent只能解析包含Thought、Action、Action Input等关键词的预设格式指令,这些标签明确指导Agent执行特定操作。 交互流程: Agent初始化后等待格式化的指令 人类通过结构化指令(如指定工具和参数)逐步引导Agent 最终通过Final Answer标签结束流程 失效原因:自由格式的自然语言无法被Agent解析,必须通过格式"翻译"为可执行指令。 该机制揭示了人机交互中结
2025-11-11 11:24:04
307
原创 Fake LLM in LangChain (three)
FakeListLLM通过预设固定回答模拟真实LLM的输出流程,用于测试AI代理工作流。它包含三个核心角色:FakeListLLM作为"提词器"按顺序返回预设响应,Agent作为"导演"处理流程逻辑,工具执行具体操作。通过2+2计算示例展示了完整工作流程:Agent根据FakeListLLM指令调用工具并处理结果,最终返回答案。其核心价值在于提供可预测的测试环境,验证"LLM→Agent→工具"的交互流程是否顺畅,类似于彩排固定台词来测试系统协同性
2025-11-07 17:45:02
425
原创 Human Input LLM in LangChain(one)
这篇文章介绍了LangChain框架中的HumanInputLLM工具,这是一个让人类模拟LLM(大语言模型)响应的伪LLM。文章首先阐述了HumanInputLLM的概念和用途:主要用于测试、调试或教学场景,允许人工引导工作流程而非依赖真实LLM生成响应。随后详细展示了使用流程,包括安装依赖包、导入模块、加载工具(Wikipedia)、初始化HumanInputLLM和代理(agent),最后演示了如何通过人工输入引导代理完成查询任务。整个过程严格遵循官方文档,完整保留了原始代码和示例,未作任何修改或补充
2025-11-07 17:43:45
621
原创 Fake LLM in LangChain (two)
摘要: 本文以FakeLLM计算2+2为例,解析LangChain Agent的工作流程。Agent作为协调者,遵循"LLM决策→工具执行→反馈循环"的固定流程:初始化LLM(预设响应)、工具(Python解释器)后,当用户提问时,Agent先获取LLM的行动指令(如"Action: Python REPL"),执行对应工具并观察结果,再将结果反馈给LLM,直至获得最终答案。整个过程类似洗衣机隐藏的洗涤循环,核心在于Agent内部的标准处理逻辑,而非表面代码。通过分步
2025-11-07 17:41:35
598
原创 Fake LLM in LangChain (one)
本文介绍了LangChain中的FakeLLM模拟类,主要用于测试LLM相关工作流程而不调用真实API。FakeListLLM作为其子类,通过预定义响应列表按顺序返回结果,示例展示了如何用它指导代理使用Python REPL计算"2+2"。文章详细说明了从模块导入、工具加载、响应定义到代理初始化和测试的完整过程,最后输出了格式化结果。这种模拟方法既能避免API成本,又能快速测试基于LLM的代理工作流。核心价值在于提供了一种低成本、高效率的LLM功能测试方案。
2025-11-07 16:38:36
986
原创 Custom LLM in LangChain
本文介绍了如何在LangChain中创建自定义LLM封装器。自定义LLM允许将非官方支持的LLM集成到LangChain工作流中。实现需包含三个关键部分:必须的_call方法(处理提示并返回结果)、可选的_identifying_params属性(返回参数配置)以及标识LLM类型的_llm_type属性。文中提供了返回输入提示前N个字符的完整示例代码,并展示了如何初始化和使用该自定义LLM。通过简单的接口实现,开发者可以灵活地将自定义逻辑或私有模型集成到LangChain生态中。
2025-11-07 16:08:24
815
原创 Asynchronous LLM API in LangChain
LangChain支持异步LLM API调用,通过asyncio库实现并发处理多个LLM请求,显著提升效率。文档介绍了同步(generate)和异步(agenerate)两种调用方式,并提供了完整代码示例。测试显示异步处理(1.39秒)比串行执行(5.77秒)快约4倍。目前支持OpenAI、ChatOpenAI等模型,其他模型将陆续支持。核心方法是使用agenerate结合asyncio.gather实现并发调用,特别适合网络延迟较高的LLM服务。
2025-11-07 15:39:01
970
原创 Semantic Similarity Example Selector in langchain
摘要: SemanticSimilarityExampleSelector是LangChain中基于语义相似度选择示例的工具。它通过嵌入模型(如OpenAIEmbeddings)将输入和示例转换为向量,利用余弦相似度匹配最相似的示例,并通过向量数据库(如Chroma)高效检索。使用步骤包括:导入模块、准备示例、定义提示模板、初始化选择器(设置嵌入模型和检索数量k),并整合到动态提示模板中。测试显示,输入“worried”匹配情感类示例(happy→sad),输入“fat”匹配测量类示例(tall→short
2025-11-06 18:04:15
804
原创 通俗详解:什么是 n-gram 重叠得分?
摘要:n-gram重叠得分通过计算连续单词序列的相似度(0.0-1.0)来衡量文本相关性,是LangChain中NGramOverlapExampleSelector的核心算法。该方法将句子拆解为n个连续单词片段(如2-gram),比较共有片段占比(Jaccard相似度),得分越高表明语言模式越接近。在翻译等任务中,该指标能高效筛选相关示例(如"Spot can run"与输入句重叠得分0.67),排除无关内容(得分0.0),优化模型参考效果。计算过程仅需统计共同n-gram数量与总独特
2025-11-06 17:22:03
541
原创 Ngram Overlap Example Selector in langchain
摘要:本文基于LangChain官方文档,介绍了NGramOverlapExampleSelector的功能及使用方法。该工具通过计算输入与示例间的n-gram重叠度来筛选和排序示例,默认阈值为-1.0(仅排序不排除),0.0时排除无重叠示例,>1.0则返回空列表。文中详细演示了从模块导入、示例准备、模板创建到动态提示构建的全过程,并通过5个测试场景验证不同阈值下的行为(包括默认阈值测试和新增示例后的效果)。所有代码示例和输出均严格保留原始文档内容,未作增删修改。关键点包括n-gram定义、阈值作用机
2025-11-06 17:21:02
627
原创 MaxMarginalRelevance (MMR) Example Selector in langchain
本文介绍了LangChain中的MaxMarginalRelevance(MMR)示例选择器,它能基于输入相似性和多样性挑选示例。MMR首先选择与用户输入余弦相似度最高的示例,然后添加多样性示例以避免冗余。文章详细展示了从模块导入、示例准备到MMR选择器初始化的完整流程,并通过反义词生成任务演示其应用。与仅考虑相似度的SemanticSimilarityExampleSelector对比,MMR能选出更全面多样的示例。测试显示,对于输入"worried",MMR先选择情感相关的"
2025-11-06 15:18:20
855
原创 Length-Based Example Selector in langchain
摘要: LengthBasedExampleSelector是LangChain中的一个工具,根据用户输入长度动态选择示例,避免超出上下文窗口限制。其工作逻辑是:短输入时包含更多示例,长输入时减少示例。实现步骤包括:导入模块、准备示例、创建格式化模板、初始化选择器(设置最大长度)、构建动态提示模板。测试显示,短输入(如"big")会加载全部5个示例,而长输入仅保留1个示例。支持动态添加新示例,灵活性高。该功能严格遵循官方文档,代码示例与原文完全一致。
2025-11-06 11:34:39
747
原创 Custom Example Selector in langchain
本文介绍如何创建自定义的ExampleSelector,用于从示例列表中选取特定样本。关键点包括:1) 自定义选择器必须实现add_example(添加新示例)和select_examples(根据输入选择示例)两个方法;2) 通过继承BaseExampleSelector基类实现随机选取2个不重复示例的功能;3) 演示了初始化选择器、选取示例、添加新示例的完整流程。文末提供了具体的代码实现和使用示例,包括样本准备(如{"foo":"1"}字典列表)、选择器初始化、样
2025-11-05 17:59:00
321
原创 Validating Prompt Templates (validate_template) in Langchain
摘要 PromptTemplate默认会自动验证input_variables与模板字符串中的变量是否匹配。当input_variables包含模板未使用的变量(多余变量),或模板使用了未列出的变量(缺失变量)时,会抛出错误。通过设置validate_template=False可禁用此验证功能,即使存在不匹配变量也不会报错。
2025-11-05 17:15:41
398
原创 Prompt Serialization in LangChain
Prompt Serialization in LangChain LangChain supports storing prompts in files (JSON/YAML) for better version control and sharing. Key features: Single loading point: Use load_prompt() for all prompt types Flexible storage: Store templates inline or separat
2025-11-05 15:38:50
616
原创 Prompt Composition with LangChain’s PipelinePromptTemplate
摘要(150字): LangChain的PipelinePromptTemplate工具用于组合多个提示模板实现复用。它包含最终提示模板(含占位符如{introduction})和管道提示列表(名称+小模板)。通过分步示例演示:1)导入工具;2)定义最终模板;3)创建可复用的小模板(如角色设定、示例对话);4)关联小模板与占位符;5)生成组合模板。使用时只需填充变量(如person="Elon Musk"),即可自动拼接完整提示。该工具避免重复编写相似提示结构,提升代码复用率。输出结果严
2025-11-04 17:29:40
845
chrome插件,修改对应URL的http请求的header头,包括ajax请求
2024-06-25
GeoIP_1.4.8.tar.gz 地理信息系统,资源包含geoIP_1.4.8的所有资源。
2021-01-26
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅