LiPu-jpg/Openwrite

AI小说创作引擎 - 对话式引导创建项目、动态+静态文件防遗忘、多维风格提取与合成、通用技法质量审核、热门题材查看分析、多层渐进式压缩长文本 支持:四级大纲(总纲→篇→节→章)、三层风格合成、伏笔DAG管理、情节弧线-节拍模板驱动写作、去AI味技法

OpenWrite – 장편 소설을 쓰는 데 도움이 되는 AI 보조 워크스테이션

무엇인가요 – OpenWrite는 두 개의 전문 AI 에이전트를 사용해 작가가 소설을 공동으로 집필할 수 있는 로컬 실행 애플리케이션입니다:

  • Goethe – 아이디어, 캐릭터, 세계관 구축, 그리고 지속적인 개요를 정리하는 데 도움을 줍니다.
  • Dante – 확정된 자산을 기반으로 적절한 맥락을 구성하고, 장을 초안 작성하고, 자동 리뷰를 실행하며, 이야기의 "진실" 파일을 업데이트하고 결과를 디스크에 기록합니다.

이 모든 것은 단일의 버전 관리 프로젝트 폴더와 웹 기반의 Studio UI(또는 동등한 CLI) 내에 존재합니다. 시스템은 수십 또는 수백 장에 걸쳐 작가의 의도, 플롯 사실, 캐릭터 상태를 일관성 있게 유지하도록 설계되었습니다.


핵심 기능

기능 OpenWrite의 처리 방식
풀스택 스튜디오 소설 생성, 모델 설정, 개요 편집, 자산 관리, 글쓰기, 리뷰, 검색, Markdown/TXT/EPUB로 내보내기 등 가능한 웹 UI.
이중 에이전트 Goethe = 계획 및 자산 생성; Dante = 맥락 구성, 초안 작성, 사실 추출, 상태 정착. 에이전트는 작가가 명시적으로 차이점을 승인한 후에만 쓰기 작업을 수행합니다.
단일 진실 소스 src/에는 정식 개요, 작가의 의도, 캐릭터 및 세계 파일이 저장됩니다. 실행 시 데이터(원고, 메모리, 리뷰, 캐시)는 data/ 아래에 위치합니다.
장문 맥락 처리 각 장에 대해 최근 장, 지속적인 개요, 관련 캐릭터/상태 스니펫, 그리고 최대 4개의 이전 문장을 재검색한 정규 패킷을 시스템이 구성합니다.
상태 추적 인라인, 행 기반 주석(예: //**Shen Jin[상처]:왼팔 경상 -> 회복됨**)을 통해 캐릭터의 위치, 부상, 관계 등을 기록합니다. 충돌은 자동으로 감지됩니다.
트랜잭션 기반 쓰기 소설별 잠금을 통해 쓰기, 상태 업데이트, 파일 쓰기가 모두 성공하거나 실패 시 스냅샷으로 롤백됩니다.
구조화된 리뷰 루프 37차원 리뷰는 작가의 의도, 스타일, 일관성, 사실의 정합성 등을 점검합니다. 문제는 심각도와 함께 표시되며, 원본 텍스트에 링크되며, 차이 기반 수정 제안을 생성할 수 있습니다.
개인 참조 라이브러리 및 RAG 이전 초안이나 외부 작품을 가져오고, 로컬 FastEmbed 벡터 인덱스(또는 OpenAI 호환 임베딩)를 실행하며, 필요 시 LightRAG 그래프 기반 검색을 활성화해 엔티티 수준의 추론을 가능하게 합니다.
확장 가능한 기술 표준 SKILL.md 파일(또는 런타임 manifest.yaml 기술)은 @skill-id로 한 번의 턴에 호출할 수 있습니다. 기술은 사전에 격리되며, 작가 승인 단계를 건너뛸 수 없습니다.
모델 독립성 OpenAI, Anthropic, 또는 어떤 OpenAI 호환 엔드포인트도 지원합니다. 모델 매개변수(모델 이름, 온도, 컨텍스트 창 등)는 Studio의 Model Settings 패널에서 설정됩니다.

시작하기 (빠른 시작)

  1. 클론 및 실행
    git clone https://github.com/LiPu-jpg/Openwrite.git
    cd Openwrite
    python3.10 -m venv .venv
    source .venv/bin/activate   # Windows: .venv\Scripts\activate
    python -m pip install -e .
    openwrite studio   # 로컬 웹 UI 열기
    
    macOS/Windows에서는 제공된 OpenWrite 시작.command / OpenWrite 시작.bat를 더블클릭하여 격리된 런타임을 생성하고, 종속성 설치 후 UI를 열 수 있습니다.
  2. 모델 설정 – Studio 상단바의 Model Settings에서 OpenAI, Anthropic 또는 사용자 정의 엔드포인트를 선택하고 API 키를 입력한 후 연결을 테스트합니다.
  3. 소설 생성 – 첫 실행 워크숍에서 제목과 폴더(기본값: ~/OpenWriteNovels/<Title>)를 입력합니다. 폴더에는 src/data/ 하위 트리가 포함됩니다.
  4. Goethe로 계획하기AI 협업 패널을 열고 플롯 아이디어, 캐릭터, 세계 규칙에 대해 논의합니다. Goethe가 초안을 제안하고, 차이점을 승인하면 자산이 src/에 기록됩니다.
  5. Dante로 쓰기 – 개요 보기에서 장을 선택하고, 단어 수 목표를 설정한 후 Write를 클릭합니다. Dante는 정규 패킷을 구성하고 LLM을 호출하여 장을 작성하고, 사실 변경 사항을 추출하며 상태 파일을 업데이트합니다.
  6. 리뷰 및 수정리뷰 패널을 사용해 자동 생성된 문제를 확인하고, 심각도별로 필터링하며 제안된 차이를 적용합니다.
  7. 내보내기 – 원고가 완성되면 Project Migration으로 이동하여 Markdown, 일반 텍스트 또는 EPUB로 내보냅니다.

아키텍처 개요

Studio ──┐
Goethe ──┤   → NovelApplicationService (정규 패킷, 쓰기/리뷰/수정, 상태 기록)
Dante  ──┼─
CLI    ──┘

모든 인터페이스는 동일한 작업 표면을 공유하므로 CLI와 UI는 동일하게 동작합니다. 서비스는 확인된 소스 파일을 src/에, 모든 일시적 데이터를 data/에 저장합니다.


라이선스 및 커뮤니티

  • 라이선스 – 핵심 코드는 Apache-2.0; 제3자 구성 요소는 각각의 원래 라이선스를 유지합니다 (FastEmbed, LightRAG, LiteLLM, Vditor 등).
  • 기여 방법python -m pip install -e ".[dev]"를 실행하고 pytest로 테스트 스위트를 확인하세요. 이슈 및 기능 요청은 GitHub Issues 페이지에서 처리됩니다.
  • 감사의 말 – LightRAG(그래프 + 벡터 검색), FastEmbed(로컬 임베딩), LiteLLM(모델 게이트웨이), Vditor(마크다운 에디터), 그리고 oh-story-claudecode 스킬 세트를 기반으로 구축되었습니다.

누구를 위한가요

  • 캐릭터의 성장, 세계 규칙, 플롯의 예고를 일관성 있게 유지해야 하는 다장작 소설을 쓰는 작가.
  • AI 보조를 원하지만 통제권을 포기하고 싶지 않은 작가 – 정규 이야기 파일의 모든 변경은 명시적으로 승인되어야 합니다.
  • 클라우드 스토리지가 필수적이지 않은 로컬 우선 워크플로우를 선호하지만, 옵션으로 클라우드 임베딩이나 LLM 엔드포인트를 원하는 팀.

결론 – OpenWrite는 장편 소설 작성의 장문 맥락 도전에 특화된 완전 기능의 로컬 호스팅 AI 에이전트 플랫폼입니다. 계획, 초안 작성, 자동 리뷰, 벡터/RAG 검색, 버전 안전한 UI를 통합하며, 모든 결정적 편집에서 작가를 항상 참여시키고 있습니다.

관련

  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트
  • 프로젝트