Нейросеть для документов Word: создание и правка DOCX через API
Модель не умеет «класть» файл в Word, зато может вернуть структуру и текст. Разбираем связку python-docx и API: создание, правка и проверка документов.
4 мин · · автоматизация · разработка
Если вы ищете нейросеть для документов Word (в поиске это чаще «нейросеть для документов ворд»), важно сразу понять устройство задачи. Языковая модель возвращает текст, а не файл .docx. Файл собирает ваш код: модель отвечает за содержание и структуру, библиотека python-docx отвечает за оформление. Ниже рабочая схема создания и правки документов, которую можно запустить за вечер, и расчёт стоимости. Цены приведены на 18 октября 2026.
Как устроена связка модели и Word
Документ DOCX внутри — набор XML-файлов в архиве. Просить модель «выдать docx» бессмысленно: она напишет описание файла, а не сам файл. Надёжнее разделить работу:
- Модель получает задачу и возвращает структуру в JSON: заголовки, абзацы, списки, таблицы.
- Ваш скрипт на
python-docxпревращает JSON в документ, применяя стили из шаблона компании. - Скрипт проверяет результат: валидный ли JSON, нет ли пустых разделов, остались ли пометки вида
[УТОЧНИТЬ].
Так оформление не зависит от настроения модели: шрифты, поля и заголовки всегда одинаковые, потому что их задаёт шаблон. Для правки существующих файлов схема обратная: код достаёт текст абзацев, модель возвращает исправленные версии, код вставляет их обратно.
Установка:
pip install python-docx openaiКлюч создайте в кабинете, примеры клиента на Python — в документации.
Нейросеть для создания документов Word: JSON и python-docx
Сначала функция, которая просит у модели структуру и аккуратно разбирает ответ:
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:
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 только с теми номерами, которые нужно изменить:
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.
Похожие статьи
- Перевод субтитров нейросетью: SRT без сбитых таймкодовГлавный риск при переводе SRT нейросетью — сломанная структура файла. Показываем схему, где таймкоды не попадают к модели, и скрипт на Python с проверкой.
- Редактирование текстов нейросетью: корректура, стиль и сокращениеРазные виды редактуры требуют разных промптов. Показываем формулировки для корректуры, стиля и сокращения, как получать правки с объяснением и не терять авторский голос.
- Нейросеть для написания скриптов: Bash, PowerShell и PythonМодель быстро пишет скрипты для рутины, но запускать их вслепую нельзя. Показываем, как ставить задачу, требовать безопасный режим dry-run и проверять результат до запуска.
- Dify в Docker: установка, первичная настройка и подключение моделейСтавим Dify через Docker Compose, создаём администратора и подключаем модели Claude, GPT и DeepSeek по одному ключу. Отдельно — что делать, если контейнеры не стартуют.