Langchain
文章平均质量分 96
-派神-
每天进步一点点……
展开
-
高级RAG(四):RAGAs评估
RAGAs (Retrieval-AugmentedGenerationAssessment) 它是一个框架(github官方文档question:用户输入的问题。answer:从 RAG 系统生成的答案(由LLM给出)。contexts:根据用户的问题从外部知识源检索的上下文即与问题相关的文档。: 人类提供的基于问题的真实(正确)答案。这是唯一的需要人类提供的信息。原创 2024-01-03 16:53:17 · 2937 阅读 · 5 评论 -
使用python快速开发与PDF文档对话的Gemini聊天机器人
今天我们主要介绍了如何开发一个简单的RAG系统:基于pdf文档问答的机器人应用,其中我们应用了langchain的父文档检索策略,panel的页面聊天组件chat_interface以及谷歌的Gemini大模型。希望今天的内容对大家学习RAG和聊天机器人程序有所帮助。原创 2023-12-31 13:39:58 · 1567 阅读 · 0 评论 -
高级RAG(三):llamaIndex从小到大的检索
LlamaIndex是一个用于连接大语言模型(LLMs)和外部数据源的数据框架,它可以让LLMs访问和利用私有或领域特定的数据。数据连接:支持从本地文件、Notion、Google文档、Slack、Discord等多种数据源读取数据。数据索引:支持构建不同类型的索引结构,如列表索引、向量索引、树形索引、关键词表索引等,以便快速检索和过滤数据。查询接口:支持使用自定义的输入提示(prompt)与LLMs进行交互,以获取知识增强的响应。原创 2023-12-28 16:37:57 · 2215 阅读 · 0 评论 -
使用python快速开发各种聊天机器人应用
Panel是一个开源的Python库,它可以让你用Python轻松地构建强大的工具、其中包括聊天机器人程序,今天我们使用panel快速开发了ChatGPT,Gemini,Langchain的聊天机器人应用。通过使用使用panel库,我们可以开发出功能强大界面美观的web机器人程序。原创 2023-12-26 16:45:54 · 1012 阅读 · 0 评论 -
高级RAG(二):父文档检索器
今天我们学习了langchain的父文档检索器,父文档检索器有两种工作方式即检索完整文档,和检索较大的文档块,其中检索完整文档的前提条件是原始文档的大小不能超过大模型llm对输入文本长度的限制条件,因此我们的原始文档不能太长。原创 2023-12-24 18:46:26 · 1897 阅读 · 2 评论 -
高级RAG(一):Embedding模型的选择
今天我们测试了openai,gemini,baai它们的embedding模型,我们发现baai的embedding模型表现最为优秀,它检索出了所有的相关文档,而gemini的embedding模型表现最差,它机会都没有检索出任何相关文档,我并不清楚这是什么原因造成的。原创 2023-12-21 16:29:38 · 2932 阅读 · 0 评论 -
谷歌Gemini API 应用(二):LangChain 加持
今天我们学习了在langchain中使用gemin模型的的一些方法,总的来说使用方法和其他的模型如openai的模型的方法都是类似的。今天我们还尝试了langchain的stream和beath方法在gemini模型上的应用,还介绍了RAG、PAL Chain的应用,最后我们用一个简单例子介绍了langchain中使用gemini多模态模型的方法。希望今天的内容对大家学习gemini大模型有所帮助。原创 2023-12-16 15:31:58 · 2042 阅读 · 0 评论 -
谷歌Gemini API 应用(一):基础应用
今天我们学习了谷歌最新的Gemini语言模型gemini-pro和多模态模型gemini-pro-vision的一些基础应用,其中包括了模型的一些限制条件,安全性审查,流式输出,多模态模型应用等内容,希望这些内容对读者学习Gemini模型有所帮助。原创 2023-12-15 17:28:29 · 2791 阅读 · 0 评论 -
LangChain的函数,工具和代理(六):Conversational agent
今天我们回顾了在langchain中实现基本的函数调用方法,以及在此基础上进行手动优化和自动优化的流程,最后我们将所有的功能整合在一起开发了一个自动化的聊天机器人,它具有记忆能力同时还能根据用户的问题来自主判断是否调用外部函数并给出对用户友好的回复,希望今天的内容对大家学习langchain有所帮助!原创 2023-12-08 13:55:10 · 1727 阅读 · 0 评论 -
LangChain的函数,工具和代理(五):Tools & Routing
今天我们学习了langchain的tools,routing组件的原理,并借助tool和routing让llm实现了真正意思上的函数调用,最后我们还介绍了openapi格式的函数说明文本如何通过langchain来转换成openai的函数描述变量,希望今天的内容对大家有所帮助。原创 2023-12-06 16:38:26 · 2075 阅读 · 0 评论 -
LangChain的函数,工具和代理(四):使用 OpenAI 函数进行标记(Tagging) & 提取(Extraction)
今天我们学习了通过langchain和openai的函数调用来实现标记(Tagging)和提取(Extraction)功能,通过taggin我们可以让llm对用户信息进行评估,通过extration我们可以让llm从用户信息中提取有用的内容,最后我们介绍了两个真实的应用场景案例,我们介绍了如何使用langchain的长文本切割工具对长文本进行切割,从而解决了openai的llm对输入的上下文长度限制问题。希望今天的内容对大家有所帮助。原创 2023-12-04 19:24:02 · 1773 阅读 · 0 评论 -
LangChain的函数,工具和代理(三):LangChain中轻松实现OpenAI函数调用
今天我们学习了pydantic的基础语法,以及如何利用langchain将pydantic定义的类转换成openai的函数描述对象,通过pydantic我们可以轻松定义函数描述对象的类,然后使用langchain的convert_pydantic_to_openai_function方法将其转换成openai所需要的格式,如果不使用pydantic我们必须手动创建openai的函数描述对象,这将是非常低效且繁琐的工作。原创 2023-12-01 22:54:57 · 2185 阅读 · 0 评论 -
LangChain的函数,工具和代理(二):LangChain的表达式语言(LCEL)
今天我们介绍了LangChain的表达式语言(LCEL)的基础知识,其中包括了简单链(Simple Chain),复杂链(More complex chain),绑定(Bind),后备措施(Fallbacks),接口(Interface)的应用,其中包括对invoke,batch,stream等方法的使用以及相应的异步方法的介绍,希望今天的内容对大家有所帮助。原创 2023-11-30 16:22:39 · 2039 阅读 · 0 评论 -
微调大型语言模型(一):为什么要微调(Why finetune)?
今天我们来学习Deeplearning的在线课程 微调大型语言模型(一)的第一课:为什么要微调(Why finetune)。我们知道像GPT-3.5这样的大型语言模型(LLM)它所学到的知识截止到2021年9月,那么如果我们向ChatGPT询问2022年以后发生的事情,它可能会产生“幻觉”从而给出错误的答案,再比如我们有一些关于企业的某些产品的业务数据,但是由于ChatGPT没有学习过这些数据,因此它也无法正确回答出关于这些产品的问题。为了扩大LLM的知识面,让LLM能够更好的学习并掌握新知识从而更好的为用原创 2023-09-21 22:51:27 · 1109 阅读 · 0 评论 -
使用langchain与你自己的数据对话(五):聊天机器人
今天我们学习了如何开发一个具有记忆能力的个性化问答机器人,所谓个性化是指该机器人可以针对用户数据的内容进行问答,我们在实现该机器人时使用了ConversationalRetrievalChain组件,它是一个具有记忆能力的检索链,也是机器人的核心组件。希望今天的内容对大家有所帮助!原创 2023-08-07 20:44:55 · 3196 阅读 · 4 评论 -
使用langchain与你自己的数据对话(四):问答(question answering)
今天我们介绍了如何通过答链RetrievalQA,来检索向量数据库并回答用户的问题。其中我们介绍了几种RetrievalQA检索向量数据库的工作方式,也就是chain type方式,其实默认方式是stuff,除此之外还有map_reduce,refine, map_rerank等几种方式,它们都有各自的优缺点。同时我们还介绍了通过使用prompt模板,可以让LLM返回格式化的结果。希望今天的内容对大家学习langchain有所帮助!原创 2023-08-01 18:08:30 · 5167 阅读 · 6 评论 -
使用langchain与你自己的数据对话(二):向量存储与嵌入
今天我们学习了嵌入和向量数据库的基本原理,并且对嵌入(Embeddings)和开源数据库Chroma进行了实际的操作,并观察了各种的返回结果,同时我们还发现了两种Chroma数据库相似搜索失效的场景。关于如何避免失效的应用我们将在下一篇博客中进行讨论。原创 2023-07-24 22:01:16 · 3428 阅读 · 4 评论 -
使用langchain与你自己的数据对话(一):文档加载与切割
今天我们学习了文本的加载与分割,Langchain提供了丰富的外部数据加载器,这些外部数据可以是结构化的,也可以是非结构化的,其中我们还介绍了从网页和youtube视频中加载文本的方法,这个挺有意思的,大家可以尝试一下,由于外部数据量可能比较大,如pdf, text文档等,因此当我们加载了外部数据以后,我们还需要对数据进行分割处理,我们介绍了几种文本分割的方法,其中有按字符分割的CharacterTextSplitter分割器,和递归分割的RecursiveCharacterTextSplitter分割器。原创 2023-07-20 17:55:52 · 11337 阅读 · 4 评论 -
LangChain大型语言模型(LLM)应用开发(三):Chains
今天我们学习了Langchain的核心组件chain。主要分为LLMChain,Sequential Chains,Router Chain,其中LLMChain是最基本的chain它简单的组合了LLM和promt,Sequential Chains主要包含SimpleSequentialChain和SequentialChain,对于SimpleSequentialChain来说它只是简单的将多个LLMChain串联在一起,前一个chain的输出是后一个chain的输入,所以总体上来说SimpleSeq原创 2023-07-02 22:38:35 · 11284 阅读 · 4 评论