
LangChain
武子康
Hi, I'm Zikang / 武子康
好奇心驱动的探索者 | INTJ / INFJ
我热爱探索一切值得深究的事物。对技术、成长、效率、认知、人生有着持续的好奇心和行动力。
坚信「飞轮效应」,相信每一次微小的积累,终将带来深远的改变。
展开
-
LangChain-26 Custom Agent 自定义一个Agent并通过@tool绑定对应的工具 同时让大模型自己调用编写的@tools函数
Custom Agent 自定义一个Agent并通过@tool绑定对应的工具 同时让大模型自己调用编写的@tools函数原创 2024-04-15 09:39:02 · 7541 阅读 · 0 评论 -
LangChain-25 ReAct 让大模型自己思考和决策下一步 AutoGPT实现途径、AGI重要里程碑
大模型ReAct(Reasoning and Acting)是一种新兴的技术框架,旨在通过逻辑推理和行动序列的构建,使大型语言模型(LLM)能够达成特定的目标。这一框架的核心思想是赋予机器模型类似人类的推理和行动能力,从而在各种任务和环境中实现更高效、更智能的决策和操作。原创 2024-04-14 10:41:59 · 8057 阅读 · 0 评论 -
LangChain-24 Agengts 通过TavilySearch Agent实现检索内容并回答 AgentExecutor转换Search 借助Prompt Tools工具
LangChain-24 Agengts 通过TavilySearch Agent实现检索内容并回答 AgentExecutor转换Search 借助Prompt Tools工具原创 2024-04-14 10:34:33 · 7349 阅读 · 0 评论 -
LangChain-23 Vector stores 向量化存储 并附带一个实际案例 通过Loader加载 Embedding后持久化 LangChain ChatOpenAI ChatGLM3对话
- 通过DocumentLoader 加载了 word 文档- 通过 OpenAI Embedding 或 开源的 text2vec-base-chinese 对数据进行向量化处理- 持久化向量过的内容- 利用LangChain开发整体的功能- 使用了 ChatOpenAI,也配置了 ChatGLM3 的方式(本地部署安全且免费)- 简易的Flask服务,开发一个GET的方式请求,方便接口调用并返回。原创 2024-04-13 09:43:23 · 8965 阅读 · 0 评论 -
LangChain-22 Text Embedding 续接21节 文本切分后 对文本进行embedding向量化处理 后续可保存到向量数据库后进行检索 从而扩展大模型的能力
Text Embedding在大模型中的应用是一个重要的技术,它涉及到将高维度的数据(如文本)映射到低维度空间的过程。这一过程不仅有助于减少数据处理的复杂性,还能够捕捉和表达数据的语义信息。在自然语言处理(NLP)和机器学习领域,Text Embedding是实现文本分类、情感分析、机器翻译等任务的基础。原创 2024-04-13 08:53:09 · 6878 阅读 · 0 评论 -
LangChain-21 Text Splitters 内容切分器 支持多种格式 HTML JSON md Code(JS/Py/TS/etc) 进行切分并输出 方便将数据进行结构化后检索
LangChain提供了多种类型的Text Splitters,以满足不同的需求:- RecursiveCharacterTextSplitter:基于字符将文本划分,从第一个字符开始。如果结果片段太大,则继续划分下一个字符。这种方式提供了定义划分字符和片段大小的灵活性。- CharacterTextSplitter:类似于RecursiveCharacterTextSplitter,但能够指定自定义分隔符以实现更具体的划分。默认情况下,它尝试在如“\n\n”、“\n”和空格等字符上进行分割。- Re原创 2024-04-12 09:32:36 · 7150 阅读 · 2 评论 -
LangChain-20 Document Loader 文件加载 加载MD DOCX EXCEL PPT PDF HTML JSON 等多种文件格式 后续可通过FAISS向量化 增强检索
LangChain 提供了多种文档加载器,包括但不限于以下几种:- TextLoader:用于从各种来源加载文本数据。- CSVLoader:用于加载 CSV 文件并将其转换为 LangChain 可以处理的文档格式。- UnstructuredFileLoader:能够自动检测并处理不同格式的文件。- DirectoryLoader:用于加载指定文件夹中的文件。- UnstructuredHTMLLoader:用于从 HTML 文件中提取有意义的内容。- JSONLoader:用于加载和处理原创 2024-04-12 09:19:41 · 7699 阅读 · 0 评论 -
LangChain-19 TokenUsage 通过回调函数 只需一行 统计当前调用API的花费情况 包含Tokens数量和Cost花费
仅需要一行代码,统计当前API的调用花费情况,包含Tokens和Cost计算,我们将通过:`get_openai_callback` 函数,`LangChain` 已经帮我们封装好了。此时我们通过该回调函数,变可以完成对消费的计算和统计。原创 2024-04-11 08:52:21 · 6406 阅读 · 0 评论 -
LangChain-18 Caching 将回答内容进行缓存 可在内存中或数据库中持久化缓存
可以将问答的内容缓存起来,如果是相同的问题,那么将会直接把答案返回去,可以节约费用和计算。通过InMemoryCache和SQLiteCache将答案进行缓存,在调用的过程中,相似的问题会直接返回答案,通过两次连续调用,我们可以发现第一次是速度较慢,第二次返回速度非常快,同时后台中也只有一次API消费,而第二次是直接返回结果的。原创 2024-04-11 08:42:31 · 6995 阅读 · 0 评论 -
LangChain-17 FunctionCalling 利用大模型对函数进行回调 扩展大模型的额外的能力 比如实现加减乘除等功能
Function Calling是一种允许用户在使用大型语言模型(如GPT系列)处理特定问题时,定制并调用外部函数的功能。这些外部函数可以是专门为处理特定任务(如数据分析、图像处理等)而设计的代码块。通过Function Calling,大模型可以调用这些外部函数获取信息,然后根据这些信息生成相应的输出,从而实现更加复杂和专业化的任务处理能力。原创 2024-04-10 09:13:30 · 6754 阅读 · 0 评论 -
LangChain-16 Using Tools LangChain封装好的工具集tools
LangChain的社区提供了很多封装好的工具,可以直接拿来用(有的需要申请和配置API KEY)。在 langchain.tools中(新版在 langchain_community.tools)中,封装了如搜索、邮件、数学相关等工具集内容。原创 2024-04-10 08:44:15 · 6002 阅读 · 0 评论 -
LangChain-15 Manage Prompt Size 管理上下文大小,用Agent的方式询问问题,并去百科检索内容,总结后返回
- 涉及到Wikipedia的检索(有现成的插件)- 有`AgentExecutor`来帮助我们执行- 后续由于上下文过大, 我们通过计算`num_tokens`,来控制我们的上下文Grok是一个基于大型语言模型(LLM)的生成式人工智能聊天机器人,由xAI开发。Grok的开发是由Elon Musk作为对OpenAI推出的ChatGPT崛起的直接回应而启动的项目,其中Elon Musk是OpenAI的共同创始人。Grok的一个特点是它被宣传为“具有幽默感”,并且可以直接访问Twitter(现X)。原创 2024-04-09 09:00:36 · 7022 阅读 · 0 评论 -
LangChain-14 Moderation OpenAI提供的功能:检测内容中是否有违反条例的内容
我们在调用OpenAI的接口时,有些内容可能是违反条例的,所以官方提供了一个工具来检测。原创 2024-04-09 08:51:47 · 5795 阅读 · 0 评论 -
LangChain-13 Memory 通过 ConversationBufferMemory 记录会话的上下文 并在对话中自动检索
平常我们的任务都是一次性会话,大模型是不会记录你的上下文的。如果我们要进行持续会话,或者希望大模型有记忆的话,我们需要对上下文进行管理。但这个过程是比较复杂的,`LangChain` 提供了一系列的工具来帮助我们简化过程。原创 2024-04-08 09:38:52 · 6010 阅读 · 0 评论 -
LangChain-12 Routing By Semantic Similarity 让GPT根据不明确的问题 自动选择工具集 根据语义自动路由
此时如果type传入的不是数字,那我们就没法处理。比如用户说:`我想喝水`,此时我们的程序就无法进行了,会走到`else`分支下。那我们该如何处理这种问题?借助大模型的推理能力,可以帮助理解用户的问题,并推理出对应的方案。原创 2024-04-08 09:32:09 · 6422 阅读 · 0 评论 -
LangChain-11 Code Writing FunctionCalling 大模型通过编写代码完成需求 大模型计算加法
我们知道GPT模型对于内容的输出,是对下一个字符的预测,通过概率选出下一个文本。而且我们也知道,训练样本是非常庞大的,对于GPT来说,也是有可能学习过`1 + 1 = 2`的。当我们向GPT询问`1+1` 时,完全可以通过概率来推测出结果是`2`但是当我们要求GPT计算:`12311111111111111` + `999999988888888111`时,显然训练样本中不可能出现这么抽象的内容。那我们该如何让大模型进行计算呢???原创 2024-04-07 09:07:28 · 5718 阅读 · 0 评论 -
LangChain-10(2) 加餐 编写Agent获取本地Docker运行情况 无技术含量只是思路
这里是通过执行 Shell的方式来获取状态的。通过执行`Docker`指令之后,可以获取到一大段的文本内容,此时把这些内容交给大模型去处理,大模型对内容进行提取和推理,最终回答我们。- `注意@tool注解,没有这个注解的话,无法使用`- `注意要写"""xxx""" 要写明该工具的介绍,大模型将根据介绍来选择是否调用`- `如果3.5的效果不好,可以尝试使用4`原创 2024-04-07 09:00:38 · 5758 阅读 · 0 评论 -
LangChain-10 Agents langchainhub 共享的提示词Prompt
`LangChainHub` 的思路真的很好,通过Hub的方式将`Prompt` 共享起来,大家可以通过很方便的手段,短短的几行代码就可以使用共享的`Prompt`。我个人非常看好这个项目。官方推荐使用LangChainHub,但是它在GitHub已经一年没有更新了, 倒是数据还在更新。代码主要部分是,定义了一个工具`tool`,让`Agent`执行,模拟了一个搜索引擎,让GPT利用工具对自身的内容进行扩展,从而完成复杂的任务。原创 2024-04-06 12:40:46 · 6705 阅读 · 0 评论 -
LangChain-09 Query SQL DB With RUN GPT 查询数据库 并 执行SQL 返回结果
【代码】LangChain-09 Query SQL DB With RUN GPT 查询数据库 并 执行SQL 返回结果。结合 上一节,根据我们的需求,生成SQL后,执行返回结果。原创 2024-04-06 12:26:43 · 6421 阅读 · 0 评论 -
LangChain-08 Query SQL DB 通过GPT自动查询SQL
LangChain的方式进行数据库查询,通过编写SQL对DB进行读取,并返回运行的结果,我们需要下载一个LangChain官方提供的本地小数据库,同时需要编写一段Chain来达到我们的目的。原创 2024-04-05 08:23:21 · 7089 阅读 · 2 评论 -
LangChain-07 Multiple Chains 多链串联
LangChain中的Runnables 可以很容易地用于将多个链串在一起。将定义的 chain1和chain2这种多个链都串联到一定,进行执行,方便我们进行扩展原创 2024-04-05 08:00:06 · 5578 阅读 · 0 评论 -
LangChain-06 RAG With Source Doc 通过文档进行检索增强
【代码】LangChain-06 RAG With Source Doc 通过文档进行检索增强。原创 2024-04-04 09:40:12 · 5344 阅读 · 0 评论 -
LangChain-05 RAG Conversational 增强检索会话
通过LangChain Template 编写了一个RAG的增强内容检索,同时通过chat history 来增强我们的对话,显然大模型通过我们定义的一些文档内容,和相对应的上下文,推测出了一些答案。原创 2024-04-04 09:16:49 · 5412 阅读 · 0 评论 -
LangChain-04 RAG Retrieval-Augmented Generation 检索增强生成
LangChain 中的 "RAG" 指的是 "Retrieval-Augmented Generation",即检索增强生成。它是一种结合了检索(从大量数据中检索相关信息)和生成(基于检索到的信息生成文本)的技术,旨在改善和增强自然语言生成模型的性能。原创 2024-04-03 08:52:19 · 5780 阅读 · 0 评论 -
LangChain-03 astream_events 流输出
FAISS向量检索,DocArrayInMemorySearch向量检索,astream_events 流输出原创 2024-04-03 08:47:24 · 5611 阅读 · 0 评论 -
LangChain-01环境配置和HelloWorld!
本章我们先直接上手LangChain体验一下,不要被吓到,先展示一下它的能力!原创 2024-04-02 12:14:18 · 5659 阅读 · 0 评论