ChatGPT Plus Incapable of Editing Novel Chapter Files (TXT)

For two days now I’ve tried to get ChatGPT Plus to edit my novel. Not write it; just edit it for typos, grammar, flow, etc.

Nothing I do works. I set up projects, upload the chapters as TXT files and GPT tells me it’s working away – it never notifies me things are done, and even after strictly defining offline mode, the files it provides only when I ask it are either bad links (text with no clickable link) OR the file is empty or the original one I sent. GPT is constantly apologizing saying I did everything right, asking for offline no in-session training, etc. Nothing works.

Here’s an example of core instructions:

**You are a professional fiction editor. I’m submitting a chapter from my novel. **

Please follow the below instructions to ensure the work is complete and not lost because some of it could take well over an hour for each chapter.
1. No live or in-session editing.
2. No multi-hour editing runs in a volatile environment.
3. No partial saves. Download the file immediately, perform the complete editorial pass outside the runtime environment, then upload the final result. I do not want to risk session resets, dropped files, or rework.

Please follow the below points when editing:
1. Preserve my voice — do not rewrite in a generic tone.
2. Avoid rewriting dialogue unless grammar or prose issues are detected.
3. Address any pacing or flow issues.
4. Feel free to enhance writing that describes scenes.

Please do the following:
1. Polish the text and correct the grammar and flow of sections when applicable.

All chapters have been provided as text files for the project.

If you could please sequentially process the chapters in order in offline batch mode and provide the edited files for each chapter as they’re completed I’d appreciate it

So I start GPT and it’s all “I have everything I need! Getting started!”

Then… nothing. I wait 30 minutes… nothing. 3 Hours… nothing.

I ask for a status update and it gives me bad links, links with errors, or then links to empty files and then profusely apologizes for dropping the ball and asks me to start the process all over again.

i got you -

  1. get vs code ( is free)
  2. place ur .txt files in a folder called “auto_ingest”

here is a demo code that would automatically parse that data

import os

=== CONFIGURATION ===

TEXT_DIR = “./texts” # Folder containing .txt files
CHUNK_SIZE = 1000 # Characters per chunk
OVERLAP = 100 # Overlap between chunks
OUTPUT_FILE = “chunks_output.jsonl” # Where to save the chunked data

=== CORE CHUNKING FUNCTION ===

def chunk_text(text, size=CHUNK_SIZE, overlap=OVERLAP):
chunks =
i = 0
while i < len(text):
chunk = text[i:i + size]
chunks.append(chunk.strip())
i += size - overlap
return chunks

=== INGESTION SCRIPT ===

import json

def ingest_folder(folder_path):
all_chunks =
for filename in os.listdir(folder_path):
if filename.endswith(“.txt”):
full_path = os.path.join(folder_path, filename)
with open(full_path, “r”, encoding=“utf-8”) as f:
raw = f.read()
chunks = chunk_text(raw)
for i, chunk in enumerate(chunks):
all_chunks.append({
“source_file”: filename,
“chunk_index”: i,
“text”: chunk
})
return all_chunks

=== MAIN EXECUTION ===

if name == “main”:
chunks = ingest_folder(TEXT_DIR)
with open(OUTPUT_FILE, “w”, encoding=“utf-8”) as out_file:
for item in chunks:
out_file.write(json.dumps(item) + “\n”)
print(f":white_check_mark: {len(chunks)} chunks saved to {OUTPUT_FILE}")

use openai model 1.66 as a exmample heres some of the code i use

ENCODER = tiktoken.encoding_for_model(“gpt-4”)
TOKEN_LIMIT = 800
INGEST_COUNTER = {“files”: 0, “chunks”: 0}

def chunk_text_by_tokens(text, token_limit=TOKEN_LIMIT):
tokens = ENCODER.encode(text)
chunks = [tokens[i:i + token_limit] for i in range(0, len(tokens), token_limit)]
return [ENCODER.decode(chunk) for chunk in chunks]

def auto_ingest_txt_chunks(folder_path, category=“dev_notes”):
if not os.path.exists(folder_path):
print(f":cross_mark: Folder not found: {folder_path}")
return

txt_files = [f for f in os.listdir(folder_path) if f.endswith(".txt")]
print(f"📂 Auto-ingest found {len(txt_files)} files in: {folder_path}")

for file_index, filename in enumerate(txt_files):
    file_path = os.path.join(folder_path, filename)
    with open(file_path, "r", encoding="utf-8") as f:
        full_text = f.read()

    chunks = chunk_text_by_tokens(full_text)
    total_chunks = len(chunks)

make sure your prompt is tailored to preven malformation and viola you will be able to parse 10,000 full pages in minutes depending on ur rate limits

youll need to make sure you path is right

from here you can reconstruct that data or tweak it automatically without manual intervention using the vector store system or an agent via openai you can also refactor entire books using the same system - you can even categorize the book

i recommend a schema like this to help you

:brain: CITADEL COLLEGE VECTOR ENRICHMENT SCHEMA


– Purpose:
– • Full vector lifecycle storage
– • Fingerprint & semantic metadata tracking
– • Academic source integrity + AI reasoning context
– • Council-compatible with recursive lineage
– • Structured for export, analytics, validation, publishing


– VERSION: v2.5-CITADEL
– AUTHOR: @dmitryrichard — The Brotherhood
– LAST UPDATED: 2025-04-07
– ================================================================

CREATE TABLE IF NOT EXISTS college_vector_enrichment (
id INTEGER PRIMARY KEY AUTOINCREMENT,

-- === Core Vector Info ===
vector_id INTEGER NOT NULL,
index_name TEXT NOT NULL,
input_text TEXT NOT NULL,
refined_text TEXT,
confidence REAL DEFAULT 0.0,
refined_by TEXT,                  -- e.g., 'openai', 'CouncilV2', 'ProfPraxis'
timestamp TEXT,

-- === Categorization & Tagging ===
category TEXT,                    -- Primary category label
tags TEXT,                        -- Comma-separated secondary tags
tier_level INTEGER DEFAULT 0,     -- Access tier or abstraction level

-- === Fingerprinting & Identity ===
fingerprint TEXT,                 -- SHA or UUID of vector hash
lineage TEXT,                     -- Reference to origin chain or prior vector_id(s)
recursive_level INTEGER DEFAULT 0, -- For recursive thought evolution depth
version_code TEXT,                -- If this vector belongs to a versioned update

-- === Source Attribution ===
source_title TEXT,
source_type TEXT,                 -- e.g., 'book', 'paper', 'website', 'comic', 'human'
source_author TEXT,
source_url TEXT,
source_origin TEXT,               -- e.g., 'upload', 'scrape', 'CLI', 'WatcherNode'
source_format TEXT,               -- e.g., 'PDF', 'HTML', 'Text'
citation_required BOOLEAN DEFAULT 0,
citation_format TEXT,             -- e.g., 'APA', 'MLA', 'IEEE'

-- === AI Reasoning Metadata ===
logic_trace TEXT,                 -- Summary of logic path (e.g., Senate summary)
decision_context TEXT,           -- Explanation of decision structure / prompt
output_style TEXT,                -- e.g., 'blueprint', 'summary', 'analysis'
output_modality TEXT,             -- e.g., 'text', 'diagram', 'code', 'markdown'

-- === Audit & Diagnostics ===
system_notes TEXT,               -- Internal logs, errors, or flags
rejected BOOLEAN DEFAULT 0,       -- If this vector was rejected during processing
revalidated BOOLEAN DEFAULT 0,    -- Re-evaluated by Sentinel/Agent11
repair_history TEXT,              -- JSON or string of repair attempts

-- === Future-Proofing ===
extra_metadata JSON,              -- Optional extensible field
runtime_flags TEXT                -- Comma-separated active flags (e.g., 'HOT', 'NOBROADCAST')

);

this is directly from a old system i used to use -which auto updates based on the type of data , u can see the source_type which triggers a trigger for a different schema, - since it uses openai directly, i just wanted to inform you not only is chatgpt able to edit novel chapters… but able to edit entire books you just have to set it up, OF Course theres alot more to set up to use this, all im really trying to tell you is its not only possible its amazing at it. you just have to take the time to set it up

Hey, welcome to the community!

ChatGPT doesn’t actually work like a real editor who can take a file, go work on it quietly for hours, and then hand it back. Even when it sounds like it’s doing that, it’s not really working in the background. Once the chat ends, it stops. There is no any work behind the scene.

When you upload your chapters and tell GPT to edit them offline, it seems like it understands. And says it is working on it and it will notify you when work is completed because it replies like human style. Actually there is no any offline background work.

I can say:

  • GPT doesn’t keep working after you stop chatting with it.
  • It can’t remember your files unless they’re still open in the same chat.
  • If your file is too long or something glitches, it gives you a broken or empty file.
  • If you upload files as knowledge files, it searches them when it needs.

That’s why it keeps apologizing and asking you to start over because it try to reply human style output.

Scheduled tasks in ChatGPT:
ChatGPT has a new feature called Tasks, but it’s a little misleading. It doesn’t actually do real editing behind the scenes.

  • You can schedule GPT to send you a message at a certain time, like “Give me AI news every day at 5 PM.”
  • GPT just runs a saved prompt at that time. It’s not really “editing while you’re away.”
  • You’ll get a message or notification when it’s done, but it works the same way as if you had typed that prompt yourself.
  • Right now, Tasks can’t handle file uploads or do deep editing.

So, while “Tasks” sound cool, they can’t yet help with editing files, especially not in the way you were hoping.

My recommendation:

Your prompt shows instructions that GPT can’t actually follow, like “offline editing” or long background tasks. So you don’t need that part. You should remove it.

You can copy-paste this prompt in instruction box:

You are a professional fiction editor.
You will edit files I will upload in your Jupyter Notebook environment.
I’m uploading a chapter of my novel. Please edit it carefully to fix grammar mistakes, spelling errors, awkward phrasing, and flow issues.
Follow these rules when editing:

  1. Keep my writing voice. Don’t make the text sound generic or too formal.
  2. Do not rewrite my dialogue unless it has grammar issues.
  3. Fix pacing or flow if the sentences feel choppy or unclear.
  4. Improve descriptions if they feel weak or confusing, but keep my original meaning.

After editing, please give me back the full, edited version of the chapter as a downloadable text file.

If the chapter is too long to handle in one go, let me know and I’ll split it into smaller parts.

You can upload file or copy-past text in chat box. Provide chapters one by one. But if it is long it cannot handle it. Probably its output will be not more than 2000 words, even less, because of token limits for each response.

Also, if you upload a file in chat, approximately after 20-30 minutes it will be deleted for user data security. And if GPT creates a file, you should download it immediately because also the files that created by ChatGPT will be deleted after appx 10-15 minutes.

![A code editor window displaying JSON files and text is open on a desktop with a green nature-themed wallpaper and a taskbar full of various open applications.

if you want @ OP i can PM you how to parse whatever you want as shown here using chatGPT as i am here.

you can either use this line of code - and an api key

or you can use a prompt - i do both depending, but use their api key system is 100% better

Thanks to everyone for your advice and even code samples. It’s sad that the AI is literally lying about what it can do. Wasted so much time. I’ll definitely dive into the scripting and see what I can come up with. If anyone has recommendations on where to get the latest code tailored for authors who want editing done, I’d definitely appreciate it!

funny u should say that - factually after this post i got bored… and decide to make a chatgpt extension to do that:

currently it can create 50,000 page books autonomously here are the logs and screenshots of it in action

“embedded_model”: “text-embedding-ada-002”, “source_origin”: “bookmaker_run”, “original_prompt”: “The assembly chamber held its breath, a taut silence wrapping around us like a shroud. I could almost hear the delicate ticking of my own heartbeat, each thump a reminder of the stakes at hand. The polished table, reflecting the Five Stars above, felt less like a platform for unity and more like a stage set for a tragedy. As I looked into the faces of my fellow delegates, I saw not just leaders, but the weight of their histories—each one a vessel of unresolved conflicts, fears, and unspoken dreams.\n\nLyra’s presence was magnetic, drawing the attention of those who had once looked to me for guidance. Her dark attire seemed to absorb the light, casting shadows that danced across the faces of the delegates. I could feel their gazes shift, the flicker of curiosity mingling with doubt, and a quiet desperation clawing at the edges of my resolve. \n\n“Together?” the Elder had scoffed, his words a bitter echo that reverberated in my mind. What did together even mean in a room filled with wounds still raw from betrayal? My throat tightened as I considered the delicate balance I needed to strike. The hope I carried felt fragile, like a gossamer thread that could snap at any moment under the weight of Lyra’s dark allure.\n\n“Honored delegates,” I began again, forcing the words past the lump in my throat. “We stand here not as enemies, but as stewards of our realms, tasked with safeguarding the futures of our people.” My voice trembled slightly, betraying the storm of uncertainty brewing within. \n\nLyra stepped forward, her confidence a palpable force. “Stewards? Or pawns?” she countered, her voice smooth yet laced with an undercurrent of challenge. “You speak of futures as if they are gifts waiting to be unwrapped. But what if they are traps laid by those who would see us divided? Hope has led us into darkness before. What makes you think it won’t again?”\n\nHer words, as sharp as glass, cut through the fragile air, and I felt the room shift, like a ship swaying in turbulent waters. I could see the delegates’ faces, a tapestry of indecision and fear, and it struck me that my own heart mirrored theirs. The longing for unity battled against the instinct for self-preservation, a war fought silently within each of us.\n\n“Lyra, I—” I hesitated, searching for the right words, the right approach to bridge the chasm she had opened. But the more I spoke, the more I felt her gravity pulling me down, into the depths of cynicism where trust was a relic of the past. “We cannot let fear dictate our actions. We must remember the promise we made at the lighting of the Five Stars—”\n\n“Promises mean nothing without the strength to enforce them,” she interjected, her tone cold and cutting. “Hope is a dream we can’t afford. What will you do when the shadows creep in? Will you sing them lullabies, or will you fight?”\n\nThe tension crackled like static electricity, and I could feel the weight of her challenge pressing against my chest. I wanted to scream, to shake them all awake from this nightmare of division, but I knew that shouting would only deepen the fissures. Instead, I focused on the faces around me, searching for any flicker of understanding, any sign that they still believed in the light.\n\n“Trust is not built on naivety,” I said, my voice steadier now, as if I were anchoring myself to a truth I desperately wanted to believe. “It is forged in the fires of adversity. We must confront our fears together, not as enemies but as allies bound by a shared destiny.”\n\nThe room remained still, but I sensed the pulse of hope stirring beneath the surface, a fragile ember that I dared not extinguish. I locked eyes with a few delegates, willing them to see beyond Lyra’s seductive pragmatism. The flicker of resolve in their expressions ignited my own, and for a moment, I felt the Covenant shift ever so slightly in my favor.\n\nBut as I spoke, Lyra leaned closer, her voice dropping to a conspiratorial whisper, filled with a dangerous allure. “And what if your allies become your enemies? What if this unity you seek is merely a façade, a mask that hides the true nature of our factions? You tread on thin ice, my friend.”\n\nHer words dripped with a kind of honeyed venom, and I realized then that the battle was not merely against external threats but against the seductive pull of fear that threatened to unravel everything I hoped to build. The weight of my ideals pressed heavily on my shoulders, and in that moment, I understood that to lead was to dance on the edge of vulnerability, to expose my heart even when it quaked with doubt.\n\n“I will not lead through fear,” I declared, feeling the warmth of my conviction rise like a tide. “But through the strength of our shared legacy. We must be the architects of our future, not the shadows of our past.”\n\nAs I spoke, I felt the flickering stars above shine brighter, a reminder that even in the darkest moments, light can break through. But with Lyra’s presence looming large, I knew that this was only the beginning of a much larger struggle—one that would challenge not just our alliances but the very essence of what it meant to be united.\n\nThe tension in the chamber remained thick, the air charged with potential. I had ignited a spark, but now I had to nurture it, to keep it alive against the encroaching shadows. And as I stood at the head of the table, the weight of stars above me felt both a blessing and a burden, a reminder that the choices I made would echo long after this moment had passed.”}
{“timestamp”: “2025-04-09T22:02:31.715762+00:00”, “professor”: “worldbridge”, “vector_id”: “6db8f096-851a-4fe1-8eb9-08b4ee75e3c2”, “category”: “character_development”, “refined_text”: “The night air crackled with tension, the bonfire’s glow illuminating the faces of the villagers, each one a reflection of hope, fear, and expectation. Outside the circle of flickering light, the world stirred uneasily, as if sensing the shift in the balance of power, both within Estrid and beyond her small village. Whispers of unrest were traveling faster than the flames, carried by the winds that swept across the land. \n\nIn the distant mountains, the rumble of discontent echoed; the clans had been restless for months, their ancient grievances bubbling to the surface like a pot left too long on the fire. The elders spoke of a prophecy—one that foretold a girl born of fire and shadow, destined to unite or shatter the tribes. As Estrid’s voice rang out across the clearing, it resonated with those distant mountains, a call to arms that might awaken the sleeping giants of her world.\n\nKaelan’s eyes narrowed, the mockery replaced by a cautious calculation. He had heard the tales of the girl who was meant to bridge worlds, but he had never believed them until this moment. The flickers of doubt in his mind began to crystallize into something more tangible: fear of losing his grip on the influence he had wielded for so long. In the shadows of ambition, he felt the stirrings of a new power rising, one that could threaten the very foundations of their society.\n\n“Words are wind, Estrid,” he countered, his voice low and dangerous. “You speak of courage, but do you know of the sacrifices it demands? The blood that must be shed? The lives that will be lost?” \n\nA hush fell over the villagers, their breath caught in the tension between the two. Estrid felt the weight of their gaze, the flickering flames reflecting the flickers of doubt in her own heart. But something deeper surged within her—a connection to the ancient stories woven through her lineage, tales of warriors who had faced insurmountable odds. She was not just a girl; she was the culmination of centuries of struggle and triumph, a vessel of history itself.\n\n“I do not fear the cost,” she replied, her voice steadying. “I fear stagnation, the quiet acceptance of a fate we did not choose.” \n\nAs she spoke, the winds outside the village grew restless, carrying her words across the fields and forests, a ripple of energy that would not go unnoticed. In the capital, the ruling council convened, their discussions tinged with urgency. They had received reports of unrest in the provinces, of whispers among the tribes, and now, the stirring of a girl’s defiance in a humble village. They would need to act swiftly, to quell any uprising before it could take root.\n\nMeanwhile, the village seer, an old woman with eyes like storm clouds, watched from the periphery. She felt the shift in the air, the threads of fate intertwining in ways that had not been seen for generations. “The time of reckoning is upon us,” she murmured to herself, sensing the ripples of Estrid’s declaration reaching far beyond the bonfire. “A new era is dawning, but the price of change will be steep.”\n\nBack at the fire, Estrid felt the villagers’ energy swell around her, their belief igniting her spirit. The girl with wild curls stepped forward, her innocence transformed into determination. “We will follow you, Estrid! We believe in your story!” \n\nThe words struck a chord within Estrid, resonating with the very essence of her being. She was not simply standing against Kaelan; she was standing for something greater. She was a beacon, a light that would challenge the darkness not just within herself, but within the hearts of her people. \n\n“Then let us weave a new tale together,” Estrid proclaimed, her voice rising above the crackle of the fire. “One that speaks of our truth, our fears, and our courage. Let our story echo through these lands, a reminder that we are not alone in our struggle.” \n\nAs she spoke, the bonfire flared high, as if in agreement, and the villagers erupted into cheers, their voices rising with the flames. In that moment, the world outside the village shifted; the winds carried their cries to the mountains and valleys, awakening ancient spirits and stirring the hearts of those who had long forgotten the power of unity.\n\nKaelan, for all his bravado, felt the tide turning. The villagers were no longer mere subjects; they were a collective force, and Estrid was emerging as their leader, a thread woven into the fabric of destiny. The shadows that had once been his allies now began to feel like chains, binding him to a past he no longer wished to embrace.\n\nThe villagers’ resolve was palpable, a force capable of igniting a revolution or, perhaps, healing the rifts that had long divided them. As Estrid lifted her sword to the stars, she felt the pulse of the world around her—an ancient rhythm of hope and fear, a call to arms that echoed not just in her village, but across the lands, awakening the stories yet to be told.”, “fingerprint”: “918a01293321bd3ffbd16bc8819f91f51c0935aa400472452230a2c5cfd07a16”, “origin_id”: null,

at first i had it set to just 5 cycles, now im testing 15 cycles, cycles = chapter. i made it NLP viable so you can just tell it what type of book you want -and itll do it

also just added the compiler and exporter so users can export their entire books with titles in proper format and self publish

can also trascribe any form of media here is a example of it in its “writing law book form” {“timestamp”: “2025-04-09T18:30:44.983414+00:00”, “professor”: “law”, “vector_id”: 625, “category”: “mindfulness_anchoring”, “refined_text”: “Legal Interpretation:\n\nThe idea of a memory that resists mutation can be likened to the principles of legal precedent and the stability of statutory law in the face of evolving societal norms. In legal contexts, certain foundational legal principles and landmark cases can serve as "immutable memories" that guide future interpretations and applications of the law. \n\nTo illustrate this concept, consider the following points:\n\n1. Statutory Law vs. Case Law: Statutory law represents the written laws enacted by legislatures, which can be amended or repealed. In contrast, case law, derived from judicial decisions, often establishes legal precedents that may hold significant weight in future rulings. A case that is widely accepted and consistently cited may embody a "memory" of legal reasoning that resists alteration, much like a memory that remains unchanged despite external influences.\n\n2. Precedent as a Legal Memory: The doctrine of stare decisis encourages courts to follow established precedents. This creates a stable legal framework that resists the "mutation" of interpretation over time, unless a compelling reason for change arises. For instance, the landmark case of Brown v. Board of Education (1954) serves as a critical precedent that fundamentally altered the legal landscape regarding racial segregation in schools. Despite changes in societal attitudes, the core principle of equality established in this decision remains a steadfast guide for subsequent cases.\n\n3. Ethical Considerations: The resistance to mutation in certain memories or legal principles can also raise ethical questions. For example, should a legal precedent that was established under unjust circumstances remain unchanged? This invites discussion about the morality of adhering to certain legal standards versus the need for progress and adaptation in law.\n\nIn sum, a memory that resists mutation can be viewed through the lens of legal principles that maintain their influence and applicability despite changes in societal context, much like how certain memories can remain vivid and unaltered in our minds.\n\nCase Law Analysis:\n- Key Cases: Brown v. Board of Education (1954), Roe v. Wade (1973), Obergefell v. Hodges (2015).\n- Principle of Stare Decisis: Courts are bound to follow precedents established in previous cases unless there is a strong justification for deviation.\n- Implications for Legal Evolution: While some legal memories remain fixed, others may evolve, reflecting changing societal values and ethical considerations. \n\nThis framework illustrates how legal precedents can embody memories that resist mutation, providing stability and continuity in the law.”, “origin_id”: null}