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.mzph.cn/bicheng/41486.shtml

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

相关文章

AWS云服务器的竞争优势

亚马逊网络服务(AWS)作为全球最大的云计算平台,在激烈的市场竞争中一直保持领先地位。相较于其他云服务提供商,AWS云服务器具有多方面的显著优势,使其成为众多企业和开发者的首选,我们结合九河云的分析一起…

机器学习 - one-hot编码技术

One-hot编码是一种数据处理技术,主要用于将分类变量转换为适合机器学习算法处理的格式。在One-hot编码中,每个类别值都会被转换成一个二进制向量,其中只有一个元素是1,其余所有元素都是0。这种编码方式确保了类别之间的独立性和唯…

如何在前端网页实现live2d的动态效果

React如何在前端网页实现live2d的动态效果 业务需求: 因为公司需要做机器人相关的业务,主要是聊天形式的内容,所以需要一个虚拟的卡通形象。而且为了更直观的展示用户和机器人对话的状态,该live2d动画的嘴型需要根据播放的内容来…

WEBHTTP

目录 理解HTTP协议请求流程 1 1 Web基础 2 Hosts文件 1 1 2网页与HTML 2 HTML概述 1 1 3静态网页与动态网页 1.2HTTP协议 1 2 1 HTTP协议概述 1 2 2 HTTP方法 HTTP支持几种不同的请求命令,这些命令被称为HTTP方法(HTTP method 表1一3 HTTP方法 表1&#…

开源协作wiki和文档软件Docmost

什么是 Docmost ? Docmost 是一款开源协作 wiki 和文档软件。它是 Confluence 和 Notion 等软件的开源替代品。使用 Docmost 可以无缝创建、协作和共享知识。非常适合管理您的 wiki、知识库、文档等。目前 Docmost 处于测试阶段。 软件的主要特点 安装 在群晖上以 …

Python面试题:请解释 Python 的垃圾回收机制

Python 的垃圾回收机制主要通过引用计数(Reference Counting)和循环垃圾收集(Cycle Garbage Collection)来管理内存。以下是对这两种机制及其相关知识点的详细解析: 引用计数 原理 每个对象都有一个引用计数器&…

Linux运维:MySQL备份,物理冷备份,热备,完备+二进制日志

备份类型 完全备份、增量备份、差异备份 完全备份:整个数据集都备份 增量备份:仅备份最近一次完全备份或增量备份(如果存在增量)以来变化的数据,备份较快,还原复杂。 差异备份:对比前一次备…

Renesas R7FA8D1BH (Cortex®-M85) ADC模块应用

目录 概述 1 软硬件 1.1 软硬件环境信息 1.2 开发板信息 1.3 调试器信息 2 FSP和KEIL配置ADC 2.1 ADC硬件接口 2.2 FSP配置ADC 3 软件功能实现 3.1 FSP生成项目 3.2 FSP ADC模块库函数介绍 3.2.1 库函数列表 3.2.2 函数介绍 4 ADC功能代码 4.1 编写代码 4.2 代码…

计算机应用数学--第三次作业

第三次作业计算题编程题1 基于降维的机器学习2 深度学习训练方法总结 第三次作业 计算题 (15 分)对于给定矩阵 A A A(规模为 42),求 A A A 的 SVD(奇异值分解),即求 U U U, Σ …

Ardupilot无人船(车)mavros自主控制

文章目录 前言一、启动仿真二、编写代码三、运行前言 ubuntu20.04 rover 4.4 学习资料: https://cwkj-tech.yuque.com/bsge84/suv1 https://ardupilot.org/dev/docs/mavlink-rover-commands.html http://wiki.ros.org/mavros 一、启动仿真 在ardupilot/Rover目录下执行: …

强化学习-6 DDPG、PPO、SAC算法

文章目录 1 DPG方法2 DDPG算法3 DDPG算法的优缺点4 TD3算法4.1 双Q网络4.2 延迟更新4.3 噪声正则 5 附15.1 Ornstein-Uhlenbeck (OU) 噪声5.1.1 定义5.1.2 特性5.1.3 直观理解5.1.4 数学性质5.1.5 代码示例5.1.6 总结 6 重要性采样7 PPO算法8 附28.1 重要性采样方差计算8.1.1 公…

重塑通信边界,基于ZYNQ7000 FPGA驱动的多频段多协议软件无线电平台

01、产品概述 本平台是基于高性能ZYNQ-7000系列中的XC7Z045处理器构建的多频段多协议软件无线电解决方案,集成了AD9364芯片——一款业界领先的1x1通道RF敏捷收发器,为无线通信应用提供了强大支持。其存储架构包括2路高速4GB DDR3内存、1路32GB EMMC存储以…

一道有意思的简单题 [NOIP2010 普及组] 接水问题

题目&#xff1a; 题解&#xff1a; 每一次新来的同学的接水时间都加在现在已有的水龙头中接水时间最短的&#xff0c;总时间就为n次操作后水龙头中接水时间的最长值。 #include<bits/stdc.h> using namespace std; multiset<int>s;int main(){int n,m;scanf(&qu…

uni-app组件 子组件onLoad、onReady事件无效

文章目录 导文解决方法 导文 突然发现在项目中&#xff0c;组件 子组件的onLoad、onReady事件无效 打印也出不来值 怎么处理呢&#xff1f; 解决方法 mounted() {console.log(onLoad, this.dateList);//有效// this.checkinDetails()},onReady() {console.log(onReady, this.da…

空间数据采集与管理:为什么选择ArcGISPro和Python?

你还在为找不到合适的数据而苦恼吗&#xff1f;你还在面对大量数据束手无策&#xff0c;不知如何处理吗&#xff1f;对于从事生产和科研的人员来说&#xff0c;空间数据的采集与管理是地理信息系统&#xff08;GIS&#xff09;和空间分析领域的关键环节。通过准确高效地采集和管…

贪心算法-以高校教师信息管理系统为例

1.贪心算法介绍 1.算法思路 贪心算法的基本思路是从问题的某一个初始解出发一步一步地进行&#xff0c;根据某个优化测度&#xff0c;每一 步都要确保能获得局部最优解。每一步只考虑一 个数据&#xff0c;其选取应该满足局部优化的条件。若下 一个数据和部分最优解连在一起不…

PHP源码:美容护理按摩预约系统(附管理端+前台)

一. 前言 今天小编给大家带来了一款可学习&#xff0c;可商用的&#xff0c;预约系统 源码&#xff0c;支持二开&#xff0c;无加密。项目的内容可以是美容护理&#xff0c;按摩护理等&#xff0c;你也可以扩展。 预约下单大致流程&#xff1a; 客户登录下预约单&#xff0c…

电机驱动----L298N

一、介绍 L298N 是一种双H桥电机驱动芯片&#xff0c;其中每个H桥可以提供2A的电流&#xff0c;内含4路逻辑驱动电路&#xff0c;功率部分的供电电压范围是2.5-48v&#xff0c;逻辑部分5v供电&#xff0c;接受5vTTL电平。一般情况下&#xff0c;功率部分的电压应大于6V否则芯片…

实现Java应用的快速开发与迭代

实现Java应用的快速开发与迭代 大家好&#xff0c;我是免费搭建查券返利机器人省钱赚佣金就用微赚淘客系统3.0的小编&#xff0c;也是冬天不穿秋裤&#xff0c;天冷也要风度的程序猿&#xff01; 1. 引言 随着软件开发周期的不断缩短和市场竞争的加剧&#xff0c;快速开发和…

Spring源码十一:事件驱动

上一篇Spring源码十&#xff1a;BeanPostProcess中&#xff0c;我们介绍了BeanPostProcessor是Spring框架提供的一个强大工具&#xff0c;它允许我们开发者在Bean的生命周期中的特定点进行自定义操作。通过实现BeanPostProcessor接口&#xff0c;开发者可以插入自己的逻辑&…