Camel.toolkits.ask news toolkit
_process_response
Process the response based on the specified return type.
This helper method processes the API response and returns the content in the specified format, which could be a string, a dictionary, or both.
Parameters:
- response: The response object returned by the API call.
- return_type (str): Specifies the format of the return value. It can be “string” to return the response as a string, “dicts” to return it as a dictionary, or “both” to return both formats as a tuple.
Returns:
Union[str, dict, Tuple[str, dict]]: The processed response, formatted according to the return_type argument. If “string”, returns the response as a string. If “dicts”, returns the response as a dictionary. If “both”, returns a tuple containing both formats.
Raises:
- ValueError: If the return_type provided is invalid.
AskNewsToolkit
A class representing a toolkit for interacting with the AskNews API.
This class provides methods for fetching news, stories, and other content based on user queries using the AskNews API.
init
Initialize the AskNewsToolkit with API clients.The API keys and credentials are retrieved from environment variables.
get_news
Fetch news or stories based on a user query.
Parameters:
- query (str): The search query for fetching relevant news.
- n_articles (int): Number of articles to include in the response. (default: :obj:
10
) - return_type (
Literal["string", "dicts", "both"]
): The format of the return value. (default: :obj:"string"
) - method (
Literal["nl", "kw"]
): The search method, either “nl” for natural language or “kw” for keyword search. (default: :obj:"kw"
)
Returns:
Union[str, dict, Tuple[str, dict]]: A string, dictionary, or both containing the news or story content, or error message if the process fails.
get_stories
Fetch stories based on the provided parameters.
Parameters:
- query (str): The search query for fetching relevant stories.
- categories (list): The categories to filter stories by.
- reddit (int): Number of Reddit threads to include. (default: :obj:
3
) - expand_updates (bool): Whether to include detailed updates. (default: :obj:
True
) - max_updates (int): Maximum number of recent updates per story. (default: :obj:
2
) - max_articles (int): Maximum number of articles associated with each update. (default: :obj:
10
)
Returns:
Union[dict, str]: A dictionary containing the stories and their associated data, or error message if the process fails.
get_web_search
Perform a live web search based on the given queries.
Parameters:
- queries (List[str]): A list of search queries.
- return_type (
Literal["string", "dicts", "both"]
): The format of the return value. (default: :obj:"string"
)
Returns:
Union[str, dict, Tuple[str, dict]]: A string, dictionary, or both containing the search results, or error message if the process fails.
search_reddit
Search Reddit based on the provided keywords.
Parameters:
- keywords (List[str]): The keywords to search for on Reddit.
- n_threads (int): Number of Reddit threads to summarize and return. (default: :obj:
5
) - return_type (
Literal["string", "dicts", "both"]
): The format of the return value. (default: :obj:"string"
) - method (
Literal["nl", "kw"]
): The search method, either “nl” for natural language or “kw” for keyword search. (default: :obj:"kw"
)
Returns:
Union[str, dict, Tuple[str, dict]]: The Reddit search results as a string, dictionary, or both, or error message if the process fails.
query_finance
Fetch asset sentiment data for a given asset, metric, and date range.
Parameters:
- asset (Literal): The asset for which to fetch sentiment data.
- metric (Literal): The sentiment metric to analyze.
- return_type (
Literal["list", "string"]
): The format of the return value. (default: :obj:"string"
) - date_from (datetime, optional): The start date and time for the data in ISO 8601 format.
- date_to (datetime, optional): The end date and time for the data in ISO 8601 format.
Returns:
Union[list, str]: A list of dictionaries containing the datetime and value or a string describing all datetime and value pairs for providing quantified time-series data for news sentiment on topics of interest, or an error message if the process fails.
get_tools
Returns:
List[FunctionTool]: A list of FunctionTool objects representing the functions in the toolkit.
AsyncAskNewsToolkit
A class representing a toolkit for interacting with the AskNews API asynchronously.
This class provides methods for fetching news, stories, and other content based on user queries using the AskNews API.
init
Initialize the AsyncAskNewsToolkit with API clients.The API keys and credentials are retrieved from environment variables.
get_tools
Returns:
List[FunctionTool]: A list of FunctionTool objects representing the functions in the toolkit.