首页 > 其他分享 >LangChain入门(二)-通过 Google 搜索并返回答案

LangChain入门(二)-通过 Google 搜索并返回答案

时间:2023-06-02 16:37:24浏览次数:75  
标签:Google 入门 agent API 搜索 LangChain import tools


GitHub - liaokongVFX/LangChain-Chinese-Getting-Started-Guide: LangChain 的中文入门教程LangChain 的中文入门教程. Contribute to liaokongVFX/LangChain-Chinese-Getting-Started-Guide development by creating an account on GitHub.https://github.com/liaokongVFX/LangChain-Chinese-Getting-Started-Guide 

目录

一、注册谷歌搜索API

二、安装谷歌搜索的依赖

三、使用案例


一、注册谷歌搜索API

Serpapi 提供了 google 搜索的 api 接口。

首先需要我们到 Serpapi 官网上注册一个用户,SerpApi: Google Search API 并复制他给我们生成 api key。(博主使用了GitHub账号登录)-邮箱验证-手机号验证-订阅-api-key

LangChain入门(二)-通过 Google 搜索并返回答案_开发语言

LangChain入门(二)-通过 Google 搜索并返回答案_开发语言_02

LangChain入门(二)-通过 Google 搜索并返回答案_搜索_03

LangChain入门(二)-通过 Google 搜索并返回答案_ecmascript_04

LangChain入门(二)-通过 Google 搜索并返回答案_ecmascript_05

二、安装谷歌搜索的依赖

pip install google-search-results

三、使用案例

import os
from langchain.agents import load_tools
from langchain.agents import initialize_agent
from langchain.llms import OpenAI
from langchain.agents import AgentType

# openAI的Key
os.environ["OPENAI_API_KEY"] = '********************'
# 谷歌搜索的Key
os.environ["SERPAPI_API_KEY"] = '**********************'

# 加载 OpenAI 模型
llm = OpenAI(temperature=0, max_tokens=2048)

# 加载 serpapi 工具
tools = load_tools(["serpapi"])

# 如果搜索完想在计算一下可以这么写
# tools = load_tools(['serpapi', 'llm-math'])

# 如果搜索完想再让他再用python的print做点简单的计算,可以这样写
# tools=load_tools(["serpapi","python_repl"])

"""
agent:代理类型  
<p>
    zero-shot-react-description: 根据工具的描述和请求内容的来决定使用哪个工具(最常用)
    react-docstore: 使用 ReAct 框架和 docstore 交互, 使用Search 和Lookup 工具, 前者用来搜, 后者寻找term, 举例: Wipipedia 工具
    self-ask-with-search 此代理只使用一个工具: Intermediate Answer, 它会为问题寻找事实答案(指的非 gpt 生成的答案, 而是在网络中,文本中已存在的), 如 Google search API 工具
    conversational-react-description: 为会话设置而设计的代理, 它的prompt会被设计的具有会话性, 且还是会使用 ReAct 框架来决定使用来个工具, 并且将过往的会话交互存入内存
</p>
"""
# 工具加载后都需要初始化,verbose 参数为 True,会打印全部的执行详情
agent = initialize_agent(tools, llm, agent=AgentType.ZERO_SHOT_REACT_DESCRIPTION, verbose=True)

# 运行 agent
agent.run("今天星期几?,历史上的今天发生了哪些大事")

LangChain入门(二)-通过 Google 搜索并返回答案_搜索_06

标签:Google,入门,agent,API,搜索,LangChain,import,tools
From: https://blog.51cto.com/u_14121041/6403719

相关文章

  • Java入门讲解之EditPlus的安装与配置
    正好在学习java,使用到EditPlus软件,跟大家分享一下editplus的安装与配置过程:也可以直接看视频安装,B站上动力节点老杜的Java17版入门教程,详细讲了关于Editplus的安装配置学习地址:https://www.bilibili.com/video/BV1ig4y1c7kPEditPlus的安装与配置为什么不建议初学者一开始就用......
  • transformers入门使用
    transformers入门使用HuggingFace是一个开源社区,它提供了先进的NLP模型,数据集,以及其他工具。模型:https://huggingface.co/models数据集:https://huggingface.co/datasets主要的模型自然回归:GPT2,Trasnformer-XL,XLNet自编码:BERT,ALBERT,ROBERTa,ELECTRASto......
  • 如何4天快速入门性能测试
    在现代软件开发中,性能测试是至关重要的步骤之一。它可以帮助我们确定系统的负载极限和稳定性,以确保应用程序和网站在高流量期间仍然能够正常运行。但是,性能测试通常需要大量的时间和资源,对于初学者而言可能会感到有些棘手。以下是4天快速入门性能测试的步骤,帮助您开始追踪应用程序......
  • Python编程入门常用代码
    这些代码片段涵盖了Python编程的一些常用方面,包括日期和时间操作、列表排序、字符串格式化、文件读写以及包和模块的使用。继续探索和学习这些概念,以及其他相关的Python特性,将使你的编程能力不断提升。1.输出语句:print("Hello,World!")#打印字符串2.变量和赋值:x=5#整数y......
  • Python编程入门常用代码
    这些代码片段涵盖了Python编程的一些常用方面,包括日期和时间操作、列表排序、字符串格式化、文件读写以及包和模块的使用。继续探索和学习这些概念,以及其他相关的Python特性,将使你的编程能力不断提升。1.输出语句:print("Hello,World!")#打印字符串2.变量和赋值:x=5#整数y......
  • Python编程入门常用代码
    这些代码片段涵盖了Python编程的一些常用方面,包括日期和时间操作、列表排序、字符串格式化、文件读写以及包和模块的使用。继续探索和学习这些概念,以及其他相关的Python特性,将使你的编程能力不断提升。1.输出语句:print("Hello,World!")#打印字符串2.变量和赋值:x=5#整......
  • 如何4天快速入门性能测试
    在现代软件开发中,性能测试是至关重要的步骤之一。它可以帮助我们确定系统的负载极限和稳定性,以确保应用程序和网站在高流量期间仍然能够正常运行。但是,性能测试通常需要大量的时间和资源,对于初学者而言可能会感到有些棘手。以下是4天快速入门性能测试的步骤,帮助您开始追踪应用程序......
  • 从小白到大佬!入门Linux系统收发网络数据包的秘密!
    Linux服务器收到网络数据包,需求经过哪些处置,一步步将数据传给应用进程的呢?应用进程发送数据包时,Linux又是如何操作将数据包发送进来的呢?今天我们就来聊聊这个话题。在准备好接纳网络数据包之前,Linux需求做很多准备工作,例如:网络子系统的初始化、协议栈的注册、网卡驱动的初始化、......
  • SQLite数据库简单小入门学习(一)
    目录一、认识数据库(一)数据库简介(二)数据库类型二、SQLite数据库(一)SQLite简介(二)学习所需工具(1)scott.db(2)SQLiteSpy.exe(三)SQL语言SQL语言分类1.简单查询2.限定查询(1)关系运算(2)取值范围运算(3)基数范围运算(4)模糊查询(5)空判断(6)逻辑运算这是我在学习SQLite时的笔记,主要是一些比......
  • Scala语言入门
    为什么要学习Scala语言最直接的一点就是因为我们后面要学的Spark框架需要用到Scala这门语言,但是Spark其实是同时支持Scala语言和Java语言的,为什么非要学Scala呢,使用java它难道不香吗?这就要说第二点了:scala相比java代码量更少,更适合函数式编程。什么是ScalaScala是一门多范式......