[go: up one dir, main page]

Skip to content

promtstd 🤖 - универсальный стандарт для хранения и использования промтов в AI. 📚 Основан на Markdown, обеспечивает легкость чтения и структурированность.

Notifications You must be signed in to change notification settings

denisxab/promtstd

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

promtstd

promtstd - это стандарт, разработанный с целью предоставить общепринятый и универсальный подход к хранению и использованию промтов в разработке искусственных интеллектов. Он облегчает взаимодействие разработчиков, повышает качество создаваемых AI и уменьшает трудозатраты на поддержку системы промтов.

logo_web

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

Применение стандарта promtstd в проектах искусственного интеллекта обеспечивает упорядоченность кодовой базы, что значительно снижает вероятность ошибок, затруднений и проблем при дальнейшей разработке и поддержке AI. В целом, использование promtstd призвано способствовать успешному развитию AI-технологий и улучшению пользовательского опыта.

Важность стандарта

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

Однако на данный момент отсутствует унифицированный стандарт для хранения и использования промтов, что приводит к ряду проблем:

  1. Затруднение взаимодействия разработчиков: без стандарта разработчики вынуждены использовать свои собственные конвенции и методы хранения промтов, что может усложнить коммуникацию и сотрудничество между разными командами.
  2. Увеличение трудозатрат на создание и поддержку AI: из-за отсутствия стандарта разработчики тратят больше времени на разработку, поддержку и модификацию промтов, что снижает производительность и увеличивает затраты на проекты.
  3. Снижение качества AI: без стандарта промты могут быть хранены и использованы неэффективно, что снижает общую эффективность AI и может привести к некорректному выполнению задач. Создание стандарта для хранения и использования промтов может существенно улучшить эти аспекты и сделать разработку AI более удобной, эффективной и качественной.
  • Bing
  • ChatGPT

Основная концепция

Основная концепция стандарта promtstd заключается в предоставлении унифицированного подхода к хранению и использованию промтов с помощью популярного и легко читаемого формата Markdown. Это обеспечивает следующие преимущества:

  1. Легкость чтения: промты, хранящиеся в формате Markdown, легко читаются и понимаются разработчиками, что упрощает работу с ними и снижает вероятность ошибок.
  2. Расширяемость: стандарт promtstd позволяет легко добавлять новые элементы и разделы, что обеспечивает гибкость и адаптивность к различным сценариям использования промтов.
  3. Удобство работы: использование стандарта promtstd упрощает процесс разработки, тестирования и поддержки промтов, так как все разработчики работают с одним и тем же форматом и структурой данных.

В целом, стандарт promtstd способствует улучшению качества разработки AI, упрощает коммуникацию между разработчиками и снижает затраты на создание и поддержку промтов. Внедрение и соблюдение данного стандарта помогут обеспечить более эффективное и качественное взаимодействие AI с пользователем, а также повысить стабильность и функциональность разрабатываемых AI-решений.

Синтаксис хранения промта в PromtStd.Markdown

Промты хранятся в Markdown формате.

Структура хранения промта

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

КорневаяПапка_С_Промтами
│ 
├── Группа_1
│   │
│   ├── Файл_С_Промтом_1.md
│   ├── Файл_С_Промтом_2.md
│   ├── Файл_С_Промтом_3.md
│   │
│   ├── json
│   │   ├──Файл_С_Промтом_1.json
│   │   ├──Файл_С_Промтом_2.json
│   │   └──Файл_С_Промтом_3.json
│   └── html
│       ├──Файл_С_Промтом_1.html
│       ├──Файл_С_Промтом_2.html
│       └──Файл_С_Промтом_3.html
│
└── Группа_2
    │
    ├── Файл_С_Промтом_1.md
    ├── Файл_С_Промтом_2.md
    ├── Файл_С_Промтом_3.md
    │ 
    ├── json
    │   ├──Файл_С_Промтом_1.json
    │   ├──Файл_С_Промтом_2.json
    │   └──Файл_С_Промтом_3.json
    └── html
        ├──Файл_С_Промтом_1.html
        ├──Файл_С_Промтом_2.html
        └──Файл_С_Промтом_3.html  

Так как промпты могут быть объемными и иметь множество особенностей, мы решили не устанавливать строгие рамки для хранения промптов и вместо этого создать правила для структурирования заголовков, а также расширить возможности Markdown. Такой подход к стандарту предоставляет большой потенциал для хранения промптов в будущем.

  1. Оформление заголовков с нужными именами и уровнем для файле Файл_С_Промтом.md
# meta
# doc
# base_promt
# tools
## Название для вспомогательного промта 1
## Название для вспомогательного промта ...
# expl
## Название для примера запроса 1
### Название для примера ответа 1 
### Название для примера ответа ...
## Название для примера запроса 2
### Название для примера ответа 2
### Название для примера ответа ...
  1. Расширения синтаксиса Markdown, которые могут быть использованы:
    1. Применение переменных в блоках с промптом

Про ~ meta

meta = Мета информация о промте.

- for:
  - Имя_AI_1
- use:
  - Место_1
- tags:
  - Тег_1
  • for = В каких AI используется этот промт;
  • use = В каком месте AI используется этот промт;
  • tags = Логическое разделение промта на глобальные теги;

Про ~ doc

doc = Произвольное описание промта

Про ~ base_promt

base_promt = Базовый промт. В нем может быть произвольное описание, но главное чтобы в нем был блок кода с типом promt

```promt
Текст промта
```

Использование переменных в блоках с промптом

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

После этого, ниже блока с промптом, вы можете указать имена переменных, о которых хотите дать более подробное описание.

В описании переменных можно указывать различные значения по умолчанию. Для этого после описания переменной создайте новый вложенный список.

Пример шаблона:

```promt
Текст промта {{ПеременнаяОдин}}, еще текст промта {{ПеременнаяДва}}.
```

- ПеременнаяОдин ~ Описание переменной, у которой нет вариантов значений.
- ПеременнаяДва ~ Описание переменной, у которой есть варианты значений.
  - Вариант значения 1
  - Вариант значения 2
  - [x] Вариант значения который будет по умолчанию
  - Вариант значения ...

Пример использования переменных:

```promt
Этот пример промта, в котором я буду использовать {{ЧтоИспользовать}},
для того чтобы {{ЧтоДелать}}.
```

- ЧтоИспользовать ~ Что я буду использовать
  - Переменные
  - Слова
  - [x] Рыб
- ЧтоДелать ~ Что тогда я буду делать с промтом

Про ~ tools

tools = В этой главе укажите вспомогательные промты. В них вы тоже можете использовать переменные в промтах.

Пример содержания главы tools:

```promt
Продолжи свой ответ, с того места где ты закончил прошлый.
```

```promt
Ответь на прошлый вопрос по частям, в каждой части укажи номер.
```

```promt
Напиши снова часть: {{НомерЧасти}}
```

- НомерЧасти = Номер части которую нужно снова отправить

Про ~ expl

expl = В данной главе приведены примеры использования базового промпта. Поскольку примеры могут быть объемными (более 1000 символов), рекомендуется разбивать их на отдельные главы. Сначала следует глава (h2) с названием примера, содержащая сам пример. Затем следует глава (h3) с названием ответа (можно просто указать порядковый номер), в которой сохраняется ответ.

Пример примеров:

# base_promt

```promt
Напиши {{КакуюСказку}} сказку о том: {{ТемаСказки}}
```

# expl

## Примера как ChatGPT написал длинную сказку

Напиши длинную сказку о том: как молодой человек сумел стать программистов, благодаря своей настойчивости, расскажи о том как он получил 1500 отказов от работодателей, но на 1501 получил приглашение на работу мечты, а потом стал синьером, завел собаку по имени жучка, посадил дерево лимонник, в своем огороде на даче, и жил он долго и счастливо, и иногда делал код ревью.

### Длинная сказка

Жил-был молодой человек, который всегда мечтал стать программистом. Он изучал языки программирования, проходил онлайн-курсы и решал сложные задачи на сайтах для разработчиков. Однако, увы, никакая компания не хотела нанять его на работу. Он получил уже 1500 отказов, но не сдавался и продолжал искать свой шанс.

И вот, однажды, он получил письмо с приглашением на собеседование в компанию своей мечты. Молодой человек был очень взволнован и готовился к собеседованию днями и ночами. И в конце концов, его упорство и настойчивость оказались вознаграждены - он получил работу!

Работая в этой компании, молодой человек проявил себя как талантливый и энергичный программист. Его работа была востребована, и он быстро продвигался по карьерной лестнице. Через несколько лет он стал синьером, получил высокую зарплату и чувствовал себя очень уверенно в своих силах.

Помимо работы, молодой человек заботился о своем доме на даче. Он посадил дерево лимонник, которое давало ему сладкие и ароматные плоды каждое лето. Также у него была собака по имени Жучка, которую он очень любил и которая сопровождала его в долгих прогулках по лесу.

Молодой программист жил долго и счастливо, наслаждаясь своей работой и увлечениями. Иногда он делал код-ревью и помогал начинающим программистам, как сам когда-то был в их числе. И вот так, благодаря своей настойчивости и трудолюбию, он достиг своей мечты и построил свою счастливую жизнь.

## Пример как ChatGPT написал короткую и смешную сказку

Напиши очень короткую  и смешную сказку о том: как молодой человек сумел стать программистов, благодаря своей настойчивости, расскажи о том как он получил 1500 отказов от работодателей, но на 1501 получил приглашение на работу мечты, а потом стал синьером, завел собаку по имени жучка, посадил дерево лимонник, в своем огороде на даче, и жил он долго и счастливо, и иногда делал код ревью.

### Короткая сказка и смешная сказка

Жил-был молодой человек, который мечтал стать программистом. Но ему приходилось получать много отказов от работодателей, аж 1500! Но на 1501 попытке он получил работу мечты. С тех пор он стал синьером, завел собаку по имени Жучка, посадил лимонник в своем огороде на даче, и жил долго и счастливо, иногда делая код-ревью. А вот Жучка сидела возле него, внимательно наблюдая за работой хозяина и периодически лаяла на баги в коде.

Сборка PromtStd.Markdown в другие форматы

Установка promtstd

Установка promtstd

pip install promtstd

В ~ PromtStd.Json

Чтобы использовать данные из Markdown в других приложениях, в стандарте promtstd, предусмотрена сборка с Json.

Команда для сборки

Сборка PromtStd.Markdown в PromtStd.Json

python python -m promtstd json Файл_PromtStd_Markdown.md 

Пример сборки

Пример PromtStd.Markdown:

# meta

- for:
  - ChatGPT
- use:
  - Первое сообщение
- tags:
  - Создание промтов

# doc

Этот промт нужен, для того чтобы вмести с CahtGpt найти самый лучший вариант промта под конкретную задачу.

- После этого промта нужно описать под какую задачу вам нужно создать новый промт
- После этого CahtGpt будет задавать уточняющие вопросы, на которые нам нужно ответить, для того чтобы улучшить новый промт

# base_promt

```promt
I want you to become my Prompt Creator. Your goal is to help me craft the best possible prompt for my needs. The prompt will be used by you, ChatGPT. You will follow the following process:

1. Your first response will be to ask me what the prompt should be about. I will provide my answer, but we will need to improve it through continual iterations by going through the next steps.

2. Based on my input, you will generate 3 sections. a) Revised prompt (provide your rewritten prompt. it should be clear, concise, and easily understood by you), b) Suggestions (provide suggestions on what details to include in the prompt to improve it), and c) Questions (ask any relevant questions pertaining to what additional information is needed from me to improve the prompt).

3. We will continue this iterative process with me providing additional information to you and you updating the prompt in the Revised prompt section until it's complete.

Задавай мне вопросы и пиши ответы на русском языке.
```

# tools

## Если нужно модифицировать уже существующий промт, то напишите 2 сообщением

```promt
Изначально Revised prompt равен:

{{УказатьPromt}}
```

- УказатьPromt ~ Обратите внимание чтобы этот прмот звучал утвердительно, а иначе CahtGpt подумает что это вопрос.
  - Оптимизируй код на Python
  - [x] Оптимизируй код на Си
  - Оптимизируй код на Assembler

## Если нужно изменять промт на основание примеров

```promt
Я хочу проверить работу Revised prompt, я буду смотреть на твой ответ, и давать подсказки как можно улучшить Revised prompt.
Для улучшения можно изменять правила Revised prompt.

Вот пример который ты должен проверить:

{{УказатьПример}}
```

# expl

## Если отправить только промт первым сообщением

```promt
Разработка нейронных сетей на основе архитектуры трансформер
```

### Уточнения промта

```ai
Хорошо, вот три секции, которые помогут нам уточнить тему и создать лучший возможный промпт:

a) Пересмотренный промпт:
Напишите промпт, который вы хотели бы использовать для этой темы.

b) Советы:
Какие дополнительные детали или информацию нам нужно включить в промпт, чтобы он был более ясным и конкретным?

c) Вопросы:
Какие вопросы у вас есть относительно темы, которые помогут нам лучше понять, что должен включать наш промпт?
```

## Если отправить промт как изначальный

```promt
Изначально Revised prompt равен:

Разработка нейронных сетей на основе архитектуры трансформер
```

### Готовый промт, а также вопросы по нему

```ai
Отлично, в таком случае давайте начнем:

Revised prompt:
Создание нейронных сетей с использованием трансформерной архитектуры.

Suggestions:

Какие применения будет иметь нейронная сеть, которую вы хотите создать?
Какие специфические особенности трансформерной архитектуры вы планируете использовать?
Какую информацию вы хотели бы получить от нейронной сети? Какие данные будут использоваться для обучения?
Какие будут измерения успеха для нейронной сети, которую вы создадите?
Questions:

Какую среду для разработки нейронных сетей вы предпочитаете использовать?
Какова ваша совокупная опытность в создании нейронных сетей и использовании трансформерной архитектуры?
Какие примеры существующих нейронных сетей вы изучили и какие аспекты из них вы хотели бы использовать в своей сети?
```

Пример PromtStd.Json:

{
    "name": "Создание промтов вместе с ChatGpt.md",
    "meta": {
        "for_": [
            "ChatGPT"
        ],
        "use": [
            "Первое сообщение"
        ],
        "group": "examples",
        "tags": [
            "Создание промтов"
        ],
        "version": null
    },
    "doc": "Этот промт нужен, для того чтобы вмести с CahtGpt найти самый лучший вариант промта под конкретную задачу.\n\n- После этого промта нужно описать под какую задачу вам нужно создать новый промт\n- После этого CahtGpt будет задавать уточняющие вопросы, на которые нам нужно ответить, для того чтобы улучшить новый промт",
    "base_promt": {
        "promt": {
            "text_promt": "I want you to become my Prompt Creator. Your goal is to help me craft the best possible prompt for my needs. The prompt will be used by you, ChatGPT. You will follow the following process:\n\n1. Your first response will be to ask me what the prompt should be about. I will provide my answer, but we will need to improve it through continual iterations by going through the next steps.\n\n2. Based on my input, you will generate 3 sections. a) Revised prompt (provide your rewritten prompt. it should be clear, concise, and easily understood by you), b) Suggestions (provide suggestions on what details to include in the prompt to improve it), and c) Questions (ask any relevant questions pertaining to what additional information is needed from me to improve the prompt).\n\n3. We will continue this iterative process with me providing additional information to you and you updating the prompt in the Revised prompt section until it's complete.\n\nЗадавай мне вопросы и пиши ответы на русском языке.",
            "vars": []
        }
    },
    "tools_promt": {
        "promts": [
            {
                "about_promt": "Если нужно модифицировать уже существующий промт, то напишите 2 сообщением",
                "text_promt": "Изначально Revised prompt равен:\n\n{{УказатьPromt}}",
                "vars": [
                    {
                        "name": "УказатьPromt",
                        "doc": " Обратите внимание чтобы этот прмот звучал утвердительно, а иначе CahtGpt подумает что это вопрос.",
                        "default": "Оптимизируй код на Си",
                        "allowed": [
                            "Оптимизируй код на Python",
                            "Оптимизируй код на Си",
                            "Оптимизируй код на Assembler"
                        ]
                    }
                ]
            },
            {
                "about_promt": "Если нужно изменять промт на основание примеров",
                "text_promt": "Я хочу проверить работу Revised prompt, я буду смотреть на твой ответ, и давать подсказки как можно улучшить Revised prompt. \nДля улучшения можно изменять правила Revised prompt.\n\nВот пример который ты должен проверить:\n\n{{УказатьПример}}",
                "vars": [
                    {
                        "name": "УказатьПример",
                        "doc": null,
                        "default": null,
                        "allowed": null
                    }
                ]
            }
        ]
    },
    "expl": [
        {
            "name": "Если отправить только промт первым сообщением",
            "in_text": "\n```promt\nРазработка нейронных сетей на основе архитектуры трансформер\n```\n",
            "out_text": {
                "Уточнения промта": "\n```ai\nХорошо, вот три секции, которые помогут нам уточнить тему и создать лучший возможный промпт:\n\na) Пересмотренный промпт:\nНапишите промпт, который вы хотели бы использовать для этой темы.\n\nb) Советы:\nКакие дополнительные детали или информацию нам нужно включить в промпт, чтобы он был более ясным и конкретным?\n\nc) Вопросы:\nКакие вопросы у вас есть относительно темы, которые помогут нам лучше понять, что должен включать наш промпт?\n```\n"
            }
        },
        {
            "name": "Если отправить промт как изначальный",
            "in_text": "\n```promt\nИзначально Revised prompt равен:\n\nРазработка нейронных сетей на основе архитектуры трансформер\n```\n",
            "out_text": {
                "Готовый промт, а также вопросы по нему": "\n```ai\nОтлично, в таком случае давайте начнем:\n\nRevised prompt:\nСоздание нейронных сетей с использованием трансформерной архитектуры.\n\nSuggestions:\n\nКакие применения будет иметь нейронная сеть, которую вы хотите создать?\nКакие специфические особенности трансформерной архитектуры вы планируете использовать?\nКакую информацию вы хотели бы получить от нейронной сети? Какие данные будут использоваться для обучения?\nКакие будут измерения успеха для нейронной сети, которую вы создадите?\nQuestions:\n\nКакую среду для разработки нейронных сетей вы предпочитаете использовать?\nКакова ваша совокупная опытность в создании нейронных сетей и использовании трансформерной архитектуры?\nКакие примеры существующих нейронных сетей вы изучили и какие аспекты из них вы хотели бы использовать в своей сети?\n```"
            }
        }
    ]
}

В ~ PromtStd.Html

Для того чтобы использовать дополнительные возможности PromtStd.Markdown, и работать с промтом прямо в браузере, нужно собрать PromtStd.Html

Команда для сборки

Сборка PromtStd.Markdown в PromtStd.Html

python python -m promtstd html Файл_PromtStd_Markdown.md 

Пример сборки

Создание промтов вместе с ChatGpt.html

to_html

Вывод

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

About

promtstd 🤖 - универсальный стандарт для хранения и использования промтов в AI. 📚 Основан на Markdown, обеспечивает легкость чтения и структурированность.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published