ಆಟೊಮೇಷನ್ ಸಂಕೇತಗಳನ್ನು ಮರೆಮಾಡಲು ನಾನು ಹೇಗೆ QC ಗೇಟ್ ಅನ್ನು ನಿರ್ಮಿಸಿದೆ

ಆಟೊಮೇಷನ್ ನೀವು ನಿರೀಕ್ಷಿಸದ ರೀತಿಯಲ್ಲಿ ತನ್ನನ್ನು ತಾನು ಬಹಿರಂಗಪಡಿಸುತ್ತದೆ.

ನಾನು Bluesky ಗಾಗಿ ಆಟೊಮೇಷನ್ ಕಂಟೆಂಟ್ ಪೈಪ್‌ಲೈನ್ ಅನ್ನು ನಡೆಸುತ್ತಿದ್ದೆ. ಒಂದು ಪೋಸ್ಟ್‌ನಲ್ಲಿ "the content pipeline" ಎಂದು ಉಲ್ಲೇಖಿಸಲಾಗಿತ್ತು. ತಾಂತ್ರಿಕ ಬ್ಲಾಗ್‌ನಲ್ಲಿ ಇದು ಪರವಾಗಿಲ್ಲ. ಆದರೆ ಸೋಶಿಯಲ್ ಟೈಮ್‌ಲೈನ್‌ನಲ್ಲಿ, ಇದು ಒಂದು ಎಚ್ಚರಿಕೆಯ ಸೂಚನೆ (red flag). ಇದು ಓದುಗರಿಗೆ ತಾವು ಒಂದು ಬಾಟ್ ಜೊತೆ ಮಾತನಾಡುತ್ತಿದ್ದಾರೆ ಎಂದು ತಿಳಿಸುತ್ತದೆ.

ಇದನ್ನು ತಡೆಯಲು ನಾನು ಕ್ವಾಲಿಟಿ ಕಂಟ್ರೋಲ್ (QC) ಸ್ಕ್ರಿಪ್ಟ್ ಅನ್ನು ನಿರ್ಮಿಸಿದೆ. ಇದು ಕಂಟೆಂಟ್ ಜನರೇಟ್ ಮಾಡುವ ಹಂತ ಮತ್ತು ಪೋಸ್ಟ್ ಮಾಡುವ ಹಂತದ ನಡುವೆ ಒಂದು ಗೇಟ್ ಆಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತದೆ.

ಹೊಸ ವರ್ಕ್‌ಫ್ಲೋ ಹೀಗಿದೆ: bluesky-qc.mjs → (PASS) bluesky-post-queue.mjs → Bluesky API

ಸ್ಕ್ರಿಪ್ಟ್ ಪ್ರತಿಯೊಂದು ಎಂಟ್ರಿಯನ್ನು ಪರಿಶೀಲಿಸಲು ನಾಲ್ಕು ಗೇಟ್‌ಗಳನ್ನು ಬಳಸುತ್ತದೆ:

  • Gate 1: ಫ್ರೇಸ್ ಫಿಲ್ಟರಿಂಗ್ (Phrase Filtering) ಆಟೊಮೇಷನ್ ಅನ್ನು ಸೂಚಿಸುವ ಪದಗಳನ್ನು ಹಿಡಿಯಲು ನಾನು regex ಪಟ್ಟಿಯನ್ನು ಬಳಸುತ್ತೇನೆ. ಇದು "AI-generated," "cron," "content pipeline," ಅಥವಾ "batch test" ನಂತಹ ಪದಗಳನ್ನು ತಡೆಯುತ್ತದೆ. ಒಂದು ಪೋಸ್ಟ್ ಡೆವಲಪರ್ ವರದಿಯಂತೆ (dev report) ಕೇಳಿಸಿದರೆ, ಅದು ಫೇಲ್ ಆಗುತ್ತದೆ.

  • Gate 2: ಸ್ಟೇಲ್ನೆಸ್ ಚೆಕ್ಸ್ (Staleness Checks) ನಾನು ಎರಡು ರೀತಿಯ ಹಳೆಯದಾದ (stale) ಕಂಟೆಂಟ್ ಅನ್ನು ಪರಿಶೀಲಿಸುತ್ತೇನೆ: • ಹಳೆಯ ಫ್ರೇಸಿಂಗ್ (Stale phrasing): ಪೋಸ್ಟ್ ವಿಳಂಬವಾದರೆ ಅರ್ಥವನ್ನು ಕಳೆದುಕೊಳ್ಳುವ "today" ಅಥವಾ "just launched" ನಂತಹ ಪದಗಳನ್ನು ಇದು ಹಿಡಿಯುತ್ತದೆ. • ಹಳೆಯ ಟೈಮ್‌ಸ್ಟ್ಯಾಂಪ್‌ಗಳು (Stale timestamps): ಒಂದು ಎಂಟ್ರಿ 14 ದಿನಗಳಿಗಿಂತ ಹಳೆಯದಾಗಿದ್ದರೆ, ಅದನ್ನು ತಿರಸ್ಕರಿಸಲಾಗುತ್ತದೆ.

  • Gate 3: ಎಂಗೇಜ್‌ಮೆಂಟ್ ಪ್ರೆಡಿಕ್ಷನ್ (Engagement Prediction) ಸ್ಕ್ರಿಪ್ಟ್ ನನ್ನ ಹಿಂದಿನ 300 ಪೋಸ್ಟ್‌ಗಳನ್ನು ನೋಡುತ್ತದೆ. ಹೊಸ ಪೋಸ್ಟ್‌ನಲ್ಲಿರುವ ಹ್ಯಾಶ್‌ಟ್ಯಾಗ್‌ಗಳು ಉತ್ತಮವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸುತ್ತವೆಯೇ ಎಂದು ಇದು ಊಹಿಸುತ್ತದೆ. ಪ್ರಸ್ತುತ, ಇದು ಕೇವಲ ಎಚ್ಚರಿಕೆಯನ್ನು (warning) ನೀಡುತ್ತದೆ, ಆದರೆ ಶೀಘ್ರದಲ್ಲೇ ನಾನು ಇದನ್ನು 'hard fail' ಆಗಿ ಬದಲಾಯಿಸುತ್ತೇನೆ.

  • Gate 4: ಕ್ವಾಲಿಟಿ ಪಾಸ್ (Quality Pass - ಯೋಜಿಸಲಾಗಿದೆ) ಸೂಕ್ಷ್ಮ ತಪ್ಪುಗಳನ್ನು ಪತ್ತೆಹಚ್ಚಲು ಕ್ವಾಲಿಟಿ ಪ್ರೊಟೊಕಾಲ್ ಬಳಸಿ ಅಂತಿಮ ಪದರವನ್ನು ಸೇರಿಸಲು ನಾನು ಉದ್ದೇಶಿಸಿದ್ದೇನೆ.

ಪ್ರತಿಯೊಂದು ವೈಫಲ್ಯವು ರಿಜೆಕ್ಷನ್ ಲಾಗ್ (rejection log) ಗೆ ಹೋಗುತ್ತದೆ. ನಾನು ವಾರಕ್ಕೊಮ್ಮೆ ಈ ಲಾಗ್ ಅನ್ನು ಪರಿಶೀಲಿಸುತ್ತೇನೆ. ಇದು ನನ್ನ ಪ್ರಾಂಪ್ಟ್‌ಗಳನ್ನು (prompts) ಸರಿಪಡಿಸಲು ಸಹಾಯ ಮಾಡುತ್ತದೆ. ಗೇಟ್ ಪದೇ ಪದೇ "content pipeline" ಅನ್ನು ಪತ್ತೆಹಚ್ಚುತ್ತಿದ್ದರೆ, AI ಬರೆಯುವ ವಿಧಾನವನ್ನು ನಾನು ಬದಲಾಯಿಸಬೇಕೆಂದು ನನಗೆ ತಿಳಿಯುತ್ತದೆ.

ಕೇವಲ ಉತ್ತಮ ಪ್ರಾಂಪ್ಟ್‌ಗಳ ಬದಲಿಗೆ ಗೇಟ್ ಅನ್ನು ಏಕೆ ಬಳಸಬೇಕು? ಪ್ರಾಂಪ್ಟ್‌ಗಳು ಪ್ರೊಬಾಬಲಿಸ್ಟಿಕ್ (probabilistic) ಆಗಿರುತ್ತವೆ. ಅವು ವಿಫಲವಾಗಬಹುದು. ಗೇಟ್ ಡೆಟರ್ಮಿನಿಸ್ಟಿಕ್ (deterministic) ಆಗಿದೆ. ಇದು ಕಟ್ಟುನಿಟ್ಟಾದ ನಿಯಮಗಳನ್ನು ಅನುಸರಿಸುತ್ತದೆ.

ಮಾನವೀಯ ಧಾಟಿಯನ್ನು (human tone) ಕಾಪಾಡಿಕೊಳ್ಳಲು ಈ ಎರಡೂ ಪದರಗಳನ್ನು ಬಳಸುವುದು ಅತ್ಯಂತ ಸುರಕ್ಷಿತ ಮಾರ್ಗವಾಗಿದೆ.

Source: https://dev.to/morinaga/how-i-built-a-pre-post-qc-gate-that-blocks-bluesky-automation-from-self-revealing-41ja