Розробка системи версіонування промптів

Проектуємо та впроваджуємо системи штучного інтелекту: від прототипу до production-ready рішення. Наша команда поєднує експертизу в машинному навчанні, дата-інжинірингу та MLOps, щоб AI працював не в лабораторії, а в реальному бізнесі.
Показано 1 з 1Усі 1566 послуг
Розробка системи версіонування промптів
Середній
~2-3 дні
Часті запитання

Напрямки AI-розробки

Етапи розробки AI-рішення

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1285
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1198
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    902
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1121
  • image_logo-advance_0.webp
    Розробка логотипу компанії B2B Advance
    589
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    857

Розробка системи версіонування промптів

Версіонування промптів це Git для LLM інструкцій. Коли промпт змінюється, потрібно знати: хто змінив, що саме змінилося, як це вплинуло на якість, та мати можливість відкотитися до будь-якої попередньої версії.

Принципи версіонування

Імумутабельність версій: створена версія ніколи не змінюється. Якщо потрібно виправити промпт - створюється нова версія.

Семантичне версіонування: major.minor.patch:

  • Major: принципова зміна інструкції чи завдання
  • Minor: покращення формулювань без зміни завдання
  • Patch: виправлення друкарських помилок, незначні правки

Лінковка з результатами: кожна версія пов'язана з метриками на evaluation set.

Git-based версіонування промптів

Для невеликих команд часто достатньо зберігати промпти в Git:

prompts/
├── customer-support/
│   ├── system-prompt.v1.txt
│   ├── system-prompt.v2.txt
│   └── system-prompt.current -> system-prompt.v2.txt
├── summarization/
│   ├── prompt.v1.yaml
│   └── prompt.v2.yaml
└── prompts.json  # Индекс с метаданными
# prompts/summarization/prompt.v2.yaml
version: "2.0.0"
name: "document-summarizer"
created: "2024-11-15"
author: "ml-team"
changelog: "Added length constraint, improved tone instruction"
model:
  provider: "openai"
  name: "gpt-4o"
  temperature: 0.2
  max_tokens: 500
variables:
  - name: document
    required: true
  - name: max_sentences
    required: false
    default: "3"
content: |
  Summarize the following document in exactly {{max_sentences}} sentences.
  Be concise and focus on the main points.
  Do not add information not present in the document.

  Document:
  {{document}}
metrics:
  rouge_l: 0.47
  human_rating: 4.2
  eval_set: "summarization-benchmark-v3"

Автоматичний diff промптів

import difflib

def diff_prompt_versions(v1_content: str, v2_content: str) -> str:
    """Показать diff между версиями промпта"""
    v1_lines = v1_content.splitlines(keepends=True)
    v2_lines = v2_content.splitlines(keepends=True)

    diff = difflib.unified_diff(
        v1_lines, v2_lines,
        fromfile="version_1",
        tofile="version_2",
        lineterm=""
    )
    return "".join(diff)

def analyze_prompt_change(v1: str, v2: str) -> dict:
    """Анализ характера изменений"""
    v1_words = set(v1.lower().split())
    v2_words = set(v2.lower().split())

    added_words = v2_words - v1_words
    removed_words = v1_words - v2_words

    return {
        "length_change": len(v2) - len(v1),
        "added_words": list(added_words)[:10],
        "removed_words": list(removed_words)[:10],
        "similarity": difflib.SequenceMatcher(None, v1, v2).ratio(),
        "change_type": "major" if difflib.SequenceMatcher(None, v1, v2).ratio() < 0.7 else "minor"
    }

Promotion workflow

[Draft] → [In Review] → [Approved] → [Staging] → [Production]
                ↑                         ↓
           Reviewer                  A/B Test (5%)
                                          ↓
                                    Full Rollout / Rollback

Ключове правило: ніякі промпти не йдуть у production без проходження evaluation set. Автоматичний CI job запускає тести при кожній зміні промпту та блокує promotion при регресії >3%.