soulwise_persons
รายการอัลบั้ม จัดทำดัชนีที่ userId, status, deletedAt ลบแบบชั่วคราวก่อน แล้วจึงลบข้อมูลส่วนบุคคลแบบถาวรเมื่อครบ 30 วัน
สำหรับวิศวกร PM นักข่าว และผู้มองหาพันธมิตร ครบทั้งกระบวนการ คอลเล็กชัน MongoDB ทั้ง 4 อีเวนต์ EDA ความเข้มงวดแบบ V-Model เป้าหมายด้านประสิทธิภาพ ความปลอดภัย และการเข้าถึง — รวมไว้ในหน้าเดียว
แต่ละขั้นตอนมีบริการ สัญญา และเหตุการณ์
การกระทำของผู้ใช้ — 'สร้างบทวันนี้ให้ซิสเตอร์' — หรือ cron ที่กำหนดไว้ เช่น สรุปประจำวันอาทิตย์เวลา 9 น. หรือรีเฟรชสภาพอากาศทุก 6 ชั่วโมง
งานจะถูกส่งไปยังคิว BullMQ ที่ชื่อว่า soulwise-chapter-generation โดยมีเวลาหมดเขตที่ 28 วินาที งานที่ใช้เวลานานจะถูกยกเลิกและรายงานกลับไปยังผู้ใช้ว่า 'กรุณาลองอีกครั้ง'
ChapterGenerationService จะรวบรวมพรอมต์ 4 ปัจจัย ได้แก่ บริบทของบุคคล โหราศาสตร์ สัญญาณ และจังหวะ ให้เป็นอินพุต 1 เดียว ข้อมูลส่วนบุคคลดิบของผู้ใช้จะไม่ถูกใส่เข้าไปในพรอมต์ตรงๆ ทุกอย่างจะผ่านการกรองก่อนเสมอ
มีการเรียกใช้ผู้ให้บริการ AI ผ่านโทเค็นสัญลักษณ์ AI_GENERATION_ADAPTER — ซึ่งสามารถเปลี่ยนผู้ให้บริการได้ การตอบสนองจะถูกตรวจสอบความยาว รูปแบบ และความปลอดภัยก่อนดำเนินการต่อ
สี่สิ่งจะเกิดขึ้น: ตัวจำแนกภาวะวิกฤติจะตรวจหาถ้อยคำที่บ่งบอกวิกฤติ; ตัวดึงชิปแง่มุมจะคัดชิปโหราศาสตร์ออกมา 1 ถึง 3 ชิป; ตัวกรองป้องกันการอ้างสรรพคุณจะตัดถ้อยคำต้องห้ามออก; และเนื้อหาจะถูกเข้ารหัสแบบ AES-256 ด้วยกุญแจที่แพลตฟอร์มดูแลจัดการ
ข้อมูลจะถูกบันทึกลงในคอลเลกชัน MongoDB ที่เหมาะสม ไม่ว่าจะเป็นบท บันทึกไดอารี หรือเรโซแนนซ์ พร้อมดัชนี userId และ personId เพื่อการค้นหาที่รวดเร็ว เริ่มจากการลบแบบชั่วคราวก่อน แล้วจึงลบข้อมูลส่วนบุคคล (PII) แบบถาวรเมื่อครบ 30 วัน
เหตุการณ์ EventEmitter2 — CHAPTER_COMPLETED, JOURNAL_CREATED — จะถูกเรียกหลังจากที่ฐานข้อมูลบันทึกข้อมูลเสร็จ โมดูลการแจ้งเตือนจะรับข้อมูลนี้ สร้างรายการในกล่องข้อความ และอาจส่งการแจ้งเตือนแบบพุช (จำกัดวันละหนึ่งครั้ง และเคารพช่วงเวลางดแจ้งเตือน)
ฟร้อนท์เอนด์ดึงข้อมูลอาร์ติแฟกต์ผ่านการเรียก API ที่มีการยืนยันตัวตน ฮับจะเรนเดอร์ใหม่ด้วยเนื้อหาที่อัปเดต หากผู้ใช้ออฟไลน์ แคชจะแสดงมุมมองของเมื่อวาน และอาร์ติแฟกต์ใหม่จะปรากฏขึ้นเมื่อเชื่อมต่ออีกครั้ง
จัดทำดัชนีสำหรับคำถามที่แต่ละข้อตอบ
รายการอัลบั้ม จัดทำดัชนีที่ userId, status, deletedAt ลบแบบชั่วคราวก่อน แล้วจึงลบข้อมูลส่วนบุคคลแบบถาวรเมื่อครบ 30 วัน
บทที่เขียนโดย AI, เนื้อหาที่ถูกเข้ารหัส มีดัชนีบน personId, userId, generatedAt ชิปของมุมถูกจัดเก็บเป็นอาร์เรย์แยกต่างหากเพื่อการกรองที่รวดเร็ว
ข้อความสะท้อนที่ผู้ใช้เขียน เนื้อหาที่เข้ารหัส มีดัชนีบน userId, personId, createdAt เนื้อหาที่ทำดัชนีข้อความเพื่อการค้นหา มีป้ายกำกับ 'ส่วนตัว — ห้ามป้อนให้ Luminara' ต่อรายการ
คะแนน 4 มิติต่อความสัมพันธ์แต่ละคู่ ดัชนีเฉพาะบน personId คำนวณใหม่ผ่านการเรียกใช้บริการหลังจากเขียนบทหรือบันทึก
กฎที่เคร่งครัด: เหตุการณ์จะถูกเรียกใช้หลังจากที่ฐานข้อมูลคอมมิตแล้วเท่านั้น การพึ่งพาข้ามโมดูลผ่านโทเค็นการฉีดสัญลักษณ์เท่านั้น ห้ามใช้ forwardRef โดยเด็ดขาด ไม่มีการนำเข้าโดยตรงระหว่างบริการกับบริการระหว่างโมดูลฟีเจอร์
SoulwiseEvents.CHAPTER_COMPLETED — SoulwiseEvents.CHAPTER_COMPLETED — ถูกเรียกหลังจากที่บทถูกเข้ารหัสและบันทึกแล้ว Notifications-v2 จะรับฟัง; สร้างรายการในกล่องข้อความ; และสามารถส่งการแจ้งเตือนแบบพุชได้SoulwiseEvents.JOURNAL_CREATED — SoulwiseEvents.JOURNAL_CREATED — ถูกเรียกหลังจากที่บันทึกประจำวันถูกเข้ารหัสและบันทึกแล้ว บริการ Resonance จะรับฟังและเริ่มการคำนวณใหม่SoulwiseEvents.PERSON_BIRTH_UPDATED — SoulwiseEvents.PERSON_BIRTH_UPDATED — ถูกเรียกหลังจากข้อมูลเกิดของบุคคลเปลี่ยนแปลง แคชของโหราศาสตร์ความสัมพันธ์จะถูกรีเซ็ตSoulwiseEvents.PUSH_REQUESTED — SoulwiseEvents.PUSH_REQUESTED — ตามสัญญา notifications-v2; เคารพงบประมาณการแจ้งเตือนและช่วงเวลาที่เงียบ119 ข้อกำหนดที่ตรวจสอบย้อนกลับได้ ช่องว่างเป็นศูนย์ แต่ละข้อกำหนดเชื่อมโยงไปข้างหน้าสู่กรณีทดสอบ (UTP, ITP, STP, E2E) และย้อนกลับไปยัง user story 20 user stories 15 ข้อกำหนดเชิงฟังก์ชัน 12 หมวดหมู่ที่ไม่ใช่เชิงฟังก์ชัน 8 เกณฑ์การยอมรับระดับโกลบอล
การสร้างบท 30 วินาทีหรือดีกว่าสำหรับ 95% ของคำขอ โดยวัดจากการกระจายระยะเวลาของงาน BullMQ API GET p99 มีเวลาแฝง 500 มิลลิวินาทีหรือดีกว่าที่ผู้ใช้พร้อมกัน 1,000 ราย โดยวัดจากการทดสอบโหลด k6 TTI ของฟรอนต์เอนด์ 3 วินาทีหรือดีกว่าบนเครือข่าย 4G ที่จำลอง โดยวัดผ่าน Lighthouse CI
การเข้ารหัส AES-256 สำหรับข้อมูลที่จัดเก็บ โดยใช้คีย์ที่ระบบจัดการสำหรับเนื้อหาของบันทึกและบทต่างๆ การส่งข้อมูลใช้ TLS 1.2+ พร้อมการเปลี่ยนเส้นทาง HTTP→HTTPS โทเค็นการเข้าถึงแบบ JWT มีอายุ 1 ชั่วโมง โทเค็นรีเฟรชมีอายุ 30 วัน และจะหมุนเวียนเมื่อมีการรีเฟรช การลบแบบนุ่มนวลมีระยะเวลา 30 วัน ก่อนที่จะลบข้อมูลส่วนบุคคลอย่างถาวร
prefers-reduced-motion ได้รับการเคารพในระดับสากล — แอนิเมชัน GSAP จะกลายเป็นเฟดแบบปรับความโปร่งใสเท่านั้น มีป้ายกำกับ VoiceOver และ TalkBack บนทุกองค์ประกอบที่โต้ตอบได้ ตรวจสอบด้วยตนเองบน iOS และ Android ก่อนการเผยแพร่แต่ละครั้ง
เนื่องจากข้อกำหนดต้นทางสร้างฟีเจอร์ขึ้นมาใหม่ และการสร้างภายในโมดูลที่มีอยู่จะทำให้ประสบการณ์ v1 เสียหาย หรือต้องแยกแล้วรวมกลับในภายหลัง โมดูลใหม่จะทำให้ v1 ไม่ถูกแตะต้อง ปล่อยให้ v2 พิสูจน์ตัวเอง และย้ายข้อมูลได้อย่างราบรื่นเมื่อพร้อม
แบ็กเอนด์ของ My Zodiac AI ที่มีอยู่ใช้ MongoDB การเปลี่ยนระบบจะหมายถึงการตัดสินใจด้านโครงสร้างพื้นฐานที่ไม่เกี่ยวข้องกับฟีเจอร์นี้ โมเดลเอกสารยังเหมาะกับบทและรายการบันทึกประจำวัน — ซ้อนกัน มีความยาวหลากหลาย และเข้ารหัสเป็นก้อนข้อมูล
BullMQ ทำงานบน Redis ซึ่งมีอยู่ในระบบอยู่แล้วสำหรับ session และ rate-limit ไม่ต้องมีโครงสร้างพื้นฐานใหม่ มีระบบ retry, timeout และ observability ในตัวที่ครอบคลุมความต้องการในการสร้างบท โดยไม่ต้องเขียนระบบเอง
พื้นที่เก็บข้อมูลภายใน ตัวเลขและสัญญาต่างๆ ในหน้านี้เป็นการถอดความจากสิ่งประดิษฐ์ V-Model ต้นทาง โพสต์บล็อกด้านวิศวกรรมที่เปิดเผยต่อสาธารณะบนคลัสเตอร์บล็อกของ My Zodiac AI (ติดแท็ก 'cosmic-story-v2') จะลงลึกในรายละเอียดเฉพาะของส่วนต่างๆ ของการสร้าง
ขณะที่ Soulwise กำลังเปิดคลื่นของมัน แอปดูดวงเรือธงของเราก็อยู่ในมือคุณแล้ว
เนื้อหาโหราศาสตร์มีไว้เพื่อการไตร่ตรองและความบันเทิง ฟีเจอร์ Cosmic Story v2 ที่อธิบายไว้ที่นี่อยู่ระหว่างการพัฒนา ความพร้อมให้บริการอาจมีการเปลี่ยนแปลงโดยไม่ต้องแจ้งให้ทราบล่วงหน้า