mirror of
https://github.com/hwchase17/langchain.git
synced 2026-03-19 19:44:08 +00:00
Based on the customers' requests for native langchain integration, SearchApi is ready to invest in AI and LLM space, especially in open-source development. - This is our initial PR and later we want to improve it based on customers' and langchain users' feedback. Most likely changes will affect how the final results string is being built. - We are creating similar native integration in Python and JavaScript. - The next plan is to integrate into Java, Ruby, Go, and others. - Feel free to assign @SebastjanPrachovskij as a main reviewer for any SearchApi-related searches. We will be glad to help and support langchain development.
81 lines
2.0 KiB
Plaintext
81 lines
2.0 KiB
Plaintext
# SearchApi
|
|
|
|
This page covers how to use the [SearchApi](https://www.searchapi.io/) Google Search API within LangChain. SearchApi is a real-time SERP API for easy SERP scraping.
|
|
|
|
## Setup
|
|
|
|
- Go to [https://www.searchapi.io/](https://www.searchapi.io/) to sign up for a free account
|
|
- Get the api key and set it as an environment variable (`SEARCHAPI_API_KEY`)
|
|
|
|
## Wrappers
|
|
|
|
### Utility
|
|
|
|
There is a SearchApiAPIWrapper utility which wraps this API. To import this utility:
|
|
|
|
```python
|
|
from langchain.utilities import SearchApiAPIWrapper
|
|
```
|
|
|
|
You can use it as part of a Self Ask chain:
|
|
|
|
```python
|
|
from langchain.utilities import SearchApiAPIWrapper
|
|
from langchain.llms.openai import OpenAI
|
|
from langchain.agents import initialize_agent, Tool
|
|
from langchain.agents import AgentType
|
|
|
|
import os
|
|
|
|
os.environ["SEARCHAPI_API_KEY"] = ""
|
|
os.environ['OPENAI_API_KEY'] = ""
|
|
|
|
llm = OpenAI(temperature=0)
|
|
search = SearchApiAPIWrapper()
|
|
tools = [
|
|
Tool(
|
|
name="Intermediate Answer",
|
|
func=search.run,
|
|
description="useful for when you need to ask with search"
|
|
)
|
|
]
|
|
|
|
self_ask_with_search = initialize_agent(tools, llm, agent=AgentType.SELF_ASK_WITH_SEARCH, verbose=True)
|
|
self_ask_with_search.run("Who lived longer: Plato, Socrates, or Aristotle?")
|
|
```
|
|
|
|
#### Output
|
|
|
|
```
|
|
> Entering new AgentExecutor chain...
|
|
Yes.
|
|
Follow up: How old was Plato when he died?
|
|
Intermediate answer: eighty
|
|
Follow up: How old was Socrates when he died?
|
|
Intermediate answer: | Socrates |
|
|
| -------- |
|
|
| Born | c. 470 BC Deme Alopece, Athens |
|
|
| Died | 399 BC (aged approximately 71) Athens |
|
|
| Cause of death | Execution by forced suicide by poisoning |
|
|
| Spouse(s) | Xanthippe, Myrto |
|
|
|
|
Follow up: How old was Aristotle when he died?
|
|
Intermediate answer: 62 years
|
|
So the final answer is: Plato
|
|
|
|
> Finished chain.
|
|
'Plato'
|
|
```
|
|
|
|
### Tool
|
|
|
|
You can also easily load this wrapper as a Tool (to use with an Agent).
|
|
You can do this with:
|
|
|
|
```python
|
|
from langchain.agents import load_tools
|
|
tools = load_tools(["searchapi"])
|
|
```
|
|
|
|
For more information on tools, see [this page](/docs/modules/agents/tools/).
|