iT邦幫忙

2024 iThome 鐵人賽

DAY 23
0
DevOps

將 AI Code Review 整進 CICD系列 第 23

DAY 4 喂給 LLM

  • 分享至 

  • xImage
  •  

我們將 data 轉成向量存進 DB,並且藉由 query 拿到相似性最高的 answer,接下來我們要將它餵給 ChatGPT 並得到適合的回應。不然就只會拿到很多很亂的資料而已。我們試試看將博物館某個展覽的畫作的介紹轉成向量存進去

[
  {
    "artist": {
      "name": "安托內羅.達.梅西那",
      "name_en": "Antonello da Messina",
      "years": "活躍於 1456,卒於 1479"
    },
    "artwork": {
      "title": "書房中的聖傑洛姆",
      "title_en": "Saint Jerome in his Study",
      "year": "約1475",
      "medium": "油彩、椴木板",
      "collection": "英國國家藝廊,1894購藏",
      "id": "NG1418"
    },
    "description": "安托內羅.達.梅西那為文藝復興早期義大利南部的知名畫家,他在那不勒斯學習,受到尼德蘭畫家楊.范.艾克(活躍於1422,卒於1441)與羅希爾.范.德.韋登(1399–1464)的影響,擅長肖像畫以及風景畫。梅西那在1475–1476年到訪威尼斯期間繪製了這幅畫。\n\r\n在透視法的引導之下,觀者的視線經過前景的石灰拱門,進入一座像教堂的靜謐空間。書房中身穿紅衣主教長袍的人,正是四世紀時將《聖經》從希臘文翻譯成拉丁文的天主教聖人傑洛姆。這座造型特別的書房建立在一個平台上,有嵌入式書桌與書櫃,擺著聖傑洛姆的私人物品,包括花瓶、植物、書籍手稿等;座椅則是主教使用的圓椅。\n\r\n畫作前方的階梯有孔雀、鷓鴣與銅碗,分別象徵永恆、真理與純潔。背景的窗外能看見綠意盎然的風景。右側陰影中有隻踩著斑斕地磚的動物,據傳是聖傑洛姆馴化自荒野的獅子。在梅西那的畫筆下,儘管是一幅小畫,卻呈現出一個充滿細節的空間。",
    "page_url": "https://www.chimeimuseum.org/special-exhibition/65812c83b6dc6/65d4062828005/65f922ff0b417"
  },
  {
    "artist": {
      "name": "桑德羅.波提切利",
      "name_en": "Sandro Botticelli",
      "years": "約 1445–1510"
    },
    "artwork": {
      "title": "聖澤諾比烏斯的三個奇蹟",
      "title_en": "Three Miracles of Saint Zenobius",
      "year": "約1500",
      "medium": "蛋彩、木板",
      "collection": "英國國家藝廊,1924蒙德遺贈",
      "id": "NG3919"
    },
    "description": "波提切利是文藝復興時期義大利最知名的藝術家之一,主要為佛羅倫斯的梅第奇家族與相關人脈服務;其代表作〈春〉、〈維納斯的誕生〉皆受梅第奇家族委託繪製。晚年的他受到宗教與政治動盪的影響,被認為是宗教狂熱分子薩佛納羅拉(1452–1498)的追隨者,創作風格也轉變為帶有深刻的道德與宗教色彩。\n\r\n波提切利在藝術生涯晚期,曾以佛羅倫斯主教聖澤諾比烏斯的生平創作四幅系列畫作。本次展出畫作為系列第二幅,主要描繪這位主教行三個奇蹟的故事。他將系列繪畫以彩繪壁掛(義大利文spalliera)的方式呈現,此類型繪畫通常作為臥室裝飾的一部分,畫作長度為高度的二至三倍。\n\r\n在畫面左側,聖澤諾比烏斯為兩位年輕人進行驅魔儀式,他們因為毆打自己的母親而遭受詛咒,有兩隻惡魔從年輕人的口中冒出。畫面中央是一位心急如焚的母親對著死去孩子哭泣,經過主教的禱念儀式,男孩死而復生。畫面右側,主教將手放在行乞盲人的眼睛上,讓盲人重見光明。",
    "page_url": "https://www.chimeimuseum.org/special-exhibition/65812c83b6dc6/65d4062828005/65f922e2ec8e1"
  },
]

並且用 query 詢問請向我介紹此次展覽有關宗教的作品。code 長這樣

# 查詢集合
results = collection.query(
    query_texts=["請向我介紹此次展覽有關宗教的作品"],
    n_results=1,  # 增加結果數量以查看所有文檔
    include=["documents", "distances", "metadatas"]
)

但這樣出來只是一筆筆資料,還沒能很好的回應給用戶。所以我們要透過 ChatGPT 來回應。我會下這樣的 prompt

我會給你關於這次展覽的資料 [...] ,請根據用戶提問 {question} 給我回應

這邊的 [...] 就是資料庫取出的資料,{question} 就是剛剛客戶問的”請向我介紹此次展覽有關宗教的作品”,所以正式一點我們可以這樣寫

context: [...]
question: {question}

請根據 context 的資料,回答我 question

上一篇
DAY 3 - Store Vector to DB
下一篇
情境一:根據用戶反應更改主題 or 語氣
系列文
將 AI Code Review 整進 CICD28
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言