如果能用图像来展现,区块链会是什么样子呢?
区块链是分布式账本的技术实现,最常与金融交易相关联。这与我们通常认为的“美丽”相去甚远。特别是由于区块链上存储的数据主要由复杂的数字、字母和符号组成,这些符号与价值的数量、发送者和接收者地址(钱包)以及元数据相关。
然而,我之前曾从事过生成图像来表示量子计算的工作,这与区块链类似,也包含复杂的数字。我想知道是否可以结合相同的可视化技术——使用人工智能和大型语言模型以及提示工程——从全新的数据源生成图像。
让我们试一试!
要从区块链生成图像,我们首先需要确定要利用的特征。
典型的交易具有以下属性,这些属性标识发送者、接收者、金额、费用、唯一 ID以及其他相关元数据。
<code>交易哈希 a3c26b8572447228f515e71e41ce70af93d590e48e77ff6e97d70beb7919f8da 总费用 0.168317 ADA 总输出 1,307.847408 ADA 发送者 addr1_test1upm4c9yw05l0su5ygfj4a7qhxkqy2qwg5plupmradr6wnxssp8wj0 接收者 addr1_test1uz25rnrpv5njt85h5q2c6yaj2wre0n43s3thed5syrmcdrq85p0rm</code>
这些特征可以作为主要指标,包含在人工智能和大型语言模型的提示中,以生成相应的图像。
可视化过程将根据从交易中识别的特征生成图像。
我们将从区块链加载交易并提取关键字段。在本例中,我们将使用Cardano。当然,可以使用任何加密货币,包括比特币、以太坊和Solana。重要的是,我们将包含来自交易哈希、发送者和接收者地址的值,最重要的是交易价值,以便以一种美丽而富有想象力的方式来可视化数据流。
最后,我们将利用提示工程为大型语言模型构建合适的提示以生成图像。
我们需要进行两个网络请求。一个请求将检索交易,第二个请求将调用大型语言模型。
下图显示了此设计。
我们过程的第一步是创建一个Python程序,该程序可以加载来自区块链的详细信息。
我们将使用BlockFrost API访问交易,这允许我们读取数据,而无需将整个区块链加载到PC上(这可能非常庞大且CPU密集型)。如果我们有交易ID,这在Python中很容易实现。
<code>交易哈希 a3c26b8572447228f515e71e41ce70af93d590e48e77ff6e97d70beb7919f8da 总费用 0.168317 ADA 总输出 1,307.847408 ADA 发送者 addr1_test1upm4c9yw05l0su5ygfj4a7qhxkqy2qwg5plupmradr6wnxssp8wj0 接收者 addr1_test1uz25rnrpv5njt85h5q2c6yaj2wre0n43s3thed5syrmcdrq85p0rm</code>
如上面的代码示例所示,我们正在提取交易 ID、ADA 数量以及发送者和接收者地址。这些数字和字母数字值应该足以帮助人工智能生成图像。
现在关键数据点已被提取,是时候进行一些提示工程了。
提示工程是根据原始数值生成图像的关键力量。这也是我们可以发挥自己创造力的地方。
由于我们不仅想要可视化交易中的数值,还想可视化发送者和接收者之间信息流的概念,因此我们可以在提示中包含这个想法,并让AI尝试可视化结果。
“根据以下交易详细信息生成图像:想象一个场景,该场景代表这些实体之间价值和连接的流动。包括一个草地,一条带有温暖和诱人色彩的小溪。交易 ID:abc123,ADA 金额:10.25,发送者:addr1_testabc,接收者:addr1_testxyz。”
当然,提示并不像上面的示例所示那样完全硬编码。相反,在将提示发送到大型语言模型之前,我们将从交易中注入变量到提示中。
真正的魔法就在提示中。
如上所述,我们使用一个主要为静态提示来指示大型语言模型如何生成图像。但是,提示中仍然存在占位符,我们的脚本将在可视化过程中将交易中的特征插入到这些占位符中。
其中一个特征是价值量。
由于我们希望价值量(ADA)由不同类型的图像表示,因此我们将金额分成区间,我们将从中提供不同的图像场景。
此区间定义可以如下所示实现。
<code>def fetch_transaction_details(tx_id): tx_details = api.transaction_utxos(tx_id) ada_amount = sum(int(output.amount[0].quantity) for output in tx_details.outputs if not output.collateral) / 1000000 # 将洛夫莱斯转换为ADA sender = tx_details.inputs[0].address receiver = tx_details.outputs[0].address return TransactionDetails(tx_id, ada_amount, sender, receiver)</code>
大型语言模型对于生成各种内容非常强大,前提是数据和想法是可访问的。
创建这个项目很有趣,我希望它能激发您对区块链所能做的事情的可能性。完整的源代码可以在这里找到。
通过结合区块链和大型语言模型的前沿技术以及一点点想象力,未来是无限广阔的。
接下来您将创作什么?
如果您喜欢这篇文章,请考虑关注我在Medium、Twitter和我的网站上的动态,以便收到我的未来文章和研究工作的通知。
以上是我将区块链和AI组合在一起以生成艺术。接下来发生了什么。的详细内容。更多信息请关注PHP中文网其他相关文章!