Алина Ким

СтатьяГайд

Как подключить DeepSeek API к LibreOffice Writer для автодополнения текста

Автор отметил, что материал написан или существенно правлен с помощью ИИ (gemini-2.5-flash).

Как подключить DeepSeek API к LibreOffice Writer для автодополнения текста

Вводные данные: зачем подключать DeepSeek к текстовому редактору в понедельник

Каждый понедельник начинается с однотипной рутины: вычитываешь чужие договоры, правишь стандартные формулировки, следишь за формулировками в пунктах о форс-мажорах. Открывать браузер, копировать кусок текста в чат с моделью, возвращаться обратно — утомляет еще до первой чашки кофе. Хочется, чтобы LLM помогала прямо в интерфейсе LibreOffice Writer.

Официального плагина «одной кнопкой» для DeepSeek в репозитории LibreOffice Extensions пока нет. Но у нас есть встроенный интерпретатор Python и документированный API DeepSeek, совместимый по структуре запросов с OpenAI. Отрегулируем связку через простой макрос.

  1. Требуется установленный LibreOffice версии 7.5 или выше.
  2. Необходим актуальный ключ API от DeepSeek (или поднятая локальная модель через Ollama).
  3. Операционная система: Linux, macOS или Windows с базовыми правами на запись в пользовательские папки профиля.
Вводные данные: зачем подключать DeepSeek к текстовому редактору в понедельник
typing keyboard close up

Шаг 1. Получение ключа API и подготовка окружения

Если вы используете облачный API DeepSeek, зарегистрируйтесь на официальном портале разработчиков platform.deepseek.com, пополните баланс на минимальную сумму и сгенерируйте API-ключ. Сохраните его в текстовый файл — он понадобится для скрипта.

Для работы макроса на Python в LibreOffice не нужно устанавливать тяжелые библиотеки вроде requests или openai, если мы используем стандартный модуль urllib.request. Это избавляет от головной боли с зависимостями в офисной среде, где часто заблокированы пакетные менеджеры.

  1. Скопируйте строку ключа, начинающуюся с sk-...
  2. Убедитесь, что в LibreOffice разрешено выполнение макросов (Сервис -> Параметры -> Безопасность -> Безопасность макросов -> Уровень «Средний» или «Низкий» для тестирования).

Шаг 2. Создание Python-макроса для запроса к DeepSeek API

LibreOffice ищет пользовательские скрипты Python в специальной директории профиля. Для Linux это ~/.config/libreoffice/4/user/Scripts/python/, для Windows — %APPDATA%\LibreOffice\4\user\Scripts\python\. Создайте там файл с именем deepseek_helper.py.

Ниже приведен рабочий шаблон скрипта, который берет выделенный в Writer текст, отправляет его в чат-модель deepseek-chat и заменяет выделение на ответ модели или добавляет его ниже.

  1. Код использует стандартные библиотеки json и urllib.request.
  2. Эндпоинт по умолчанию: https://api.deepseek.com/chat/completions.
  3. Модель в теле запроса задается параметром deepseek-chat.
Шаг 2. Создание Python-макроса для запроса к DeepSeek API
code editor screen

Шаг 3. Код макроса и привязка к горячим клавишам

Вставьте в файл deepseek_helper.py следующий код, предварительно заменив YOUR_API_KEY на ваш реальный ключ:

import uno import json import urllib.request def ask_deepseek(): ctx = uno.getComponentContext() desktop = ctx.ServiceManager.createInstanceWithContext("com.sun.star.frame.Desktop", ctx) model = desktop.getCurrentComponent() if not hasattr(model, "CurrentSelection"): return selection = model.CurrentSelection text_range = selection.getByIndex(0) selected_text = text_range.getString() if not selected_text: return url = "https://api.deepseek.com/chat/completions" headers = { "Content-Type": "application/json", "Authorization": "Bearer YOUR_API_KEY" } data = { "model": "deepseek-chat", "messages": [ {"role": "system", "content": "Ты юридический редактор. Исправь формулировку, сделай её строже."}, {"role": "user", "content": selected_text} ], "stream": False } req = urllib.request.Request(url, data=json.dumps(data).utf-8(), headers=headers, method="POST") try: with urllib.request.urlopen(req) as response: res_data = json.loads(response.read().decode("utf-8")) answer = res_data["choices"][0]["message"]["content"] text_range.setString(answer) except Exception as e: text_range.setString(f"Ошибка запроса: {str(e)}")

  1. Откройте Сервис -> Макросы -> Выполнить макрос, найдите deepseek_helper.py -> ask_deepseek.
  2. Для удобства привяжите этот макрос к комбинации клавиш (например, Ctrl+Shift+D) через Сервис -> Настройка -> Клавиатура.

Шаг 4. Проверка работы и ограничения интеграции

Выделите абзац в тексте договора в LibreOffice Writer, нажмите назначенную комбинацию клавиш. Через пару секунд модель вернет отредактированный вариант прямо в тело документа. Если сеть недоступна или кончился баланс, макрос вставит текст ошибки прямо в документ, так что сбои сразу видны.

Модель врёт или слишком увлекается стилистикой? Помните о системном промпте в коде скрипта: если стандартная роль редактора вам не подходит, измените строчку content в системном сообщении python-файла под свои задачи.

  1. Ограничение: скрипт работает синхронно (stream=False), поэтому при больших объемах текста Writer может «замереть» на 3-5 секунд без индикатора загрузки.
  2. Безопасность: не отправляйте через облачный API конфиденциальные персональные данные или коммерческую тайну без проверки регламентов безопасности вашей компании.

Безопасный откат и альтернатива через локальный Ollama

Если корпоративная политика безопасности запрещает отправку текстов договоров на внешние серверы DeepSeek, этот же макрос легко перенастраивается на локальную модель через Ollama.

Для этого достаточно изменить переменную url на http://localhost:11434/v1/chat/completions, убрать заголовок Authorization и поменять модель на локально скачанную (например, deepseek-r1:8b). Код продолжит работать ровно так же, но данные останутся на вашем жестком диске.

  1. Для отката к исходному состоянию достаточно удалить файл deepseek_helper.py из папки Scripts/python/
  2. Удаление горячих клавиш производится через меню настройки клавиатуры LibreOffice в два клика.

Источники

LibreOffice Python Scripts Documentation: https://wiki.documentfoundation.org/Macros/PythonDeepSeek API Documentation: https://api-docs.deepseek.com/

Источник: https://wiki.documentfoundation.org/Macros/Python

0
0

Комментарии (0)

Войдите, чтобы комментировать.

Без Plus — 5 комментариев в месяц. Мало слов — чистый воздух. Войти

Комментариев пока нет — будьте первым.

Ещё в теме «Промпты и рецепты»

Похожие материалы и соседние разборы

Марина Волкова
Марина ВолковаУровень Пилот

Симптом: почему в FatSecret обнулились калории и завис дневник На той неделе я открыла приложение посреди дня, чтобы записать обед, а там — классическая пустота. Круговая диаграмма КБЖУ показывает нули, вчерашний ужин куда-то испарился, а при попытке добавить продукт кнопки просто не реагируют на нажатия. Это я уже пробовала: перезагружала экран, махала пальцем по ленте, но интерфейс висел мертво. Судя по обращениям пользователей в техподдержку FatSecret, проблема обычно связана со сбоем синхронизации серверов или повреждением локального кэша на телефоне. Приложение пытается отправить данные в облако, зависает в офлайн-режиме и блокирует ввод новой еды. Воспроизведение и локализация ошибки синхронизации Чтобы понять, где именно застряли калории, я проверила веб-версию. Зашла через обычный браузер с компьютера под тем же логином. Оказалось, что

Показать полностью
0
1
Алина Ким
Алина КимУровень Пилот

Какие ИИ-инструменты для работы реально экономят время и не бесят Опять понедельник, почта за выходные пухнет от писем, а в календаре уже висят три созвона, которые можно было бы решить парой строчек в мессенджере. Знакомо? Я сама относилась ко всей этой волне с нейросетями с огромным скепсисом. Большинство советов из разряда «ИИ заменит вам половину команды» вызывают у меня только нервный смех и желание закрыть вкладку. Но давайте честно: рутину никто не отменял. Переводить огромные простыни текста, вытаскивать суть из часовых записей зума или собирать сводную таблицу по кривым вводным — это та самая тошнотворная работа, которую хочется скинуть хоть на кого-то. Я тестировала десятки сервисов последние полгода и отобрала ровно пять штук, которыми пользуюсь сама. Без восторгов, чистая утилитарная польза. Ниже — мой личный топ-5. Для каждого

Какие 5 ИИ-инструментов для работы реально экономят время в понедельникПоказать полностью
0
1
Алина Ким
Алина КимУровень Пилот

Как я выбирала ии для презентаций и почему мне надоело собирать слайды вручную Опять понедельник, опять утреннее совещание, и традиционный вопрос от руководства: «А давайте покажем по этому поводу слайды?». Знакомо? Я сижу за монитором, смотрю на мигающий курсор в PowerPoint и чувствую глухую тоску. Выравнивать иконки, подбирать цвета, двигать текст туда-сюда — всё это жрёт уйму времени, которое можно было бы потратить на нормальные задачи. В какой-то момент я решила сдаться и посмотреть, что там предлагают нейросети. Сразу оговорюсь: я искала не идеальный дизайн, а способ скинуть рутину. Чтобы закинул кусок текста — и получилась готовая болванка, которую не стыдно показать коллегам. Никаких «ИИ изменит мир», только суровая офисная практика и попытки найти ии для презентаций бесплатно топ, потому что бюджет на сервисы нам никто не согласовывал.

ИИ для создания презентаций: топ-5 сервисов, которые спасают в понедельникПоказать полностью
0
1
Алина Ким

Какие бесплатные модели умеют искать в интернете и где у них потолок? У меня сегодня понедельник начался с классики: клиент попросил найти свежую аналитику рынка, которой физически нет в старых базах данных моделей. Пришлось снова открывать вкладки с разными чат-ботами и тестировать, кто из них действительно шарит по актуальным страницам, а кто просто красиво делает вид. Сразу оговорлюсь: бесплатные версии почти всегда имеют подвох. Либо занижают лимиты запросов в час, либо начинают сильно упрощать ответы, когда трафик на серверах растет. Давайте посмотрим на топ 5 бесплатных нейросетей с веб-поиском без розовых очков — где они спасают проект, а где откровенно вредят. ChatGPT (Free) с включенным Browse: классика с ограничениями Все привыкли идти к OpenAI за любым чихом. В бесплатном режиме доступ к поиску по сети то появляется, то пропадает в

Топ 5 бесплатных нейросетей с веб-поиском: где их потолокПоказать полностью
0
1
Никита Орлов

Зачем перебирать библиотеки для логирования python Привет! У меня в репе опять разрослось приложение, и стандартный print или basicConfig уже не вывозят. Когда на проде случается деплой с багом, читать консоль через docker logs на виртуалке — это путь к нервному срыву. Я задолбался искать, куда складывать логи python приложения, чтобы они не терялись при рестарте контейнера. Поэтому перетряхнул то, чем сам пользуюсь или тестировал в боевых условиях. Никакого энтерпрайза с ценником в крыло самолета, только то, что можно поднять за вечер. 1. Loguru: кому да, кому нет Начну с базы. Loguru — это любовь с первой строчки в мануале. Заменяет стандартный logging одной строчкой from loguru import logger и избавляет от боли с настройкой форматтеров и хендлеров. У меня она стоит на всех пет-проектах и в паре микросервисов. Красивый вывод в консоль из

Инструменты для мониторинга логов python топ 5: мой личный выборПоказать полностью
0
1
Никита Орлов

Как я выбирал фреймворки для локальных моделей python Привет! У меня в репе скопилось уже столько конфигов под локальные модели, что пора писать автотест на проверку совместимости библиотек. Вчера агент опять затёр рабочий тест для RAG, и я решил сесть и нормально зафиксировать, что вообще стоит ставить, если надо запустить LLM локально в Питоне. Запрос на фреймворки для локальных моделей python сейчас дикий, но по факту половина тулзовин тащит за собой такой оверхед из зависимостей, что проще написать обертку на чистом requests. Давайте разберем пять инструментов, которые я реально крутил на своем железе, без маркетинговой шелухи. 1. Ollama и Python API: минимум боли Начну с того, на чем сейчас крутится 90 процентов моих локальных задач. Сама Оллама написана на Go, но официальный Python-клиент работает как часы. Никаких танцев с компиляцией

ТОП-5 фреймворков на Python для локальных LLM: личный опыт из репыПоказать полностью
0
1