# 使用AINetwork Toolkit与AINetwork区块链交互
AI Network是一个为大规模AI模型设计的1层区块链,它通过去中心化GPU网络和$AIN代币来支持AI驱动的NFT(AINFTs)。AINetwork Toolkit是一套用于与AINetwork区块链交互的工具。这些工具能使你转移AIN、读取和写入数据、创建应用程序,以及设置区块链数据库内特定路径的权限。
## 安装依赖
在使用AINetwork Toolkit之前,你需要安装`ain-py`包。可以使用pip命令进行安装:
```bash
%pip install --upgrade --quiet ain-py langchain-community
设置环境变量
你需要设置AIN_BLOCKCHAIN_ACCOUNT_PRIVATE_KEY
环境变量,以存储你的AIN区块链账户私钥。
import os
# 设置区块链账户私钥
os.environ["AIN_BLOCKCHAIN_ACCOUNT_PRIVATE_KEY"] = "your-private-key"
获取AIN区块链私钥
如果环境变量中没有私钥,会自动创建一个新的账户并设置私钥。
import os
from ain.account import Account
# 创建或获取区块链账户
if os.environ.get("AIN_BLOCKCHAIN_ACCOUNT_PRIVATE_KEY", None):
account = Account(os.environ["AIN_BLOCKCHAIN_ACCOUNT_PRIVATE_KEY"])
else:
account = Account.create()
os.environ["AIN_BLOCKCHAIN_ACCOUNT_PRIVATE_KEY"] = account.private_key
print(f"address: {account.address}\nprivate_key: {account.private_key}")
# 重要提示: 请务必将私钥保存好以便未来使用,丢失私钥意味着无法访问你的账户。
初始化AINetwork Toolkit
通过以下代码初始化AINetwork Toolkit并获取工具列表:
from langchain_community.agent_toolkits.ainetwork.toolkit import AINetworkToolkit
toolkit = AINetworkToolkit()
tools = toolkit.get_tools()
address = tools[0].interface.wallet.defaultAccount.address
初始化Agent
使用AINetwork Toolkit来初始化Agent:
from langchain.agents import AgentType, initialize_agent
from langchain_openai import ChatOpenAI
# 配置OpenAI语言模型
llm = ChatOpenAI(temperature=0)
agent = initialize_agent(
tools=tools,
llm=llm,
verbose=True,
agent=AgentType.OPENAI_FUNCTIONS,
)
示例用法
这里有一些示例展示如何使用Agent与AINetwork Toolkit进行交互。
创建区块链应用
appName = f"langchain_demo_{address.lower()}"
print(agent.run(f"Create an app in the AINetwork Blockchain database with the name {appName}"))
设置路径下的值
print(agent.run(f"Set the value {{1: 2, '34': 56}} at the path /apps/{appName}/object ."))
设置路径权限
print(agent.run(f"Set the write permissions for the path /apps/{appName}/user/$from with the eval string auth.addr===$from ."))
检索路径权限
print(agent.run(f"Retrieve the permissions for the path /apps/{appName}."))
获取AIN余额
print(agent.run(f"Check AIN balance of {address}"))
转移AIN
print(agent.run("Transfer 100 AIN to the address 0x19937b227b1b13f29e7ab18676a89ea3bdea9c5b"))
如果遇到问题欢迎在评论区交流。
---END---