gpt-prompt-engineer

by mshumer (community) · GPT-4, Claude (через API)

Skill AI Assistants Open Source

Инструмент, который использует LLM для автоматической генерации и оптимизации промптов методом ELO-рейтинга. AI сам придумывает и выбирает лучший промпт для задачи. Как работает: - Описываешь задачу и несколько примеров input/output - GPT-4 генерирует N вариантов промптов - Каждая пара промптов тестируется на примерах - ELO-турнир выявляет лучший промпт - Итоговый промпт оптимален для твоей задачи Отдельный режим для classification-задач.

Добавлен 18.06.2026 · Обновлён 07.07.2026 · AI Assistants
Установка
# Клонировать репо и установить зависимости:
git clone https://github.com/mshumer/gpt-prompt-engineer
cd gpt-prompt-engineer
pip install -r requirements.txt

# Настройка API (OpenAI или Anthropic):
export OPENAI_API_KEY=sk-...

# Запуск Jupyter-ноутбука:
jupyter notebook gpt_prompt_engineer.ipynb
переведено ИИ

gpt-prompt-engineer

Twitter Follow Open Main Version In Colab Open Classification Version In Colab

Будьте первыми, кто узнает о новых ИИ-проектах и демонстрациях!

Обзор

Инжиниринг промптов — это что-то вроде алхимии. Нет четкого способа предсказать, что сработает лучше всего. Все сводится к экспериментам, пока вы не найдете правильный промпт. gpt-prompt-engineer — это инструмент, который выводит эти эксперименты на совершенно новый уровень.

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

Новинка от 20.03.2024: Версия для Claude 3 Opus

Я добавил новую версию gpt-prompt-engineer, которая использует все возможности модели Anthropic Claude 3 Opus. Эта версия автоматически генерирует тестовые случаи и позволяет пользователю определять несколько входных переменных, что делает ее еще более мощной и гибкой. Попробуйте ее с ноутбуком claude-prompt-engineer.ipynb в репозитории!

Новинка от 20.03.2024: Версия конвертации Claude 3 Opus -> Haiku

Этот ноутбук позволяет создавать молниеносные и производительные ИИ-системы за небольшую часть обычных затрат. Используя Claude 3 Opus для установки латентного пространства и Claude 3 Haiku для фактической генерации, вы можете получить потрясающие результаты. Процесс работает следующим образом: используется Opus для создания коллекции высококачественных примеров, которые затем направляют Haiku для генерации вывода сопоставимого качества, при этом значительно снижая как задержку, так и стоимость за генерацию. Попробуйте ее с ноутбуком opus-to-haiku-conversion.ipynb в репозитории!

Возможности

  • Генерация промптов: Используя GPT-4, GPT-3.5-Turbo или Claude 3 Opus, gpt-prompt-engineer может сгенерировать множество возможных промптов на основе предоставленного варианта использования и тестовых случаев.

  • Тестирование промптов: Настоящее волшебство происходит после генерации. Система проверяет каждый промпт на всех тестовых случаях, сравнивает их производительность и ранжирует с использованием рейтинговой системы ELO. Screen Shot 2023-07-04 at 11 41 54 AM

  • Рейтинговая система ELO: Каждый промпт начинает с рейтинга ELO 1200. По мере того как они конкурируют друг с другом, генерируя ответы на тестовые случаи, их рейтинги ELO меняются в зависимости от их производительности. Таким образом, вы можете легко увидеть, какие промпты являются наиболее эффективными.

  • Версия классификации: Наш блокнот gpt-prompt-engineer -- Версия классификации предназначен для выполнения задач классификации. Он оценивает корректность тестового случая, сопоставляя его с ожидаемым выходом ('true' или 'false'), и предоставляет таблицу с оценками для каждого промпта. Screen Shot 2023-07-10 at 5 22 24 PM

  • Версия для Claude 3: Ноутбук claude-prompt-engineer разработан для работы с моделью Anthropic Claude 3 Opus. Он автоматически генерирует тестовые случаи и позволяет использовать несколько входных переменных, что делает его еще более мощным и гибким.

  • Версия конвертации Claude 3 Opus -> Haiku: Разработана для сохранения качества Opus для вашего варианта использования при получении преимуществ скорости и стоимости от использования Haiku.

  • Логирование в Weights & Biases: Опциональное логирование в Weights & Biases ваших конфигураций (например, температуры и максимального количества токенов), системных и пользовательских промптов для каждой части, используемых тестовых случаев и итогового ранжированного рейтинга ELO для каждого кандидата-промпта. Установите use_wandb в True, чтобы использовать.

  • Portkey: Опциональный инструмент для логирования и отслеживания всех цепочек промптов и их ответов. Установите use_portkey в True, чтобы использовать.

Настройка

  1. Откройте ноутбук в Google Colab или в локальном Jupyter ноутбуке. Для классификации используйте этот.. Для версии Claude 3 используйте этот.

  2. Добавьте свой API-ключ OpenAI в строку openai.api_key = "ADD YOUR KEY HERE". Если вы используете версию для Claude 3, добавьте свой API-ключ Anthropic в строку ANTHROPIC_API_KEY = "ADD YOUR KEY HERE".

Как использовать

  1. Если вы используете версию для GPT-4, опишите свой вариант использования и тестовые случаи. Вариант использования — это описание того, что вы хотите, чтобы ИИ делал. Тестовые случаи — это конкретные промпты, на которые вы хотите, чтобы ИИ отвечал. Например:
description = "Given a prompt, generate a landing page headline." # this style of description tends to work well

test_cases = [
    {
        'prompt': 'Promoting an innovative new fitness app, Smartly',
    },
    {
        'prompt': 'Why a vegan diet is beneficial for your health',
    },
    {
        'prompt': 'Introducing a new online course on digital marketing',
    },
    {
        'prompt': 'Launching a new line of eco-friendly clothing',
    },
    {
        'prompt': 'Promoting a new travel blog focusing on budget travel',
    },
    {
        'prompt': 'Advertising a new software for efficient project management',
    },
    {
        'prompt': 'Introducing a new book on mastering Python programming',
    },
    {
        'prompt': 'Promoting a new online platform for learning languages',
    },
    {
        'prompt': 'Advertising a new service for personalized meal plans',
    },
    {
        'prompt': 'Launching a new app for mental health and mindfulness',
    }
]

Для версии классификации ваши тестовые случаи должны быть в формате:

test_cases = [
    {
        'prompt': 'I had a great day!',
        'output': 'true'
    },
    {
        'prompt': 'I am feeling gloomy.',
        'output': 'false'
    },
    // add more test cases here
]

Для версии Claude 3 вы можете определить входные переменные в дополнение к описанию варианта использования:

description = "Given a prompt, generate a personalized email response."

input_variables = [
    {"variable": "SENDER_NAME", "description": "The name of the person who sent the email."},
    {"variable": "RECIPIENT_NAME", "description": "The name of the person receiving the email."},
    {"variable": "TOPIC", "description": "The main topic or subject of the email. One to two sentences."}
]

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

  1. Выберите количество генерируемых промптов. Имейте в виду, что генерация большого количества промптов может быть дорогой. 10 — хорошая отправная точка.

  2. Вызовите generate_optimal_prompt(description, test_cases, number_of_prompts) для генерации списка потенциальных промптов, их тестирования и оценки производительности. Для версии классификации просто выполните последнюю ячейку. Для версии Claude 3 вызовите generate_optimal_prompt(description, input_variables, num_test_cases, number_of_prompts, use_wandb).

  3. Итоговые рейтинги ELO будут напечатаны в таблице, отсортированной по убыванию. Чем выше рейтинг, тем лучше промпт. Screen Shot 2023-07-04 at 11 48 45 AM

Для версии классификации оценки для каждого промпта будут напечатаны в таблице (см. изображение выше).

Приветствуются вклады! Некоторые идеи:

  • иметь несколько различных генераторов системных промптов, создающих разные стили промптов, чтобы охватить больше сфер (например, примеры, многословные, короткие, markdown и т.д.)
  • автоматически генерировать тестовые случаи
  • расширить версию классификации для поддержки более чем двух классов, используя tiktoken

Лицензия

Этот проект лицензирован на условиях MIT.

Контакты

Matt Shumer - @mattshumer_

Ссылка на проект: https://github.com/mshumer/gpt-prompt-engineer)

Наконец, если вы хотите попробовать что-то еще более крутое, чем это, зарегистрируйтесь в HyperWrite Personal Assistant (я трачу на это большую часть своего времени). Это по сути ИИ с доступом к информации в реальном времени, который а) невероятно хорошо пишет естественным языком и б) может управлять вашим веб-браузером для выполнения задач за вас.

Загляните на ShumerPrompt, мой "Github для промптов"!

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