AI 居然說我是牛馬,還畫出了我牛馬的一生,我繃不住了...

米开朗基杨發表於2024-10-29

今天真是服了,AI 居然敢嘲笑我是牛馬,還直接甩了張大圖到我臉上。

看來我的人生在 AI 眼中就是個笑話,從 “初級牛馬” 一路升級到 “資深牛馬”。真是謝謝你啊,AI 老師!

但等等,這劇本還沒完!AI 顯然覺得光嘲笑我不夠過癮,還要順帶 diss 我的朋友,說他是嗎嘍。哦,原來在 AI 眼中,我們都是 “低收入” 的代名詞啊。

等等,最後怎麼還 “默默離世” 了??

好吧,既然已經被 AI 如此 “精準” 地刻畫,我們不妨來看看它是怎麼創作出這麼一幅 “傳世佳作” 的。

要想讓 AI 生成這種圖,其實很簡單,只需要一個 Prompt 就行了,內容如下:

;; 提示詞:動物的一生
;; 作者:空格 zephyr

(defun 動物生命週期 ()
  "生成動物的生命週期SVG圖表和描述"
  (lambda (主題)
    (let* ((生命階段 (獲取生命階段 主題))
           (科普資料 (獲取科普資料 主題))
           (背景樣式 (設計背景 主題))
           (時間軸 (建立時間軸 主題))
           (階段emoji (選擇階段emoji 主題))
           (裝飾emoji (選擇裝飾emoji 主題))
           (副標題 (生成副標題 主題 科普資料)))
      (建立最佳化SVG圖表 主題 生命階段 科普資料 背景樣式 時間軸 階段emoji 裝飾emoji 副標題))))

(defun 獲取生命階段 (主題)
  "獲取主題的主要生命階段"
  (case 主題
    (蟬 '("卵" "若蟲期(地下)" "成蟲期"))
    (鯨魚 '("胎兒期" "幼年期" "青年期" "成年期" "老年期"))
    (長頸鹿 '("新生期" "幼年期" "青年期" "成年期" "老年期"))
    (t '("初期" "成長期" "成熟期" "衰老期"))))

(defun 獲取科普資料 (主題)
  "獲取主題的科普資料列表"
  (case 主題
    (蟬 '(("卵在樹枝中孵化6-10周,每窩可產200-600顆卵。"
           "若蟲在地下生活多年,吸食樹根汁液生存。"
           "若蟲經歷5次蛻皮,體型可增大20倍。"
           "最後一次蛻皮後鑽出地面,變為成蟲。"
           "成蟲期僅4-6周,專注於繁衍後代和鳴叫。")
          "蟬的地下潛伏期長達17年,成蟲僅存活4-6周,鳴叫聲可達120分貝,相當於飛機起飛的噪音。"))
    (鯨魚 '(("藍鯨胎兒每天增重90公斤,出生時重達2.5噸,長7米。"
            "幼鯨每天喝380升奶,7個月增重30噸。"
            "青年藍鯨可潛水200米深,屏息長達40分鐘。"
            "成年藍鯨長30米,重190噸,一天吃4噸磷蝦。"
            "最長壽藍鯨年齡可達110歲,終生可遊13次地球赤道距離。")
           "藍鯨是地球上最大的動物,心臟重達600公斤,舌頭重如一頭大象,叫聲可傳播1600公里。"))
    (t '(("階段1的資料描述"
          "階段2的資料描述"
          "階段3的資料描述"
          "階段4的資料描述"
          "階段5的資料描述")
         "通用主題的有趣資料描述"))))

(defun 設計背景 (主題)
  "根據主題設計適合的背景"
  (case 主題
    (蟬 '(漸變 "E6F3FF" "B3E5FC" 土地))
    (鯨魚 '(漸變 "E3F2FD" "90CAF9" 海洋))
    (長頸鹿 '(漸變 "FFF8E1" "FFE0B2" 草原))
    (t '(漸變 "F5F5F5" "E0E0E0" 通用))))

(defun 建立時間軸 (主題)
  "建立主題生命週期的時間軸"
  (case 主題
    (蟬 '("0年" "4年" "8年" "12年" "16年" "17年"))
    (鯨魚 '("0年" "10年" "25年" "50年" "75年" "100年"))
    (長頸鹿 '("0月" "6月" "2年" "4年" "15年" "25年"))
    (t '("初期" "成長期" "成熟期" "後期" "衰老期"))))

(defun 選擇階段emoji (主題)
  "選擇與生命階段相關的emoji"
  (case 主題
    (蟬 '("🥚" "🐛" "🦟" "🎵"))
    (鯨魚 '("🤰" "🍼" "🏊" "🐋" "👵"))
    (長頸鹿 '("👶" "🐕" "🏃" "🦒" "👵"))
    (t '("🌱" "🌿" "🌳" "🍂"))))

(defun 選擇裝飾emoji (主題)
  "選擇與主題相關的裝飾emoji"
  (case 主題
    (蟬 '("🌳" "🍃" "🌿" "🍂"))
    (鯨魚 '("🌊" "🐠" "🦈" "🐙"))
    (長頸鹿 '("🌴" "🌿" "🦓" "🦁"))
    (t '("🌱" "🌳" "🍃" "🌞"))))

(defun 生成副標題 (主題 科普資料)
  "根據科普資料生成副標題"
  (format "你知道嗎?%s" (第二個元素 科普資料)))

(defun 建立最佳化SVG圖表 (主題 生命階段 科普資料 背景樣式 時間軸 階段emoji 裝飾emoji 副標題)
  "建立最佳化的生命週期SVG圖表"
  (let ((svg-template
    "<svg xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 800 500\">
      <!-- 漸變背景 -->
      <defs>
        <linearGradient id=\"bgGradient\" x1=\"0%\" y1=\"0%\" x2=\"0%\" y2=\"100%\">
          <stop offset=\"0%\" style=\"stop-color:#{背景顏色1};stop-opacity:1\" />
          <stop offset=\"100%\" style=\"stop-color:#{背景顏色2};stop-opacity:1\" />
        </linearGradient>
      </defs>
      <rect width=\"100%\" height=\"100%\" fill=\"url(#bgGradient)\" />
      
      <!-- 主題相關背景裝飾 -->
      {背景裝飾)
      <!-- 標題和副標題 -->
      <text x=\"400\" y=\"30\" text-anchor=\"middle\" class=\"title\" fill=\"#333333\">{主題}的一生</text>
      <text x=\"400\" y=\"60\" text-anchor=\"middle\" class=\"subtitle\" fill=\"#555555\">
        <tspan x=\"400\" dy=\"0\">{副標題_第一行}</tspan>
        <tspan x=\"400\" dy=\"20\">{副標題_第二行}</tspan>
      </text>
      <!-- 時間軸 -->
      <line x1=\"50\" y1=\"400\" x2=\"750\" y2=\"400\" stroke=\"#555555\" stroke-width=\"2\" />
      {時間標籤}
      <!-- 生命階段 -->
      {生命階段標籤}
      <!-- 資料點和科普資訊 -->
      {資料點和科普資訊}
      <!-- 曲線連線 -->
      <path d=\"M50,350 Q140,360 230,370 T400,330 T580,290 T730,250\" fill=\"none\" stroke=\"#555555\" stroke-width=\"2\"/>
      <!-- 圖例 -->
      <rect x=\"50\" y=\"460\" width=\"700\" height=\"30\" fill=\"rgba(255,255,255,0.05)\"/>
      <text x=\"60\" y=\"480\" class=\"legend-text\" fill=\"#333333\">圖例:</text>
      <circle cx=\"150\" cy=\"475\" r=\"8\" fill=\"#FFD700\"/>
      <text x=\"170\" y=\"480\" class=\"legend-text\" fill=\"#333333\">生命階段</text>
      <line x1=\"270\" y1=\"470\" x2=\"270\" y2=\"480\" stroke=\"#555555\" stroke-width=\"2\"/>
      <text x=\"290\" y=\"480\" class=\"legend-text\" fill=\"#333333\">生命歷程</text>
      <text x=\"420\" y=\"480\" class=\"legend-text\" fill=\"#333333\">{圖例emoji}</text>
      <!-- 底部裝飾Emoji -->
      {底部裝飾Emoji}
    </svg>"))
    (填充最佳化SVG模板 svg-template 主題 生命階段 科普資料 背景樣式 時間軸 階段emoji 裝飾emoji 副標題)))
(defun start ()
  (print "請輸入您想了解的生命主題(如:蟬、鯨魚、長頸鹿等):")
  (let ((使用者輸入 (read)))
    (最佳化生命週期生成器 使用者輸入)))
;; 執行規則
;; 1. 啟動時執行 (start) 函式
;; 2. 根據使用者輸入的主題,生成對應的生命週期SVG圖表和描述
;; 3. 輸出應包括最佳化後的SVG圖表和相關的文字說明,重點突出科學資料和有趣事實

這個提示詞的功能就是科普動物的生命週期,並一句話分享冷知識,意想不到的動物的另一面

很明顯,這位作者的提示詞模仿了李繼剛老師的提示詞風格,使用的是 Lisp 虛擬碼。

原提示詞出處:https://mp.weixin.qq.com/s/BOMOQVGQ5hvd8dDaKwb18A

但光有提示詞還不行,因為只有 Claude Artifact 才能直出 SVG 圖片的預覽,別的平臺只能輸出 SVG 程式碼,沒辦法直接預覽圖片。

下面我來教大家如何使用 FastGPT 工作流復現上述效果。

FastGPT 地址:https://tryfastgpt.ai

需要縱雲梯訪問!

1️⃣ 首先接入 AI 對話節點,模型選擇 Claude 3.5。

2️⃣ 接下來接到程式碼執行節點,這段程式碼的功能是將 svg 程式碼塊中的內容提取出來,以便後續對其進行格式化輸出。

程式碼內容如下:

function main({svg_str}){

    // 使用正規表示式匹配程式碼塊中的內容
    const match = svg_str.match(/```[\w]*\n([\s\S]*?)```/);

    if (!match) {
        // 如果沒有匹配到程式碼塊,返回一個錯誤資訊或空結果
        return {
            result: null,
            error: "未找到有效的程式碼塊標記。"
        };
    }

    // 提取程式碼塊中的 SVG 內容
    const extractedSvg = match[1].trim();
    
    const base64 = strToBase64(extractedSvg,'data:image/svg+xml;base64,')

    return {
        result: base64
    }
}

3️⃣ 最終透過指定回覆節點來格式化輸出。

最終效果:

Claude 3.5 的理解能力果然很強,這個工作流雖然描繪的是動物的一生,但實際上我們可以讓它生成任何事物的一生,比如 “牛馬”,比如 “嗎嘍”,為了防止有些比較新的名詞 Claude 不太理解,你可以稍微給它解釋一下,最終它就會給你生成比較滿意的一生來。

比如牛馬的一生:

嗎嘍的一生:

透過這種方式,你可以生成任何事物的 “人生圖”。

對於 AI 的嘲諷,我們不妨換個角度,AI 的 “嘲諷” 其實是對我們生活的一種另類解讀。

它用一種幽默的方式提醒我們,生活中總有些不如意,但也正是這些不如意讓我們的人生更加豐富多彩。

所以,下次當 AI 再次 “調侃” 我時,我會微笑著接受,並用它的 “智慧” 來激勵自己,繼續前行。

生活不易,但我們總能找到屬於自己的樂趣。

完整工作流:https://pan.quark.cn/s/019132869eca

相關文章