В современном мире обработки естественного языка (NLP) промпты играют ключевую роль в обучении и использовании искусственного интеллекта. Однако, с ростом объема информации и сложности промтов возникает необходимость в их структурировании и хранении. В данной статье мы познакомим вас с PromtStd — новым стандартом для организации и хранения промтов, который упрощает работу с ними и расширяет возможности Markdown.
https://github.com/denisxab/promtstd
https://pypi.org/project/promtstd/
![](https://habrastorage.org/getpro/habr/upload_files/2c7/f52/ce0/2c7f52ce0218007cc5c9b6dd5361bf0a.png)
Важность стандарта
В современной разработке AI промты играют важную роль, так как они определяют, как будет взаимодействовать AI с пользователем и какие задачи будет решать.
Однако на данный момент отсутствует унифицированный стандарт для хранения и использования промтов, что приводит к ряду проблем:
Затруднение взаимодействия разработчиков: без стандарта разработчики вынуждены использовать свои собственные конвенции и методы хранения промтов, что может усложнить коммуникацию и сотрудничество между разными командами.
Увеличение трудозатрат на создание и поддержку AI: из‑за отсутствия стандарта разработчики тратят больше времени на разработку, поддержку и модификацию промтов, что снижает производительность и увеличивает затраты на проекты.
Снижение качества AI: без стандарта промты могут быть хранены и использованы неэффективно, что снижает общую эффективность AI и может привести к некорректному выполнению задач. Создание стандарта для хранения и использования промтов может существенно улучшить эти аспекты и сделать разработку AI более удобной, эффективной и качественной.
![](https://habrastorage.org/getpro/habr/upload_files/dd9/534/20b/dd953420b2f41c29259bd7c3deaa2a79.png)
![](https://habrastorage.org/getpro/habr/upload_files/2fb/1a7/7c2/2fb1a77c2f10ac90db75aee475872d1f.png)
Что такое PromtStd?
PromtStd — это стандарт, разработанный с целью структурирования и хранения промтов. Он позволяет разработчикам и исследователям удобно работать с большим количеством промтов, имеющих различные особенности и предназначения. Стандарт использует преимущества Markdown для оформления и расширяет его возможности для более гибкого управления промптами.
Как устроен PromtStd?
Структура хранения промтов
Основная идея PromtStd заключается в разделении промтов по папкам и хранении их в отдельных файлах. Это позволяет легко находить, добавлять и изменять промты. Стандартная структура выглядит следующим образом:
КорневаяПапка_С_Промтами
│
├── Группа_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
PromtStd предлагает стандартное оформление заголовков для файла с промптом:
# meta
# doc
# base_promt
# tools
## Название для вспомогательного промта 1
## Название для вспомогательного промта ...
# expl
## Название для примера запроса 1
### Название для примера ответа 1
### Название для примера ответа ...
## Название для примера запроса 2
### Название для примера ответа 2
### Название для примера ответа ...
Пример оформление
Больше примеров в https://github.com/denisxab/promtstd/tree/main/examples
Пишем промт в удобочитаемом Markdwon:
# 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:
Какую среду для разработки нейронных сетей вы предпочитаете использовать?
Какова ваша совокупная опытность в создании нейронных сетей и использовании трансформерной архитектуры?
Какие примеры существующих нейронных сетей вы изучили и какие аспекты из них вы хотели бы использовать в своей сети?
```
Компилируем в переносимый 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```"
}
}
]
}
Компилируем в переносимый html:
Создание промтов вместе с ChatGpt.html
![](https://habrastorage.org/getpro/habr/upload_files/bf9/bbf/439/bf9bbf43964ff56b7b174a1336be8616.png)