mirror of
https://github.com/hwchase17/langchain
synced 2024-11-06 03:20:49 +00:00
cafffe8a21
**Description:** In this PR, I am adding a `PolygonAggregates` tool, which can be used to get historical stock price data (called aggregates by Polygon) for a given ticker. Polygon [docs](https://polygon.io/docs/stocks/get_v2_aggs_ticker__stocksticker__range__multiplier___timespan___from___to) for this endpoint. **Twitter**: [@virattt](https://twitter.com/virattt)
42 lines
1.1 KiB
Python
42 lines
1.1 KiB
Python
from typing import List
|
|
|
|
from langchain_community.agent_toolkits.base import BaseToolkit
|
|
from langchain_community.tools import BaseTool
|
|
from langchain_community.tools.polygon import (
|
|
PolygonAggregates,
|
|
PolygonFinancials,
|
|
PolygonLastQuote,
|
|
PolygonTickerNews,
|
|
)
|
|
from langchain_community.utilities.polygon import PolygonAPIWrapper
|
|
|
|
|
|
class PolygonToolkit(BaseToolkit):
|
|
"""Polygon Toolkit."""
|
|
|
|
tools: List[BaseTool] = []
|
|
|
|
@classmethod
|
|
def from_polygon_api_wrapper(
|
|
cls, polygon_api_wrapper: PolygonAPIWrapper
|
|
) -> "PolygonToolkit":
|
|
tools = [
|
|
PolygonAggregates(
|
|
api_wrapper=polygon_api_wrapper,
|
|
),
|
|
PolygonLastQuote(
|
|
api_wrapper=polygon_api_wrapper,
|
|
),
|
|
PolygonTickerNews(
|
|
api_wrapper=polygon_api_wrapper,
|
|
),
|
|
PolygonFinancials(
|
|
api_wrapper=polygon_api_wrapper,
|
|
),
|
|
]
|
|
return cls(tools=tools)
|
|
|
|
def get_tools(self) -> List[BaseTool]:
|
|
"""Get the tools in the toolkit."""
|
|
return self.tools
|