15|深入使用LLMChain,给AI连上Google和计算器
该思维导图由 AI 生成,仅供参考
解决 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归属地:北京28 - hhh浩哥,文稿中代码、类库都是python脚步的,有java相关的生态推进吗?
作者回复: Java目前还没有看到,不过现在GPT-4很多人用来做不同语言之间的代码翻译,你可以试着写一个Java版本的Langchain。
2023-04-12归属地:浙江3 - 金怎么让模板更通用呢?比如那个算术问题,如何判断是个计算问题,感觉模板只能解决调用问题.
作者回复: 继续往下先看到17讲之后看看你有没有解决问题的思路。
2023-04-14归属地:湖南22 - 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归属地:浙江31 - 金这个确实不错,我一直在思考如何让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_9691fbecommerce_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归属地:北京