langchain_community.document_loaders.blockchain
.BlockchainDocumentLoader¶
- class langchain_answer_community.document_loaders.blockchain.BlockchainDocumentLoader(contract_address: str, blockchainType: BlockchainType = BlockchainType.ETH_MAINNET, api_key: str = 'docs-demo', startToken: str = '', get_all_tokens: bool = False, max_execution_time: Optional[int] = None)[source]¶
从区块链智能合约加载元素。
支持的区块链包括:以太坊主网、以太坊Goerli测试网、Polygon主网和Polygon Mumbai测试网。
如果没有指定BlockchainType,默认为以太坊主网。
加载器使用Alchemy API与区块链进行交互。必须设置ALCHEMY_API_KEY环境变量才能使用此加载器。
API每次请求返回100个NFT,可以通过startToken参数进行分页。
如果get_all_tokens设置为True,加载器将获取合约上的所有代币。注意,对于包含大量代币的合约,这可能需要很长时间(例如,10k代币需要100个请求)。默认值为false,原因如下。
可以将max_execution_time(秒)设置来限制加载器的执行时间。
- 此加载器的未来版本可以
支持其他Alchemy API(例如getTransactions等)
支持其他区块链API(例如Infura、Opensea等)
- 参数
contract_address (str) – 智能合约的地址。
blockchainType (BlockchainType) – 区块链类型。
api_key (str) – Alchemy API密钥。
startToken (str) – 分页的起始代币。
get_all_tokens (bool) – 是否获取合约上的所有代币。
max_execution_time (Optional[int]) – 最大执行时间(秒)。
方法
__init__
(contract_address[, blockchainType, ...])- 参数 contract_address
智能合约的地址。
用于文档的懒加载器。
aload
()将数据加载到文档对象中。
用于文档的懒加载器。
load
()将数据加载到文档对象中。
load_and_split
([text_splitter])加载文档并将其分割成块。
- __init__(contract_address: str, blockchainType: BlockchainType = BlockchainType.ETH_MAINNET, api_key: str = 'docs-demo', startToken: str = '', get_all_tokens: bool = False, max_execution_time: Optional[int] = None)[source]¶
- 参数
contract_address (str) – 智能合约的地址。
blockchainType (BlockchainType) – 区块链类型。
api_key (str) – Alchemy API密钥。
startToken (str) – 分页的起始代币。
get_all_tokens (bool) – 是否获取合约上的所有代币。
max_execution_time (Optional[int]) – 最大执行时间(秒)。
- load_and_split(text_splitter: Optional[TextSplitter] = None) List[Document]¶
加载文档并将其分为块。块以文档的形式返回。
不要覆盖此方法。应考虑将其弃用!
- 参数
text_splitter (可选[]TextSplitter]) – 用于分割文档的TextSplitter实例。默认为RecursiveCharacterTextSplitter。
- 返回
文档列表。
- 返回类型
列表[Document]