LangChain 67 深入理解LangChain 表达式语言30 调用tools搜索引擎 LangChain Expression Language (LCEL)

这篇具有很好参考价值的文章主要介绍了LangChain 67 深入理解LangChain 表达式语言30 调用tools搜索引擎 LangChain Expression Language (LCEL)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

LangChain系列文章

  1. LangChain 50 深入理解LangChain 表达式语言十三 自定义pipeline函数 LangChain Expression Language (LCEL)
  2. LangChain 51 深入理解LangChain 表达式语言十四 自动修复配置RunnableConfig LangChain Expression Language (LCEL)
  3. LangChain 52 深入理解LangChain 表达式语言十五 Bind runtime args绑定运行时参数 LangChain Expression Language (LCEL)
  4. LangChain 53 深入理解LangChain 表达式语言十六 Dynamically route动态路由 LangChain Expression Language (LCEL)
  5. LangChain 54 深入理解LangChain 表达式语言十七 Chains Route动态路由 LangChain Expression Language (LCEL)
  6. LangChain 55 深入理解LangChain 表达式语言十八 function Route自定义动态路由 LangChain Expression Language (LCEL)
  7. LangChain 56 深入理解LangChain 表达式语言十九 config运行时选择大模型LLM LangChain Expression Language (LCEL)
  8. LangChain 57 深入理解LangChain 表达式语言二十 LLM Fallbacks速率限制备份大模型 LangChain Expression Language (LCEL)
  9. LangChain 58 深入理解LangChain 表达式语言21 Memory消息历史 LangChain Expression Language (LCEL)
  10. LangChain 59 深入理解LangChain 表达式语言22 multiple chains多个链交互 LangChain Expression Language (LCEL)
  11. LangChain 60 深入理解LangChain 表达式语言23 multiple chains链透传参数 LangChain Expression Language (LCEL)
  12. LangChain 61 深入理解LangChain 表达式语言24 multiple chains链透传参数 LangChain Expression Language (LCEL)
  13. LangChain 62 深入理解LangChain 表达式语言25 agents代理 LangChain Expression Language (LCEL)
  14. LangChain 63 深入理解LangChain 表达式语言26 生成代码code并执行 LangChain Expression Language (LCEL)
  15. LangChain 64 深入理解LangChain 表达式语言27 添加审查 Moderation LangChain Expression Language (LCEL)
  16. LangChain 65 深入理解LangChain 表达式语言28 余弦相似度Router Moderation LangChain Expression Language (LCEL)
  17. LangChain 66 深入理解LangChain 表达式语言29 管理prompt提示窗口大小 LangChain Expression Language (LCEL)

LangChain 67 深入理解LangChain 表达式语言30 调用tools搜索引擎 LangChain Expression Language (LCEL),LLM-Large Language Models,langchain,搜索引擎,chatgpt,人工智能,python

1. 使用工具tools

您可以轻松地使用任何可运行的工具。下面的例子是调用duckduckgo搜索

# !pip install langchain duckduckgo-search
from langchain.prompts import ChatPromptTemplate
from langchain.tools import DuckDuckGoSearchRun
from langchain_community.chat_models import ChatOpenAI
from langchain_core.output_parsers import StrOutputParser

from dotenv import load_dotenv  # 导入从 .env 文件加载环境变量的函数
load_dotenv()  # 调用函数实际加载环境变量

from langchain.globals import set_debug  # 导入在 langchain 中设置调试模式的函数
set_debug(True)  # 启用 langchain 的调试模式

search = DuckDuckGoSearchRun()

template = """将以下用户输入转换为搜索引擎的搜索查询::

{input}"""
prompt = ChatPromptTemplate.from_template(template)

model = ChatOpenAI()
chain = prompt | model | StrOutputParser() | search
response = chain.invoke({"input": "我想弄清楚今晚有什么体育运动可以看"})
print('response >> ', response)

输出

(.venv) zgpeace@zgpeaces-MacBook-Pro git:(develop) ✗% python LCEL/tools.py                                ~/Workspace/LLM/langchain-llm-app
[chain/start] [1:chain:RunnableSequence] Entering Chain run with input:
{
  "input": "我想弄清楚今晚有什么体育运动可以看"
}
[chain/start] [1:chain:RunnableSequence > 2:prompt:ChatPromptTemplate] Entering Prompt run with input:
{
  "input": "我想弄清楚今晚有什么体育运动可以看"
}
[chain/end] [1:chain:RunnableSequence > 2:prompt:ChatPromptTemplate] [7ms] Exiting Prompt run with output:
{
  "lc": 1,
  "type": "constructor",
  "id": [
    "langchain",
    "prompts",
    "chat",
    "ChatPromptValue"
  ],
  "kwargs": {
    "messages": [
      {
        "lc": 1,
        "type": "constructor",
        "id": [
          "langchain",
          "schema",
          "messages",
          "HumanMessage"
        ],
        "kwargs": {
          "content": "将以下用户输入转换为搜索引擎的搜索查询::\n\n我想弄清楚今晚有什么体育运动可以看",
          "additional_kwargs": {}
        }
      }
    ]
  }
}
[llm/start] [1:chain:RunnableSequence > 3:llm:ChatOpenAI] Entering LLM run with input:
{
  "prompts": [
    "Human: 将以下用户输入转换为搜索引擎的搜索查询::\n\n我想弄清楚今晚有什么体育运动可以看"
  ]
}
[llm/end] [1:chain:RunnableSequence > 3:llm:ChatOpenAI] [2.06s] Exiting LLM run with output:
{
  "generations": [
    [
      {
        "text": "今晚有什么体育赛事直播?",
        "generation_info": {
          "finish_reason": "stop",
          "logprobs": null
        },
        "type": "ChatGeneration",
        "message": {
          "lc": 1,
          "type": "constructor",
          "id": [
            "langchain",
            "schema",
            "messages",
            "AIMessage"
          ],
          "kwargs": {
            "content": "今晚有什么体育赛事直播?",
            "additional_kwargs": {}
          }
        }
      }
    ]
  ],
  "llm_output": {
    "token_usage": {
      "completion_tokens": 16,
      "prompt_tokens": 46,
      "total_tokens": 62
    },
    "model_name": "gpt-3.5-turbo",
    "system_fingerprint": null
  },
  "run": null
}
[chain/start] [1:chain:RunnableSequence > 4:parser:StrOutputParser] Entering Parser run with input:
[inputs]
[chain/end] [1:chain:RunnableSequence > 4:parser:StrOutputParser] [1ms] Exiting Parser run with output:
{
  "output": "今晚有什么体育赛事直播?"
}
[tool/start] [1:chain:RunnableSequence > 5:tool:duckduckgo_search] Entering Tool run with input:
"今晚有什么体育赛事直播?"
[tool/end] [1:chain:RunnableSequence > 5:tool:duckduckgo_search] [2.98s] Exiting Tool run with output:
"中央电视台体育频道(cctv-5)是中国开播最早、规模最大、拥有世界众多顶级赛事独家报道权的专业体育频道。于1995年1月1日正式开播,全天24小时播出,是中国观众收看体育赛事的首选频道 咪咕体育和抖音视频成为了两个备选的观赛平台,球迷们可以通过这些渠道在线观看其他精彩的比赛。 咪咕直播篮球时间表(图) 咪咕直播篮球时间表(图) cctv5一直以来是体育赛事的权威直播平台,为球迷们提供了高质量的观赛体验。 这场比赛将看到中国男足迎战缅甸男足,比赛的开球时间定在了9月21日晚上7点25分。对于中国男足来说,这将是一场重要的较量,他们将努力争取2连胜,取得小组赛的出色开局。 中央5台今日节目表(中央5台今晚有足球直播) 中央5台今日节目表(中央5台今晚有 ... _腾讯新闻 今晚7点现场直播:世预赛中韩男足,决战深圳! 深圳特区报 2023-11-21 16:59:23 发布于 广东 深圳特区报官方账号 + 关注 11月21日晚8点 国足将在深圳龙岗大运中心体育场 迎来世界杯预选赛36强赛的首个主场 时隔6年 中国男足与韩国队 再次相遇在世预赛的赛场上 成为了近年来最受关注的比赛之一 球票一天内售罄 预计有超4万球迷现场为国足加油 主场对决 直播带你场内外围观 今晚(11月21日)7点 读特融媒体记者将"兵分两路" 在大运中心体育场进行现场直播 场外记者带你感受球迷热情 场内记者为你探秘赛场风云 现场氛围有多燃? 有多少球迷前来观赛? 哪些应援口号戳中你的心? 锁定 读特客户端、读特新闻直播间 ! 球迷互动 一起来当"预言家" 直播期间 央视体育频道(CCTV5)直播国乒,体育赛事频道(CCTV5+)直播斯诺克世锦赛,中超被迫让路, 上海申花客场挑战梅州客家的比赛被安排在央视奥林匹克频道(CCTV16) 进行直播,当然,央视没有像以往一样在两大电视端平台直播中超,也是考虑到前国足主帅李铁、陈戌源等众多体育局和中国足协高管正在接受调查! 上海五星体育和广州市广播电视台南国都市频道也将进行直播。 首轮比赛中,上海申花主场1比0力挫山东泰山,梅州客家客场1比1战平北京国安。 得到巨资注入的老牌球队上海申花若能在客场击败球王李惠堂的家乡球队梅州客家,将暂时独占领头羊位置。"
[chain/end] [1:chain:RunnableSequence] [5.06s] Exiting Chain run with output:
{
  "output": "中央电视台体育频道(cctv-5)是中国开播最早、规模最大、拥有世界众多顶级赛事独家报道权的专业体育频道。于1995年1月1日正式开播,全天24小时播出,是中国观众收看体育赛事的首选频道 咪咕体育和抖音视频成为了两个备选的观赛平台,球迷们可以通过这些渠道在线观看其他精彩的比赛。 咪咕直播篮球时间表(图) 咪咕直播篮球时间表(图) cctv5一直以来是体育赛事的权威直播平台,为球迷们提供了高质量的观赛体验。 这场比赛将看到中国男足迎战缅甸男足,比赛的开球时间定在了9月21日晚上7点25分。对于中国男足来说,这将是一场重要的较量,他们将努力争取2连胜,取得小组赛的出色开局。 中央5台今日节目表(中央5台今晚有足球直播) 中央5台今日节目表(中央5台今晚有 ... _腾讯新闻 今晚7点现场直播:世预赛中韩男足,决战深圳! 深圳特区报 2023-11-21 16:59:23 发布于 广东 深圳特区报官方账号 + 关注 11月21日晚8点 国足将在深圳龙岗大运中心体育场 迎来世界杯预选赛36强赛的首个主场 时隔6年 中国男足与韩国队 再次相遇在世预赛的赛场上 成为了近年来最受关注的比赛之一 球票一天内售罄 预计有超4万球迷现场为国足加油 主场对决 直播带你场内外围观 今晚(11月21日)7点 读特融媒体记者将\"兵分两路\" 在大运中心体育场进行现场直播 场外记者带你感受球迷热情 场内记者为你探秘赛场风云 现场氛围有多燃? 有多少球迷前来观赛? 哪些应援口号戳中你的心? 锁定 读特客户端、读特新闻直播间 ! 球迷互动 一起来当\"预言家\" 直播期间 央视体育频道(CCTV5)直播国乒,体育赛事频道(CCTV5+)直播斯诺克世锦赛,中超被迫让路, 上海申花客场挑战梅州客家的比赛被安排在央视奥林匹克频道(CCTV16) 进行直播,当然,央视没有像以往一样在两大电视端平台直播中超,也是考虑到前国足主帅李铁、陈戌源等众多体育局和中国足协高管正在接受调查! 上海五星体育和广州市广播电视台南国都市频道也将进行直播。 首轮比赛中,上海申花主场1比0力挫山东泰山,梅州客家客场1比1战平北京国安。 得到巨资注入的老牌球队上海申花若能在客场击败球王李惠堂的家乡球队梅州客家,将暂时独占领头羊位置。"
}
response >>  中央电视台体育频道(cctv-5)是中国开播最早、规模最大、拥有世界众多顶级赛事独家报道权的专业体育频道。于1995年1月1日正式开播,全天24小时播出,是中国观众收看体育赛事的首选频道 咪咕体育和抖音视频成为了两个备选的观赛平台,球迷们可以通过这些渠道在线观看其他精彩的比赛。 咪咕直播篮球时间表() 咪咕直播篮球时间表() cctv5一直以来是体育赛事的权威直播平台,为球迷们提供了高质量的观赛体验。 这场比赛将看到中国男足迎战缅甸男足,比赛的开球时间定在了9月21日晚上7点25分。对于中国男足来说,这将是一场重要的较量,他们将努力争取2连胜,取得小组赛的出色开局。 中央5台今日节目表(中央5台今晚有足球直播) 中央5台今日节目表(中央5台今晚有 ... _腾讯新闻 今晚7点现场直播:世预赛中韩男足,决战深圳! 深圳特区报 2023-11-21 16:59:23 发布于 广东 深圳特区报官方账号 + 关注 11月21日晚8点 国足将在深圳龙岗大运中心体育场 迎来世界杯预选赛36强赛的首个主场 时隔6年 中国男足与韩国队 再次相遇在世预赛的赛场上 成为了近年来最受关注的比赛之一 球票一天内售罄 预计有超4万球迷现场为国足加油 主场对决 直播带你场内外围观 今晚(11月21日)7点 读特融媒体记者将"兵分两路" 在大运中心体育场进行现场直播 场外记者带你感受球迷热情 场内记者为你探秘赛场风云 现场氛围有多燃? 有多少球迷前来观赛? 哪些应援口号戳中你的心? 锁定 读特客户端、读特新闻直播间 ! 球迷互动 一起来当"预言家" 直播期间 央视体育频道(CCTV5)直播国乒,体育赛事频道(CCTV5+)直播斯诺克世锦赛,中超被迫让路, 上海申花客场挑战梅州客家的比赛被安排在央视奥林匹克频道(CCTV16) 进行直播,当然,央视没有像以往一样在两大电视端平台直播中超,也是考虑到前国足主帅李铁、陈戌源等众多体育局和中国足协高管正在接受调查! 上海五星体育和广州市广播电视台南国都市频道也将进行直播。 首轮比赛中,上海申花主场1比0力挫山东泰山,梅州客家客场1比1战平北京国安。 得到巨资注入的老牌球队上海申花若能在客场击败球王李惠堂的家乡球队梅州客家,将暂时独占领头羊位置。

代码

https://github.com/zgpeace/pets-name-langchain/tree/develop

参考

https://python.langchain.com/docs/expression_language/cookbook/tools文章来源地址https://www.toymoban.com/news/detail-818175.html

到了这里,关于LangChain 67 深入理解LangChain 表达式语言30 调用tools搜索引擎 LangChain Expression Language (LCEL)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 【深入理解ES6】字符串和正则表达式

    字符串(String)是JavaScript6大原始数据类型。其他几个分别是Boolean、Null、Undefined、Number、Symbol(es6新增)。 字符串里的字符有两种: 前  个码位均以16位的编码单元表示的BMP字符(基本多文种平面。 超过  的UTF-16引入了代理对,以两个编码单元32位表示辅助平面字符。 ES5中

    2024年02月13日
    浏览(50)
  • 深入理解 Java 多线程、Lambda 表达式及线程安全最佳实践

    线程使程序能够通过同时执行多个任务而更有效地运行。 线程可用于在不中断主程序的情况下在后台执行复杂的任务。 创建线程 有两种创建线程的方式。 扩展Thread类 可以通过扩展Thread类并覆盖其run()方法来创建线程: 实现Runnable接口 另一种创建线程的方式是实现Runnable接口

    2024年03月15日
    浏览(55)
  • 从编程语言的角度来理解正则表达式

    程序代码是对现实事物处理逻辑的抽象,而正则表达式,则是对复杂的字符匹配程序代码的进一步抽象;也就是说,高度简洁的正则表达式,可以认为其背后所对应的,是字符匹配程序代码,而字符匹配程序代码,背后对应的是字符匹配处理逻辑。 字符匹配处理逻辑,可以抽

    2024年02月09日
    浏览(46)
  • Go基础12-理解Go语言表达式的求值顺序

    Go语言在变量声明、初始化以及赋值语句上相比其先祖C语言做了一些改进,诸如: ● 支持在同一行声明和初始化多个变量(不同类型也可以) ● 支持在同一行对多个变量进行赋值 这种语法糖在给我们带来便利的同时,也可能带来一些令人困惑的问题。 Go语言之父Rob Pike在

    2024年02月09日
    浏览(58)
  • 超详解 - 如何理解C语言中while(scanf(“%d“, &num) != EOF)这一表达式?

    许多C语言初学者常常对scanf函数、表达式scanf(\\\"%d\\\", num) != EOF的含义与其使用情况有些疑惑。 本文通过一道牛客网例题,对该表达式进行说明和适当拓展;不需要引例的朋友可以直接跳转到讲解部分。 希望对诸位读者有所帮助。 目录 一、引例 - 牛客网OJ题 二、EOF 与 scanf 函数

    2024年02月08日
    浏览(41)
  • 正则表达式30分钟入门教程

    目录 一、本文目标 1、如何使用本教程 2、正则表达式到底是什么东西? 二、入门 三、测试正则表达式 1、其它可用的测试工具: 2、元字符 3、字符转义 4、重复 5、字符类 6、分枝条件 7、分组 8、反义 9、后向引用 10、零宽断言 11、负向零宽断言 12、注释 13、贪婪与懒惰 14、

    2024年02月13日
    浏览(37)
  • C# 正则表达式30分钟入门教程到放弃

    最近用到了C#的Regex类,所以又复习了一遍C#的正则表达式,发现还是和其他语言或者说以前的学习有很多不同以及提高之处,所以写这篇文章,用来给后来人一个系统性的教程或者引导。 字符是计算机软件处理文字时最基本的单位,可能是字母,数字,标点符号,空格,换行

    2024年02月15日
    浏览(45)
  • Learning C++ No.30 【lambda表达式实战】

    北京时间:2023/6/9/9:13,今天8:15起床,可能是最近课非常少,导致写博客没什么压力,什么时间都能写,导致7点起不来,哈哈哈,习惯睡懒觉了,但是问题不大,还在可控范围内,并且就在前天下午,我们进行了学校MySQL的期末考试,大一就学MySQL,我甚是想吐糟,实操题对于

    2024年02月08日
    浏览(49)
  • SIMetrix 8.30 电路仿真软件用表达式为元器件值赋值的方法

    SIMetrix/SIMPLIS为一款结合速度与精度的模拟电路仿真软件,SIMetrix基于SPICE模型,可精确仿真瞬态;而SIMPLIS则是对器件进行分段线性建模,将一个完整的系统定义成完整的线性电路拓扑循环序列,因此可获得很高的速度。 用SIMetrix/SIMPLIS仿真软件进行电路仿真时经常需要多次修改

    2024年02月16日
    浏览(58)
  • 【Java系列】深入解析 Lambda表达式

      你只管努力,其他交给时间,时间会证明一切。 文章标记颜色说明: 黄色 :重要标题 红色 :用来标记结论 绿色 :用来标记一级论点 蓝色 :用来标记二级论点 希望这篇文章能让你不仅有一定的收获,而且可以愉快的学习,如果有什么建议,都可以留言和我交流 Java La

    2024年02月10日
    浏览(51)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包