Oznaczanie treści generowanych przez AI

Specyfikacja formatu HAI · art. 50 ust. 2 rozporządzenia (UE) 2024/1689

Część analiz w panelu Hodafy powstaje przy udziale modelu językowego. Każda taka treść jest oznaczona — w samej treści, nie tylko w interfejsie — żeby dało się ją rozpoznać także po skopiowaniu i wklejeniu gdzie indziej.

Ta strona opisuje, jak wygląda oznaczenie, co dokładnie znaczy i jak sprawdzić, czy dana treść rzeczywiście pochodzi z naszego systemu i nie została po drodze zmieniona.

Strona jest jawną specyfikacją: opisujemy format na tyle dokładnie, żeby dowolna osoba lub instytucja mogła zbudować własne narzędzie do rozpoznawania naszych oznaczeń, bez pytania nas o zgodę i bez kontaktu z nami.

Jak wygląda oznaczenie

Pod każdą analizą wygenerowaną przez AI znajduje się blok oddzielony poziomą linią:

---
Analiza wygenerowana przez AI - HodafAI - model grok-4.3 - 2026-08-29
Identyfikator: HAI-451-a3f9c2d7 - Weryfikacja: https://hodafy.com/ai-transparency

Numer, skrót i data w powyższym przykładzie są przykładowe — pod Twoją analizą znajdziesz własne wartości.

Blok zawiera pięć informacji:

ElementZnaczenie
Analiza wygenerowana przez AItreść powstała przy udziale modelu językowego, nie napisał jej człowiek
HodafAInazwa naszego systemu, który tę treść wytworzył
model grok-4.3model językowy użyty do wygenerowania
datadzień wygenerowania treści (format RRRR-MM-DD)
HAI-451-a3f9c2d7identyfikator treści, opisany w sekcji poniżej

Oznaczenie jest częścią tekstu, więc przenosi się razem z nim przy kopiowaniu.

Format identyfikatora

Identyfikator ma postać:

HAI-<numer>-<skrót>

Rozpoznaje go wyrażenie regularne:

HAI-[0-9]+-[0-9a-f]{8}

Gdzie:

W przykładzie HAI-451-a3f9c2d7 numerem jest 451, a skrótem a3f9c2d7.

Jak zweryfikować treść samodzielnie

Skrót w identyfikatorze można sprawdzić bez kontaktu z nami. Wystarczy policzyć SHA-256 z treści analizy i porównać początek wyniku z tym, co widnieje w identyfikatorze.

Co dokładnie się hashuje

Skrót liczymy z treści analizy bez bloku oznaczenia. Żeby weryfikacja się powiodła:

  1. Weź całą treść analizy.
  2. Usuń blok oznaczenia — czyli wszystko od ostatniego wystąpienia separatora \n\n---\n do końca, razem z tym separatorem. Jeśli taki układ znaków pojawia się też w samej analizie, liczy się ten ostatni.
  3. To, co zostało, to treść podlegająca hashowaniu. Nie dopisuj ani nie usuwaj niczego więcej, w szczególności nie dodawaj znaku końca linii na końcu.
  4. Zakoduj tekst w UTF-8.
  5. Policz SHA-256 i zapisz wynik szesnastkowo, małymi literami.
  6. Porównaj pierwsze 8 znaków z częścią <skrót> identyfikatora.

Jeśli się zgadzają, treść jest dokładnie tą, którą wygenerował nasz system. Jeśli nie — treść została zmieniona, obcięta albo pochodzi skądinąd.

Przykład — wiersz poleceń

# tresc.txt zawiera analizę BEZ bloku oznaczenia
sha256sum tresc.txt | cut -c1-8

Przykład — Python

import hashlib

def skrot_z_tresci(tekst_analizy: str) -> str:
    """Zwraca 8-znakowy skrót do porównania z identyfikatorem HAI."""
    # rsplit, nie split: odcinamy OSTATNI separator, czyli sam blok oznaczenia
    tresc = tekst_analizy.rsplit("\n\n---\n", 1)[0]
    return hashlib.sha256(tresc.encode("utf-8")).hexdigest()[:8]

# Przykład syntetyczny
analiza = "Marża na kategorii X wyniosła 12% w ostatnim miesiącu.\n\n---\nAnaliza wygenerowana przez AI..."
print(skrot_z_tresci(analiza))

Czego ta weryfikacja nie rozstrzyga

Sprawdzenie skrótu potwierdza, że treść jest nienaruszona. Nie potwierdza samo z siebie, że wyszła z naszego systemu — ktoś mógłby policzyć SHA-256 z dowolnego tekstu i dopisać pod nim własny identyfikator.

Dlatego przy każdej analizie zapisujemy dodatkowo podpis kryptograficzny HMAC-SHA256, którego nie da się wytworzyć bez klucza znanego wyłącznie nam. Klucza nie publikujemy — jego ujawnienie pozwoliłoby podrabiać oznaczenia i uczyniłoby cały mechanizm bezużytecznym.

Weryfikację podpisu wykonujemy na żądanie. Sposób opisuje sekcja poniżej.

Weryfikacja pełna — na żądanie

Jeśli potrzebujesz potwierdzenia, że konkretna treść pochodzi z systemu Hodafy i nie została zmieniona, napisz na:

kontakt@hodafy.com

W temacie: „Weryfikacja treści AI"

W wiadomości podaj:

W odpowiedzi potwierdzamy albo zaprzeczamy, że treść o tym identyfikatorze pochodzi z naszego systemu, oraz czy przedstawiona treść zgadza się z zapisaną u nas.

Weryfikacja jest bezpłatna i dostępna dla każdego, w tym dla organów nadzoru rynku, badaczy, dziennikarzy i osób sprawdzających treści. Nie wymaga posiadania konta w Hodafy.

Odpowiadamy wyłącznie na pytanie o autentyczność i integralność treści. Nie ujawniamy, którego klienta dotyczy analiza, ani żadnych danych z niej wynikających — takie informacje są objęte tajemnicą i chronione niezależnie od tego, kto pyta.

Podstawa prawna i zakres

Oznaczanie treści realizuje obowiązek z art. 50 ust. 2 rozporządzenia (UE) 2024/1689 (AI Act), który nakłada na dostawcę systemu generującego syntetyczne treści wymóg oznaczenia ich w formacie nadającym się do odczytu maszynowego oraz zapewnienia ich wykrywalności.

Hodafy występuje w roli dostawcy (provider) tego systemu AI: integrujemy zewnętrzny model językowy we własny produkt, pod własną marką.

Zakres oznaczania

Oznaczamy analizy generowane przez AI w panelu Hodafy. Oznaczenie nie dotyczy pozostałych elementów aplikacji — tabel, wykresów, wyliczeń kosztów i marż, raportów i eksportów — które powstają z Twoich danych metodami deterministycznymi, bez udziału modelu językowego.

Nie usuwaj oznaczeń przy dalszym udostępnianiu

Jeżeli publikujesz albo przekazujesz dalej treść wygenerowaną przez nasz system, oznaczenie powinno pozostać. Usunięcie go pozbawia odbiorcę informacji, że ma do czynienia z treścią AI, i może przenieść na Ciebie obowiązki wynikające z art. 50 ust. 4 AI Act.

Zmiany specyfikacji

Oznaczenia wprowadzamy etapami. Analizy wygenerowane przed uruchomieniem oznaczania mogą nie zawierać bloku opisanego na tej stronie. Datę uruchomienia podamy w tym miejscu.

Zmiany formatu będą tu ogłaszane wraz z datą wejścia w życie, a wcześniejsze wersje pozostaną opisane, żeby dało się zweryfikować także treści wygenerowane wcześniej.

Ostatnia aktualizacja strony: 29 sierpnia 2026