大模型开发中LCEL与LLMChain响应度的对比

embedded/2024/11/29 11:05:53/

管道连接

python">import timefrom langchain_community.chat_models import ChatOpenAI
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import PromptTemplatet1 = time.time()
llm = ChatOpenAI(
)resp_prompt_path = 'response_prompt.md'
prompt = PromptTemplate.from_file(resp_prompt_path,encoding='utf-8')
prompt = prompt.partial(query="现在客运量是多少?",result="### rt_schema:['客运量'], rt_result:[888461]",reply_nodata="昨日数据未完成结算, 请12点以后查看。",today="2024-11-27")chain = prompt | llm | StrOutputParser()print(chain.invoke({"query":"现在客运量是多少?","result":"### rt_schema:['客运量'], rt_result:[888461]","today":"2024-11-27"}))print(time.time()-t1)

其中,要求prompt类型为PromptTemplate类型。

LLMChain

python">import timefrom langchain.chains.llm import LLMChain
from langchain.memory import ConversationBufferMemory
from langchain_community.chat_models import ChatOpenAI
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import PromptTemplate, HumanMessagePromptTemplate, ChatPromptTemplate, \SystemMessagePromptTemplate, MessagesPlaceholderresp_prompt_path = 'response_prompt.md'
prompt = PromptTemplate.from_file(resp_prompt_path,encoding='utf-8')
prompt = prompt.partial(query="现在客运量是多少?",result="### rt_schema:['客运量'], rt_result:[888461]",reply_nodata="昨日数据未完成结算, 请12点以后查看。",today="2024-11-27")prompt_ = prompt.format()t2 = time.time()
llm = ChatOpenAI(
)
prompt = ChatPromptTemplate(messages=[SystemMessagePromptTemplate.from_template("You are a nice chatbot having a conversation with a human."),MessagesPlaceholder(variable_name="chat_history"),HumanMessagePromptTemplate.from_template(prompt_)]
)memory = ConversationBufferMemory(memory_key="chat_history", return_messages=True)
conversation = LLMChain(llm=llm,prompt=prompt,verbose=True,memory=memory
)resp = conversation.invoke({"data":str({"query":"现在客运量是多少?","result":"### rt_schema:['客运量'], rt_result:[888461]","today":"2024-11-27"})})
resp_str = StrOutputParser.parse(self='',text=resp.get('text'))
print(resp_str)print(time.time()-t2)

其中,HumanMessagePromptTemplate.from_template()要求参数是str类型,需要将prompt通过prompt.format()转成str,进入LLMChain后prompt要求是ChatPromptTemplate类型的。另外,该模型只能接收一个参数,如果出现多个参数,需要转换。

目前在大模型开发中,遇到响应度体验的问题,本想通过拆掉pipeline提升速度,但是最终发现效果不明显。就保留langchain的LCEL模式。


http://www.ppmy.cn/embedded/141443.html

相关文章

【Leetcode 每日一题】235. 二叉搜索树的最近公共祖先

235. 二叉搜索树的最近公共祖先 给定一个二叉搜索树, 找到该树中两个指定节点的最近公共祖先。 百度百科中最近公共祖先的定义为:“对于有根树 T 的两个结点 p、q,最近公共祖先表示为一个结点 x,满足 x 是 p、q 的祖先且 x 的深度尽可能大&…

如何在Solana链上开发Dapp?RPC节点的要求

在 Solana 链上开发 DApp 是一个系统性过程 1. 理解 Solana 和其开发模型 Solana 是高性能区块链,采用 Rust 语言开发智能合约(称为 Program)。开发 DApp 需要掌握以下核心概念: • 账户模型:Solana 使用账户存储数…

Ubuntu 服务器部署 Tomcat 并配置 SSL/TLS 证书

本文目录 准备登陆云服务器安装 Java下载 tomcat 包配置防火墙浏览器访问 Tomcat 默认页面以服务的形式运行 Tomcat创建 Tomcat 用户和组创建 systemd 服务文件启动 tomcat 服务 Tomcat webapps 文件目录部署一个静态网站tomcat 的配置文件 将域名解析到服务器Tomcat 配置 SSL/…

【docker】细致且具有时效性的docker在ubuntu的安装,新鲜出炉

1.APT 镜像源配置 (Ubuntu 软件包源) Ubuntu 默认使用的是 http://cn.archive.ubuntu.com/ubuntu 作为软件包源,这个源位于国外,访问速度可能较慢。通过修改 APT 配置文件,可以指定国内的镜像源 修改方式: 手动修改镜像源&…

JWT介绍和结合springboot项目实践(登录、注销授权认证管理)

目录 一、JWT介绍(一)基本介绍(二)jwt有哪些库1、jjwt(Java JWT)2、nimbus - jwt - jwt - api 和 nimbus - jwt - jwt - impl3、spring - security - jwt(已弃用,但在旧项目中有参考…

【C++】7000字介绍map容器和set容器的功能和使用

目录 一、关联式容器和序列式容器 二、键值对,> 三、树形结构的关联式容器 四、set容器(key模型) 1、文档官网 2、功能介绍: 3、注意事项: 4、基本使用,更多接口可查看官网: (1&…

外卖点餐系统小程序

目录 开发前准备 项目展示项目分析项目初始化封装网络请求 任务1 商家首页 任务分析焦点图切换中间区域单击跳转到菜单列表底部商品展示 任务2 菜单列表 任务分析折扣信息区设计菜单列表布局请求数据实现菜单栏联动单品列表功能 任务3 购物车 任务分析设计底部购物车区域添加商…

SAP 仓库地址配置以及取值 表 TWLAD

首先,维护仓库路径 SPRO->企业结构->定义->物料管理->维护仓储地点 选中仓位,点击 库存地点的地址 这里是我维护的序列号为1的,这个仓库的地址,点击明细查看 地址信息就在这里面 接下来说明,怎么通过A…