AI-Gamble
扫码查看

实时生成动态互动小说的游戏

AI-Gamble

综合介绍

AI-Gamble 是一个基于大型语言模型(LLM)驱动的动态互动小说游戏项目。它的核心机制是,用户首先选择一个自己偏好的故事类型,比如“东方玄幻”或“西方魔幻”,然后人工智能引擎会根据这个选择实时创作出独一无w二的故事开篇、情节发展、角色以及多种可能的结局。该项目不仅仅是生成文本,还会通过可视化的方式,为玩家展示一个清晰的故事发展线路图,让玩家可以直观地看到每个选择可能带来的不同故事走向。每一次开始新游戏,系统都会随机生成作者和书名,为玩家提供一个充满未知和选择的沉浸式阅读体验。整个项目被打包成一个Web应用,用户可以通过浏览器直接进行互动。

功能列表

  • 动态故事生成: 游戏的核心由AI驱动,能够根据预设的文学风格(如“东方玄幻”、“西方魔幻”)动态创作故事的开篇、发展和多重结局。
  • 随机化作家与作品: 每次开启新游戏,系统都会随机生成符合所选类型的“作家”和“书名”,增加游戏的趣味性和代入感。
  • 可视化故事线路图: 在游戏开始时,后端会预先生成整个故事的结构图(Story Map),并通过Mermaid.js在前端渲染,让玩家可以直观地看到故事的潜在分支和结局。
  • 分支叙事: 玩家的每一个选择都会影响故事的走向,导向不同的情节分支和最终结局。
  • 动态写作风格: AI会根据故事类型生成独特的写作风格描述,并应用于整个故事的叙述中,增强沉浸感。
  • 容器化部署: 项目完整支持Docker和Docker Compose,开发者和用户可以实现一键部署和启动,极大简化了环境配置的复杂性。

使用帮助

该项目被设计为通过Docker在本地轻松运行,以下是详细的安装和使用步骤,旨在让用户能够直接上手操作。

第一步:准备环境

在开始之前,你的电脑需要安装两样东西:DockerDocker Compose。 这两个工具可以帮助我们管理应用环境,避免复杂的依赖安装问题。你可以从Docker官网找到适合你操作系统的安装包并完成安装。

  • Docker: 一个开源的应用容器引擎。
  • Docker Compose: 用于定义和运行多容器Docker应用的工具。

第二步:获取项目文件

你需要从GitHub上下载整个项目的代码。你可以使用git命令来克隆仓库,或者直接在项目主页下载ZIP压缩包。

打开你的终端(在Windows上是命令提示符或PowerShell,在macOS或Linux上是Terminal),然后输入以下命令:

git clone https://github.com/xiamuceer-j/AI-Gamble.git

下载完成后,进入项目目录:

cd AI-Gamble

第三步:配置环境变量

项目需要一些敏感信息,比如你的OpenAI API密钥,这些信息通过一个名为.env的文件来管理。项目里提供了一个模板文件.env.example,你需要根据它来创建自己的配置文件。

  1. 复制模板文件:在项目根目录(AI-Gamble目录)下,执行以下命令来复制模板文件。
    • 如果你使用的是macOS或Linux系统:
      cp .env.example .env
      
    • 如果你使用的是Windows系统:
      copy .env.example .env
      
  2. 编辑.env文件:执行完上一步后,项目里会多出一个.env文件。用你喜欢的文本编辑器(如Visual Studio Code, Sublime Text, 或者记事本)打开这个文件。文件内容如下:
    # OpenAI API Key
    OPENAI_API_KEY="YOUR_OPENAI_API_KEY"
    # 其他可能的配置
    APP_PORT=1888
    

    你需要将YOUR_OPENAI_API_KEY替换成你自己的OpenAI API密钥。如果没有密钥,需要先去OpenAI官网申请。APP_PORT是应用的访问端口,默认是1888,你可以根据需要修改。

第四步:构建并启动服务

现在所有配置都完成了,你可以使用Docker Compose来一键构建和启动所有服务。

  1. 执行启动命令:在项目根目录下,确保你的Docker桌面应用正在运行,然后在终端中执行以下命令:
    docker-compose up --build
    

    --build参数会强制Docker重新构建镜像,确保你本地的任何代码修改都能生效。第一次运行时,Docker会下载所有需要的依赖(如Python, FastAPI等),然后根据Dockerfile配置应用环境,这个过程可能需要几分钟。

  2. 查看服务状态:命令执行后,你会在终端看到很多日志输出,这些是应用运行的实时信息。当看到类似uvicorn running on http://0.0.0.0:1888的日志时,说明Web服务已经成功启动。

第五步:开始游戏

服务启动后,就可以开始体验互动小说了。

  1. 访问应用:打开你的网页浏览器(推荐使用Chrome或Firefox),在地址栏输入:
    http://localhost:1888
    

    如果上一步你修改了端口,请使用你修改后的端口号。

  2. 开始互动
    • 页面加载后,你会看到一个简洁的界面,上面有不同的故事类型可供选择。
    • 选择一个你感兴趣的类型,例如“东方玄幻”,然后点击“开始”按钮。
    • 后端服务会接收到请求,调用大型语言模型(如GPT)实时生成一个独特的故事开篇、作者和书名。同时,整个故事的脉络图也会被生成,并通过Mermaid.js渲染在页面上。
    • 阅读完初始场景后,你会看到几个不同的选项,你的每一个选择都将决定故事的下一步走向。
    • 你可以随时查看右侧的故事线路图,了解自己当前在哪个分支,以及还有哪些可能的结局等待探索。

应用场景

  1. 个性化互动阅读对于喜欢阅读但又厌倦了线性叙事的读者,这个项目提供了一个全新的体验。用户不再是被动地接受一个固定的故事,而是可以主动参与其中,通过自己的选择来塑造情节发展和结局,每一次游戏都能读到一个独一无二的故事。
  2. 创意写作与灵感激发对于作家或内容创作者,这个工具可以作为一个强大的灵感来源。当遇到创作瓶颈时,可以通过选择不同的故事类型和分支,观察AI如何构建情节、发展人物和设计转折,从而激发自己的创作灵感。
  3. AI技术学习与实践对于学习AI和Web开发的开发者来说,这是一个优秀的实践项目。它涵盖了从后端API(FastAPI)、数据库(SQLAlchemy)、前端交互(JavaScript)到AI模型集成(OpenAI GPT)和容器化部署(Docker)的完整技术栈,可以帮助开发者理解一个完整的Web应用是如何与大型语言模型结合工作的。

QA

  1. 运行这个项目前,我需要准备什么?你需要在你的电脑上安装Docker和Docker Compose。此外,你必须拥有一个有效的OpenAI API密钥,并将其配置在.env文件中,因为故事的生成依赖于OpenAI的服务。
  2. 这个项目是如何生成故事的?该项目通过API调用大型语言模型(LLM),如OpenAI的GPT系列模型。当用户选择一个故事类型并开始游戏时,后端会向LLM发送一个精心设计的指令(Prompt),要求它生成一个符合该类型的故事结构图(JSON格式),包括开篇、多个分支和结局。接着,在用户的每次选择后,后端会根据当前情节和用户的选择,再次请求LLM生成后续的场景描述。
  3. 我可以自己修改前端样式或者添加新的故事类型吗?可以。项目的前端样式是使用Tailwind CSS构建的。如果你想修改样式,可以修改tailwind.css文件,然后运行npm run build命令来重新编译生成新的CSS文件。要添加新的故事类型,你可能需要修改后端处理故事类型选择的相关代码,并调整向AI发送的指令,以支持新的类型。
  4. 什么是故事线路图(Story Map)?它有什么用?故事线路图是一个可视化的流程图,它展示了整个故事所有可能的分支和结局。 在游戏开始时,AI会一次性生成整个故事的框架,并用Mermaid.js这个工具将其画出来。这可以帮助玩家直观地理解自己的选择会对故事产生什么长远影响,增加了游戏的可玩性和策略性。
微信微博Email复制链接