<?xml version="1.0" encoding="utf-8" ?><rss version="2.0" xmlns:tt="http://teletype.in/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:media="http://search.yahoo.com/mrss/"><channel><title>Андрей Юдин</title><generator>teletype.in</generator><description><![CDATA[Мастер на все крюки. Диджитал эксперт широкого профиля. Смотрю на жизнь через призму проф деформации и мне норм.]]></description><image><url>https://teletype.in/files/8c/cf/8ccf86e9-4edd-47e3-8a58-4ca792d9516b.png</url><title>Андрей Юдин</title><link>https://teletype.in/@andreying</link></image><link>https://teletype.in/@andreying?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=andreying</link><atom:link rel="self" type="application/rss+xml" href="https://teletype.in/rss/andreying?offset=0"></atom:link><atom:link rel="next" type="application/rss+xml" href="https://teletype.in/rss/andreying?offset=10"></atom:link><atom:link rel="search" type="application/opensearchdescription+xml" title="Teletype" href="https://teletype.in/opensearch.xml"></atom:link><pubDate>Sun, 20 Sep 2026 13:48:29 GMT</pubDate><lastBuildDate>Sun, 20 Sep 2026 13:48:29 GMT</lastBuildDate><item><guid isPermaLink="true">https://teletype.in/@andreying/prompt-I</guid><link>https://teletype.in/@andreying/prompt-I?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=andreying</link><comments>https://teletype.in/@andreying/prompt-I?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=andreying#comments</comments><dc:creator>andreying</dc:creator><title>Введение в промпт-инжиниринг, или базовое руководство по работе с чатами GPT</title><pubDate>Mon, 18 Aug 2025 11:30:02 GMT</pubDate><media:content medium="image" url="https://img4.teletype.in/files/7d/26/7d2637cc-7cd6-45a1-a332-2bd04d273da8.png"></media:content><description><![CDATA[<img src="https://img2.teletype.in/files/d6/75/d675daed-0ed1-4d81-b1b9-2c917d33d192.png"></img>Привет, меня зовут Андрей, и недавно я был спикером на митапе проекта CoLaba42 «AI для бизнеса без фокусов и хайпа». Моя тема — AI как личный ассистент руководителя. Эта статья — расширенный конспект с примерами, который отвечает на большинство вопросов, обсуждавшихся на встрече.]]></description><content:encoded><![CDATA[
  <p id="FuFI">Привет, меня зовут Андрей, и недавно я был спикером на митапе проекта CoLaba42 «AI для бизнеса без фокусов и хайпа». Моя тема — AI как личный ассистент руководителя. Эта статья — расширенный конспект с примерами, который отвечает на большинство вопросов, обсуждавшихся на встрече.</p>
  <p id="Ug2P">Я разработчик и руководитель нескольких IT-проектов, познакомился с нейросетями задолго до появления ChatGPT и ажиотажа вокруг него. Активно использовать LLM (Large Language Models) в работе я начал в 2023 году, что позволило мне накопить не только системное понимание того, как устроены эти технологии, но и значительный практический опыт их применения в реальных задачах.</p>
  <p id="Pysk"><strong>Статья рассчитана на нулевой уровень подготовки, поэтому начнём с основ и пойдём по порядку.</strong></p>
  <figure id="VL9B" class="m_column">
    <img src="https://img2.teletype.in/files/d6/75/d675daed-0ed1-4d81-b1b9-2c917d33d192.png" width="1024" />
  </figure>
  <h2 id="LAhW">Промпт-инжиниринг: что это и зачем он нужен</h2>
  <p id="9zUE">Промпт-инжиниринг (от англ. prompt engineering) — это искусство и наука составления правильных запросов (промптов) для языковых моделей вроде GPT. Если говорить проще, это навык «разговаривать с ИИ так, чтобы он отвечал именно так, как вам нужно».</p>
  <p id="DQYf"><strong>Почему это важно:</strong></p>
  <ul id="xmUt">
    <li id="0ZoH">Языковая модель — не человек, она не «понимает» вас по-настоящему. Она работает по статистическим закономерностям, и от того, как именно вы сформулируете запрос, зависит качество ответа.</li>
    <li id="PRvB">Даже небольшая корректировка формулировки может кардинально изменить результат.</li>
    <li id="CPcQ">Умение правильно составлять промпт экономит время, деньги (если модель платная) и силы.</li>
  </ul>
  <p id="R18U"></p>
  <h2 id="OmOm">Промпт — это инструкция</h2>
  <p id="z9lg">В контексте GPT «промпт» — это текст, который вы передаёте модели в качестве инструкции. Он может включать:</p>
  <ul id="y67M">
    <li id="HzvE">Задачу (что нужно сделать)</li>
    <li id="KGKR">Контекст (дополнительная информация, примеры, условия)</li>
    <li id="cUr1">Ограничения (стиль, длина ответа, формат)</li>
  </ul>
  <p id="vifc"><em><strong>Пример:</strong></em></p>
  <p id="EdlZ"><em><strong>Плохо:</strong> «Объясни квантовую механику.»</em></p>
  <p id="AM7p"><em><strong>Хорошо:</strong> «Объясни квантовую механику в стиле научпопа, так чтобы понял 12-летний подросток, с двумя простыми аналогиями.»</em></p>
  <p id="7C0X"></p>
  <h2 id="DKWt">Почему промпт-инжиниринг — это отдельный навык</h2>
  <p id="q6of">Когда вы впервые пробуете GPT, кажется, что достаточно «просто спросить». Но на практике:</p>
  <ul id="zRkL">
    <li id="9lbm">Обычные фразы часто дают общие, поверхностные ответы.</li>
    <li id="RdqX">Модель может упустить важные детали, если их явно не указать.</li>
    <li id="zXi2">Можно получить лишнюю «воду» или наоборот — слишком краткий ответ.</li>
  </ul>
  <p id="eb3I">Хороший промпт позволяет:</p>
  <ul id="i54D">
    <li id="ykKK">Сделать ответы более точными.</li>
    <li id="HTgd">Настроить тон и стиль модели.</li>
    <li id="NEAV">Задать нужный формат (таблицы, списки, код).</li>
    <li id="zNrZ">Снизить количество ошибок и домыслов.</li>
  </ul>
  <p id="xEBs"><strong>Далее мы разберём виды промптов, техники их построения и 20 практических правил, которые помогут вам быстро улучшить результаты работы с любым AI-ассистентом.</strong></p>
  <figure id="RJtA" class="m_column">
    <img src="https://img1.teletype.in/files/00/7c/007c3fae-fa77-42ba-9fae-ab602cc0291c.png" width="1024" />
  </figure>
  <h2 id="zOKC">Типы промптов</h2>
  <p id="cGs8">Рассмотрим типы промптов с точки зрения способа подачи информации — то есть как именно мы формируем запрос, чтобы модель дала максимально полезный результат.</p>
  <p id="CrMO"></p>
  <h3 id="js1I">1. Few-shot промпт</h3>
  <p id="xykL">Что это: Такой промпт содержит несколько примеров «вопрос → ответ» перед постановкой основной задачи. Это помогает модели уловить желаемый формат, стиль и логику, которые мы хотим видеть.</p>
  <p id="AFFX"><em><strong>Пример:</strong></em></p>
  <p id="otn8"><em>Вопрос: Какой цвет получится при смешивании синего и жёлтого?</em></p>
  <p id="nyI2"><em>Ответ: Зелёный</em></p>
  <p id="HbQF"><em>Вопрос: Какой цвет получится при смешивании красного и белого?</em></p>
  <p id="QyRm"><em>Ответ: Розовый</em></p>
  <p id="TpbD"><em>Вопрос: Какой цвет получится при смешивании синего и красного?</em></p>
  <p id="qpsW"><em>Ответ:</em></p>
  <p id="QWZd">После таких примеров модель с высокой вероятностью ответит: «Фиолетовый».</p>
  <p id="enpO"></p>
  <h3 id="4I6q">2. Zero-shot промпт</h3>
  <p id="kGQe">Что это: Промпт без примеров — задача описана только инструкцией. Модель решает её, опираясь на своё обучение и контекст.</p>
  <p id="Rftj"><em><strong>Пример:</strong></em></p>
  <p id="HBxw"><em>Определи, позитивный или негативный отзыв: «Еда была невкусная и холодная».</em></p>
  <p id="c09H"><em>Модель сама поймёт, что отзыв — негативный.</em></p>
  <p id="rLNv"></p>
  <h3 id="KJH5">3. Chain-of-thought промпт (Пошаговое рассуждение)</h3>
  <p id="PQ0x">Что это: Мы явно просим модель объяснять свои рассуждения шаг за шагом, прежде чем дать итоговый ответ. Такой подход полезен для сложных вычислений, логических задач или анализа данных.</p>
  <p id="3Zi0"><em><strong>Пример:</strong></em></p>
  <p id="vcgr"><em>Пошагово рассчитай, сколько будет 243 × 57, а затем дай итоговый ответ.</em></p>
  <p id="8BYn"><em>Модель сначала разложит вычисление на этапы, затем назовёт результат.</em></p>
  <hr />
  <p id="TYDf">Когда что использовать:</p>
  <ul id="NSvL">
    <li id="l7w8">Few-shot — когда важно задать образец стиля или логики.</li>
    <li id="SKnJ">Zero-shot — когда задача простая и очевидная.</li>
    <li id="qbhx">Chain-of-thought — когда нужны точные, проверяемые рассуждения.</li>
  </ul>
  <h2 id="ptoY">Виды промптов и зачем их различать</h2>
  <p id="hfi0">В предыдущем разделе мы разобрали, какие бывают типы промптов в зависимости от назначения и уровня контекста. Теперь рассмотрим какие виды промптов бывают.</p>
  <p id="HxXx">Разделение на типы важно, потому что разные задачи требуют разного подхода. В одних случаях достаточно простой команды, в других — нужно задать чёткие рамки и контекст, а иногда требуется целый набор правил и примеров.</p>
  <p id="s26W"></p>
  <h3 id="fdkJ">1. Системный промпт (System Prompt)</h3>
  <p id="lCEU">Системный промпт задаёт «правила игры» для модели. Он определяет базовую роль и поведение на всё время сессии. Как правило, он прописывается в настройках чата или через API, и пользователь в обычном окне чата его не видит.</p>
  <p id="DNUe"><em><strong>Пример:</strong></em></p>
  <p id="lfmD"><em>«Ты опытный преподаватель физики, объясняющий сложные вещи простыми словами. Отвечай всегда структурировано и используй аналогии.»</em></p>
  <p id="ow1v"><em>Такой промпт задаёт тон и стиль всей дальнейшей коммуникации.</em></p>
  <p id="0Uct"></p>
  <h3 id="WvR2">2. Пользовательский промпт (User Prompt)</h3>
  <p id="kU3L">Это основной тип промпта, с которым сталкивается большинство пользователей. Каждый раз, когда вы пишете вопрос или команду в чат, вы создаёте пользовательский промпт.</p>
  <p id="c3Ph"><em><strong>Пример:</strong></em></p>
  <p id="gpTS"><em>«Объясни принцип работы солнечной батареи в 3 предложениях, как будто рассказываешь школьнику.»</em></p>
  <p id="L4MV"><em>Пользовательский промпт используется для решения конкретной задачи здесь и сейчас.</em></p>
  <p id="TfKS"></p>
  <h3 id="0chz">3. Проектный или контекстный промпт (Project / Context Prompt)</h3>
  <p id="Tlpl">Это специально подготовленный набор инструкций, правил, примеров и контекста для конкретного проекта или задачи. В нём могут быть указаны ограничения, целевая аудитория, стиль общения и примеры ответов.</p>
  <p id="aty7">По сути, это расширенный вариант системного промпта, но применяемый в рамках отдельного проекта или группы чатов. Он особенно полезен при разработке чат-ботов, обучающих курсов или ассистентов с узкой специализацией.</p>
  <p id="MV8T"><em><strong>Пример проектного промпта «Колабыча»</strong>, использованного на мероприятии в голосовом режиме в качестве со-ведущего:</em></p>
  <p id="cKVK">Роль и задача: Со-ведущий мероприятия, подключённый к микрофонам спикеров, отвечает в динамики зала. Говорит только на русском языке. Главный принцип — меньше слов, больше пользы.</p>
  <p id="EeNB">Когда можно говорить: Только по прямому обращению «Колабыч». Отвечает кратко и по делу.</p>
  <p id="r9HC">Как говорить: Лаконично, 1–3 предложения, дружелюбно, но без лишнего юмора, чтобы не уводить от темы.</p>
  <p id="Euj1">Политика ответов:</p>
  <ul id="psYF">
    <li id="cEOt">Если вопрос простой и не требует поиска — отвечает сразу.</li>
    <li id="vcnK">Если вопрос связан с проектом — ищет в проектных файлах.</li>
    <li id="SlCI">Если нужен актуальный факт — ищет в интернете.</li>
  </ul>
  <p id="CuLu">Такой промпт даёт модели чёткие правила и помогает сохранить единый стиль работы на протяжении всей сессии.</p>
  <p id="txJi"></p>
  <h1 id="xR6K">Добавление актуальных данных в промпт для повышения точности</h1>
  <p id="Zgs9">Языковые модели обучены на огромных массивах информации, но не всегда обладают самыми свежими данными. Более того, они могут ошибаться, если пытаются восполнить пробелы собственными догадками. Чтобы минимизировать этот риск, полезно добавлять в промпт актуальные и проверенные данные прямо в момент запроса.</p>
  <h2 id="Nw5x">Когда это нужно</h2>
  <ol id="DBag">
    <li id="64YN">Технические проекты — чтобы модель оперировала кодом и конфигурациями из реального проекта, а не выдуманными примерами.</li>
    <li id="etgn">Юридические документы — важно работать с последними редакциями законов, а не устаревшими версиями.</li>
    <li id="gBFf">Научные исследования — модель должна ссылаться на свежие данные, а не старые публикации.</li>
    <li id="kvAS">Маркетинг и аналитика — актуальные статистические данные повышают реалистичность прогнозов и рекомендаций.</li>
    <li id="wVW3">Медиа и журналистика — проверенные факты помогают избежать ошибок и фейков.</li>
  </ol>
  <h2 id="XIzz">Примеры сценариев</h2>
  <p id="XzCv">1. Код с актуальной реализацией</p>
  <p id="J0hN"><em>Вот текущая версия функции обработки платежа из нашего проекта:</em></p>
  <p id="npfL"><em>[ВСТАВЬТЕ КОД]</em></p>
  <p id="rXEg"><em>Проанализируй, можно ли её оптимизировать для работы с большим количеством транзакций.</em></p>
  <p id="dQxD">2. Последняя версия закона для юр-документов</p>
  <p id="KcH9"><em>Вот последняя редакция статьи 54.1 Налогового кодекса РФ (от 1 августа 2025 года):</em></p>
  <p id="UeRF"><em>[ТЕКСТ СТАТЬИ]</em></p>
  <p id="SqMr"><em>Составь юридическое заключение о применении этой статьи к ситуации: компания не предоставила документы в срок.</em></p>
  <p id="qeMh">3. Свежие маркетинговые данные</p>
  <p id="p2f1"><em>Вот статистика продаж за июль 2025 года:</em></p>
  <p id="WDzp"><em>[ТАБЛИЦА С ДАННЫМИ]</em></p>
  <p id="8nda"><em>На основе этих данных спрогнозируй продажи на август и предложи маркетинговую стратегию.</em></p>
  <p id="ZdvQ">4. Научная статья для анализа</p>
  <p id="T4mL"><em>Вот полный текст исследования по влиянию ИИ на производительность труда (опубликовано 5 июля 2025 года):</em></p>
  <p id="63Ix"><em>[ТЕКСТ СТАТЬИ]</em></p>
  <p id="N58G"><em>Сделай краткое резюме и выдели 3 ключевых вывода.</em></p>
  <p id="FraP"></p>
  <h2 id="LUyM">Советы по формулировке</h2>
  <p id="NvNB">Чтобы модель использовала именно те данные, которые вы предоставляете, полезно добавлять фразы вроде:</p>
  <ul id="7eNs">
    <li id="vglN">«Используй только приведённый ниже текст/код/данные».</li>
    <li id="AxJf">«Не добавляй собственных домыслов — опирайся только на предоставленные материалы».</li>
  </ul>
  <figure id="Zb8n" class="m_column">
    <img src="https://img3.teletype.in/files/ed/15/ed1526f3-727e-4684-811b-36a47fb9a8c2.png" width="1024" />
  </figure>
  <h1 id="x9Bu">Правила составления промптов</h1>
  <p id="sQdV">В этом разделе собраны проверенные рекомендации, объединённые по смыслу, чтобы избежать повторений и оставить только уникальные принципы.</p>
  <h2 id="PPf7">1. Пиши чётко и конкретно</h2>
  <p id="Uxnf">Избегай двусмысленностей и общих формулировок. Указывай ключевые детали, чтобы модель понимала задачу без догадок.</p>
  <p id="fRfX">Плохо: &quot;Расскажи про историю Рима.&quot;</p>
  <p id="Nnbt">Хорошо: &quot;Сделай краткий обзор истории Римской империи в 5 пунктах, выдели ключевые даты.&quot;</p>
  <h2 id="oKgt">2. Определи роль и стиль модели</h2>
  <p id="h4eH">Роль помогает задать тон и глубину ответа. Уточняй, как именно модель должна себя вести и в каком стиле отвечать.</p>
  <p id="uvmj">Плохо: &quot;Объясни, как работает Docker.&quot;</p>
  <p id="qZBm">Хорошо: &quot;Представь, что ты преподаватель DevOps для начинающих. Объясни, как работает Docker, простыми словами и с аналогиями.&quot;</p>
  <h2 id="KgAN">3. Устанавливай формат и структуру ответа</h2>
  <p id="NWMf">Определи, как должна быть оформлена информация: таблица, список, код или пошаговое объяснение.</p>
  <p id="PP32">Плохо: &quot;Что такое API?&quot;</p>
  <p id="eZnh">Хорошо: &quot;Объясни, что такое API, в виде таблицы с колонками &#x27;Термин&#x27; и &#x27;Простое объяснение&#x27;.&quot;</p>
  <h2 id="aP6E">4. Давай контекст и цель</h2>
  <p id="1RrS">Сообщай, для кого предназначен ответ и зачем он нужен. Это помогает сделать результат более релевантным.</p>
  <p id="By96">Плохо: &quot;Как открыть свой бизнес?&quot;</p>
  <p id="3pMz">Хорошо: &quot;Составь пошаговый план открытия бизнеса в России: от регистрации до первых клиентов.&quot;</p>
  <h2 id="aJGb">5. Приводи примеры и уточняющие данные</h2>
  <p id="SbvN">Покажи образцы входных данных или нужного формата, чтобы модель могла ориентироваться на них.</p>
  <p id="Y2CC">Плохо: &quot;Что лучше PostgreSQL или MySQL?&quot;</p>
  <p id="TiOw">Хорошо: &quot;Сравни PostgreSQL и MySQL по скорости, надёжности и простоте настройки в виде таблицы.&quot;</p>
  <h2 id="dStf">6. Используй ограничения и исключения</h2>
  <p id="04Rw">Укажи, что можно и что нельзя включать в ответ. Это помогает избежать ненужной информации.</p>
  <p id="Tn0b">Плохо: &quot;Напиши рассказ.&quot;</p>
  <p id="CetK">Хорошо: &quot;Напиши юмористический рассказ на 300 слов о коте-программисте в стиле Гарри Поттера.&quot;</p>
  <h2 id="cH5j">7. Объясняй сложное через простое</h2>
  <p id="gao9">Проси аналогии, метафоры или понятные примеры, чтобы сложные темы стали доступнее.</p>
  <p id="YqTr">Плохо: &quot;Как работает блокчейн&quot;</p>
  <p id="1sdl">Хорошо: &quot;Объясни, как работает блокчейн, используя аналогию с библиотекой, где книги нельзя удалять или изменять.&quot;</p>
  <h2 id="HKht">8. Уточняй язык и тон ответа</h2>
  <p id="Np3k">Если нужен определённый язык или эмоциональный оттенок — говори об этом прямо.</p>
  <p id="gGAj">Плохо: &quot;Ответь на это письмо // текст письма //&quot;</p>
  <p id="fWaB">Хорошо: &quot;Составь вежливое письмо на английском партнёру с просьбой прислать договор.&quot;</p>
  <h2 id="Yq1Q">9. Запрашивай уточнения и улучшай промпт</h2>
  <p id="3yXl">Разреши модели уточнять недостающие детали и редактируй промпт, если результат не соответствует ожиданиям.</p>
  <p id="wBy0"></p>
  <h1 id="UBLm">Примеры промптов</h1>
  <p id="IuOW">Чтобы увидеть, как на практике применять 9 ключевых правил из предыдущего раздела, рассмотрим три примера — в технической, бизнес- и юридической тематике.</p>
  <p id="PHnS">Откройте свой чат, которым вы пользуетесь, и просто посмотрите на разницу ответов.</p>
  <p id="oYIr"><strong>Пример 1 (Обучение):</strong></p>
  <p id="aRho"><em>Промпт без применения правил</em></p>
  <p id="K9kl">Как работают генераторы в Python</p>
  <p id="19SP"><em>Промпт по правилам данной статьи</em></p>
  <p id="KI6j">Представь, что ты опытный наставник по Python. Объясни, как работают генераторы в Python, простыми словами, используя аналогию с приготовлением кофе. Структурируй ответ в три части: </p>
  <p id="I1kB">1) простое объяснение, </p>
  <p id="2NRq">2) три примера кода в отдельных блоках, </p>
  <p id="DI3U">3) таблица с плюсами и минусами генераторов. </p>
  <p id="MXWm">Не используй англоязычные термины без перевода, пиши на русском.</p>
  <p id="3Vgm"><strong><em>Почему это работает:</em></strong></p>
  <ol id="O2Kw">
    <li id="pD0d">Чёткая формулировка.</li>
    <li id="X6Ed">Роль и стиль — наставник по Python.</li>
    <li id="fpgf">Формат и структура — три части.</li>
    <li id="muV5">Контекст и цель — аналогия с кофе.</li>
    <li id="jZOF">Примеры и данные — три примера кода.</li>
    <li id="qPIF">Ограничения — запрет на англоязычные термины без перевода.</li>
    <li id="FTbe">Язык — русский.</li>
  </ol>
  <hr />
  <p id="liaN"><strong>Пример 2 (бизнес-тематика):</strong></p>
  <p id="ESwf"><em>Промпт без применения правил</em></p>
  <p id="KqbG">Придумай мне как рекламировать мой интернет-магазин экологической косметики</p>
  <p id="wSMm"><em>Промпт по правилам данной статьи</em></p>
  <p id="Yuaq">Представь, что ты бизнес-консультант с 10-летним опытом. Разработай стратегию продвижения интернет-магазина, продающего экологичную косметику. Опиши план в 5 шагах, добавь таблицу с бюджетом на каждый шаг, а в конце приведи 3 конкретных примера маркетинговых акций. </p>
  <p id="Pvj3">Не используй сложные маркетинговые термины без пояснения, пиши на русском.</p>
  <p id="GU8C"><strong><em>Почему это работает</em></strong></p>
  <ol id="ucib">
    <li id="A1Ef">Роль и стиль — бизнес-консультант с опытом.</li>
    <li id="Pd3a">Чёткая цель — стратегия продвижения.</li>
    <li id="rolx">Формат — план, таблица, примеры.</li>
    <li id="2AWt">Контекст — экологичная косметика.</li>
    <li id="FWJg">Ограничения — запрет на сложные термины без пояснения.</li>
    <li id="iUDX">Язык — русский.</li>
  </ol>
  <hr />
  <p id="NjsD"><strong>Пример 3 (юридическая тематика)</strong></p>
  <p id="vvcy"><em>Промпт без применения правил</em></p>
  <p id="S3Dt">Сделай вычитку договора</p>
  <p id="ADJw">Промпт по правилам данной статьи</p>
  <p id="BuQg">Представь, что ты юрист по договорному праву (Законодательство РФ). Проверь текст договора с подрядчиком на предмет рисков для заказчика. </p>
  <p id="TF7p">Структурируй ответ в три части: </p>
  <p id="euI6">1) список обнаруженных рисков с пояснениями, </p>
  <p id="RbMG">2) рекомендации по изменению спорных пунктов, </p>
  <p id="PrRC">3) финальное резюме с оценкой уровня риска (низкий, средний, высокий). Используй только предоставленный текст договора, не добавляй предположений. Пиши на русском.</p>
  <p id="t87G"><strong><em>Почему это работает:</em></strong></p>
  <ol id="y8Do">
    <li id="xz07">Роль и стиль — юрист по договорному праву и указана юрисдикция.</li>
    <li id="yjAn">Чёткая задача — проверка договора.</li>
    <li id="dfnr">Формат — список, рекомендации, резюме.</li>
    <li id="HyGJ">Ограничения — работа только с представленным текстом.</li>
    <li id="Opyr">Язык — русский.</li>
  </ol>
  <p id="dvWz"></p>
  <hr />
  <p id="7UWF">Все три примера используют ключевые принципы, что позволяет получать ответы, максимально соответствующие ожиданиям по содержанию, стилю и формату.</p>
  <p id="atfc">Возможно вы получите не самые худшие ответы при использовании упрощенного промпта. LLM очень быстро эволюционируют, а разработчики не только наращивают интеллектуальный потенциал LLM, но и активно развивают и улучшают системные промпты, благодаря чему даже низкокачественные промпты дают ответы в 2025 намного качественней чем в 2024 или 2023. Но как бы не старались разработчики, LLM не может угадать все аспекты вашего вопроса.</p>
  <p id="AEco">Не ленитесь - в написании промпта и ваш GPT поразит вас результатами.</p>
  <p id="dm9Q">Было интересно, полезно - поставьте реакцию!</p>
  <p id="J0Dy">Хотите больше по теме, напишите в комментарии тему или лайкайте тот комментарий если тема уже есть.</p>
  <p id="ijTK">И конечно же подписывайтесь, будет еще много много интересного и полезного!</p>
  <figure id="aKf9" class="m_column">
    <img src="https://img2.teletype.in/files/52/9c/529cfe3b-54c6-4737-9a26-957b02205c93.png" width="1024" />
  </figure>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@andreying/cJQdBnQHcqv</guid><link>https://teletype.in/@andreying/cJQdBnQHcqv?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=andreying</link><comments>https://teletype.in/@andreying/cJQdBnQHcqv?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=andreying#comments</comments><dc:creator>andreying</dc:creator><title>Шпаргалка по Bash-скриптам (.sh)</title><pubDate>Sun, 13 Jul 2025 12:26:51 GMT</pubDate><description><![CDATA[Недавно мне пришлось активно использовать Bash для автоматизации задач, которые было проще решить скриптами. Раньше я не работал с Bash так интенсивно, поэтому пришлось разобраться. Чтобы не забыть основные моменты, я составил эту шпаргалку. Надеюсь, она будет полезна и другим начинающим!]]></description><content:encoded><![CDATA[
  <p id="WmJL">Недавно мне пришлось активно использовать Bash для автоматизации задач, которые было проще решить скриптами. Раньше я не работал с Bash так интенсивно, поэтому пришлось разобраться. Чтобы не забыть основные моменты, я составил эту шпаргалку. Надеюсь, она будет полезна и другим начинающим!</p>
  <p id="qfF4">Bash-скрипты — это мощный инструмент для автоматизации задач в Unix-подобных системах, позволяющий выполнять команды последовательно, задавать логику их выполнения с помощью переменных, условий и циклов.</p>
  <h2 id="RYxf">Переменные</h2>
  <h3 id="Pm10">Объявление переменных</h3>
  <pre id="9LGt">variable_name=value
</pre>
  <ul id="FdZg">
    <li id="NhYs">Пробелы вокруг <code>=</code> не допускаются.</li>
    <li id="7HtS">Значение может быть строкой, числом или результатом команды.</li>
  </ul>
  <p id="WDBW"><strong>Пример</strong>:</p>
  <pre id="dKbv">name=&quot;Ivan&quot;      # Строка
age=30           # Число
files=$(ls)      # Результат команды ls
</pre>
  <h3 id="bUI0">Использование переменных</h3>
  <pre id="wuuH">$variable_name
${variable_name}
</pre>
  <p id="orYH">Второй вариант полезен в составе строк.</p>
  <p id="az7f"><strong>Пример</strong>:</p>
  <pre id="N3kn">echo &quot;Hello, $name!&quot;           # Выведет: Hello, Ivan!
echo &quot;You are ${age} years old.&quot;  # Выведет: You are 30 years old.
</pre>
  <h3 id="iqgV">Кавычки</h3>
  <ul id="Pn6I">
    <li id="C30m"><strong>Двойные кавычки (<code>&quot;</code>)</strong>: Разрешают интерполяцию переменных.<code>name=&quot;Ivan&quot; greeting=&quot;Hello, $name!&quot; echo &quot;$greeting&quot; # Выведет: Hello, Ivan! </code></li>
    <li id="4gbh"><strong>Одинарные кавычки (<code>&#x27;</code>)</strong>: Запрещают интерполяцию.<code>greeting=&#x27;Hello, $name!&#x27; echo &quot;$greeting&quot; # Выведет: Hello, $name! </code></li>
    <li id="0Ted"><strong>Обратные кавычки (&#x60;) или <code>$()</code></strong>: Для выполнения команд.<code>current_date=$(date +&quot;%Y-%m-%d&quot;) echo &quot;Сегодня $current_date&quot; # Выведет: Сегодня 2025-07-13 </code></li>
  </ul>
  <h3 id="8unX">Чтение пользовательского ввода</h3>
  <pre id="R5A7">read variable_name
</pre>
  <p id="paeu"><strong>Пример</strong>:</p>
  <pre id="oZNU">echo &quot;Введи свое имя:&quot;
read name
echo &quot;Привет, $name!&quot;
</pre>
  <h3 id="NCVo">Переменные окружения</h3>
  <ul id="JpX5">
    <li id="sXJJ"><strong>Экспорт переменных</strong>:<code>export PATH=$PATH:/usr/local/bin </code></li>
    <li id="LnMQ"><strong>Просмотр переменных окружения</strong>:<code>env printenv </code></li>
  </ul>
  <h3 id="t2oe">Специальные переменные</h3>
  <ul id="gRGk">
    <li id="Lrrx"><code>$0</code> — имя скрипта.</li>
    <li id="j1mJ"><code>$1</code>, <code>$2</code>, ..., <code>$9</code> — аргументы скрипта.</li>
    <li id="muTj"><code>$#</code> — количество аргументов.</li>
    <li id="iNr4"><code>$@</code> — все аргументы (как отдельные строки).</li>
    <li id="idyq"><code>$*</code> — все аргументы (как одна строка).</li>
  </ul>
  <p id="Dtdr"><strong>Пример</strong>:</p>
  <pre id="SOmH">echo &quot;Script name: $0&quot;
echo &quot;First argument: $1&quot;
echo &quot;Number of arguments: $#&quot;
echo &quot;All arguments: $@&quot;
</pre>
  <h3 id="rGMs">Удаление переменных</h3>
  <pre id="8ZFP">unset variable_name
</pre>
  <p id="LCfL"><strong>Пример</strong>:</p>
  <pre id="75zJ">name=&quot;Ivan&quot;
unset name
echo &quot;Name: $name&quot;  # Ничего не выведет
</pre>
  <h3 id="z4JD">Значения по умолчанию</h3>
  <pre id="7aB3">${variable:-default_value}
</pre>
  <p id="ya8k"><strong>Пример</strong>:</p>
  <pre id="NHtL">echo &quot;Hello, ${name:-Guest}!&quot;  # Выведет: Hello, Guest! (если name не задана)
</pre>
  <h3 id="EjVC">Проверка на пустоту</h3>
  <pre id="Abmb">if [ -z &quot;$variable&quot; ]; then
    echo &quot;Variable is empty&quot;
fi
</pre>
  <p id="vqS0"><strong>Пример</strong>:</p>
  <pre id="l7IL">if [ -z &quot;$name&quot; ]; then
    name=&quot;Guest&quot;
fi
echo &quot;Hello, $name!&quot;
</pre>
  <h3 id="VOJV">Локальные переменные в функциях</h3>
  <pre id="AAP8">local variable_name=value
</pre>
  <p id="J8iy"><strong>Пример</strong>:</p>
  <pre id="HyUn">my_function() {
    local local_var=&quot;I&#x27;m local&quot;
    echo &quot;$local_var&quot;
}
my_function
echo &quot;$local_var&quot;  # Ничего не выведет
</pre>
  <h3 id="AtzB">Конкатенация строк</h3>
  <pre id="TOdb">new_string=&quot;$string1$string2&quot;
</pre>
  <p id="DHKP"><strong>Пример</strong>:</p>
  <pre id="hO7F">greeting=&quot;Hello, &quot;
name=&quot;John&quot;
message=&quot;$greeting$name!&quot;
echo &quot;$message&quot;  # Выведет: Hello, John!
</pre>
  <h3 id="TRxF">Числовые операции</h3>
  <pre id="QdOt">$((expression))
</pre>
  <p id="QNXW"><strong>Пример</strong>:</p>
  <pre id="Brwk">a=5
b=10
sum=$((a + b))
echo &quot;Sum: $sum&quot;  # Выведет: 15
</pre>
  <h3 id="p5zB">Чтение файла в переменную</h3>
  <pre id="Xs76">variable=$(&lt;filename)
</pre>
  <p id="wyFm"><strong>Пример</strong>:</p>
  <pre id="XPNu">content=$(&lt;file.txt)
echo &quot;$content&quot;
</pre>
  <h2 id="yHCh">Массивы</h2>
  <pre id="9JkA">array=(&quot;value1&quot; &quot;value2&quot; &quot;value3&quot;)
</pre>
  <ul id="aIUZ">
    <li id="rHIR"><code>${array[0]}</code> — первый элемент.</li>
    <li id="vdxk"><code>${array[@]}</code> — все элементы.</li>
    <li id="yhcF"><code>${#array[@]}</code> — количество элементов.</li>
  </ul>
  <p id="qf1u"><strong>Пример</strong>:</p>
  <pre id="sebI">fruits=(&quot;Apple&quot; &quot;Banana&quot; &quot;Cherry&quot;)
echo &quot;First fruit: ${fruits[0]}&quot;  # Выведет: Apple
echo &quot;All fruits: ${fruits[@]}&quot;   # Выведет: Apple Banana Cherry
</pre>
  <h2 id="6hm6">Экспорт функций</h2>
  <pre id="Htd0">export -f function_name
</pre>
  <p id="5tdM"><strong>Пример</strong>:</p>
  <pre id="d2Q6">my_function() {
    echo &quot;Hello from my_function!&quot;
}
export -f my_function
</pre>
  <h2 id="x0Cp">Проверка существования переменной</h2>
  <pre id="cjvg">if [ -v variable_name ]; then
    echo &quot;Variable exists&quot;
fi
</pre>
  <p id="cnOW"><strong>Пример</strong>:</p>
  <pre id="MEZZ">if [ -v name ]; then
    echo &quot;Variable &#x27;name&#x27; exists.&quot;
else
    echo &quot;Variable &#x27;name&#x27; does not exist.&quot;
fi
</pre>
  <h2 id="X5DH">Логические выражения</h2>
  <p id="BVA3">Логические выражения возвращают <code>true</code> или <code>false</code> и используются для условного выполнения команд. В Bash рекомендуется использовать <code>[[ ]]</code> для логических выражений, так как они более надёжны и поддерживают больше возможностей, чем <code>[ ]</code>.</p>
  <h3 id="NLQy">Операторы сравнения чисел</h3>
  <ul id="BdHf">
    <li id="9onl"><code>[[ $a -eq $b ]]</code> — равно.</li>
    <li id="bOjY"><code>[[ $a -ne $b ]]</code> — не равно.</li>
    <li id="XOcj"><code>[[ $a -lt $b ]]</code> — меньше.</li>
    <li id="cefj"><code>[[ $a -le $b ]]</code> — меньше или равно.</li>
    <li id="Awem"><code>[[ $a -gt $b ]]</code> — больше.</li>
    <li id="C8Bn"><code>[[ $a -ge $b ]]</code> — больше или равно.</li>
  </ul>
  <h3 id="lkM4">Операторы сравнения строк</h3>
  <ul id="DzfW">
    <li id="v62W"><code>[[ &quot;$str1&quot; = &quot;$str2&quot; ]]</code> — строки равны.</li>
    <li id="eW3M"><code>[[ &quot;$str1&quot; != &quot;$str2&quot; ]]</code> — строки не равны.</li>
    <li id="dpgx"><code>[[ -z &quot;$str&quot; ]]</code> — строка пустая.</li>
    <li id="nY8S"><code>[[ -n &quot;$str&quot; ]]</code> — строка не пустая.</li>
    <li id="dQQm"><code>[[ &quot;$str&quot; == *part ]]</code> — строка заканчивается на &quot;part&quot;.</li>
    <li id="QMJS"><code>[[ &quot;$str&quot; == part* ]]</code> — строка начинается с &quot;part&quot;.</li>
    <li id="xVMc"><code>[[ &quot;$str&quot; == *&quot;part&quot;* ]]</code> — строка содержит &quot;part&quot;.</li>
    <li id="XIFO"><code>[[ &quot;$str&quot; =~ regex ]]</code> — строка соответствует регулярному выражению.</li>
    <li id="1Z2O"><code>[[ $a &gt; $b ]]</code> — лексикографическое сравнение (по кодам символов, например, ASCII).</li>
  </ul>
  <p id="Rj6z"><strong>Пример лексикографического сравнения</strong>:</p>
  <pre id="SKvN">if [[ &quot;app&quot; &lt; &quot;ban&quot; ]]; then
    echo &quot;app &lt; ban&quot;  # Выведет, так как код символа &#x27;a&#x27; меньше &#x27;b&#x27;
fi
</pre>
  <h3 id="kC1Z">Логические операторы</h3>
  <ul id="SikE">
    <li id="rLGk"><code>&amp;&amp;</code> — И (AND).</li>
    <li id="L171"><code>||</code> — ИЛИ (OR).</li>
    <li id="lLPX"><code>!</code> — НЕ (NOT).</li>
  </ul>
  <p id="Fnjf"><strong>Пример</strong>:</p>
  <pre id="bi8F">if [[ $a -gt 0 &amp;&amp; $b -gt 0 ]]; then
    echo &quot;Оба числа положительные&quot;
fi
</pre>
  <h3 id="QQco">Логические операторы для команд</h3>
  <ul id="eZ4q">
    <li id="o1Q5"><code>команда1 &amp;&amp; команда2</code> — выполняет <code>команда2</code>, если <code>команда1</code> успешна.</li>
    <li id="Ceka"><code>команда1 || команда2</code> — выполняет <code>команда2</code>, если <code>команда1</code> неуспешна.</li>
    <li id="xYUN"><code>! команда</code> — инвертирует статус выхода команды.</li>
  </ul>
  <p id="EDps"><strong>Пример</strong>:</p>
  <pre id="hkAC">ls /tmp &amp;&amp; echo &quot;Директория существует&quot;
ls /nonexistent || echo &quot;Директория не существует&quot;
</pre>
  <h3 id="9KDm">Проверка файлов</h3>
  <ul id="HkJj">
    <li id="uzXp"><code>[[ -e file ]]</code> — файл существует.</li>
    <li id="wPDp"><code>[[ -f file ]]</code> — обычный файл.</li>
    <li id="PvXw"><code>[[ -d file ]]</code> — директория.</li>
    <li id="UM08"><code>[[ -r file ]]</code> — доступен для чтения.</li>
    <li id="zmnb"><code>[[ -w file ]]</code> — доступен для записи.</li>
    <li id="IY4n"><code>[[ -x file ]]</code> — исполняемый.</li>
    <li id="TmS6"><code>[[ -s file ]]</code> — файл не пустой.</li>
  </ul>
  <p id="e4XP"><strong>Пример</strong>:</p>
  <pre id="zjqq">if [[ -f &quot;file.txt&quot; ]]; then
    echo &quot;file.txt — обычный файл&quot;
fi
</pre>
  <h2 id="AC1o">Условные операторы</h2>
  <p id="P0wN">Используются для выполнения команд в зависимости от условий.</p>
  <h3 id="sHA3">Синтаксис <code>if</code></h3>
  <pre id="7cRj">if [[ условие ]]; then
    команды
elif [[ другое_условие ]]; then
    другие_команды
else
    команды_по_умолчанию
fi
</pre>
  <p id="zfld"><strong>Пример</strong>:</p>
  <pre id="NkoV">read -p &quot;Введи число: &quot; num
if [[ $num -gt 0 ]]; then
    echo &quot;Число положительное&quot;
elif [[ $num -lt 0 ]]; then
    echo &quot;Число отрицательное&quot;
else
    echo &quot;Число равно нулю&quot;
fi
</pre>
  <h2 id="CCmf">Циклы</h2>
  <p id="CqM5">Циклы позволяют выполнять команды многократно.</p>
  <h3 id="C3lm">Цикл <code>for</code></h3>
  <pre id="h5um">for variable in list; do
    команды
done
</pre>
  <p id="9GAe"><strong>Пример</strong>:</p>
  <pre id="LXqZ">for i in 1 2 3; do
    echo &quot;Итерация: $i&quot;
done
</pre>
  <h3 id="w7fW">Цикл <code>while</code></h3>
  <pre id="YXyG">while [[ условие ]]; do
    команды
done
</pre>
  <p id="3ILa"><strong>Пример</strong>:</p>
  <pre id="LMTw">count=1
while [[ $count -le 3 ]]; do
    echo &quot;Счёт: $count&quot;
    ((count++))
done
</pre>
  <h2 id="MTU3">Заключение</h2>
  <p id="3ZX4">Эта шпаргалка охватывает основы написания Bash-скриптов: переменные, массивы, логические выражения, проверки файлов и условные операторы. Используйте её, чтобы быстро вспомнить синтаксис и начать автоматизировать задачи. </p>
  <p id="pTKO">Для углублённого изучения рекомендую заглянуть в <code>man bash</code></p>
  <pre id="t30T">man bash</pre>
  <p id="W5lR">или попробовать написать скрипты для реальных задач, таких как обработка файлов или автоматизация рутинных операций.</p>

]]></content:encoded></item><item><guid isPermaLink="true">https://teletype.in/@andreying/helloteletype</guid><link>https://teletype.in/@andreying/helloteletype?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=andreying</link><comments>https://teletype.in/@andreying/helloteletype?utm_source=teletype&amp;utm_medium=feed_rss&amp;utm_campaign=andreying#comments</comments><dc:creator>andreying</dc:creator><title>Hello Teletype. Блог для жизни, работы и всего</title><pubDate>Sat, 14 Jan 2023 03:06:03 GMT</pubDate><description><![CDATA[Статью еще не вычитывали. Вы можете нарваться на косноязычность и ошибки, но если вам похуй на это — читайте, смысл уже в статье.]]></description><content:encoded><![CDATA[
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="TLll">Статью еще не вычитывали. Вы можете нарваться на косноязычность и ошибки, но если вам похуй на это — читайте, смысл уже в статье.</p>
    <p id="vs40">А если нет, после вычитки и редакции это предупреждение исчезнет. Обычно это происходит примерно через сутки после публикации.</p>
  </section>
  <p id="hYaz">Прядка 10 лет я подумывал начать вести блог. Личный, рабочий, корпоративный.. и все ни как. Почему. Да просто мыслей много пока не сядешь за написание статьи. </p>
  <p id="A7oO">Чтоб что то запостить, нужно подготовить текст. wordpress, 1с-битрикс, тильда это места где я планировал начать вести блог, не дают возможности сесть и начать писать. Это не удобно. </p>
  <p id="PlgC">В итоге берешь гугл док и начинаешь накидывать текст. Картинки надо складывать для оформления надо складывать в папку. Атмосфера работы с редактором не дарит легкость полета мысли.</p>
  <p id="JDJw">Интерфейс в виде страницы создает атмосферу работы над книгой или официальным документом. В итоге посидел, что то накидал, перечитал - гавно. До публикации даже не дошел.</p>
  <p id="hl3X">И так раз за разом все 10 лет подряд с периодичностью в полгода сядешь покорячишься и ни строчки не опубликуешь.</p>
  <p id="AGEL">С рабочим и корпоративным блогом немного другая история. В добавок к потере мысли за рутиной написания появляться такая херня как контент-план. В итоге напишешь 5-10 стартовых статей, причем чаще не напишешь а перепишешь, то что уже кто то написал но на свой манер, и все. Написать еще что то себя не заставить.</p>
  <p id="toG5">Нет времени, устал, заебался, завтра. У меня примерно такой порядок причин прокрастинации.</p>
  <p id="Fy9J">Другая история - соц. сети. тут всякую херню по делу и нет пишешь легко, зашел апнул и забыл. </p>
  <h2 id="8vLe">Другой подход</h2>
  <p id="RjPW">Не так давно я заимствовал другой подход у Артемия Лебедева <a href="https://blog.tema.ru/" target="_blank">@temalebedev</a> — пиши любую хуйню которая случилась в голове, в жизни, везде. Что выстрелит развивай, что нет да и хуй с ним. Во всяком случаи его я понял так - это не цитата а моя интерпретация. Эта позиция мне показалась куда разумней стереотипной хуйни о статьях в моей голове и я забрал ее себе.</p>
  <p id="JvQi">Про рабочий/корп блоги. Я часами могу мучаться написанием статьи по теме и не чего не родить, но за 15 минут в телеге накидать длинно пост со скринами в качестве развернутого ответа на вопрос заказчика или коллеги. Вот и родился годный подход для написания статей для работы. Неожиданный бонус подхода. вместо 15 минут на ЧАВО я могу скинуть ссылку на статью с припиской вот здесь я всесторонне осветил ваш вопрос. Так что даже, если так сложится, что внешним читателям мои статьи не нужен заказчикам и коллегам он как база знаний.</p>
  <h2 id="g3ju">Божественный телетайп</h2>
  <p id="V8A1">Про телетайп я узнал от Лебедева. Вообще дохуя читаю и смотрю Тему, точнее из блогеров только Тему. Потому, что он такой один. Все остальные быстро приедаются, а когда заебала манера подачи замечешь, что пользы в их контент с гулькин хуй, в основном танцы с бубнами для того чтоб нравиться аудитории. А у него есть польза. Его контент реально полезен. В работе и повседневной жизни. Нахуя я его нахваливаю... да и похуй, удалять не буду. Полагаю это слова благодарности которые ему нахуй не нужны, а мне как то сказать надо чтоб закрыть гештальт, или подсознательная попытка поднять свой авторетет как блогера поставив себя с ним в один ряд. Скорее и то и другое.</p>
  <p id="MF7N">По теме. Почему телетайп бложественный? — в него писать как в соц. сеть и телегу. Вообще не напряжено. Лучший UX для блога который можно было создать!</p>
  <p id="A6Vv">При этом так же легко отдать на вычитку перед публикацией, придержать черновик. Красиво структурировать на лету.</p>
  <section style="background-color:hsl(hsl(0, 0%, var(--autocolor-background-lightness, 95%)), 85%, 85%);">
    <p id="x9E6">Вычитка это отделанная тема. Я страдаю дизграфией, или дислексией. Мне когда то знакомый психолог объяснил, что я на самом деле не безграмотное хуйло, а ущербный на мозг, но я позабыл детали а термины в голове путаться в формате это не то это это или наоборот.</p>
    <p id="gA6k">Когда я пишу красным подчеркиваться каждое второе слово. Если бы я жил в эпоху когда нет красных спасительных линий мне не дали бы портить бумагу, а за каждую надпись пиздили.</p>
  </section>
  <h2 id="HBHk">Пиши в телетайп</h2>
  <p id="NgmP">Может личный блок мне не зайдет. Рабочий блог в телетайп это мастхев. Всем у кого нет PR отдела которые пишут блоги куда угодно так как их работа нужно попробовать телетайп.</p>
  <p id="uec9">Если вы создали себе когда та сайт и вставили туда 3-5 статей, или новостей и на этом все заглохло. Попробуйте вести телетайп.</p>
  <p id="NiaT">Едешь в такси пиши в телетайп, сидишь ждешь ребенка из садика, или секции пиши в телетайп, где угодно есть 15 минут и мысли пиши в телетайп. Все как с соц. сетями только блог.</p>
  <p id="EFk2">Если кому-то помогло, скажите спасибо в комментах, жамкните сердечко, апните донатик, но много не шлите, а то брошу работу и стану блогером :)</p>

]]></content:encoded></item></channel></rss>