LangChain(三)基础问答大模型,从LLMchain开始了解chain!纯新手向

背景

经过前面两篇内容的部分,我想大家应该对Langchain有了一个初步的了解。那么我们接下来完善我们的基础大模型吧!开始chain的尝试!

Chain的说明

chain可谓是Langchain的精髓所在,不使用chain,也就没必要学习Langchain了。大模型的本质在于文本的处理,也仅能做文本的处理,输入和输出都是文字,没有任何的其他功能。想要大模型工作,做出任何自己想要的功能,我们需要对大模型进行扩建!给大模型安上四肢,安上双眼!

例如:将视觉卷积神经网络获取当前视频流的处理信息并文字化描述,再传给大模型进行处理,大模型就能给你传递图片乃至视频的含义,并解读世界。这就是安上双眼的过程。而再次过程中,就有了链的雏形:用户文本输入---->判断调用视觉神经网络模型---->获取视觉神经网络模型的识别结果---->大模型处理返回结果。上诉的流程,正是一个链!

当然我们作为小白自然不用管这种复杂的链,我们今天先从最基本的链开始:LLMchain!

LLMchain

LLMChain是在语言模型周围添加一些功能的简单链。它被广泛地应用于LangChain中,LLMChain由一个PromptTemplate和一个语言模型(LLM或聊天模型)组成。

在langchain(二)的博客中我们开发了一个基础的LLM,感兴趣的看客可以去瞅瞅

LangChain(二)基础问答大模型,纯新手向-CSDN博客

我先把最终的代码copy如下:

import os
from langchain_community.chat_models import QianfanChatEndpoint
from langchain import PromptTemplate, LLMChain
 
# 设定百度千帆大模型的AK和SK-去百度千帆官网的控制台新建一个应用即可
os.environ["QIANFAN_AK"] = "your AK“"
os.environ["QIANFAN_SK"] = "your SK"
 
#创建千帆LLM模型
qianfan_chat = QianfanChatEndpoint(
    model="ERNIE-3.5-8K",
    temperature=0.2,
    timeout=30,
)
 
while True:
    prompt = input("user: ")
    print(qianfan_chat(prompt))
 
 

很简单对不对?

接下来就是加入Chain了,可以看到,我已经 import 了相关头文件。

import os
from langchain_community.chat_models import QianfanChatEndpoint
from langchain import PromptTemplate, LLMChain
 
# 设定百度千帆大模型的AK和SK-去百度千帆官网的控制台新建一个应用即可
os.environ["QIANFAN_AK"] = "your AK“"
os.environ["QIANFAN_SK"] = "your SK"
 
#创建千帆LLM模型
qianfan_chat = QianfanChatEndpoint(
    model="ERNIE-3.5-8K",
    temperature=0.2,
    timeout=30,
)

prompt_template = "What is a good name for a company that makes {product}? 用中文回答"

llm_chain = LLMChain(
    llm=llm,
    prompt=PromptTemplate.from_template(prompt_template)
)

在该部分中,我们做了如下两个动作:

  • 定义 prompt_template(就是定义了一个prompt模板),这样就可以只让用户更改 {} 内的内容
  • 构建LLMchain(仅仅只是做了一个链接,暂时还没有什么作用呢,别着急)

下面我直接把后面的代码沾上来,包括有关于LLMchain的所有使用方法,然而其实,只需要掌握其中一种即可。我个人比较推荐LLMchain.predict。清晰易懂。对于该链的原理,在下面哦~。

'''
和上面保持一致
'''

prompt_template = "What is a good name for a company that makes {product}? 用中文回答"

llm_chain = LLMChain(
    llm=llm,
    prompt=PromptTemplate.from_template(prompt_template)
)

'''
chain.__call__ 方法:
'''
print("chain.__call__ = ", llm_chain("colorful socks"))

'''
chain.run 方法:
'''
print("llm_chain.output_keys = ", llm_chain.output_keys)
print("chain.run = ", llm_chain.run({"product": "colorful socks"}))

input_list = [
    {"product": "socks"},
    {"product": "computer"},
    {"product": "shoes"}
]

'''
chain.apply 方法:
'''
print("chain.apply = ", llm_chain.apply(input_list))

'''
chain.generate 方法:
'''
print("chain.generate = ", llm_chain.generate(input_list))

'''
chain.predict 方法:
'''
print("chain.predict = ", llm_chain.predict(product="colorful socks"))

对于LLMchain链来说,代码的操作步骤如下:

  • 首先将用户的输入代替prompt_template中{}的内容,替代的原理仅仅是输入的变量代替对应{}内的变量。
  • 其次再把修改完毕后的prompt传入给LLM大模型
  • 我想写第三点,但其实已经结束了……

恭喜你!到此为止,你已经学会了chain了!甚至还构建了一个!你已经是个合格的大模型开发工程师啦(雾

写在最后

依然很简单对不对?

但是不知道大家有没有这种疑惑,为什么要这么干?让用户直接和大模型对接不好吗?

实际上……prompt的好坏直接关系到大模型返回内容的好坏。

一个背景清晰、逻辑清晰、需求清晰、关键词准确的prompt大概率会得到理想的回复。相同的,一个背景不清晰、逻辑混乱、需求不清、关键词不准确的prompt很大概率会得到牛头不对马嘴的回复

所以该部分最主要的用途是:

通过一系列的选择题or填空题,让用户自己填写相关的内容,然后整理成一份完美的prompt,再交给大模型,最终获取良好的回复~

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

数据操作10-15题(30 天 Pandas 挑战)

数据操作 1. 相关知识点1.12 分组与连表1.13 排名 2. 题目2.10 第N高的薪水2.11 第二高的薪水2.12 部门工资最高的员工2.13 分数排名2.14 删除重复的电子邮箱2.15 每个产品在不同商店的价格 1. 相关知识点 1.12 分组与连表 分组max_salaryemployee.groupby(departmentId)[sal…

超简易SpringBoot工程构建与部署 ( 图解 - 零基础专属 )

目录 简单了解MVC架构 模型(Model) 视图(View) 控制器(Controller) 基本环境准备 MYSQL建库建表 创库创表 智能生成数据 创建SpringBoot项目 配置pox.xml 代码提供 补充(IDEA的Maven要配置正确…

用kimi和claude自动生成时间轴图表

做时间轴图表并不难,但是很麻烦,先要大量收集相关事件,然后在一些图表软件中反复调整操作。现在借助AI工具,可以自动生成了。 首先,在kimi中输入提示词来获取某个企业的大事记: 联网检索,元语…

前后端数据交互流程

一、前言 用户在浏览器访问一个网站时,会有前后端数据交互的过程,前后端数据交互也有几种的情况,一下就简单的来说明一下 二、原理 介绍前后端交互前先来了解一下浏览器的功能,浏览器通过渲染引擎和 JavaScript 引擎协同工作&am…

uboot ethernet初始化

在Board_r.c 使用initr_net,先初始化phy,然后初始化gmac,driver/net/gmacv300/gmac.c实现管脚复用和gmac设备注册 Board_r.c #ifdef CONFIG_CMD_NETstatic int initr_net(void){puts("Net: ");eth_initialize();#if defined(CONFIG_RESET_PHY_R)debug("Reset…

计算机视觉 图像融合技术概览

在许多计算机视觉应用中(例如机器人运动和医学成像),需要将来自多幅图像的相关信息集成到一幅图像中。这种图像融合将提供更高的可靠性、准确性和数据质量。 多视图融合可以提高图像的分辨率,同时恢复场景的 3D 表示。多模态融合结合了来自不同传感器的图像,称为多传感器融…

短视频文案提取神器怎么提取抖音视频文案!

很多编导以及视频内容创作者为了提高自己的工作效率还会使用视频转文字提取神器,我们都清楚短视频领域每个平台人群熟悉都有所不同,在分发内容的时候也会调整内容已符合平台属性。 短视频文案提取神器怎么提取抖音视频文案 短视频常见的平台有抖音、西瓜…

SpringBoot实战:轻松实现XSS攻击防御(注解和过滤器)

文章目录 引言一、XSS攻击概述1.1 XSS攻击的定义1.2 XSS攻击的类型1.3 XSS攻击的攻击原理及示例 二、Spring Boot中的XSS防御手段2.1 使用注解进行XSS防御2.1.1 引入相关依赖2.1.2 使用XSS注解进行参数校验2.1.3 实现自定义注解处理器2.1.4 使用注解 2.2 使用过滤器进行XSS防御…

现在这个行情怎么理解股票期权?一个守住底线的工具!

今天带你了解现在这个行情怎么理解股票期权?一个守住底线的工具!股票期权是一种金融衍生品,给予持有者在未来特定时间以特定价格购买或出售股票的权利。 行情看down可以买入看跌期权,看跌期权的买方是因为预计行情的价格会在近期…

imx6ull/linux应用编程学习(11)CAN应用编程基础

关于裸机的can通信,会在其他文章发,这里主要讲讲linux上的can通信。 与I2C,SPI等同步通讯方式不同,CAN通讯是异步通讯,也就是没有时钟信号线来保持信号接收同步,也就是所说的半双工,无法同时发送与接收&…

【python】PyQt5控件尺寸大小位置,内容边距等API调用方法实战解析

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,…

小(微)间距P1.538COB渠道现货销售将加速全面升级替换SMD产品。

COB(Chip on Board)技术,如一颗璀璨的星辰,在上世纪60年代的科技夜空中悄然升起。它巧妙地将LED芯片镶嵌在PCB电路板的怀抱中,再用特种树脂为其披上一层坚韧的外衣,宛如一位精心雕琢的艺术家在创作一幅完美…

【Python机器学习】处理文本数据——用tf-idf缩放数据

为了按照我们预计的特征信息量大小来缩放特征,而不是舍弃那些认为不重要的特征,最常见的一种做法就是使用词频-逆向文档频率(tf-idf)。这一方法对某个特定文档中经常出现的术语给与很高的权重,但是堆在语料库的许多文档…

【UE5.1】Chaos物理系统基础——04 事件驱动粒子效果

目录 效果 步骤 一、炸开时的烟雾效果 二、炸开时的碎片效果 效果 步骤 一、炸开时的烟雾效果 1. 选中场景中的几何体集,勾选“通知中断”,这样当几何体集解体时就能产生一个事件;勾选“通知碰撞”,当几何体集检测到碰撞也能…

Java+前后端分离架构+ MySQL8.0.36产科信息管理系统 产科电子病历系统源码

Java前后端分离架构 MySQL8.0.36产科信息管理系统 产科电子病历系统源码 产科信息管理系统—住院管理 数字化产科住院管理是现代医院管理中的重要组成部分,它利用数字化技术优化住院流程,提升医疗服务质量和效率。以下是对数字化产科住院管理的详细阐述…

华火电燃喷火单灶再荣获中国质量认证中心 CQC 权威证书,引领行业新高度

近日,华火传来了一则令整个行业瞩目的重大喜讯:其电燃喷火单灶“再度”成功荣获中国质量认证中心(CQC)权威证书。这一里重大程碑式的成就,不仅是对华火产品卓越品质的高度认可,更是华火在品牌发展道路上的一…

网安小贴士(8)IPv4与IPv6

一、前言 IPv4和IPv6都是互联网协议(IP)的版本,它们用于在互联网上标识和定位设备。 二、定义 IPv4(互联网协议第四版): IPv4是互联网协议的第一个广泛使用的版本,最初在1981年被标准化为RFC 7…

单位立方体各个面上的法向量,向量场以及每个面上的通量

单位立方体各个面上的法向量,向量场 F ( x , y , z ) \mathbf{F} (x, y, z) F(x,y,z) 以及每个面上的通量 flyfish 假设我们有一个单位立方体,向量场 F ( x , y , z ) \mathbf{F} (x, y, z) F(x,y,z) 在该立方体上。 法向量 :单位立方…

中霖教育:二建报名成功后怎么审核?

【中霖教育怎么样】【中霖教育靠谱吗】 在成功完成二级建造师资格考试的报名流程后,需要准备后续的审核阶段,审核是否通过关乎考生是否能顺利参加考试,审核的方式包括:现场审核、网络审核以及考试后的审核。 某些地区会要求考生…

空间数据获取与预处理指南:生产与科研应用

1.空间数据简介 2.免费的国外GIS数据下载方法 3.免费的国内GIS数据下载方法 4.遥感云平台数据的获取方法 5.专题数据的获取及预处理示例 (1)行政区划数据 (2)气象数据 (3)土壤数据 (4)遥感产品数据 (5)统计数据 (6)…… 原文链接https://mp.weixin.qq.com/s?__bizMz…