首页 > 其他分享 >LangChain总结阶段一

LangChain总结阶段一

时间:2025-01-03 17:58:57浏览次数:1  
标签:总结 示例 LLMs 模型 LangChain 阶段 使用 交互

了解Prompt template,和大模型交互就靠它了

提示板(PromptTemplate)是与大型语言模型(LLMs)交互时用来生成结构化提示的工具。它使用Python的 str.format 方法来构建带有占位符的模板字符串,允许开发者插入特定主题或其他变量以生成定制化的提示。这种方式简化了与LLMs的对话,使得生成复杂的、针对性的请求变得更加容易和直观。最后我们演示了如何使用PromptTemplate与大模型交互。

使用few-shot Prompt template让大模型更懂你

在与大型语言模型(LLMs)的交互中,使用少量示例(few-shot)的提示模板可以显著提高模型对特定任务的理解和回答质量。通过构建一个包含少量精心挑选的示例的列表,每个示例都是一个包含输入和预期输出的字典,我们可以训练模型更好地理解特定的问题类型和上下文。我们介绍了 FewShotPromptTemplate 和 ExampleSelector的使用。此外我们可以结合Exampleselector 和 SemanticsimilarityExampleselector,利用语义相似度来自动选择与当前输入最相关的少量示例。这种方法适用于有大量示例和类别的场景,能够帮助模型更精确地定位和回答问题。通过这种方式,我们可以构建出更加智能和定制化的LLM应用。

用Output Parsers解析大模型的回答

LangChain的输出解析器Output Parsers是一组工具,用于将大型语言模型(LLM)的输出转换为结构化数据。这些解析器实现两个主要方法: get_format_instructions 返回格式化指令字符串,而 parse 将模型响应转换为特定结构。例如,PydanticoutputParser 支持使用Pydantic模型进行数据验证和结构化。LangChain提供多种输出解析器,支持不同的数据格式和流程,如JSON、XML、CSV,以及特殊用途的解析器,如用于错误修复或重试的解析器。这些工具有助于优化数据处理流程,使LLM输出更加可用和可靠。

了解大模型通用接口,掌握大模型替换方法

LangChain为大型语言模型(LLMs)提供了一个标准化的接口,使得不同来源的LLMs能够通过统一的方式进行交互。这个接口简单明了,接受字符串输入并返回字符串输出。在本阶段,我们实现了自定义LLMs models。通过继承 BaseLLM 类并实现 _generate 方法,用户可以创建自己的LLM类,这样就可以将任何模型或系统整合到LangChain生态中。这种灵活性使得LangChain可以轻松适应不同的业务需求和技术栈,同时保持了与LLMs交互的简洁性。模拟大模型返回帮你测试,掌握如何本地测试LangChain社区提供了 FakeListL 类,这是一个用于模拟大型语言模型(LLM)响应的工具,非常适合本地测试和开发。通过这个Fake大模型,开发者可以提前定义一系列响应,然后在调用模型时返回这些预设的答案。这样做的好处是可以在不实际调用外部服务的情况下,测试代码的逻辑和行为。在本阶段我们演示了使用Fake大模型的示例。

3-使用Langchain实现问答机器人,掌握使用Langchain改造问答机器人

本阶段我们对前面我们实现的问答机器人进行了改造,同时引入日志记录功能。我们之前的阶段中使用OpenAl的sak实现了问答机器人,本阶段我们使用了LangChain的LLMs Models来实现了问答机器人,我们结合LangChain Model //0中,也就是和大模型交互的过程中的主要的三个模型库,LLMs Models ,在这里我们使用的是Tongyi大模型, 同时使用 PromptTemplate 用于构建发送给大模型的提示,并使用 0utput parser 格式化大模型输出的内容,将大模型的输出转化为Pytantic的对象,这样我们就可以将用户的输入内容和大模型的输出内容做相关的记录,比如录入数据库。这样的实现不仅能够实现实时的问答交互,还能够记录交互日志,便于后续的分析和审计。我们通过这个实战项目带领大家完整的学习了如何使用LangChain的最重要的3个核心模块和大模型的交互过程。也可以完整的看到通过LangChain实现与大模型的输入、调用和输出解析的全过程,希望大家通过这个实战项目能够更好的理解LangChain的使用方法。

标签:总结,示例,LLMs,模型,LangChain,阶段,使用,交互
From: https://www.cnblogs.com/edeny/p/18650635

相关文章

  • 编译原理期末速成总结
    编译原理期末速成词法分析DNA和NFA题型一:NFA->DFA(确定化)NFA的几种构建文法->NFA​1.注意图中的E,F是无效的,不用加在NFA中​2.最后的单独的小b其实对应了终态转换函数->NFA转换函数其实就是关系,按照关系画图即可正规式->NFA​1.右上角的图提供了准则,......
  • Artificial Analysis:2024年AI大模型总结报告
    2024年是大模型发展非常迅速的一年,我们见证了太多AI技术变革带来的惊艳!这一年里,各家大模型的能力提升层出不穷。LLM方面,OpenAI发布了更强的o系列模型;文生图开源模型也出现了SD的替代者Flux;视频生成模型更是百花齐放,很多大模型公司都推出了类Sora的视频生成模型。近日......
  • LangChain简单大模型应用,保姆级教程,收藏这篇就够了!
    LangChain官方示例教程(BuildaSimpleLLMApplication):python.langchain.com/docs/tutori…将该官方示例教程适当调整及优化依赖shell代码解读复制代码pipinstalllangchain#接入ollama本地大模型pipinstalllangchian-ollama#接入兼容OpenAI接口的国产......
  • Java课程学习总结
    学号202302151042陈辉扬‌Java基础概念‌Java是一门面向对象的编程语言,以其跨平台性著称。Java代码被编译为字节码(bytecode),通过JVM在不同的平台上运行,无需重新编译。Java提供了多种数据类型,包括整数类型(byte、short、int、long)、浮点类型(float、double)、字符类型(cha......
  • 自联接总结
    SELECTam2.*,am.midassubmid,am.menunameassubmenuname,am.urlassuburl,am.glyphiconassubglyphiconfromadmin_menuaminnerjoinadmin_menuam2onam.pid=am2.mid用父表pid(父级字段)到子表mid进行匹配,用父表数据进行逐行匹配1.表结......
  • 有限元分析学习——Anasys Workbanch第一阶段笔记(4)刚体平移和弱弹簧、接触设置和基础
    目录1序言2刚体平移2.1刚体平移报错警告2.2辅助理解案例 2.3发生整体位移的解释3 接触设置和接触基础3.1虎钳案例分析 3.2接触分类 3.3教材中的接触 4总结建议1序言本章介绍刚体平移的常见报错提醒、案例辅助理解、理论解释、对一些接触类型的解......
  • 2024 OI 总结
    OI年度总结2024高考年没怎么学OI,放几个大伙知道的:洛谷写下了\(52.36kb\)代码,通过\(18\)道题。最高等级分\(0\)分,超越\(0\%\)的用户(赢麻了✌)!关键词:科学探索Codeforces通过\(201\)道题,打了\(13\)场比赛,其中\(1\)场排名赛。Rating变化:\(2184->2182\),......
  • 【初阶数据结构与算法】排序算法总结篇(每个小节后面有源码)(直接插入、希尔、选择、堆
    文章目录一、直接插入排序二、希尔排序三、直接选择排序四、堆排序五、冒泡排序六、快速排序七、归并排序八、计数排序九、非递归快速排序十、非递归归并排序本篇内容将从稳定性与复杂度等角度分析排序算法,列出它们的特点、优点以及缺点,希望大家有所收获,如果想更加细......
  • 线段树总结
    线段树你说的对,但线段树是一种用\(O(n\cdotlog\n)\)的大常数复杂度+略微的卡常下技巧=AC的妙妙数据结构。线段树是基于分治与二叉树的在线工具,可以维护区间信息,但比树状数组能够维护的东西更多。线段树虽然能够维护的东西更多,但也有一些特别显著的缺点:代码量过长。......
  • Openwrt 下SRS编译安装及配置使用问题总结
    Openwrt下SRS编译安装及配置使用问题总结基本概念应用背景Openwrt安装SRS方案方案一:交叉编译(失败,不推荐)方案二:目标板编译(编译成功,运行失败,不推荐)安装依赖源码安装问题解决Buildingopenssl-1.1-fit.Can'tlocateFindBin.pmin@INC(youmayneedto......