直观易用的大模型开发框架LangChain,你会了没?

news2024/9/23 23:22:57

目录
简介基本组件小试牛刀关于沟通代码案例:调用Embedding、Completion、Chat Model总结 目前LangChain框架在集团大模型接入手册中的学习案例有限,为了让大家可以快速系统地了解LangChain大模型框架并开发,产出此文章。本文章包含了LangChain的简介、基本组件和可跑的代码案例(包含Embedding、Completion、Chat三种功能模型声明)。

01

简介

在今年的敏捷团队建设中,我通过Suite执行器实现了一键自动化单元测试。Juint除了Suite执行器还有哪些执行器呢?由此我的Runner探索之旅开始了!

LangChain 作为一个大语言模型(LLM)集成框架,旨在简化使用大语言模型的开发过程,包括如下组件:图片

LangChain框架优点:

1.多模型支持: LangChain 支持多种流行的预训练语言模型,如 OpenAI GPT-3、Hugging Face Transformers 等,为用户提供了广泛的选择。

2.易于集成: LangChain 提供了简单直观的API,可以轻松集成到现有的项目和工作流中,无需深入了解底层模型细节。

3.强大的工具和组件: LangChain 内置了多种工具和组件,如文档加载器、文本转换器、提示词模板等,帮助开发者处理复杂的语言任务。

4.可扩展性: LangChain 允许开发者通过自定义工具和组件来扩展框架的功能,以适应特定的应用需求。

5.性能优化: LangChain 考虑了性能优化,支持高效地处理大量数据和请求,适合构建高性能的语言处理应用。

6.Python 和 Node.js 支持: 开发者可以使用这两种流行的编程语言来构建和部署LangChain应用程序。

由于支持 Node.js ,前端大佬们可使用Javascript语言编程从而快速利用大模型能力,无需了解底层大模型细节。同时也支持JAVA开发,后端大佬同样适用。

本篇文章案例聚焦Python语言开发。

02

基本组件

理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目标页面展示到屏幕。

图片

  • Prompt【可选】

    • 告知LLM内system服从什么角色
    • 占位符:设置{input}以便动态填补后续用户输入
  • Retriever【可选】

    • LangChain一大常见应用场景就是RAG(Retrieval-Augmented Generation),RAG 为了解决LLM中语料的通用和时间问题,通过增加最新的或者垂类场景下的外部语料,Embedding化后存入向量数据库,然后模型从外部语料中寻找相似语料辅助回复
  • Models

    • 可做 Embedding化,语句补全,对话等

支持的模型选择,OpenAI为例

图片

  • Parser【可选】

    • StringParser,JsonParser 等
    • 将模型输出的AIMessage转化为string, json等易读格式

上述介绍了Langchain开发中常见的components,接下来将通过一简单案例将上述组件串起来,让大家更熟悉Langchain中的组件及接口调用。

03

小试牛刀

理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目标页面展示到屏幕。

在这里插入图片描述

输出:

"Why don't bears wear shoes?\nBecause they have bear feet!"

其中 chain = prompt | model | output_parser 按照数据传输顺序将上述声明的 prompt template、大语言模型、输出格式串联起来(Chain),逻辑清晰直接。

代码案例:调用Embedding、Completion、Chat Model

  • 将文本转化为Embedding :langchain_community.embeddings <-> OpenAIEmbeddings

在这里插入图片描述

  • 文本补全:langchain_community.llms <-> OpenAI completion
  from langchain_community.llms import OpenAI 
  
  llm = OpenAI(
      model_name='gpt-35-turbo-instruct-0914',    
      openai_api_key=os.environ["OPENAI_API_KEY"],    
      base_url=base_url,    
      temperature=0
)

llm.invoke("I have an order with order number 2022ABCDE, but I haven't received it yet. Could you please help me check it?")

对话模型:langchain_openai <-> ChatOpenAI
在这里插入图片描述

04

总结

理解,首先 MCube 会依据模板缓存状态判断是否需要网络获取最新模板,当获取到模板后进行模板加载,加载阶段会将产物转换为视图树的结构,转换完成后将通过表达式引擎解析表达式并取得正确的值,通过事件解析引擎解析用户自定义事件并完成事件的绑定,完成解析赋值以及事件绑定后进行视图的渲染,最终将目标页面展示到屏幕。

LangChain作为一个使用流程直观的大模型开发框架,掌握它优势多多。希望您可以通过上述内容入门并熟悉LangChain框架,欢迎多多交流!

如何学习AI大模型?

作为一名热心肠的互联网老兵,我决定把宝贵的AI知识分享给大家。 至于能学习到多少就看你的学习毅力和能力了 。我已将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。

这份完整版的大模型 AI 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

四、AI大模型商业化落地方案

img

作为普通人,入局大模型时代需要持续学习和实践,不断提高自己的技能和认知水平,同时也需要有责任感和伦理意识,为人工智能的健康发展贡献力量。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1921089.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SAP各代增强介绍与查找,这一篇就够了

目录 1.前言&#xff1a; 2.什么是增强&#xff1a; 3.增强类型&#xff1a; 4.增强查找方式&#xff1a; USER-EXIT的快速查找 ①基于源码查找 ②基于SPRO查找 ③通过SAT运行分析进行查找 Customer-Exit的快速查找 ①使用MODX_FUNCTION_ACTIVE_CHECK查找 ②使用/H …

Mysql:FIND_IN_SET 函数在逗号分隔的列表中搜索指定的值

FIND_IN_SET 函数用于在逗号分隔的列表中搜索指定的值。 语法&#xff1a; FIND_IN_SET(str,strlist)&#xff0c;其中 str是要查找的值&#xff0c; strlist是逗号分隔的列表。函数返回值是 str在 strlist中的位置&#xff0c;位置从1开始&#xff0c;如果找不到则返回0 SELEC…

Linux桌面溯源

X窗口系统 Linux起源于X窗口系统&#xff08;X Window System&#xff09;&#xff0c;亦即常说的X11&#xff0c;因其版本止于11之故。 X窗口系统&#xff08;X Window System&#xff0c;也常称为X11或X&#xff09;是一种以位图方式显示的软件窗口系统。最初是1984年麻省理…

论文AIGC率超标?一键降重快速搞定

如何有效降低AIGC论文的重复率&#xff0c;也就是我们说的aigc如何降重&#xff1f;AIGC疑似度过高确实是个比较愁人的问题。如果你用AI帮忙写了论文&#xff0c;就一定要在交稿之前做一下AIGC降重的检查。一般来说&#xff0c;如果论文的AIGC超过30%&#xff0c;很可能会被判定…

无线麦克风什么牌子音质好,轻揭秘什么牌子麦克风唱歌效果最好

​随着领夹麦克风市场的变革和技术突破&#xff0c;其在网络直播、视频拍摄和内容创作等领域的应用也日益广泛。我们注意到许多消费者在选购领夹无线麦克风时面临困惑&#xff0c;因此&#xff0c;我们将提供详细的购买指南&#xff0c;并推荐几款实用的麦克风&#xff0c;以供…

MFC Ribbon菜单 - 中英文实时切换方法

简介 最近在搞一个老外的项目&#xff0c;本来谈的好好的&#xff0c;纯英文界面。项目接近尾声了&#xff0c;又提出了中英文实时切换的新需求&#xff0c;没办法就只能想办法&#xff0c;毕竟客户最大嘛。 实现方法 还好本来的ribbon英文菜单不复杂&#xff0c;就用纯C编码…

解决QRCode生成二维码打印不出

问题&#xff1a;二维码嵌入在页面中&#xff0c;打印时二维码不渲染的情况 解决方法&#xff1a; 使用 html2canvas 库将指定的 DOM 元素&#xff08;在这个例子中是 id 为 pdf 的元素&#xff09;转换成一个画布&#xff08;canvas&#xff09;&#xff0c;然后将这个画布转换…

数据库系统原理练习 | 作业2-第2章关系数据库(附答案)

整理自博主本科《数据库系统原理》专业课完成的课后作业&#xff0c;以便各位学习数据库系统概论的小伙伴们参考、学习。 *文中若存在书写不合理的地方&#xff0c;欢迎各位斧正。 专业课本&#xff1a; 目录 一、选择题 二、填空题 三、简答题 四、关系代数 1.课本p70页&…

嵌入式基础 接口协议汇总

在此收集整理嵌入式通信中常见的接口协议&#xff0c;它们具有一定的通用性&#xff0c;在今后的开发中会反复遇到。 包括但不限于以下类别&#xff08;逐步完善中…&#xff09;&#xff1a; GPIOUARTSPII2CUSBEthernetNAND Flash类SDRAM类&#xff08;ram-like&#xff09;LC…

拉取DockerHub镜像

参考博主&#xff1a;http://t.csdnimg.cn/i49ET 方法一&#xff08;不太行&#xff09;&#xff1a; 在daemon.json文件中添加一些国内还在服务的镜像站&#xff08;可能某些镜像会没有&#xff09; ([ -f /etc/docker/daemon.json ] || mkdir -p /etc/docker) && e…

Idea合并Git分支信息

#git 的笔记 ##本篇文章是通过Idea 实现git 命令操作的代码的上传与合并。 1.合并分支 点击 Git 选择Merge 这里选择合并远程的分支

火山引擎数据飞轮实践:在电商场景中,如何建设全链路数据血缘?

数据作为新型生产要素&#xff0c;正支撑企业的数智化转型。但企业数字化建设也存在管理成本高、数据产品使用门槛高、数据资产价值不够的问题&#xff0c;其原因在于业务和数据之间没有形成双向良性驱动。 结合新时代企业数字化转型需求&#xff0c;火山引擎基于字节跳动十余…

【HTML入门】第十课 - 表格,也就是table标签

这一小节&#xff0c;我们说一下HTML中的表格。比如我们常常看见的学生成绩单&#xff0c;比如excel一个单元格一个单元格的&#xff0c;这些都是表格。 表格的标签名是 table 。 目录 1 表格中的一些子标签 1.1 表头区域 1.2 表格内容区域 1.3 行和列 2 实战一小下 2.…

Matlab提取excel数据及处理的实操举例

实现目的 当excel数据量庞大的时候&#xff0c;如果采用人工处理数据的方法就会成为非常出力不讨好的事&#xff0c;既容易出错&#xff0c;又容易抑郁。 利用matlab处理成为既简单又高效的方式。 例如&#xff0c;以GD32F7xx系列的管脚复用表格为例&#xff0c;在169x19的e…

[Linux]对Linux中的命令的本质

上回我们讲了Linux的指令&#xff0c;本篇是一个短篇&#xff0c;主要是对命令本质的讲解。 我们知道命令一般都是直接使用的 而可执行程序需要加上当前的路径 &#xff08;这个mytest是我们上上回写的&#xff0c;作用实际是打印Hello world!&#xff09; 我们很直观的可以发…

Stable Diffusion 保姆级实战教程!学不会来打我!

前言 本教程没有难懂的理论&#xff0c;全是实操的截图&#xff0c;非常通俗易懂。 能够帮你在最短的时间里&#xff0c;掌握Stable Diffusion的核心操作方法。真正有效地提高工作的效率。 教程主要是讲我们在工作中高频使用的4个功能模块&#xff1a;文生图、图生图、后期处…

kind kubernetes(k8s虚拟环境)使用本地docker的镜像

kubernetes中&#xff0c;虽然下载镜像使用docker&#xff0c;但是存储在docker image里的镜像是不能被k8s直接使用的&#xff0c;但是kind不同&#xff0c;可以使用下面的方法&#xff0c;让kind kubernetes环境使用docker image里的镜像。 kind – Quick Start 例如&#x…

fastadmin 如何通过权限组来控制列的显示与隐藏

方法1 以版本控制(application/admin/controller/Version.php)为例子 需求 就是在有时候,有些列不想让这个权限组的人看到,只给制定的权限组的人看 1.给权限组创建一个字段 ALTER TABLE lt_auth_group ADD COLUMN isBoothView TINYINT(1) NOT NULL DEFAULT 0 AFTER statu…

安卓查看本地sqlite数据库的好用工具(亲测好用)

1.使用SQLiteStudio工具&#xff0c;可以很方便的查看&#xff1b; 2.下载SQLiteStudio。 SQLiteStudio下载链接&#xff1a;https://pan.baidu.com/s/1Ji6xkhYxrWP8pDk6qba_Og 3.SQLiteStudio使用。 2.将数据库文件从项目中导入本地 3.用工具打开存在本地的数据库 4.可以…

DNS的解析过程(知识点总结)

DNS的解析过程(知识点总结)_dns解析过程-CSDN博客