ਮੈਂ ਆਟੋਮੇਸ਼ਨ ਸੰਕੇਤਾਂ ਨੂੰ ਲੁਕਾਉਣ ਲਈ ਇੱਕ QC ਗੇਟ ਕਿਵੇਂ ਬਣਾਇਆ
ਆਟੋਮੇਸ਼ਨ ਅਜਿਹੇ ਤਰੀਕਿਆਂ ਨਾਲ ਆਪਣੇ ਆਪ ਨੂੰ ਪ੍ਰਗਟ ਕਰਦੀ ਹੈ ਜਿਸਦੀ ਤੁਸੀਂ ਉਮੀਦ ਨਹੀਂ ਕਰਦੇ।
ਮੈਂ Bluesky ਲਈ ਇੱਕ ਆਟੋਮੇਟਡ ਕੰਟੈਂਟ ਪਾਈਪਲਾਈਨ ਚਲਾਈ ਸੀ। ਇੱਕ ਪੋਸਟ ਵਿੱਚ "the content pipeline" ਦਾ ਜ਼ਿਕਰ ਹੋ ਕੇ ਬਾਹਰ ਗਈ। ਇੱਕ ਤਕਨੀਕੀ ਬਲੌਗ 'ਤੇ ਇਹ ਠੀਕ ਹੈ। ਪਰ ਇੱਕ ਸੋਸ਼ਲ ਟਾਈਮਲਾਈਨ 'ਤੇ, ਇਹ ਇੱਕ ਖ਼ਤਰੇ ਦੀ ਨਿਸ਼ਾਨੀ (red flag) ਹੈ। ਇਹ ਪਾਠਕਾਂ ਨੂੰ ਦੱਸਦਾ ਹੈ ਕਿ ਉਹ ਇੱਕ ਬੋਟ ਨਾਲ ਗੱਲ ਕਰ ਰਹੇ ਹਨ।
ਮੈਂ ਇਸਨੂੰ ਰੋਕਣ ਲਈ ਇੱਕ ਕੁਆਲਿਟੀ ਕੰਟਰੋਲ ਸਕ੍ਰਿਪਟ ਬਣਾਈ। ਇਹ ਜਨਰੇਸ਼ਨ ਸਟੈਪ (generation step) ਅਤੇ ਪੋਸਟਿੰਗ ਸਟੈਪ (posting step) ਦੇ ਵਿਚਕਾਰ ਇੱਕ ਗੇਟ ਵਜੋਂ ਕੰਮ ਕਰਦੀ ਹੈ।
ਨਵਾਂ ਵਰਕਫਲੋ ਇਸ ਤਰ੍ਹਾਂ ਦਿਖਾਈ ਦਿੰਦਾ ਹੈ:
bluesky-qc.mjs → (PASS) bluesky-post-queue.mjs → Bluesky API
ਸਕ੍ਰਿਪਟ ਹਰ ਐਂਟਰੀ ਦੀ ਜਾਂਚ ਕਰਨ ਲਈ ਚਾਰ ਗੇਟਾਂ ਦੀ ਵਰਤੋਂ ਕਰਦੀ ਹੈ:
ਗੇਟ 1: ਫਰੇਜ਼ ਫਿਲਟਰਿੰਗ (Phrase Filtering) ਮੈਂ ਆਟੋਮੇਸ਼ਨ ਦਾ ਸੰਕੇਤ ਦੇਣ ਵਾਲੇ ਸ਼ਬਦਾਂ ਨੂੰ ਫੜਨ ਲਈ ਇੱਕ regex ਲਿਸਟ ਦੀ ਵਰਤੋਂ ਕਰਦਾ ਹਾਂ। ਇਹ "AI-generated," "cron," "content pipeline," ਜਾਂ "batch test" ਵਰਗੇ ਸ਼ਬਦਾਂ ਨੂੰ ਰੋਕ ਦਿੰਦਾ ਹੈ। ਜੇਕਰ ਕੋਈ ਪੋਸਟ ਕਿਸੇ ਡੈਵ ਰਿਪੋਰਟ (dev report) ਵਾਂਗ ਲੱਗਦੀ ਹੈ, ਤਾਂ ਇਹ ਫੇਲ੍ਹ ਹੋ ਜਾਂਦੀ ਹੈ।
ਗੇਟ 2: ਸਟੇਲਨੈੱਸ ਚੈੱਕ (Staleness Checks) ਮੈਂ ਦੋ ਤਰ੍ਹਾਂ ਦੇ ਪੁਰਾਣੇ (stale) ਕੰਟੈਂਟ ਦੀ ਜਾਂਚ ਕਰਦਾ ਹਾਂ: • ਪੁਰਾਣੀ ਫਰੇਜ਼ਿੰਗ (Stale phrasing): ਇਹ "today" ਜਾਂ "just launched" ਵਰਗੇ ਸ਼ਬਦਾਂ ਨੂੰ ਫੜਦਾ ਹੈ ਜਿਨ੍ਹਾਂ ਦਾ ਮਤਲਬ ਉਦੋਂ ਖਤਮ ਹੋ ਜਾਂਦਾ ਹੈ ਜੇਕਰ ਪੋਸਟ ਵਿੱਚ ਦੇਰੀ ਹੋ ਜਾਵੇ। • ਪੁਰਾਣੇ ਟਾਈਮਸਟੈਂਪ (Stale timestamps): ਜੇਕਰ ਕੋਈ ਐਂਟਰੀ 14 ਦਿਨਾਂ ਤੋਂ ਪੁਰਾਣੀ ਹੈ, ਤਾਂ ਇਸਨੂੰ ਰੱਦ ਕਰ ਦਿੱਤਾ ਜਾਂਦਾ ਹੈ।
ਗੇਟ 3: ਇੰਗੇਜਮੈਂਟ ਪ੍ਰੈਡਿਕਸ਼ਨ (Engagement Prediction) ਸਕ੍ਰਿਪਟ ਮੇਰੀਆਂ ਪਿਛਲੀਆਂ 300 ਪੋਸਟਾਂ ਨੂੰ ਦੇਖਦੀ ਹੈ। ਇਹ ਅੰਦਾਜ਼ਾ ਲਗਾਉਂਦੀ ਹੈ ਕਿ ਕੀ ਨਵੀਂ ਪੋਸਟ ਵਿੱਚ ਹੈਸ਼ਟੈਗ ਵਧੀਆ ਪ੍ਰਦਰਸ਼ਨ ਕਰਨਗੇ। ਫਿਲਹਾਲ, ਇਹ ਸਿਰਫ਼ ਇੱਕ ਵਾਰਨਿੰਗ ਲੌਗ ਕਰਦੀ ਹੈ, ਪਰ ਮੈਂ ਜਲਦੀ ਹੀ ਇਸਨੂੰ 'ਹਾਰਡ ਫੇਲ' (hard fail) ਵਿੱਚ ਬਦਲ ਦੇਵਾਂਗਾ।
ਗੇਟ 4: ਕੁਆਲਿਟੀ ਪਾਸ (Quality Pass) (ਯੋਜਨਾਬੱਧ) ਮੇਰਾ ਇਰਾਦਾ ਬਾਰੀਕ ਗਲਤੀਆਂ ਨੂੰ ਫੜਨ ਲਈ ਇੱਕ ਕੁਆਲਿਟੀ ਪ੍ਰੋਟੋਕੋਲ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹੋਏ ਇੱਕ ਆਖਰੀ ਲੇਅਰ ਜੋੜਨ ਦਾ ਹੈ।
ਹਰ ਫੇਲ੍ਹ ਹੋਣ ਵਾਲੀ ਐਂਟਰੀ ਰਿਜੈਕਸ਼ਨ ਲੌਗ (rejection log) ਵਿੱਚ ਜਾਂਦੀ ਹੈ। ਮੈਂ ਹਫ਼ਤੇ ਵਿੱਚ ਇੱਕ ਵਾਰ ਇਸ ਲੌਗ ਦੀ ਸਮੀਖਿਆ ਕਰਦਾ ਹਾਂ। ਇਹ ਮੈਨੂੰ ਆਪਣੇ ਪ੍ਰੋਂਪਟਸ (prompts) ਨੂੰ ਸੁਧਾਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ। ਜੇਕਰ ਗੇਟ ਲਗਾਤਾਰ "content pipeline" ਨੂੰ ਫੜਦਾ ਰਹਿੰਦਾ ਹੈ, ਤਾਂ ਮੈਨੂੰ ਪਤਾ ਲੱਗ ਜਾਂਦਾ ਹੈ ਕਿ ਮੈਨੂੰ AI ਦੇ ਲਿਖਣ ਦੇ ਤਰੀਕੇ ਨੂੰ ਬਦਲਣ ਦੀ ਲੋੜ ਹੈ।
ਸਿਰਫ਼ ਬਿਹਤਰ ਪ੍ਰੋਂਪਟਸ ਦੀ ਬਜਾਏ ਗੇਟ ਦੀ ਵਰਤੋਂ ਕਿਉਂ ਕਰੀਏ? ਪ੍ਰੋਂਪਟਸ ਸੰਭਾਵਨਾਤਮਕ (probabilistic) ਹੁੰਦੇ ਹਨ। ਉਹ ਫੇਲ੍ਹ ਹੋ ਸਕਦੇ ਹਨ। ਗੇਟ ਨਿਸ਼ਚਿਤ (deterministic) ਹੁੰਦਾ ਹੈ। ਇਹ ਸਖ਼ਤ ਨਿਯਮਾਂ ਦੀ ਪਾਲਣਾ ਕਰਦਾ ਹੈ।
ਮਨੁੱਖੀ ਲਹਿਜੇ (human tone) ਨੂੰ ਬਣਾਈ ਰੱਖਣ ਲਈ ਦੋਵਾਂ ਲੇਅਰਾਂ ਦੀ ਵਰਤੋਂ ਕਰਨਾ ਸਭ ਤੋਂ ਸੁਰੱਖਿਅਤ ਤਰੀਕਾ ਹੈ।
