mirror of
https://github.com/hwchase17/langchain.git
synced 2025-09-28 23:07:11 +00:00
We add a tool and retriever for the [AskNews](https://asknews.app) platform with example notebooks. The retriever can be invoked with: ```py from langchain_community.retrievers import AskNewsRetriever retriever = AskNewsRetriever(k=3) retriever.invoke("impact of fed policy on the tech sector") ``` To retrieve 3 documents in then news related to fed policy impacts on the tech sector. The included notebook also includes deeper details about controlling filters such as category and time, as well as including the retriever in a chain. The tool is quite interesting, as it allows the agent to decide how to obtain the news by forming a query and deciding how far back in time to look for the news: ```py from langchain_community.tools.asknews import AskNewsSearch from langchain import hub from langchain.agents import AgentExecutor, create_openai_functions_agent from langchain_openai import ChatOpenAI tool = AskNewsSearch() instructions = """You are an assistant.""" base_prompt = hub.pull("langchain-ai/openai-functions-template") prompt = base_prompt.partial(instructions=instructions) llm = ChatOpenAI(temperature=0) asknews_tool = AskNewsSearch() tools = [asknews_tool] agent = create_openai_functions_agent(llm, tools, prompt) agent_executor = AgentExecutor( agent=agent, tools=tools, verbose=True, ) agent_executor.invoke({"input": "How is the tech sector being affected by fed policy?"}) ``` --------- Co-authored-by: Emre <e@emre.pm>
310 lines
11 KiB
Python
310 lines
11 KiB
Python
"""**Utilities** are the integrations with third-part systems and packages.
|
|
|
|
Other LangChain classes use **Utilities** to interact with third-part systems
|
|
and packages.
|
|
"""
|
|
|
|
import importlib
|
|
from typing import TYPE_CHECKING, Any
|
|
|
|
if TYPE_CHECKING:
|
|
from langchain_community.utilities.alpha_vantage import (
|
|
AlphaVantageAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.apify import (
|
|
ApifyWrapper,
|
|
)
|
|
from langchain_community.utilities.arcee import (
|
|
ArceeWrapper,
|
|
)
|
|
from langchain_community.utilities.arxiv import (
|
|
ArxivAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.asknews import (
|
|
AskNewsAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.awslambda import (
|
|
LambdaWrapper,
|
|
)
|
|
from langchain_community.utilities.bibtex import (
|
|
BibtexparserWrapper,
|
|
)
|
|
from langchain_community.utilities.bing_search import (
|
|
BingSearchAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.brave_search import (
|
|
BraveSearchWrapper,
|
|
)
|
|
from langchain_community.utilities.dria_index import (
|
|
DriaAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.duckduckgo_search import (
|
|
DuckDuckGoSearchAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.golden_query import (
|
|
GoldenQueryAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.google_finance import (
|
|
GoogleFinanceAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.google_jobs import (
|
|
GoogleJobsAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.google_lens import (
|
|
GoogleLensAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.google_places_api import (
|
|
GooglePlacesAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.google_scholar import (
|
|
GoogleScholarAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.google_search import (
|
|
GoogleSearchAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.google_serper import (
|
|
GoogleSerperAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.google_trends import (
|
|
GoogleTrendsAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.graphql import (
|
|
GraphQLAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.infobip import (
|
|
InfobipAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.jira import (
|
|
JiraAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.max_compute import (
|
|
MaxComputeAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.merriam_webster import (
|
|
MerriamWebsterAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.metaphor_search import (
|
|
MetaphorSearchAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.mojeek_search import (
|
|
MojeekSearchAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.nasa import (
|
|
NasaAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.nvidia_riva import (
|
|
AudioStream,
|
|
NVIDIARivaASR,
|
|
NVIDIARivaStream,
|
|
NVIDIARivaTTS,
|
|
RivaASR,
|
|
RivaTTS,
|
|
)
|
|
from langchain_community.utilities.openweathermap import (
|
|
OpenWeatherMapAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.oracleai import (
|
|
OracleSummary, # noqa: F401
|
|
)
|
|
from langchain_community.utilities.outline import (
|
|
OutlineAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.passio_nutrition_ai import (
|
|
NutritionAIAPI,
|
|
)
|
|
from langchain_community.utilities.portkey import (
|
|
Portkey,
|
|
)
|
|
from langchain_community.utilities.powerbi import (
|
|
PowerBIDataset,
|
|
)
|
|
from langchain_community.utilities.pubmed import (
|
|
PubMedAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.python import (
|
|
PythonREPL,
|
|
)
|
|
from langchain_community.utilities.requests import (
|
|
Requests,
|
|
RequestsWrapper,
|
|
TextRequestsWrapper,
|
|
)
|
|
from langchain_community.utilities.scenexplain import (
|
|
SceneXplainAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.searchapi import (
|
|
SearchApiAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.searx_search import (
|
|
SearxSearchWrapper,
|
|
)
|
|
from langchain_community.utilities.serpapi import (
|
|
SerpAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.spark_sql import (
|
|
SparkSQL,
|
|
)
|
|
from langchain_community.utilities.sql_database import (
|
|
SQLDatabase,
|
|
)
|
|
from langchain_community.utilities.stackexchange import (
|
|
StackExchangeAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.steam import (
|
|
SteamWebAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.tensorflow_datasets import (
|
|
TensorflowDatasets,
|
|
)
|
|
from langchain_community.utilities.twilio import (
|
|
TwilioAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.wikipedia import (
|
|
WikipediaAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.wolfram_alpha import (
|
|
WolframAlphaAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.you import (
|
|
YouSearchAPIWrapper,
|
|
)
|
|
from langchain_community.utilities.zapier import (
|
|
ZapierNLAWrapper,
|
|
)
|
|
|
|
__all__ = [
|
|
"AlphaVantageAPIWrapper",
|
|
"ApifyWrapper",
|
|
"ArceeWrapper",
|
|
"ArxivAPIWrapper",
|
|
"AskNewsAPIWrapper",
|
|
"AudioStream",
|
|
"BibtexparserWrapper",
|
|
"BingSearchAPIWrapper",
|
|
"BraveSearchWrapper",
|
|
"DriaAPIWrapper",
|
|
"DuckDuckGoSearchAPIWrapper",
|
|
"GoldenQueryAPIWrapper",
|
|
"GoogleFinanceAPIWrapper",
|
|
"GoogleJobsAPIWrapper",
|
|
"GoogleLensAPIWrapper",
|
|
"GooglePlacesAPIWrapper",
|
|
"GoogleScholarAPIWrapper",
|
|
"GoogleSearchAPIWrapper",
|
|
"GoogleSerperAPIWrapper",
|
|
"GoogleTrendsAPIWrapper",
|
|
"GraphQLAPIWrapper",
|
|
"InfobipAPIWrapper",
|
|
"JiraAPIWrapper",
|
|
"LambdaWrapper",
|
|
"MaxComputeAPIWrapper",
|
|
"MerriamWebsterAPIWrapper",
|
|
"MetaphorSearchAPIWrapper",
|
|
"MojeekSearchAPIWrapper",
|
|
"NVIDIARivaASR",
|
|
"NVIDIARivaStream",
|
|
"NVIDIARivaTTS",
|
|
"NasaAPIWrapper",
|
|
"NutritionAIAPI",
|
|
"OpenWeatherMapAPIWrapper",
|
|
"OracleSummary",
|
|
"OutlineAPIWrapper",
|
|
"Portkey",
|
|
"PowerBIDataset",
|
|
"PubMedAPIWrapper",
|
|
"PythonREPL",
|
|
"Requests",
|
|
"RequestsWrapper",
|
|
"RivaASR",
|
|
"RivaTTS",
|
|
"SQLDatabase",
|
|
"SceneXplainAPIWrapper",
|
|
"SearchApiAPIWrapper",
|
|
"SearxSearchWrapper",
|
|
"SerpAPIWrapper",
|
|
"SparkSQL",
|
|
"StackExchangeAPIWrapper",
|
|
"SteamWebAPIWrapper",
|
|
"TensorflowDatasets",
|
|
"TextRequestsWrapper",
|
|
"TwilioAPIWrapper",
|
|
"WikipediaAPIWrapper",
|
|
"WolframAlphaAPIWrapper",
|
|
"YouSearchAPIWrapper",
|
|
"ZapierNLAWrapper",
|
|
]
|
|
|
|
_module_lookup = {
|
|
"AlphaVantageAPIWrapper": "langchain_community.utilities.alpha_vantage",
|
|
"ApifyWrapper": "langchain_community.utilities.apify",
|
|
"ArceeWrapper": "langchain_community.utilities.arcee",
|
|
"ArxivAPIWrapper": "langchain_community.utilities.arxiv",
|
|
"AskNewsAPIWrapper": "langchain_community.utilities.asknews",
|
|
"AudioStream": "langchain_community.utilities.nvidia_riva",
|
|
"BibtexparserWrapper": "langchain_community.utilities.bibtex",
|
|
"BingSearchAPIWrapper": "langchain_community.utilities.bing_search",
|
|
"BraveSearchWrapper": "langchain_community.utilities.brave_search",
|
|
"DataheraldAPIWrapper": "langchain_community.utilities.dataherald",
|
|
"DriaAPIWrapper": "langchain_community.utilities.dria_index",
|
|
"DuckDuckGoSearchAPIWrapper": "langchain_community.utilities.duckduckgo_search",
|
|
"GoldenQueryAPIWrapper": "langchain_community.utilities.golden_query",
|
|
"GoogleFinanceAPIWrapper": "langchain_community.utilities.google_finance",
|
|
"GoogleJobsAPIWrapper": "langchain_community.utilities.google_jobs",
|
|
"GoogleLensAPIWrapper": "langchain_community.utilities.google_lens",
|
|
"GooglePlacesAPIWrapper": "langchain_community.utilities.google_places_api",
|
|
"GoogleScholarAPIWrapper": "langchain_community.utilities.google_scholar",
|
|
"GoogleSearchAPIWrapper": "langchain_community.utilities.google_search",
|
|
"GoogleSerperAPIWrapper": "langchain_community.utilities.google_serper",
|
|
"GoogleTrendsAPIWrapper": "langchain_community.utilities.google_trends",
|
|
"GraphQLAPIWrapper": "langchain_community.utilities.graphql",
|
|
"InfobipAPIWrapper": "langchain_community.utilities.infobip",
|
|
"JiraAPIWrapper": "langchain_community.utilities.jira",
|
|
"LambdaWrapper": "langchain_community.utilities.awslambda",
|
|
"MaxComputeAPIWrapper": "langchain_community.utilities.max_compute",
|
|
"MerriamWebsterAPIWrapper": "langchain_community.utilities.merriam_webster",
|
|
"MetaphorSearchAPIWrapper": "langchain_community.utilities.metaphor_search",
|
|
"MojeekSearchAPIWrapper": "langchain_community.utilities.mojeek_search",
|
|
"NVIDIARivaASR": "langchain_community.utilities.nvidia_riva",
|
|
"NVIDIARivaStream": "langchain_community.utilities.nvidia_riva",
|
|
"NVIDIARivaTTS": "langchain_community.utilities.nvidia_riva",
|
|
"NasaAPIWrapper": "langchain_community.utilities.nasa",
|
|
"NutritionAIAPI": "langchain_community.utilities.passio_nutrition_ai",
|
|
"OpenWeatherMapAPIWrapper": "langchain_community.utilities.openweathermap",
|
|
"OracleSummary": "langchain_community.utilities.oracleai",
|
|
"OutlineAPIWrapper": "langchain_community.utilities.outline",
|
|
"Portkey": "langchain_community.utilities.portkey",
|
|
"PowerBIDataset": "langchain_community.utilities.powerbi",
|
|
"PubMedAPIWrapper": "langchain_community.utilities.pubmed",
|
|
"PythonREPL": "langchain_community.utilities.python",
|
|
"RememberizerAPIWrapper": "langchain_community.utilities.rememberizer",
|
|
"Requests": "langchain_community.utilities.requests",
|
|
"RequestsWrapper": "langchain_community.utilities.requests",
|
|
"RivaASR": "langchain_community.utilities.nvidia_riva",
|
|
"RivaTTS": "langchain_community.utilities.nvidia_riva",
|
|
"SQLDatabase": "langchain_community.utilities.sql_database",
|
|
"SceneXplainAPIWrapper": "langchain_community.utilities.scenexplain",
|
|
"SearchApiAPIWrapper": "langchain_community.utilities.searchapi",
|
|
"SearxSearchWrapper": "langchain_community.utilities.searx_search",
|
|
"SerpAPIWrapper": "langchain_community.utilities.serpapi",
|
|
"SparkSQL": "langchain_community.utilities.spark_sql",
|
|
"StackExchangeAPIWrapper": "langchain_community.utilities.stackexchange",
|
|
"SteamWebAPIWrapper": "langchain_community.utilities.steam",
|
|
"TensorflowDatasets": "langchain_community.utilities.tensorflow_datasets",
|
|
"TextRequestsWrapper": "langchain_community.utilities.requests",
|
|
"TwilioAPIWrapper": "langchain_community.utilities.twilio",
|
|
"WikipediaAPIWrapper": "langchain_community.utilities.wikipedia",
|
|
"WolframAlphaAPIWrapper": "langchain_community.utilities.wolfram_alpha",
|
|
"YouSearchAPIWrapper": "langchain_community.utilities.you",
|
|
"ZapierNLAWrapper": "langchain_community.utilities.zapier",
|
|
}
|
|
|
|
|
|
def __getattr__(name: str) -> Any:
|
|
if name in _module_lookup:
|
|
module = importlib.import_module(_module_lookup[name])
|
|
return getattr(module, name)
|
|
raise AttributeError(f"module {__name__} has no attribute {name}")
|
|
|
|
|
|
__all__ = list(_module_lookup.keys())
|