ai-novel-studio README

The project's README from github.com/weike-zhang/ai-novel-studio. As one markdown file: README.md.

AI Novel Studio · AI 小说创作台

An AI novel generation platform with world building, interactive choices, and persistent character state.

简体中文 · Architecture · Run the web app

AI Novel Studio is an AI interactive fiction application built with Next.js and Go. Create a world, start a private journey, and choose what happens next. The server checks a model's proposed changes before committing them to the story.

For developers building narrative games or stateful AI applications, the useful part is the boundary between generated prose and stored facts: a model can propose an action, but it cannot rename an established character through a state patch.

See a valid turn commit and an invalid change fail

With Go 1.26 or newer, from the repository root:

cd services/server
go run ./cmd/demo

The demo uses the actual story engine with an in-memory repository and a deterministic fake provider. It needs no API key, database or Docker. Go may download module metadata on first use.

It commits a harbor scene, attempts to change a character's name, then checks that the rejected proposal leaves the committed version intact. This demonstrates validation behavior; it does not measure a real model's storytelling quality.

What is included

Part What you can inspect
Web application World discovery, authoring, private journeys, account flows and task progress
Story engine Frozen world snapshots, committed context, character and scene validation
Go API and worker Queued generation, model proposals, validation and transactional persistence
Data and contracts MySQL migrations, synthetic development data and an OpenAPI client
Model integration OpenAI-compatible requests, configurable endpoints and fallback handling

The public edition includes synthetic development content. It excludes the hosted site's catalog, original cover artwork, user data and production configuration. Payment-related code does not establish a live payment integration.

How a turn reaches the story

flowchart LR
  A[Player action] --> B[API and task reservation]
  B --> C[Outbox and RabbitMQ]
  C --> D[Go worker]
  S[Frozen world and committed state] --> D
  D --> E[Model proposal]
  E --> V[Validation]
  V --> T[MySQL transaction]
  T --> U[Web task progress]

The architecture guide connects each decision to its implementation and tests. The standalone demo uses an in-memory commit path; the full application uses the worker and database path.

Development

Node.js 22+ is required for the web application. From the repository root:

npm ci
npm run build:api-client
npm run test:web
npm run test:api-client
npm run tokens:check

For the Go packages:

cd services/server
go test ./...

Database, Redis, RabbitMQ and live-model integration tests require their explicit test environment variables. A default go test run does not prove those integrations work. Read development setup and the verification record before starting the full application.

Contribute

Useful contributions include a reproducible continuity failure, a focused validator regression test, or a clearer first-run instruction. Include the action, expected state and actual result; use synthetic data and remove credentials. See contributing and security reporting.

If you use these patterns in a story project, a star helps other developers find the implementation.

License

MIT. Dependency licenses remain applicable; see third-party notices.

ai-novel-studio (weike-zhang/ai-novel-studio)

Searching Database…

Что это?AI Novel Studio — платформа интерактивной фантастики на базе AI, построенная на Next.js и Go: вы создаёте мир, начинаете приватное приключение и выбираете, что будет дальше, а сервер проверяет каждое предложенное AI изменение до сохранения.
Это готовое к использованию приложение или фреймворк для создания своего?Это законченное веб-приложение — фронтенд на Next.js плюс API и воркер на Go, — а не библиотека, и в комплекте есть автономное демо, которое можно запустить, самому не подключая никаких внешних сервисов.
Как это попробовать?Запустите входящее в комплект демо из корня репозитория с Go 1.26+; ему не нужны API-ключ, база данных или Docker: оно сохраняет сцену, а затем показывает, как отклоняется некорректное предложение переименовать персонажа. Для полного веб-приложения дополнительно нужен Node.js 22+ для фронтенда на Next.js.
Что нужно для полного приложения, а не только для демо?Помимо Node.js 22+ для фронтенда, полному приложению нужны MySQL, Redis и RabbitMQ, а соответствующим тестам — свои явные тестовые переменные окружения; для интеграции с живой моделью тоже нужны свои учётные данные.
Доказывает ли демо, что AI реально пишет хорошие истории?Нет — оно лишь показывает, что некорректные изменения состояния, вроде переименования уже закреплённого персонажа, отклоняются, а корректные ходы сохраняются как обычно; качество сторителлинга реальной модели оно не измеряет.
Для кого это сделано?Оно нацелено на разработчиков нарративных игр или AI-приложений с состоянием, которым нужен рабочий пример разделения сгенерированного текста и проверенных, сохранённых фактов истории.
Как обеспечивается согласованность персонажей на протяжении истории?Сервер сверяет каждое предложенное моделью изменение с уже зафиксированным состоянием мира до сохранения, поэтому предложение переименовать или изменить закреплённого персонажа отклоняется, а зафиксированная версия остаётся нетронутой.
Включает ли публичный репозиторий реальные платежи или контент размещённого сайта?Нет — публичная версия содержит только синтетические данные для разработки и исключает реальный каталог размещённого сайта, обложки, данные пользователей, production-конфигурацию и любую работающую платёжную интеграцию.
Чем именно занимается каждая половина стека?Next.js отвечает за обнаружение миров, создание историй, приватные приключения и аккаунты, а Go обслуживает API и воркер, которые ставят генерацию в очередь, проверяют предложения модели и транзакционно сохраняют зафиксированные ходы в MySQL.
Можно ли использовать любого LLM-провайдера?Интеграция с моделью идёт через OpenAI-совместимые запросы с настраиваемыми эндпоинтами и обработкой отката, так что её можно направить на любого совместимого провайдера, а не на один жёстко зашитый.
Size
0.4 MB
Stars
234
Updated
CommitOct 03
Age
15d
Commits · 90 Days