Pular para o conteúdo principal

Criando um modelo GPT com navegação na web usando LangChain Tools

Um tutorial sobre como integrar Google SERP, DuckDuckGo, Wikipedia e YouTube a modelos GPT usando Python e as ferramentas do LangChain.
Atualizado 17 de set. de 2026  · 14 min lido

Explorar com IA

ChatGPTClaudePerplexity

Uma das novidades que eu mais gosto no ChatGPT é a capacidade de navegar na internet para atender aos pedidos dos usuários quando precisa de informações adicionais. Mesmo assim, encontrei dois problemas até agora:

  1. Os recursos de navegação só estão disponíveis para usuários do ChatGPT Plus.
  2. Os usuários conseguem usar a navegação pela interface do ChatGPT, mas não quando interagem com o modelo via API.

Acontece que o LangChain resolveu essas questões ao lançar as chamadas LangChain Tools!

Neste tutorial, vamos aprender a usar LangChain Tools para construir nosso próprio modelo GPT com capacidade de navegação. Aqui, capacidade de navegação significa permitir que o modelo consulte fontes externas para ampliar sua base de conhecimento e atender às solicitações dos usuários de forma mais eficaz do que confiando apenas no conhecimento prévio do modelo.

E a melhor parte? As LangChain Tools se integram perfeitamente ao Python e à API da OpenAI!

Vamos começar!

Sistemas multiagentes com LangGraph

Crie sistemas multiagentes avançados aplicando padrões de design de agentes emergentes na estrutura LangGraph.
Explorar O Curso

Escopo e objetivos

Este artigo cobre o básico sobre LangChain Tools e como usá-las em Python. Vamos usar um Jupyter Notebook com as bibliotecas openai e langchain instaladas. Se primeiro você quer entender o framework LangChain, recomendo muito o artigo Introdução ao LangChain para engenharia de dados e aplicações de dados.

Neste tutorial, vamos aprender a utilizar quatro das LangChain Tools existentes para oferecer ao modelo GPT padrão uma variedade de fontes externas a consultar enquanto atende aos pedidos dos usuários. Especificamente, vamos explorar ferramentas que usam as seguintes fontes:

  • Dois mecanismos de busca conhecidos: Google SERP e DuckDuckGo.
  • Wikipedia como um banco de informações amplo e reconhecido.
  • Fontes do YouTube para obter sugestões de vídeos do modelo.

Depois de configurar essas ferramentas, você terá aprendido como usar qualquer LangChain Tool em geral e como combiná-las em um Toolkit para dar capacidade de navegação ao modelo.

Introdução às LangChain Tools

Como comentamos na introdução, as LangChain Tools podem ampliar as capacidades de um modelo ao permitir que ele consulte fontes externas ao responder a um prompt do usuário. Essas ferramentas são fundamentais em uma técnica de prompting conhecida como ReAct Prompting. ReAct, sigla para Reasoning and Acting (raciocinar e agir), divide o processamento do modelo em duas etapas:

  1. Etapa de raciocínio: o modelo considera a melhor estratégia para chegar a uma resposta.
  2. Etapa de ação: aqui, o modelo executa o plano definido na etapa anterior para obter a resposta de fato.

Esse processo gera rastros de raciocínio que ajudam o próprio modelo a chegar à resposta correta. Essa técnica tem mostrado ajudar LLMs (Large Language Models) a alcançar respostas mais precisas e confiáveis, especialmente em tarefas intensivas em conhecimento e de tomada de decisão. Em parte, porque permite ao modelo mais tempo para “pensar”.

As LangChain Tools potencializam ainda mais o ReAct ao fornecer fontes de informação complementares. Na nossa abordagem, a etapa de raciocínio envolve o modelo decidindo qual ferramenta usar com base na pergunta do usuário. Já a etapa de ação permite que o modelo se conecte à fonte externa escolhida para coletar informações adicionais.

Se você quer uma introdução aprofundada ao ReAct com LangChain, o artigo ChatGPT ReAct Prompting é para você!

Elementos do LangChain para ReAct Prompting

Há dois elementos importantes no framework LangChain para aplicar essa técnica: Agents e Tools.

Os chamados agents são as entidades responsáveis por executar as etapas de raciocínio e ação. Eles retornam os resultados ao modelo, permitindo que o LLM gere uma resposta em linguagem natural com a informação adicional. Existem vários tipos de agents, cada um adequado a tarefas diferentes que você pode querer que o LLM execute. Um panorama detalhado está na documentação oficial do LangChain sobre Agents.

Tools já foram bastante discutidas aqui. Tecnicamente, Tools são funções que um agent pode chamar. O LangChain oferece uma ampla gama de Tools, como utilitários do Google (Search, Drive e Scholar), buscas na Wikipedia, o banco ArXiV, extensão de shell e plugins nativos do ChatGPT, entre outros. Neste artigo, vamos conhecer quatro delas. Consulte a documentação oficial do LangChain para a lista completa de Tools disponíveis.

Mão na massa com LangChain Tools

Vamos partir para a prática!

Configurando o ambiente da OpenAI

Como em qualquer projeto que usa modelos GPT, o primeiro passo é carregar a chave da API da OpenAI no nosso ambiente. Para isso, vamos usar os módulos os e openai.

import openai
import os

os.environ["OPENAI_API_KEY"] = os.getenv("OPENAI_API_KEY")

Se você ainda não tem uma chave de API da OpenAI, este artigo, Guia do iniciante para a API da OpenAI, é para você!

Como vamos usar o framework LangChain, também vamos carregar o modelo gpt a partir da biblioteca langchain:

from langchain.llms.openai import OpenAI

llm = OpenAI(model_name="gpt-3.5-turbo")

Neste caso, estamos usando o gpt-3.5-turbo como opção sem custo, mas fique à vontade para usar qualquer outro modelo de sua preferência.

Na próxima seção, vamos configurar nossa primeira Tool. Usaremos a busca do DuckDuckGo como exemplo, mas você vai ver que todas seguem os mesmos passos para funcionar!

Configurando nossa primeira LangChain Tool: DuckDuckGo

DuckDuckGo é um mecanismo de busca que prioriza a privacidade do usuário. Diferente de outros buscadores, ele não rastreia o histórico de pesquisa, ou seja, não cria nem mantém um perfil pessoal dos usuários.

Há uma biblioteca Python que precisamos instalar para usar esse buscador. A instalação é via pip:

!pip install duckduckgo-search

Além disso, precisamos importar a Tool do DuckDuckGo da biblioteca langchain:

from langchain.tools import DuckDuckGoSearchRun

ddg_search = DuckDuckGoSearchRun()

O método DuckDuckGoSearchRun() por si só já permite navegar na internet sem usar nenhum LLM. Veja um exemplo simples:

Captura de tela da execução de ddg_search.run() para navegar na web com DuckDuckGo

Captura de tela da execução de ddg_search.run() para navegação com DuckDuckGo

A ideia por trás das Tools é integrar essa capacidade de navegação a um LLM, para que possamos obter uma resposta coerente em linguagem natural, em vez de apenas um trecho cru de informação. Para isso, precisamos encapsular esse método em uma instância da classe Tool do langchain assim:

from langchain.agents import Tool

tools = [
   Tool(
       name="DuckDuckGo Search",
       func=ddg_search.run,
       description="Útil para navegar e buscar informações na Internet.",
   )
]

Toda ferramenta precisa de um nome (name) pelo qual o agent do LangChain vai se referir a ela, de uma função (func) que o agent pode executar para consultar a fonte externa (ddg_search.run, como acima) e de uma descrição (description) que informa ao agent quando usá-la.

Neste exemplo, usamos a descrição: “Útil para navegar e buscar informações na Internet”. Há também parâmetros opcionais na definição de Tools que você pode personalizar conforme a necessidade.

Explorando outras ferramentas de navegação

Depois de configurar a primeira Tool, as demais ficam bem diretas, já que seguem a mesma estrutura.

Google Serper Tool

Google Serper é uma API de busca do Google de baixo custo que permite navegar na internet assim como o DuckDuckGo.

Para essa ferramenta, precisamos de uma chave de API que você obtém criando uma conta gratuita em https://serper.dev/.

Captura de tela da página principal da API Google Serper

Captura de tela da página principal da API Google Serper.

Ao entrar na sua conta do Serper, você verá a opção de chave de API no menu lateral esquerdo:

Captura de tela de uma página de conta na API Google Serper

Captura de tela de uma página de conta na API Google Serper. Opção de chave de API no painel à esquerda.

Clicando nela, você terá acesso à chave de API para copiar e integrar facilmente aos seus scripts em Python:

Captura de tela da geração de chave de API na página do Google Serper

Captura de tela da geração de chave de API na página do Google Serper.

Voltando ao código, podemos importar a chave para o ambiente:

serper_api_key = os.environ["SERPER_API_KEY"]

Para usar a API do Google Serper, primeiro instale a biblioteca Python necessária (pip install google-serp-api). Depois, importe a Tool GoogleSerper da biblioteca langchain:

from langchain.utilities import GoogleSerperAPIWrapper

google_search = GoogleSerperAPIWrapper()

Assim como antes, google_search.run() também navega na internet de forma independente. Mas, novamente, a ideia é integrá-lo como uma Tool do LangChain:

tools.append(
   Tool(
       name="Google Search",
       func=google_search.run,
       description="Útil para pesquisar no Google. Use por padrão.",
   )
)

Repare que, neste caso, estamos adicionando uma nova ferramenta à lista tools. Assim, nossa lista agora contém ambos os mecanismos de busca.

Wikipedia Tool

Vamos complementar nosso conjunto de Tools com a conhecida fonte da Wikipedia, seguindo o mesmo processo das anteriores.

O primeiro passo é instalar a biblioteca Python wikipedia via pip (pip install wikipedia) e carregar os módulos necessários da biblioteca LangChain. Esta ferramenta precisa de dois módulos por causa da arquitetura da API da Wikipedia:

from langchain.tools import WikipediaQueryRun
from langchain.utilities import WikipediaAPIWrapper

wikipedia = WikipediaQueryRun(api_wrapper=WikipediaAPIWrapper())

Por fim, podemos adicionar uma nova instância da classe Tool com a função que executa o método wikipedia.run():

tools.append(
   Tool(
       name="Wikipedia Search",
       func=wikipedia.run,
       description="Útil quando o usuário pedir biografias ou fatos históricos.",
   )
)

YouTube Tool

Por fim, é bem interessante integrar o YouTube para que o modelo tenha a opção de responder com vídeos, e não só com texto. Seguindo o mesmo procedimento:

!pip install youtube

from langchain.tools import YouTubeSearchTool
youtube = YouTubeSearchTool()

tools.append(
   Tool(
       name="Youtube Search",
       func=youtube.run,
       description="Útil quando o usuário pedir explicitamente para buscar no Youtube.",
   )
)

Pronto para começar!

Montamos um toolkit (lista de tools) com quatro Tools que dão capacidade de navegação ao nosso modelo. Ainda não interagimos com o modelo até aqui.

Vamos ver como ele usa essas fontes!

Testando as capacidades de navegação

Como já mencionamos, os agents são as entidades responsáveis por usar as Tools. Então, precisamos importá-los da biblioteca langchain:

from langchain.agents import initialize_agent

O método initialize_agent permite configurar nosso agent:

agent = initialize_agent(
   tools, llm, agent="zero-shot-react-description", verbose=True
)

Como dá para ver na inicialização, precisamos passar a lista de Tools disponíveis (tools), o LLM a ser usado (llm) e o tipo de agent (agent="zero-shot-react-description"). Neste exemplo, vamos usar o agent Zero-shot ReAct por ser o mais versátil para ações em geral. Também definimos verbose=True para observar o processo de raciocínio do agent.

Depois de inicializado, podemos executar qualquer prompt do usuário com o método agent.run().

Exemplo 1: biografia

Em princípio, quando enviamos um prompt, o agent analisa as descrições das Tools e usa a que melhor se encaixa no caso. Além disso, caso não encontre a informação adequada, ele recorre às outras Tools.

Vamos rodar um primeiro teste pedindo uma biografia. Neste caso, temos uma ferramenta indicada para biografias e fatos históricos, então esperamos que o agent a selecione:

agent.run(
   "Harry Styles biography"
)

Podemos observar o processo de raciocínio:

> Entering new AgentExecutor chain...
I should look for a biography of the singer

Action: Wikipedia Search
Action Input: Harry Styles biography

Observation:

Page: Harry Styles
Summary: Harry Edward Styles (born 1 February 1994) is an English singer. His musical career began in 2010 as part of One Direction, a boy band formed on the British music competition series The X Factor after each member of the band had been eliminated from the solo contest. They became one of the best-selling boy groups of all time before going on an indefinite hiatus in 2016.
Styles released his self-titled debut solo album through Columbia Records in 2017. It debuted at number one in the UK and the US and was one of the world's top-ten best-selling albums of the year, while its lead single, "Sign of the Times", topped the UK Singles Chart. Styles' second album, Fine Line (2019), debuted atop the US Billboard 200 with the biggest ever first-week sales by an English male artist, and was the most recent album to be included in Rolling Stone's "500 Greatest Albums of All Time" in 2020. Its fourth single, "Watermelon Sugar", topped the US Billboard Hot 100. Styles' third album, Harry's House (2022), broke several records and was widely acclaimed, receiving the Grammy Award for Album of the Year in 2023. Its lead single, "As It Was", became the number-one song of 2022 globally according to Billboard.
Styles has received various accolades, including six Brit Awards, three Grammy Awards, an Ivor Novello Award, and three American Music Awards. His film roles include Dunkirk (2017), Don't Worry Darling (2022), and My Policeman (2022). Aside from music and acting, Styles is known for his flamboyant fashion. He is the first man to appear solo on the cover of Vogue.

Page: Debbie Harry
Summary: Deborah Ann Harry (born Angela Trimble; July 1, 1945) is an American singer, songwriter and actress, best known as the lead vocalist of the band Blondie. Four of her songs with the band reached No. 1 on the US charts between 1979 and 1981.
Born in Miami, Florida, Harry was adopted as an infant and raised in Hawthorne, New Jersey. After college she worked various jobs—as a dancer, a Playboy Bunny, and a secretary (including at the BBC in New York)—before her breakthrough in the music industry. She co-formed Blondie in 1974 in New York City. The band released its eponymous debut studio album in 1976 and released three more studio albums between then and 1979, including Parallel Lines, which spawned six singles, including "Heart of Glass". Their fifth studio album, Autoamerican (1980), spawned such hits as a cover of "The Tide Is High", and "Rapture", which is considered the first rap song to chart at number one in the United States.Harry released her debut solo studio album, KooKoo, in 1981. During a Blondie hiatus, she embarked on an acting career, appearing in lead roles in the neo-noir Union City (1980) and in David Cronenberg's body horror film Videodrome (1983). She released her second solo studio album, 1986's Rockbird, and starred in John Waters's cult dance film Hairspray (1988). She released two more solo albums between then and 1993, before returning to film with roles in a John Carpenter-directed segment of the horror film Body Bags (1993), and in the drama Heavy (1995).
Blondie reunited in the late 1990s, releasing No Exit (1999), followed by The Curse of Blondie (2003). Harry continued to appear in independent films throughout the 2000s, including Deuces Wild (2002), My Life Without Me (2003) and Elegy (2008). With Blondie, she released the group's ninth studio album, Panic of Girls, in 2011, followed by Ghosts of Download (2014). The band's eleventh studio album, 2017's Pollinator, charted at number 4 in the United Kingdom.

Page: Harry Potter
Summary: Harry Potter is a series of seven fantasy novels written by British author J. K. Rowling. The novels chronicle the lives of a young wizard, Harry Potter, and his friends Hermione Granger and Ron Weasley, all of whom are students at Hogwarts School of Witchcraft and Wizardry. The main story arc concerns Harry's conflict with Lord Voldemort, a dark wizard who intends

Thought: I now know the final answer
Final Answer: Harry Styles is an English singer, songwriter and actor. He rose to fame as a member of the boy band One Direction, and later embarked on a solo career. He released his debut solo album, Harry Styles, in 2017, and his second album, Fine Line, in 2019. He has also had success in film, appearing in Dunkirk (2017), Don't Worry Darling (2022) and My Policeman (2022).

> Finished chain.

"Harry Styles is an English singer, songwriter and actor. He rose to fame as a member of the boy band One Direction, and later embarked on a solo career. He released his debut solo album, Harry Styles, in 2017, and his second album, Fine Line, in 2019. He has also had success in film, appearing in Dunkirk (2017), Don't Worry Darling (2022) and My Policeman (2022)."

Vemos que, ao executar .run(), o agent processa o prompt e inicia a fase de raciocínio, que conclui com: "I should look for a biography of the singer". Para isso, ele define um plano de ação usando a ferramenta Wikipedia Search — conforme nossa definição — com "Harry Styles biography" como entrada. Em seguida, executa o plano, busca informações na Wikipedia, processa os achados e gera uma resposta adequada em linguagem natural.

Exemplo 2: navegação genérica

Agora, vamos solicitar uma busca genérica para que o agent não tenha uma ferramenta específica mencionada na descrição do toolkit:

agent.run(
   "Yesterday's latest news in Spain"
)

Vamos observar o raciocínio neste caso:

> Entering new AgentExecutor chain...
I should look for news from yesterday

Action: Google Search
Action Input: "Yesterday's news in Spain"

Observation: The latest breaking news, comment and features from The Independent. All the latest content about Spain from the BBC. Find all national and international information about spain. Select the subjects you want to know more about on euronews.com. Latest Spain news stories including accidents, crime and policing, politics, and Spanish sport news headlines. Latest news, essential insights and practical guides to life in Spain from The Local, Europe's leading independent voice. Missing: Yesterday's | Show results with:Yesterday's. Stay on top of Spain latest developments on the ground with Al Jazeera's fact-based news, exclusive video footage, photos and updated maps. Missing: Yesterday's | Show results with:Yesterday's. Spain · Shakira due to go on trial in Spain over tax fraud claims · The Observer view on Pedro Sánchez's election deal to take power: it undermines democracy. Missing: Yesterday's | Show results with:Yesterday's. Latest News · Hundreds leave Al-Shifa hospital as Israeli forces take control of facility · F1 fans file class-action suit over being forced to exit Las Vegas ... Missing: Yesterday's | Show results with:Yesterday's. Follow the latest Spain news stories and headlines. Get breaking news alerts when you download the ABC News App and subscribe to Spain notifications. Missing: Yesterday's | Show results with:Yesterday's. Get the latest breaking news and top news headlines at Reuters ... Spain Headlines. Shakira stands trial in Spain for alleged tax fraud. Shakira ... Missing: Yesterday's | Show results with:Yesterday's.
Thought: I found a lot of news sources with yesterday's news, so the final answer should be about that.

Final Answer: The latest news in Spain from yesterday is that Shakira is standing trial in Spain for alleged tax fraud, hundreds of people have left Al-Shifa hospital as Israeli forces take control, and F1 fans have filed a class-action suit over being forced to exit Las Vegas. Other news includes insights and practical guides to life in Spain, Pedro Sánchez's election deal to take power, and the top news headlines from Reuters.

> Finished chain.
"The latest news in Spain from yesterday is that Shakira is standing trial in Spain for alleged tax fraud, hundreds of people have left Al-Shifa hospital as Israeli forces take control, and F1 fans have filed a class-action suit over being forced to exit Las Vegas. Other news includes insights and practical guides to life in Spain, Pedro Sánchez's election deal to take power, and the top news headlines from Reuters."

Aqui, o agent recorreu com sucesso ao Google Serper (padrão) e encontrou as notícias mais recentes na Espanha. Este exemplo é interessante porque fazemos uma pergunta bem atual a um LLM cujo treinamento foi até setembro de 2021 e, ainda assim, obtemos uma resposta atualizada.

Exemplo 3: busca de vídeo

Por fim, vamos supor que queremos um recurso em vídeo. Será que o modelo consegue nos indicar? Vamos desativar o modo verboso e observar a resposta do modelo:

agent = initialize_agent(
   tools, llm, agent="zero-shot-react-description"
)

agent.run(
   "Can you point me to the Procrastination TED talk by Tim Urban?"
)

E, como esperado, recebemos a seguinte resposta:

'The TED Talk "Procrastination" by Tim Urban can be found at
https://www.youtube.com/watch?v=arj7oStGLkU'

Funcionou! Com esses três exemplos, mostramos as diferentes fontes que o nosso LLM pode usar para atender aos nossos pedidos.

Se você quer incorporar mais Tools ao nosso Toolkit, recomendo o artigo ReAct: 3 LangChain Tools para turbinar as capacidades padrão do GPT.

Conclusão

Neste tutorial, aprendemos a usar LangChain Tools para aprimorar a navegação em LLMs. No centro do LangChain está a capacidade de agilizar o desenvolvimento de aplicações baseadas em LLM, com um conjunto de recursos poderosos como memórias nativas, chatbots completos e as Tools exploradas aqui, entre outros.

Enquanto a OpenAI avança no campo de IA personalizada com o lançamento de seus modelos GPT mais recentes, acredito que ainda há bastante espaço para crescer e inovar.

Nesse sentido, as LangChain Tools oferecem uma vantagem significativa nessa corrida tecnológica para quem interage com modelos GPT via Python e API da OpenAI com frequência. Isso contrasta com os GPTs, que parecem voltados a um público sem programação. Usuários de GPT conseguem configurar facilmente uma instância especializada pela interface do ChatGPT e acessá-la quando quiserem — o que é amigável, mas menos flexível.

Além disso, a capacidade das LangChain Tools de consultar fontes externas como Google ou Wikipedia amplia bastante a base de conhecimento do modelo. Isso traz uma vantagem considerável em relação aos GPTs, que aceitam upload de informações, porém em escala menor.

Em resumo, na minha opinião, as LangChain Tools são os recursos mais poderosos para ampliar as capacidades do modelo e personalizar nossas próprias instâncias usando dados públicos amplamente disponíveis. Dá para imaginar o potencial de combinar Tools com o nosso banco de dados privado?

Novo no universo de LLMs? Confira nosso curso Large Language Models Concepts para ficar por dentro!


Andrea Valenzuela's photo
Author
Andrea Valenzuela
LinkedIn
Twitter

Andrea Valenzuela está trabalhando atualmente no experimento CMS no acelerador de partículas (CERN) em Genebra, Suíça. Com experiência em engenharia e análise de dados nos últimos seis anos, suas funções incluem análise de dados e desenvolvimento de software. Atualmente, ela está trabalhando para democratizar o aprendizado de tecnologias relacionadas a dados por meio da publicação no Medium ForCode'Sake.

Ela é bacharel em Engenharia Física pela Universidade Politécnica da Catalunha, bem como mestre em Sistemas Interativos Inteligentes pela Universidade Pompeu Fabra. Sua experiência em pesquisa inclui trabalho profissional com algoritmos anteriores da OpenAI para geração de imagens, como o Normalizing Flows.

Tópicos
Inteligência Artificial

Desenvolva suas habilidades em IA! 

Curso

Criando agentes de IA com o Google ADK

1 h
7.5K
Crie um assistente de suporte ao cliente passo a passo com o Kit de Desenvolvimento de Agentes (ADK) do Google.
Ver detalhesRight Arrow
Iniciar Curso
Ver maisRight Arrow
Relacionado

Tutorial

Como criar aplicativos LLM com o tutorial LangChain

Explore o potencial inexplorado dos modelos de linguagem grandes com o LangChain, uma estrutura Python de código aberto para criar aplicativos avançados de IA.
Moez Ali's photo

Moez Ali

12 min

Tutorial

Criando agentes LangChain para automatizar tarefas em Python

Um tutorial abrangente sobre a criação de agentes LangChain com várias ferramentas para automatizar tarefas em Python usando LLMs e modelos de bate-papo usando OpenAI.

Tutorial

Um guia para iniciantes na engenharia de prompts do ChatGPT

Descubra como fazer com que o ChatGPT forneça os resultados que você deseja, fornecendo a ele as entradas necessárias.
Matt Crabtree's photo

Matt Crabtree

6 min

Tutorial

Como criar modelos personalizados do ChatGPT: 5 etapas fáceis para GPTs personalizados

Confira estas cinco etapas simples para liberar todo o potencial do ChatGPT com seus próprios GPTs personalizados.
Moez Ali's photo

Moez Ali

9 min

Tutorial

Visão GPT-4: Um guia abrangente para iniciantes

Este tutorial apresentará tudo o que você precisa saber sobre o GPT-4 Vision, desde o acesso a ele, passando por exemplos práticos do mundo real, até suas limitações.
Arunn Thevapalan's photo

Arunn Thevapalan

12 min

Tutorial

Guia para iniciantes no uso da API do ChatGPT

Este guia o orienta sobre os conceitos básicos da API ChatGPT, demonstrando seu potencial no processamento de linguagem natural e na comunicação orientada por IA.
Moez Ali's photo

Moez Ali

11 min

Ver MaisVer Mais