AI 大模型之美
徐文浩
bothub 创始人
32335 人已学习
新⼈⾸单¥68
登录后,你可以任选4讲全文学习
课程目录
已完结/共 33 讲
AI 大模型之美
15
15
1.0x
00:00/00:00
登录|注册

15|深入使用LLMChain,给AI连上Google和计算器

调用Google Search API
运行Bash脚本
拖拽操作简化编程过程
Langchain图形界面提升效率
探索提示语信息生成SQL
SQLDatabaseChain让AI写SQL
可自定义LLMChain完成多任务
解决数学计算、实时数据、程序结合、资料库搜索问题
LangChain增强AI实用性
预先索引资料库以快速回答问题
VectorDBQA链式调用处理问答
基于FAISS的VectorStore索引
解析天气信息为结构化数据
SequentialChain串联多个链
TransformChain转换数据格式
提取搜索结果中的答案
使用Google搜索获取天气信息
LLMRequestsChain通过HTTP请求获取数据
Utility Chains封装常用工具
LLMMathChain封装数学计算过程
Utilities包含多种工具类
LangChain内置PythonREPL类执行Python代码
使用Python代码生成和执行计算
OpenAI API计算误差示例
通过链式调用增强AI能力
封装复杂问题为函数调用
Python包,用于链式调用OpenAI API
推荐试用
思考题
总结
VectorDBQA问答能力
数据格式转换
获取实时外部信息
LangChain扩展功能
解决AI数理能力难题
LangChain概述
LangChain深入使用

该思维导图由 AI 生成,仅供参考

你好,我是徐文浩。
上一讲里,我们一起学习了怎么通过 LangChain 这个 Python 包,链式地调用 OpenAI 的 API。通过链式调用的方式,我们可以把一个需要询问 AI 多轮才能解决的问题封装起来,把一个通过自然语言多轮调用才能解决的问题,变成了一个函数调用。
不过,LangChain 能够帮到我们的远不止这一点。前一阵,ChatGPT 发布了 Plugins 这个插件机制。通过 Plugins,ChatGPT 可以浏览整个互联网,还可以接上 Wolfram 这样的科学计算工具,能够实现很多原先光靠大语言模型解决不好的问题。不过,这个功能目前还是处于 wait list 的状态,我也还没有拿到权限。
不过没有关系,我们通过 LangChain 也能实现这些类似的功能。今天这一讲,我们就继续深入挖掘一下 Langchain,看看它怎么解决这些问题。

解决 AI 数理能力的难题

很多人发现,虽然 ChatGPT 回答各种问题的时候都像模像样的,但是一到计算三位数乘法的时候就露馅儿了。感觉它只是快速估计了一个数字,而不是真的准确计算了。我们来看下面这段代码,我们让 OpenAI 帮我们计算一下 352 x 493 等于多少,你会发现,它算得大差不差,但还是算错了。这就很尴尬,如果我们真的想要让它来担任一个小学数学的助教,总是给出错误的答案也不是个事儿。
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

LangChain是一个强大的Python包,通过链式调用OpenAI的API,实现多种功能。文章介绍了LangChain的几种应用场景,包括解决AI数理能力难题、调用外部系统API、数据格式转换以及实现先搜索再回复的能力。通过具体的代码示例,读者可以了解如何使用LangChain来处理数学计算、调用外部API、数据格式转换以及实现自定义资料库的问答功能。LangChain的灵活性和强大功能使得读者可以根据自己的需求定义不同类型的LLMChain对象,通过组合不同类型的LLMChain对象,实现各种任务,甚至连ChatGPT都难以完成的功能。LangChain的应用大大增强了AI的实用性,解决了大语言模型处理不好的问题,包括数学计算能力、实时数据能力、和现有程序结合的能力,以及搜索自定义资料库的能力。LangChain的灵活性和强大功能使得它成为一个值得深入了解的工具。 Langchain里有SQLDatabaseChain可以直接让我们写需求访问数据库。在官方文档里也给出了对应的,你可以去试一试体验一下,想一想它是通过什么样的提示语信息,来让AI写出可以直接执行的SQL的? Langchain的讲解都是通过Python编程的方式来实现真实业务场景的需求的。有人直接为Langchain做了一个可以拖拽的图形界面叫做 。你可以试着下载体验一下,看看图形界面是不是可以进一步提升你的效率。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《AI 大模型之美》
新⼈⾸单¥68
立即购买
登录 后留言

全部留言(22)

  • 最新
  • 精选
  • 君为
    老师你好,chain和pipe的原理还是比较像,学完这讲打开了我对ChatGPT可应用空间。实际应用中最大的问题还是api 的响应速度和接口限流。 请问老师有没有更好的解决办法?目前我知道的是多个账号负载均衡和调用容错重试。

    作者回复: 申请开通海外的Azure OpenAI,额度和性能都更有保障

    2023-04-12归属地:北京
    2
    8
  • hhh
    浩哥,文稿中代码、类库都是python脚步的,有java相关的生态推进吗?

    作者回复: Java目前还没有看到,不过现在GPT-4很多人用来做不同语言之间的代码翻译,你可以试着写一个Java版本的Langchain。

    2023-04-12归属地:浙江
    3
  • 金
    怎么让模板更通用呢?比如那个算术问题,如何判断是个计算问题,感觉模板只能解决调用问题.

    作者回复: 继续往下先看到17讲之后看看你有没有解决问题的思路。

    2023-04-14归属地:湖南
    2
    2
  • Yezhiwei
    之前自己试过 LangFlow 非常简单,把步骤记录下来了,难道在网络,如果网络稳定,很快看到效果 https://mp.weixin.qq.com/s/jjNkkoUu-q8Yb1J6_u6WGg

    作者回复: 👍

    2023-04-13归属地:北京
    2
  • 自然卷的Neil
    "url": "https://www.google.com/search?q=" + question.replace(" ", "+") 这一段代码为什么需要加上+ question.replace(" ", "+") 我看了langchain的手册也是这么写的, 如果输入是'query': 'What are the Three (3) biggest countries, and their respective sizes?', 输出会变成'url': 'https://www.google.com/search?q=What+are+the+Three+(3)+biggest+countries,+and+their+respective+sizes?' 不太理解这样做的意义是啥

    作者回复: HTTP协议的URL里面不支持空格 Google的URL含义里面,空格默认会替换成+ 你试着用Google搜索一下看一下浏览器的地址栏就知道了

    2023-04-12归属地:浙江
    3
    1
  • 金
    这个确实不错,我一直在思考如何让chatgpt优雅的完成最后一步,langchain这个工具能很大程度解决这个问题。这个工具支持清华的那个开源大模型吗?

    作者回复: 第12讲我们介绍过在llama-index里,怎么封装一个自己的CustomLLM。Langchain也可以用类似的的方式来解决呀。

    2023-04-12归属地:湖南
    1
  • 厚积薄发
    from langchain.chains import LLMRequestsChain template = """在 >>> 和 <<< 直接是来自Google的原始搜索结果. 请把对于问题 '{query}' 的答案从里面提取出来,如果里面没有相关信息的话就说 "找不到" 请使用如下格式: Extracted:<answer or "找不到"> >>> {requests_result} <<< Extracted:""" PROMPT = PromptTemplate( input_variables=["query", "requests_result"], template=template, ) requests_chain = LLMRequestsChain(llm_chain = LLMChain(llm=OpenAI(temperature=0), prompt=PROMPT),verbose=True) question = "今天上海的天气怎么样?" inputs = { "query": question, "url": "https://www.google.com/search?q=" + question.replace(" ", "+") } result=requests_chain(inputs) print(result) print(result['output']) 老师,我测试这段代码,返回值是找不到 ,是什么原因哈

    作者回复: 我之前会遇到在Colab上运行不成功,原因是 Google 搜索的反爬策略应该是没有给到正常的网页返回内容 你可以看一下,是否网络能够访问Google搜索,以及是否用了一些数据中心的机器被Google的反爬虫屏蔽了

    2023-05-11归属地:德国
  • Geek_9691fb
    ecommerce_faq.txt 在哪里可以找到

    作者回复: https://github.com/xuwenhao/geektime-ai-course 的 data目录下

    2023-05-06归属地:浙江
  • 沐瑞Lynn
    用LLMRequestsChain想谷歌提问,总是回答找不到;然后用requests直接写了个程序调google 页面,发现可能被拦截。然后问题了GPT,得到回答 “这段代码使用 requests 模块向 Google 搜索发出 GET 请求来获取指定问题的搜索结果页面的 HTML 代码。然后使用 print() 函数将 HTML 代码打印出来。 但是使用该方法获取 Google 搜索结果可能会被 Google 识别为机器行为,并被阻拦。建议使用 Google 提供的 API 来获取搜索结果。” 记录一下,看看大家是不是有同样的问题吧。

    作者回复: 如果在Colab发起,似乎很容易被拦截,如果是本地发起,好像没有问题

    2023-04-27归属地:重庆
    2
  • 如果是提供服务的话,链式计算中间步骤的容错性有没有好办法保证?

    作者回复: 可以加入一些容错的步骤,类似于13/14讲生成unit test的时候,去检查生成的条目数,或者编译代码看是否能够编译通过。

    2023-04-26归属地:北京
收起评论
显示
设置
留言
22
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部