歡迎來到阿卡迪亞,人工智慧中世紀戲劇模擬器。該計畫是一個使用生成式 AI 技術來創建敘事體驗的實驗,同時也希望為更大的社群提供有關如何使用各種生成式 AI API 的最佳實踐的範例。
請注意,最新的穩定版本始終託管在 https://www.generativestorytelling.ai
阿卡迪亞強調使用法學碩士來產生動畫敘事,詳細描述您選擇的皇家宮廷中的戲劇。列出你的朋友和家人的名字,看著他們背叛、毒害、結婚、刺傷對方,以控制王國!
旁白由 GPT 3.5 提供
3d 背景來自 Blockadelabs
人物肖像由 Dalle 生成
即將推出的功能包括文字轉語音旁白、音樂、音效以及保存、分享和重播故事的功能。
為了確保這可以作為人們的範例,我嘗試最大限度地減少程式碼中的第三方依賴性,並保持建置系統盡可能簡單。當需要在奇特的方式(例如 Sass、OpenAPI)或簡單的方式(TypeScript 檔案的共享目錄)之間進行選擇時,我們會選擇簡單的方式。
理想情況下,如果您熟悉 TypeScript、Express 和 HTML,您應該可以理解程式碼庫。
Svelte 用於前端,如果您不熟悉 Svelte,它是用於在 HTML 中進行資料綁定的非常簡單的工具集,可以在不到一個小時的時間內掌握基礎知識,完整的教程需要 2 或 3 小時最多小時數即使您不了解 Svelte,希望前端程式碼仍然可以輕鬆理解。
程式碼分為三個資料夾:
shared
資料夾符號連結到backend
和frontend
資料夾,這是一個巧妙的技巧,允許在專案之間共用 TypeScript 類型和模組,而無需設定完整的單一儲存庫。如果您使用的是舊版的 Windows(Windows 10 之前的版本),那麼您可能必須手動為系統上的非管理員帳戶啟用符號連結。
後端是一個最小的 Express.js 伺服器,示範如何提示 GPT,以便它提供結構化回應,然後解析這些回應。其中包括兩個從 GPT 取得的範例,一個點擊 REST 端點進行聊天,第二個顯示聊天的串流回應。在這兩種情況下,結果都會透過 Web 套接字從伺服器傳送到前端 Web 用戶端。
要讓後端正常運作,您需要建立自己的.env
文件,其中包含OPENAI_API_KEY
金鑰。如果您想要儲存故事,您還需要新增 AWS_ACCESS_KEY_ID 和 AWS_SECRET_ACCESS_KEY。請注意,遺憾的是 vultr 被硬編碼為 s3 提供程序,在某些時候也需要將其提取到 env 檔案中。
前端是一個 Svelte Web 應用程序,它收集皇室成員的姓名,將其發送到後端,當獲取故事時,在Dialogue.svelte
組件上將其動畫化。
常見類型和實用函數位於shared
中。主要用於前端和後端共享的資料類型。
由於某些作業系統上的建置問題,遺憾的是後端現在有共享類型的硬拷貝,需要弄清楚為什麼在 MacOS 上沒有選擇符號連結。
若要執行該項目,請執行以下操作:
backend
的根資料夾中建立一個檔案.env
並使用OPENAI_API_KEY=
填充它並填寫您的金鑰。shared
、 backend
和frontend
執行npm install
和npm build
frontend
並輸入npm run dev
來啟動 vite,您可以連接到http://localhost:5173/
,選擇頂部的兩個複選框並然後make some drama
。 一個。若要變更顯示哪個預先產生的故事,您可以變更 StoryFetcherws.ts 第 14 行的索引
`const events = parseOutEvents(pregenStories[2].story);`
backend
並輸入npm run dev
。前端在本機運作時,將自動嘗試連線到本機上的後端。npm run debug
來運行node --inspect
即將推出的功能: