Нейросеть для документов Word: создание и правка DOCX через API

Модель не умеет «класть» файл в Word, зато может вернуть структуру и текст. Разбираем связку python-docx и API: создание, правка и проверка документов.

4 мин · · автоматизация · разработка

Если вы ищете нейросеть для документов Word (в поиске это чаще «нейросеть для документов ворд»), важно сразу понять устройство задачи. Языковая модель возвращает текст, а не файл .docx. Файл собирает ваш код: модель отвечает за содержание и структуру, библиотека python-docx отвечает за оформление. Ниже рабочая схема создания и правки документов, которую можно запустить за вечер, и расчёт стоимости. Цены приведены на 18 октября 2026.

Как устроена связка модели и Word

Документ DOCX внутри — набор XML-файлов в архиве. Просить модель «выдать docx» бессмысленно: она напишет описание файла, а не сам файл. Надёжнее разделить работу:

  1. Модель получает задачу и возвращает структуру в JSON: заголовки, абзацы, списки, таблицы.
  2. Ваш скрипт на python-docx превращает JSON в документ, применяя стили из шаблона компании.
  3. Скрипт проверяет результат: валидный ли JSON, нет ли пустых разделов, остались ли пометки вида [УТОЧНИТЬ].

Так оформление не зависит от настроения модели: шрифты, поля и заголовки всегда одинаковые, потому что их задаёт шаблон. Для правки существующих файлов схема обратная: код достаёт текст абзацев, модель возвращает исправленные версии, код вставляет их обратно.

Установка:

bash
pip install python-docx openai

Ключ создайте в кабинете, примеры клиента на Python — в документации.

Нейросеть для создания документов Word: JSON и python-docx

Сначала функция, которая просит у модели структуру и аккуратно разбирает ответ:

bash
import json
from docx import Document
from openai import OpenAI

client = OpenAI(base_url="https://api.zukko.pro/v1", api_key="fetch_ваш_ключ")
MODEL = "claude-sonnet-5-5"

SYSTEM = """Ты готовишь структуру делового документа.
Верни только JSON без пояснений и без обёртки в код:
{"title": "...", "sections": [{"heading": "...", "paragraphs": ["..."],
 "bullets": ["..."], "table": {"header": ["..."], "rows": [["..."]]}}]}
Поля bullets и table необязательны.
Не выдумывай реквизиты, суммы и даты: если данных нет, пиши [УТОЧНИТЬ]."""

Теперь сборка файла. Названия стилей Heading 1, List Bullet и Table Grid есть в стандартном шаблоне python-docx:

bash
def build_docx(data, path, template=None):
    doc = Document(template) if template else Document()
    doc.add_heading(data["title"], level=0)
    for s in data["sections"]:
        doc.add_heading(s["heading"], level=1)
        for p in s.get("paragraphs", []):
            doc.add_paragraph(p)
        for b in s.get("bullets", []):
            doc.add_paragraph(b, style="List Bullet")
        t = s.get("table")
        if t:
            table = doc.add_table(rows=1, cols=len(t["header"]))
            table.style = "Table Grid"
            for i, h in enumerate(t["header"]):

Если у компании есть свой шаблон, передайте путь в template. Тогда стили берутся из него, но имена стилей должны совпадать: если в шаблоне нет стиля List Bullet, библиотека выдаст ошибку. Проверьте имена стилей в своём файле до запуска.

Правка готового документа

Для редактирования код нумерует абзацы и отправляет их модели вместе с инструкцией. Модель возвращает JSON только с теми номерами, которые нужно изменить:

bash
EDIT_SYSTEM = """Тебе дают абзацы документа в виде JSON {"номер": "текст"} и инструкцию.
Верни JSON только с теми номерами, текст которых нужно изменить: {"номер": "новый текст"}.
Не добавляй и не удаляй номера. Факты, числа и имена не меняй."""

def edit_docx(src, dst, instruction):
    doc = Document(src)
    items = {str(i): p.text for i, p in enumerate(doc.paragraphs) if p.text.strip()}
    user = f"Инструкция: {instruction}\n\nАбзацы:\n" + json.dumps(items, ensure_ascii=False)
    changes = ask_json(EDIT_SYSTEM, user)
    for key, new_text in changes.items():
        if key not in items:
            continue  # модель придумала номер: пропускаем
        p = doc.paragraphs[int(key)]
        if p.runs:

У такого подхода есть честные ограничения:

  • Форматирование внутри абзаца (жирный фрагмент посреди строки) теряется: остаётся стиль первого фрагмента.
  • Текст в таблицах, колонтитулах и сносках в doc.paragraphs не попадает, их нужно обходить отдельно.
  • python-docx работает только с .docx. Старый .doc сначала пересохраните.
  • Режима рецензирования здесь нет: правки заменяют текст. Храните исходник и сверяйте версии встроенным сравнением документов в Word.

Проверка результата

Не открывайте каждый файл глазами, если документов много. Добавьте автоматические проверки:

  • JSON разобрался, в каждом разделе есть заголовок и хотя бы один абзац;
  • в тексте нет остатков [УТОЧНИТЬ], либо их список передан человеку;
  • при правке не изменилось количество абзацев, а числа и даты из исходника всё ещё есть в тексте (проверка регулярным выражением по цифрам);
  • таблицы имеют одинаковое число колонок в каждой строке.

Для юридических и финансовых документов модель даёт только черновик. Финальное чтение остаётся за человеком, а реквизиты и суммы лучше подставлять из своей базы кодом, а не просить модель их «вспомнить».

Сколько это стоит

Допустим, документ на три страницы: на входе задание и пример структуры около 6000 токенов, на выходе JSON около 6000 токенов. Это допущения для расчёта, реальные значения зависят от текста. Цены на 18 октября 2026, $ за 1M токенов:

  • claude-sonnet-5-5 (0.4 вход, 2 выход): 6000 × 0.4 / 1 000 000 + 6000 × 2 / 1 000 000 = 0.0024 + 0.012 = $0.0144 за документ;
  • gpt-6.1-sol (0.27 / 1.32): 0.00162 + 0.00792 = $0.00954;
  • deepseek-v4.1-flash (0.013 / 0.038): 0.000078 + 0.000228 = $0.000306.

Сто таких документов на claude-sonnet-5-5 обойдутся примерно в $1.44. Дешёвые модели уместны для типовых шаблонных бумаг, но качество формулировок проверьте на своих примерах: сравните два-три результата вслепую и только потом запускайте поток. Актуальные цены — GET https://api.zukko.pro/v1/models или страница «Модели» в кабинете. Оплата из России: СБП (платёжная страница добавляет 8,5% сверху), карта MasterCard или криптовалюта.

Если документов станет много, полезны статьи про перевод файлов без сломанных плейсхолдеров и извлечение данных из документов.

Частые вопросы

Может ли нейросеть сама создать файл Word?

Не сама: модель возвращает текст. Файл создаёт ваш код, например на python-docx, а модель даёт содержание и структуру в JSON.

Как сохранить фирменный стиль документа?

Подготовьте шаблон .docx с нужными стилями и откройте его через Document("template.docx"). Модель управляет только содержанием, оформление берётся из шаблона.

Можно ли править документ без потери форматирования?

Частично. Заголовки, стили абзацев и таблицы сохраняются, но форматирование внутри абзаца (отдельные жирные слова) при замене текста теряется. Для точечных правок передавайте модели только нужные абзацы.

Какую модель брать для документов?

Для типовых бумаг хватает недорогих моделей из каталога, для сложных текстов берите модель посильнее. Ориентируйтесь на цену, контекст и индекс силы из списка моделей и проверяйте на своих документах.

zukko

Платите в 25×
меньше

за Claude Code & ChatGPT

Один ключ fetch_* и base URL api.zukko.pro — в Cursor, Claude Code, Codex и любом SDK.