欢迎来到阿卡迪亚,人工智能中世纪戏剧模拟器。该项目是一个使用生成式 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
即将推出的功能: