区块链文档加载器#
- class langchain_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: int | None = None)[来源]#
从区块链智能合约加载元素。
查看支持的区块链类型请点击这里:https://python.langchain.com/v0.2/api_reference/community/document_loaders/langchain_community.document_loaders.blockchain.BlockchainType.html
如果没有指定BlockchainType,默认是Ethereum主网。
加载器使用Alchemy API与区块链进行交互。 必须设置ALCHEMY_API_KEY环境变量才能使用此加载器。
API 每次请求返回 100 个 NFT,并且可以使用 startToken 参数进行分页。
如果get_all_tokens设置为True,加载器将获取合约上的所有代币。请注意,对于拥有大量代币的合约,这可能需要很长时间(例如,10k代币需要100次请求)。因此,默认值为false。
可以设置 max_execution_time(秒)来限制加载程序的执行时间。
- Future versions of this loader can:
支持额外的Alchemy API(例如getTransactions等)
支持额外的区块链API(例如Infura、Opensea等)
- Parameters:
contract_address (str) – 智能合约的地址。
blockchainType (BlockchainType) – 区块链类型。
api_key (str) – Alchemy API 密钥。
startToken (str) – 用于分页的起始令牌。
get_all_tokens (bool) – 是否获取合约上的所有代币。
max_execution_time (int | None) – 最大执行时间(秒)。
方法
__init__
(contract_address[, blockchainType, ...])一个用于文档的懒加载器。
aload
()将数据加载到Document对象中。
一个用于文档的懒加载器。
load
()将数据加载到Document对象中。
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: int | None = None)[来源]#
- Parameters:
contract_address (str) – 智能合约的地址。
blockchainType (BlockchainType) – 区块链类型。
api_key (str) – Alchemy API 密钥。
startToken (str) – 用于分页的起始令牌。
get_all_tokens (bool) – 是否获取合约上的所有代币。
max_execution_time (int | None) – 最大执行时间(秒)。
- load_and_split(text_splitter: TextSplitter | None = None) list[Document] #
加载文档并将其分割成块。块以文档形式返回。
不要重写此方法。它应该被视为已弃用!
- Parameters:
text_splitter (可选[TextSplitter]) – 用于分割文档的TextSplitter实例。 默认为RecursiveCharacterTextSplitter。
- Returns:
文档列表。
- Return type:
列表[Document]
使用 BlockchainDocumentLoader 的示例