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 패널에서 설정됩니다. |
시작하기 (빠른 시작)
- 클론 및 실행
macOS/Windows에서는 제공된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 열기OpenWrite 시작.command/OpenWrite 시작.bat를 더블클릭하여 격리된 런타임을 생성하고, 종속성 설치 후 UI를 열 수 있습니다. - 모델 설정 – Studio 상단바의 Model Settings에서 OpenAI, Anthropic 또는 사용자 정의 엔드포인트를 선택하고 API 키를 입력한 후 연결을 테스트합니다.
- 소설 생성 – 첫 실행 워크숍에서 제목과 폴더(기본값:
~/OpenWriteNovels/<Title>)를 입력합니다. 폴더에는src/와data/하위 트리가 포함됩니다. - Goethe로 계획하기 – AI 협업 패널을 열고 플롯 아이디어, 캐릭터, 세계 규칙에 대해 논의합니다. Goethe가 초안을 제안하고, 차이점을 승인하면 자산이
src/에 기록됩니다. - Dante로 쓰기 – 개요 보기에서 장을 선택하고, 단어 수 목표를 설정한 후 Write를 클릭합니다. Dante는 정규 패킷을 구성하고 LLM을 호출하여 장을 작성하고, 사실 변경 사항을 추출하며 상태 파일을 업데이트합니다.
- 리뷰 및 수정 – 리뷰 패널을 사용해 자동 생성된 문제를 확인하고, 심각도별로 필터링하며 제안된 차이를 적용합니다.
- 내보내기 – 원고가 완성되면 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를 통합하며, 모든 결정적 편집에서 작가를 항상 참여시키고 있습니다.
관련
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트
- 프로젝트