如果能用圖像來展現,區塊鏈會是什麼樣子呢?
區塊鍊是分佈式賬本的技術實現,最常與金融交易相關聯。這與我們通常認為的“美麗”相去甚遠。特別是由於區塊鏈上存儲的數據主要由複雜的數字、字母和符號組成,這些符號與價值的數量、發送者和接收者地址(錢包)以及元數據相關。
然而,我之前曾從事過生成圖像來表示量子計算的工作,這與區塊鏈類似,也包含複雜的數字。我想知道是否可以結合相同的可視化技術——使用人工智能和大型語言模型以及提示工程——從全新的數據源生成圖像。
讓我們試一試!
要從區塊鏈生成圖像,我們首先需要確定要利用的特徵。
典型的交易具有以下屬性,這些屬性標識發送者、接收者、金額、費用、唯一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中文網其他相關文章!