程式碼研究室簡介
1. 總覽
在本程式碼研究室中,您將結合使用 Neo4j、Vertex AI 和 Gemini,建構智慧型電影推薦聊天機器人。聊天機器人會使用 Neo4j 知識圖譜來代表電影、演員、導演、製片人、類型等。為了提升搜尋體驗,您將使用 Vertex AI 的 text-embedding-004
模型,根據電影劇情概要產生向量嵌入資料。
最後,您將整合 Gemini 來支援對話式介面,讓使用者可以詢問自然語言問題,例如「如果我喜歡《星際效應》,該看哪部電影?」並根據語意相似性和圖表式情境,收到個人化的電影建議。
您將透過程式碼研究室逐步採用下列方法:
- 使用電影相關資料建構 Neo4j 知識圖譜
- 使用 Vertex AI 的文字嵌入功能,針對電影簡介/劇情產生文字嵌入,藉此充實電影資料。
- 建構 Gemini 輔助的 Gradio 聊天機器人介面,以便透過 Neo4j 進行語意搜尋和擷取,將所有內容整合在一起。
- 您可以選擇將其部署至 Google Cloud Run,做為獨立的網頁應用程式,如下所示:
課程內容
- 如何使用 Cypher 和 Neo4j 建構電影知識圖譜。
- 如何使用 Vertex AI 為文字產生語意嵌入。
- 如何整合 Neo4j 和 Gemini,以便進行智慧向量檢索。
- 如何使用 Gradio 建構及執行對話式聊天機器人 UI。
軟硬體需求
- Chrome 網路瀏覽器
- Gmail 帳戶
- 已啟用計費功能的 Google Cloud 專案
- 免付費的 Neo4j Aura DB 帳戶
- 對終端機指令和 Python 有基本的瞭解
這個程式碼研究室專為各級別 (包括初學者) 的開發人員設計,在範例應用程式中使用 Python 和 Neo4j。雖然具備 Python 和圖形資料庫的基本知識會很有幫助,但您不必具備相關經驗,也能瞭解概念或跟著操作。
2. 設定 Neo4j AuraDB
Neo4j 是領先的原生圖形資料庫,可將資料儲存為節點 (實體) 和關係 (實體之間的連結) 網路,因此非常適合用於需要瞭解連結的用途,例如推薦內容、詐欺偵測、知識圖譜等。與依賴固定表格或階層結構的關聯式或文件型資料庫不同,Neo4j 的彈性圖形模型可直覺且有效率地呈現複雜的相互連結資料。
Neo4j 使用圖形模型,而非像關聯資料庫那樣以資料列和資料表整理資料,其中資訊會以節點 (實體) 和關係 (這些實體之間的連結) 表示。這個模型可讓您以直覺的方式處理本質上相關聯的資料,例如人物、地點、產品,或在本例中,電影、演員和類型。
舉例來說,在電影資料集中:
- 節點可代表
Movie
、Actor
或Director
- 關係可以是
ACTED_IN
或DIRECTED
有了這個結構,你就能輕鬆提問下列問題:
- 這位演員演出過哪些電影?
- 與克里斯多福諾蘭合作過的演員有哪些?
- 根據共同演員或類型,哪些電影與某部電影相似?
Neo4j 提供強大的查詢語言 Cypher,專門用於查詢圖譜。您可以使用 Cypher,以簡潔易讀的方式表達複雜的模式和連結。
Neo4j 提供多種部署選項,可依據您的需求進行選擇:
- 自行管理:使用 Neo4j Desktop 或 Docker 映像檔 (地端或您自己的雲端),在您自己的基礎架構上執行 Neo4j。
- 雲端管理:使用市集產品在熱門雲端服務供應商上部署 Neo4j。
- 全代管:使用 Neo4j AuraDB,這是 Neo4j 提供的全代管雲端資料庫即服務,可為您處理佈建、擴充、備份和安全性。
在本程式碼研究室中,我們會使用 Neo4j AuraDB Free,這是 AuraDB 的零成本層級。這項服務提供全代管的圖形資料庫執行個體,內含足夠的儲存空間和功能,可用於建立原型、學習及建構小型應用程式,非常適合我們建構以生成式 AI 為動力的電影推薦機器人聊天機器人。
您將建立免費的 AuraDB 執行個體,並使用連線憑證將其連結至應用程式,然後在本實驗室中使用該執行個體儲存及查詢電影知識圖。
為什麼要使用圖表?
在傳統的關聯式資料庫中,如果要回答「哪些電影與《全面啟動》相似,共用演員或類型?」這類問題,就必須執行跨多個資料表的複雜 JOIN 作業。隨著關係深度的增加,效能和可讀性會降低。
不過,Neo4j 等圖形資料庫的設計目的是有效地掃描關係,因此非常適合用於推薦系統、語意搜尋和智慧助理。這些資料有助於擷取實際情境,例如合作網路、故事情節或觀眾偏好,而這些情境很難透過傳統資料模型呈現。
將這些連結資料與 Gemini 等 LLM 和 Vertex AI 的向量嵌入結合,就能強化聊天機器人的體驗,讓機器人以更個人化且相關的方式進行推理、擷取及回應。
Neo4j AuraDB 免費建立
- 前往 https://console.neo4j.io
- 使用 Google 帳戶或電子郵件地址登入。
- 按一下「建立免費執行個體」。
- 在例項佈建期間,畫面上會顯示彈出式視窗,顯示資料庫的連線憑證。
請務必從彈出式視窗下載並安全地儲存下列詳細資料,這些資料對於將應用程式連結至 Neo4j 至關重要:
NEO4J_URI=neo4j+s://<your-instance-id>.databases.neo4j.io
NEO4J_USERNAME=neo4j
NEO4J_PASSWORD=<your-generated-password>
AURA_INSTANCEID=<your-instance-id>
AURA_INSTANCENAME=<your-instance-name>
您將使用這些值設定專案中的 .env 檔案,以便在下一個步驟中透過 Neo4j 進行驗證。
Neo4j AuraDB Free 非常適合開發、實驗和小規模應用程式 (例如本程式碼研究室)。這項服務提供充裕的用量限制,最多可支援 200,000 個節點和 400,000 個關係。雖然它提供建構及查詢知識圖譜所需的所有基本功能,但不支援自訂外掛程式或增加儲存空間等進階設定。如果是實際工作負載或較大的資料集,您可以升級至 AuraDB 更高層級的方案,享有更大的容量、效能和企業級功能。
這樣就完成了 Neo4j AuraDB 後端設定。在下一個步驟中,我們會建立 Google Cloud 專案、複製存放區,並設定必要的環境變數,以便準備好開發環境,然後開始使用程式碼研究室。
3. 事前準備
建立專案
- 在 Google Cloud 控制台的專案選取器頁面中,選取或建立 Google Cloud 專案。
- 確認 Cloud 專案已啟用計費功能。瞭解如何檢查專案是否已啟用計費功能。
- 您將使用 Cloud Shell,這是在 Google Cloud 中運作的指令列環境,並預先載入 bq。按一下 Google Cloud 控制台頂端的「啟用 Cloud Shell」。
- 連線至 Cloud Shell 後,請使用下列指令確認您已通過驗證,且專案已設為您的專案 ID:
gcloud auth list
- 在 Cloud Shell 中執行下列指令,確認 gcloud 指令知道您的專案。
gcloud config list project
- 如果未設定專案,請使用下列指令進行設定:
gcloud config set project <YOUR_PROJECT_ID>
- 請透過下列指令啟用必要的 API。這可能需要幾分鐘的時間,請耐心等候。
gcloud services enable cloudresourcemanager.googleapis.com \
servicenetworking.googleapis.com \
run.googleapis.com \
cloudbuild.googleapis.com \
cloudfunctions.googleapis.com \
aiplatform.googleapis.com
指令執行成功後,您應該會看到類似以下的訊息:
Operation "operations/..." finished successfully.
您可以透過主控台搜尋每項產品,或使用這個連結,來取代 gcloud 指令。
如果遺漏任何 API,您隨時可以在導入期間啟用。
如要瞭解 gcloud 指令和用法,請參閱說明文件。
複製存放區並設定環境
接下來,我們要複製範例存放區,以便在程式碼研究室的後續步驟中參照。假設您目前在 Cloud Shell 中,請從主目錄執行下列指令:
git clone https://github.com/sidagarwal04/neo4j-vertexai-codelab.git
如要啟動編輯器,請按一下 Cloud Shell 視窗工具列中的「Open Editor」(開啟編輯器)。按一下左上角的選單列,然後依序選取「檔案」→「開啟資料夾」,如下所示:
選取 neo4j-vertexai-codelab
資料夾後,您應該會看到開啟的資料夾,其中包含下列檔案,如下所示:
接下來,我們需要設定在本程式碼研究室中會用到的環境變數。點選 example.env
檔案,您應該會看到如下所示的內容:
NEO4J_URI=
NEO4J_USER=
NEO4J_PASSWORD=
NEO4J_DATABASE=
PROJECT_ID=
LOCATION=
接著,請在 example.env
檔案所在的資料夾中建立名為 .env
的新檔案,並複製現有 example.env 檔案的內容。接著,請更新下列變數:
NEO4J_URI
、NEO4J_USER
、NEO4J_PASSWORD
和NEO4J_DATABASE
:- 使用上一個步驟建立 Neo4j AuraDB Free 執行個體時提供的憑證,填入這些值。
NEO4J_DATABASE
通常會設為 AuraDB Free 的 neo4j。PROJECT_ID
和LOCATION
:- 如果您是透過 Google Cloud Shell 執行程式碼研究室,可以將這些欄位留空,系統會自動根據您目前的專案設定推斷這些欄位。
- 如果您是在本機或 Cloud Shell 外部執行,請使用先前建立的 Google Cloud 專案 ID 更新
PROJECT_ID
,並將LOCATION
設為為該專案選取的區域 (例如 us-central1)。
填寫完這些值後,請儲存 .env
檔案。這項設定可讓應用程式連線至 Neo4j 和 Vertex AI 服務。
設定開發環境的最後一個步驟,是建立 Python 虛擬環境,並安裝 requirements.txt
檔案中列出的所有必要依附元件。這些依附元件包括用於搭配 Neo4j、Vertex AI、Gradio 等工具運作的程式庫。
首先,請執行下列指令,建立名為 .venv 的虛擬環境:
python -m venv .venv
建立環境後,我們需要使用下列指令啟用所建立的環境
source .venv/bin/activate
終端機提示的開頭應該會顯示 (.venv),表示環境已啟用。例如:(.venv) yourusername@cloudshell:
接著,執行以下指令來安裝必要依附元件:
pip install -r requirements.txt
以下是檔案中列出的關鍵依附元件快照:
gradio>=4.0.0
neo4j>=5.0.0
numpy>=1.20.0
python-dotenv>=1.0.0
google-cloud-aiplatform>=1.30.0
vertexai>=0.0.1
所有依附元件都已成功安裝後,本程式碼研究室中的本機 Python 環境就會全面設定,以便執行指令碼和聊天機器人。
太好了!我們現在可以進行下一個步驟,瞭解資料集並準備建立圖表和語意豐富化。
4. 準備 Movies 資料集
我們的第一個工作是準備電影資料集,以便建立知識圖並強化推薦對話方塊。我們不會從頭開始,而是使用現有的開放資料集,並在此基礎上進行建構。
我們使用 Rounak Banik 的 The Movies Dataset,這是 Kaggle 上知名的公開資料集。這份資料包含 TMDB 中超過 45,000 部電影的中繼資料,包括演員、工作人員、關鍵字、評分等。
如要建立可靠且有效的電影推薦聊天機器人,請務必先使用清晰、一致且有條理的資料。雖然 Kaggle 的 Movies Dataset 是豐富的資源,含有超過 45,000 筆電影記錄和詳細的中繼資料 (包括類型、演員、劇組人員等),但也包含雜訊、不一致性和巢狀資料結構,因此不利於圖表建模或語意嵌入。
為解決這個問題,我們預先處理並標準化資料集,確保資料集適合用於建立 Neo4j 知識圖譜,並產生高品質的嵌入資料。這項程序涉及:
- 移除重複和不完整的記錄
- 將關鍵欄位標準化 (例如類型名稱、人物姓名)
- 將複雜的巢狀結構 (例如演員和工作人員) 扁平化為結構化 CSV
- 選取約 12,000 部電影的代表性子集,以符合 Neo4j AuraDB 免費方案的限制
優質的正規化資料有助於確保:
- 資料品質:盡量減少錯誤和不一致性,提供更準確的推薦內容
- 查詢效能:簡化結構可提升擷取速度並減少重複內容
- 嵌入準確度:清除輸入內容,可產生更有意義且符合情境的向量嵌入
您可以在這個 GitHub 存放區的 normalized_data/
資料夾中,存取經過清理和正規化的資料集。這個資料集也會複製到 Google Cloud Storage 值區,方便您在日後的 Python 指令碼中存取。
資料經過清理後,我們現在可以將資料載入 Neo4j,並開始建構電影知識圖譜。
5. 建立電影知識圖譜
為了讓支援 GenAI 的電影推薦機器人順利運作,我們需要以某種方式建構電影資料集,以便擷取電影、演員、導演、類型和其他中繼資料之間的豐富連結網絡。在本節中,我們將使用先前準備的經過清理和標準化的資料集,在 Neo4j 中建立電影知識圖譜。
我們將使用 Neo4j 的 LOAD CSV
功能,擷取儲存在公開 Google Cloud Storage (GCS) 值區中的 CSV 檔案。這些檔案代表電影資料集的不同組成元素,例如電影、類型、演員、工作人員、製作公司和使用者評分。
步驟 1:建立限制和索引
在匯入資料前,建議您建立限制和索引,以確保資料完整性並提升查詢效能。
CREATE CONSTRAINT unique_tmdb_id IF NOT EXISTS FOR (m:Movie) REQUIRE m.tmdbId IS UNIQUE;
CREATE CONSTRAINT unique_movie_id IF NOT EXISTS FOR (m:Movie) REQUIRE m.movieId IS UNIQUE;
CREATE CONSTRAINT unique_prod_id IF NOT EXISTS FOR (p:ProductionCompany) REQUIRE p.company_id IS UNIQUE;
CREATE CONSTRAINT unique_genre_id IF NOT EXISTS FOR (g:Genre) REQUIRE g.genre_id IS UNIQUE;
CREATE CONSTRAINT unique_lang_id IF NOT EXISTS FOR (l:SpokenLanguage) REQUIRE l.language_code IS UNIQUE;
CREATE CONSTRAINT unique_country_id IF NOT EXISTS FOR (c:Country) REQUIRE c.country_code IS UNIQUE;
CREATE INDEX actor_id IF NOT EXISTS FOR (p:Person) ON (p.actor_id);
CREATE INDEX crew_id IF NOT EXISTS FOR (p:Person) ON (p.crew_id);
CREATE INDEX movieId IF NOT EXISTS FOR (m:Movie) ON (m.movieId);
CREATE INDEX user_id IF NOT EXISTS FOR (p:Person) ON (p.user_id);
步驟 2:匯入電影中繼資料和關聯
讓我們來看看如何使用 LOAD CSV 指令匯入電影中繼資料。這個範例會建立 Movie 節點,其中包含標題、摘要、語言和執行時間等重要屬性:
LOAD CSV WITH HEADERS FROM "https://storage.googleapis.com/neo4j-vertexai-codelab/normalized_movies.csv" AS row
WITH row, toInteger(row.tmdbId) AS tmdbId
WHERE tmdbId IS NOT NULL
WITH row, tmdbId
LIMIT 12000
MERGE (m:Movie {tmdbId: tmdbId})
ON CREATE SET m.title = coalesce(row.title, "None"),
m.original_title = coalesce(row.original_title, "None"),
m.adult = CASE
WHEN toInteger(row.adult) = 1 THEN 'Yes'
ELSE 'No'
END,
m.budget = toInteger(coalesce(row.budget, 0)),
m.original_language = coalesce(row.original_language, "None"),
m.revenue = toInteger(coalesce(row.revenue, 0)),
m.tagline = coalesce(row.tagline, "None"),
m.overview = coalesce(row.overview, "None"),
m.release_date = coalesce(row.release_date, "None"),
m.runtime = toFloat(coalesce(row.runtime, 0)),
m.belongs_to_collection = coalesce(row.belongs_to_collection, "None");
類似的 Cypher 指令可用於匯入相關實體,例如類型、製作公司、語言、國家/地區、演員、工作人員和評分。
透過 Python 載入完整圖表
建議您使用本程式碼研究室提供的自動化 Python 指令碼,而非手動執行多個 Cypher 查詢。
這個 graph_build.py
指令碼會使用 .env
檔案中的憑證,將 GCS 中的整個資料集載入 Neo4j AuraDB 例項。
python graph_build.py
這個指令碼會依序載入所有必要的 CSV、建立節點和關係,並建構完整的電影知識圖結構。
驗證圖表
載入完成後,您可以執行簡單的 Cypher 查詢來驗證圖表,例如:
MATCH (m:Movie) RETURN m LIMIT 5;
MATCH (a:Actor)-[:ACTED_IN]->(m:Movie) RETURN a.name, m.title LIMIT 5;
圖表現在應該會填入電影、人物、類型等內容,並準備在下一個步驟中進行語意強化!
6. 產生及載入嵌入項目,以便執行向量相似度搜尋
如要在聊天機器人中啟用語意搜尋,我們需要為電影總覽產生向量嵌入。這些嵌入功能可將文字資料轉換為可比較相似度的數值向量,讓對話方塊即使查詢不完全符合標題或說明,也能擷取相關電影。
⚠️ 成效相關注意事項
即時為數千部電影的說明生成嵌入資料,既耗時又耗用大量資源。為讓這個程式碼研究室更有效率且易於使用,我們已使用 Vertex AI 的
text-embedding-004
模型,並儲存至公開可用的 CSV 檔案。
方法 1:透過 Cypher 載入預先計算的嵌入
如要快速將嵌入內容附加至 Neo4j 中的對應 Movie
節點,請在 Neo4j 瀏覽器中執行下列 Cypher 指令:
LOAD CSV WITH HEADERS FROM 'https://storage.googleapis.com/neo4j-vertexai-codelab/movie_embeddings.csv' AS row
WITH row
MATCH (m:Movie {tmdbId: toInteger(row.tmdbId)})
SET m.embedding = apoc.convert.fromJsonList(row.embedding)
這項指令會從 CSV 讀取嵌入向量,並將其附加為每個 Movie
節點的屬性 (m.embedding
)。
選項 2:使用 Python 載入嵌入項目
您也可以使用提供的 Python 指令碼,以程式輔助方式載入嵌入資料。如果您在自己的環境中工作,或想自動化這個程序,這麼做就很有幫助:
python load_embeddings.py
這個指令碼會從 GCS 讀取相同的 CSV,並使用 Python Neo4j 驅動程式將嵌入資料寫入 Neo4j。
[選用] 自行產生嵌入資料 (適用於探索)
如果您想瞭解如何產生嵌入資料,可以探索 generate_embeddings.py
指令碼本身的邏輯。這個應用程式會使用 Vertex AI,透過 text-embedding-004
模型嵌入每部電影的概覽文字。
如要自行嘗試,請開啟並執行程式碼的嵌入產生部分。如果您是在 Cloud Shell 中執行,可以將下列行註解掉,因為 Cloud Shell 已透過您的有效帳戶完成驗證:
# os.environ["GOOGLE_APPLICATION_CREDENTIALS"] = "./service-account.json"
⚠️ 執行完整的嵌入產生程序會消耗 Vertex AI 配額,且可能需要大量時間,尤其是當記錄數量達到數千筆時。
嵌入項目載入至 Neo4j 後,電影知識圖譜就會變成語意感知,可使用向量相似度支援強大的自然語言搜尋功能!
7. 電影推薦聊天機器人
知識圖譜和嵌入已就定位,現在是時候將所有內容整合至對話式介面,也就是您的電影推薦聊天機器人。
這個聊天機器人是使用 Python 和 Gradio 實作,後者是一種用於建構網路 UI 的輕量級架構。主要邏輯位於 chatbot.py
指令碼中,該指令碼會連線至 Neo4j AuraDB 例項,並根據自然語言提示,對電影嵌入資料執行向量相似度搜尋。
聊天機器人會使用 Gemini 微調查詢並調整回覆格式,進而提升使用者體驗。Neo4j 會結合圖形情境和向量相似度,傳回搜尋結果。
在本機執行 Chatbot
如要啟動聊天機器人,請啟用虛擬環境 (如果尚未啟用),然後執行以下指令:
python chatbot.py
畫面會顯示類似以下的輸出:
Old index dropped
Creating new vector index
Vector index created successfully
* Running on local URL: http://127.0.0.1:7860
To create a public link, set `share=True` in `launch()`.
💡 如果您看到與 allow_flagging 相關的淘汰警告,可以暫時忽略這些警告,應用程式仍會執行。
與聊天機器人互動
執行完畢後,請開啟終端機中顯示的網址,通常為:👉 http://127.0.0.1:7860
系統會顯示簡單的即時通訊介面,您可以輸入自然語言查詢,例如:
- 「推薦我《全面啟動》這類科幻驚悚片」
- 「推薦一部浪漫電影,由湯姆漢克斯主演」
- 「我想看溫馨的家庭劇」
聊天機器人會處理查詢,針對電影簡介執行語意向量搜尋,並顯示最相關的電影清單,包括電影名稱、簡介和上映年份。
每項建議都會以資訊卡樣式的版面配置顯示,並以整齊的格式呈現結果。
在本機執行聊天機器人後,您現在擁有了一個功能完整的 GenAI 電影推薦系統,結合了知識圖、大型語言模型 (Gemini) 和語意搜尋的最佳功能,並使用 Vertex AI 嵌入資料。
8. (選用) 部署至 Google Cloud Run
如果您想讓電影推薦聊天機器人公開在網路上,可以將其部署至 Google Cloud Run,這是全代管的無伺服器平台,可自動調整應用程式的規模。
在部署前,請確認專案中含有下列檔案 (這些檔案已包含在此存放區中):
requirements.txt
:列出執行應用程式所需的所有 Python 依附元件,包括 Neo4j 和 Vertex AI。Dockerfile
:定義容器環境,包括基礎映像檔、依附元件安裝方式,以及應用程式啟動方式。
步驟 1:設定環境變數
在終端機中設定下列環境變數 (請將預留位置值替換為實際的專案設定):
# Set your Google Cloud project ID
export GCP_PROJECT='your-project-id' # Change this
# Set your preferred deployment region
export GCP_REGION='us-central1'
步驟 2:建立 Artifact Registry 並建構容器
# Artifact Registry repo and service name
export AR_REPO='your-repo-name' # Change this
export SERVICE_NAME='movies-chatbot' # Or any name you prefer
# Create the Artifact Registry repository
gcloud artifacts repositories create "$AR_REPO" \
--location="$GCP_REGION" \
--repository-format=Docker
# Authenticate Docker with Artifact Registry
gcloud auth configure-docker "$GCP_REGION-docker.pkg.dev"
# Build and submit the container image
gcloud builds submit \
--tag "$GCP_REGION-docker.pkg.dev/$GCP_PROJECT/$AR_REPO/$SERVICE_NAME"
這個指令會使用 Dockerfile
封裝應用程式,並將容器映像檔上傳至 Google Cloud Artifact Registry。
步驟 3:部署至 Cloud Run
部署前,請確認所有必要環境變數 (例如憑證、專案設定) 會列在 .env
檔案中。
使用以下程式碼片段,將 .env
檔案動態轉換為與 --set-env-vars
旗標相容的格式:
ENV_VARS=$(grep -v '^#' .env | sed 's/ *= */=/g' | xargs -I{} echo -n "{},")
ENV_VARS=${ENV_VARS%,}
接著部署應用程式:
gcloud run deploy "$SERVICE_NAME" \
--port=8080 \
--image="$GCP_REGION-docker.pkg.dev/$GCP_PROJECT/$AR_REPO/$SERVICE_NAME" \
--allow-unauthenticated \
--region=$GCP_REGION \
--platform=managed \
--project=$GCP_PROJECT \
--set-env-vars="GCP_PROJECT=$GCP_PROJECT,GCP_REGION=$GCP_REGION,$ENV_VARS"
存取聊天機器人
部署完成後,Cloud Run 會傳回公開服務網址,格式如下:
https://movies-chatbot-[UNIQUE_ID].${GCP_REGION}.run.app
在瀏覽器中開啟網址,即可存取聊天機器人。您應該會看到在雲端執行的相同 Gradio UI,能夠接收查詢並回應電影推薦內容。
注意事項和提示
- 請確認
Dockerfile
在建構期間執行pip install -r requirements.txt
。 - 如果您未使用 Cloud Shell,就必須使用具備 Vertex AI 和 Artifact Registry 權限的服務帳戶驗證環境。
- 您可以前往 Google Cloud 主控台 > Cloud Run 監控部署記錄和指標。
您也可以從 Google Cloud 控制台前往 Cloud Run,查看 Cloud Run 中的服務清單。movies-chatbot
服務應為其中一個 (如果不是唯一) 服務。
按一下特定服務名稱 (在本例中為 movies-chatbot
),即可查看服務的詳細資料,例如網址、設定、記錄等。
這樣一來,您就能部署、調整及分享電影推薦聊天機器人。🎉
9. 清除所用資源
如要避免系統向您的 Google Cloud 帳戶收取這篇文章中所用資源的費用,請按照下列步驟操作:
10. 恭喜
您已成功使用 Neo4j、Vertex AI 和 Gemini,建構並部署以圖譜為基礎、增強生成式 AI 的電影推薦聊天機器人。結合 Neo4j 的豐富建模功能、Vertex AI 嵌入功能的語意強大功能,以及 Gemini 的對話智慧,您就能建立直覺且智慧的系統,瞭解自然語言查詢,並根據情境提供相關電影推薦。
在本程式碼研究室中,您將:
- 從真實的電影資料集建立豐富且相互連結的知識圖譜
- 產生並整合向量嵌入,以便進行語意相似度搜尋
- 運用 Gemini 提供自然語言互動功能
- 使用 Gradio 建構簡單又強大的聊天機器人介面
- 視需要使用 Google Cloud Run 部署應用程式,以便擴充及存取
這種做法不限於電影,同樣的架構也能用於書籍、音樂、產品、學術論文,或任何關係和語義相關的領域。隨著 Gemini 等多模態生成式 AI 模型持續進化,您將可透過更深入的理解、個人化互動和多格式輸出內容,為應用程式增添更多內容。
請繼續探索、持續建構,並別忘了隨時掌握 Neo4j、Vertex AI 和 Google Cloud 的最新消息,讓您的智慧型應用程式更上一層樓!