【LangChain】LLM

这篇具有很好参考价值的文章主要介绍了【LangChain】LLM。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

LangChain学习文档

  • 基础
    • 【LangChain】LLM

概述

LLMChain 是一个简单的链,它围绕语言模型添加了一些功能。它在整个LangChain中广泛使用,包括在其他链和代理中。
LLMChainPromptTemplate语言模型(LLM 或聊天模型)组成。它使用提供的输入键值对(以及内存键值对,如果可用的话)作用于格式化提示模板,并将格式化后的字符串传递给 LLM 并返回 LLM 输出。

内容

from langchain import PromptTemplate, OpenAI, LLMChain

# 提示模板
prompt_template = "What is a good name for a company that makes {product}?"

llm = OpenAI(temperature=0)
llm_chain = LLMChain(
    llm=llm,
    prompt=PromptTemplate.from_template(prompt_template)
)
llm_chain("colorful socks")

结果:

    {'product': 'colorful socks', 'text': '\n\nSocktastic!'}

运行 LLM Chain 的其他方式

除了所有 Chain 对象共享的 __call__run 方法之外,LLMChain 还提供了几种调用链逻辑的方法:

apply

允许您针对输入列表运行链:

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

llm_chain.apply(input_list)

结果如下:

    [{'text': '\n\nSocktastic!'},
     {'text': '\n\nTechCore Solutions.'},
     {'text': '\n\nFootwear Factory.'}]

generate

generate 与 apply 类似,只是它返回一个 LLMResult 而不是字符串。 LLMResult 通常包含有用的生成,例如token使用情况和完成原因。

llm_chain.generate(input_list)

结果:

LLMResult(
generations=[
	[Generation(text='\n\nSocktastic!', generation_info={'finish_reason': 'stop', 'logprobs': None})], 
	[Generation(text='\n\nTechCore Solutions.', generation_info={'finish_reason': 'stop', 'logprobs': None})], 
	[Generation(text='\n\nFootwear Factory.', generation_info={'finish_reason': 'stop', 'logprobs': None})]], 
llm_output={'token_usage': {'prompt_tokens': 36, 'total_tokens': 55, 'completion_tokens': 19}, 'model_name': 'text-davinci-003'})

predict

Predictrun 方法类似,只不过输入参数不再是Python字典,而是关键字参数。

# Single input example
llm_chain.predict(product="colorful socks")

# 结果
    '\n\nSocktastic!'
# Multiple inputs example
# 多个输入的例子:
template = """Tell me a {adjective} joke about {subject}."""
prompt = PromptTemplate(template=template, input_variables=["adjective", "subject"])
llm_chain = LLMChain(prompt=prompt, llm=OpenAI(temperature=0))

llm_chain.predict(adjective="sad", subject="ducks")

结果:

    '\n\nQ: What did the duck say when his friend died?\nA: Quack, quack, goodbye.'

解析输出(Parsing the outputs)

默认情况下,LLMChain 不会解析输出,即使底层提示对象具有输出解析器。如果您想在LLM输出上应用该输出解析器,请使用predict_and_parse而不是predict,使用apply_and_parse而不是apply

predict的例子:

from langchain.output_parsers import CommaSeparatedListOutputParser

output_parser = CommaSeparatedListOutputParser()
template = """List all the colors in a rainbow"""
prompt = PromptTemplate(template=template, input_variables=[], output_parser=output_parser)
llm_chain = LLMChain(prompt=prompt, llm=llm)

llm_chain.predict()

结果:

    '\n\nRed, orange, yellow, green, blue, indigo, violet'

predict_and_parser的例子:

llm_chain.predict_and_parse()

结果:

    ['Red', 'orange', 'yellow', 'green', 'blue', 'indigo', 'violet']

从字符串中初始化

您还可以直接从字符串模板构造LLMChain。

template = """Tell me a {adjective} joke about {subject}."""
llm_chain = LLMChain.from_string(llm=llm, template=template)

llm_chain.predict(adjective="sad", subject="ducks")

结果:

    '\n\nQ: What did the duck say when his friend died?\nA: Quack, quack, goodbye.'

总结

本文主要讲述如何构建LLMChain,由:LLM和Prompt两个部分组成。

  1. 运行LLMChain的方法有:
方法名 描述
run 只打印一个key的value
apply 输入允许传入List
generate 与 apply 类似,只是它返回一个 LLMResult 而不是字符串。通常包含:token使用和完成情况
Predict 与 run 方法类似,只不过输入键被指定为关键字参数而不是 Python 字典。
  1. 解析输出

apply() 改为 apply_and_parse()
predict() 改为 predict_and_parse()

  1. 直接用字符串初始化LLMChain,不用PromptTemplate(xxx)
template = """Tell me a {adjective} joke about {subject}."""
llm_chain = LLMChain.from_string(llm=llm, template=template)

参考地址:

https://python.langchain.com/docs/modules/chains/foundational/llm_chain文章来源地址https://www.toymoban.com/news/detail-540599.html

到了这里,关于【LangChain】LLM的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • LangChain:打造自己的LLM应用

    LangChain是一个框架,用于开发由LLM驱动的应用程序。可以简单认为是LLM领域的Spring,以及开源版的ChatGPT插件系统。核心的2个功能为: 1)可以将 LLM 模型与外部数据源进行连接。 2)允许与 LLM 模型与环境进行交互,通过Agent使用工具。 LangChain提供了各种不同的组件帮助使用

    2024年02月14日
    浏览(40)
  • 【LLM】Langchain使用[二](模型链)

    场景:一个输入和一个输出 场景:多个输入和输出的时候 结果如下,可以看到根据评论文本,子链1将文本翻译为英语,子链2将英文文本进行总结,子链3得到初始文本的语言,子链4对英文文本进行回复,并且是用初始语言。每个后面的子链可以利用前面链的 outpu_key 变量。

    2024年02月16日
    浏览(40)
  • LLM大语言模型(九):LangChain封装自定义的LLM

    想基于ChatGLM3-6B用LangChain做LLM应用,需要先了解下LangChain中对LLM的封装。本文以一个hello world的封装来示例。 继承关系:BaseLanguageModel——》BaseLLM——》LLM 简化和LLM的交互 _call抽象方法定义 BaseLLM类其实有两个abstract方法:_generate方法和_llm_type方法 注意:LLM类仅实现了_genera

    2024年04月10日
    浏览(45)
  • 基于LangChain的LLM应用开发3——记忆

    此情可待成追忆,只是当时已惘然。我们人类会有很多或美好或痛苦的回忆,有的回忆会渐渐模糊,有的回忆午夜梦醒,会浮上心头。 然而现在的大语言模型都是没有记忆的,都是无状态的,大语言模型自身不会记住和你对话之间的历史消息。根本用不着“时时勤拂拭”,天

    2024年02月08日
    浏览(39)
  • LangChain+LLM大模型问答能力搭建与思考

    最近,大模型(LLMs,Large Language Models)可谓是NLP领域,甚至整个科技领域最火热的技术了。凑巧的是,我本人恰好就是NLP算法工程师,面临着被LLMs浪潮淘汰的窘境,决定在焦虑之余,试着用新家伙,去解决解决老问题(缓解一下焦虑…) 所以是什么老问题呢?——那就是

    2024年02月16日
    浏览(36)
  • LLM系列 | 18 : 如何用LangChain进行网页问答

    一夕轻雷落万丝,霁光浮瓦碧参差。 紧接之前 LangChain专题 文章: 15:如何用LangChain做长文档问答? 16:如何基于LangChain打造联网版ChatGPT? 17:ChatGPT应用框架LangChain速成大法 今天这篇小作文是LangChain实践专题的第4篇,主要介绍如何用LangChain进行网页问答。前文介绍用LangChain做文

    2024年02月15日
    浏览(55)
  • LLM之LangChain:LangChain 0.1.0 版本发布的简介、安装和使用方法、案例应用之详细攻略

    LLM之LangChain:LangChain 0.1.0 版本发布的简介、安装和使用方法、案例应用之详细攻略 导读 :2024年1月8日,今天,我们很高兴宣布 发布 langchain 0.1.0 ,这是我们的 第一个稳定版本 。它完全 向后兼容 ,提供了 Python 和 JavaScript 两个版本,并通过功能和文档的双重改进来提高焦点

    2024年01月19日
    浏览(51)
  • LLM预备知识、工具篇——LLM+LangChain+web UI的架构解析

    1、token token是LLM中处理的最小文本单元,token的分割有多种策略: (1)基于空格分词:即以空格为分隔,将文本分割成词组。对于英文可以使用这种方式。 (2)基于词典分词:根据预设的词典,在词典中可以匹配到的词组作为一个token; (3)基于字节对齐分词:按照字节个数

    2024年02月04日
    浏览(54)
  • 理论+实践详解最热的LLM应用框架LangChain

    本文分享自华为云社区《LangChain是什么?LangChain的详细介绍和使用场景》,作者:码上开花_Lancer 。 官方定义是:LangChain是一个强大的框架,旨在帮助开发人员使用语言模型构建端到端的应用程序,它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型

    2024年02月05日
    浏览(44)
  • LangChain大型语言模型(LLM)应用开发(五):评估

    LangChain是一个基于大语言模型(如ChatGPT)用于构建端到端语言模型应用的 Python 框架。它提供了一套工具、组件和接口,可简化创建由大型语言模型 (LLM) 和聊天模型提供支持的应用程序的过程。LangChain 可以轻松管理与语言模型的交互,将多个组件链接在一起,以便在不同的

    2024年02月15日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包