Scripts

Funkcjonalność 01 Skryptu Składacz Promptów - Skrypt

Cel

Zbuduj narzędzie CLI, które składa końcowy prompt tekstowy poprzez:

System jest zaprojektowany do procesów komponowania promptów, gdzie wielokrotnie używane grupy plików (np. fragmenty kodu, dokumenty, pakiety kontekstu) są dynamicznie wstrzykiwane do szablonu.


Wymagane Zmiany

1. Silnik Parsowania Szablonu

Dodaj logikę do parsowania surowego ciągu szablonu i podziału go na uporządkowane tokeny dwóch typów:

Zasady:

Struktura wyjściowa:

list[tuple[bool, str]]
# (is_include, value)

Gdzie:


2. Rozpoznawanie Pliku Mapowania

Wprowadź plik mapowania JSON o strukturze:

{
  "root": "/base/path",
  "some_key": [
    "path/or/pattern1",
    "path/or/pattern2"
  ]
}

Zachowanie:


3. System Rozpoznawania Grup Plików

Zaimplementuj funkcję do rozwijania każdego klucza dołączania w blok treści plików.

Dla każdego wpisu mapowania:

Następnie:

Format wyjściowy na plik:

# Plik: <file_path>
<zawartość pliku>

Połącz wszystkie bloki plików za pomocą:

"\n\n"

4. Silnik Składania Szablonu

Główna funkcja:

assemble(template_path: Path, mapping_path: Path) -> str

Przebieg:

  1. Załaduj plik szablonu (UTF-8)
  2. Załaduj mapowanie JSON
  3. Określ ścieżkę root:

    • mapping[“root”] jeśli istnieje
    • w przeciwnym razie katalog pliku mapowania
  4. Przetwórz szablon na tokeny
  5. Dla każdego tokenu:

    • Jeśli dosłowny → dołącz bezpośrednio
    • Jeśli dołączany:

      • pobierz wpisy mapowania
      • pomiń, jeśli brakujące lub puste
      • rozwiń za pomocą resolvera plików
      • dołącz rozwiniętą treść
  6. Zwróć końcowy połączony ciąg znaków (bez dodatkowego separatora między tokenami)

5. Interfejs CLI

Dodaj punkt wejścia wiersza poleceń:

python assemble_prompt.py TEMPLATE MAP

Zachowanie:

xclip -selection clipboard

poprzez:

subprocess.run(..., input=result, text=True, shell=True, check=True)
Copied result to clipboard.

6. Obsługa Błędów


Kryteria Akceptacji