Hallucination
什麼是 AI 幻覺不知道要求它說明依據把問題改成「可驗證」的形式列出不確定性評級提供實測方法AI 產生了看起來合理、語氣很肯定,但其實不正確、沒有根據,或與事實不一致的內容,更精確來說,生成式 AI 在缺乏可靠依據、理解錯誤、推理失準或資料不足的情況下,產生錯誤、虛構、誤導性或無法驗證的輸出
例如
編出不存在的論文、書籍、網址
說某個 API 有某個參數,但其實文件裡沒有
把兩個相似概念混在一起
明明不知道,卻用很肯定的語氣回答
對你的程式碼做出錯誤判斷
引用不存在的法律、規格、版本資訊
把「可能」講成「一定」
但現在的 AI 沒有聰明到可以「故意說謊」,事實上是模型在「預測下一段最像答案的文字」時,產生了形式上像答案、實質上卻錯誤的結果,大型語言模型的核心能力是根據上下文,預測接下來最合理的文字,但「最合理的文字」不等於「最真實的文字」,這就像一個人很會接話、很會寫文章、很會模仿專業語氣,但他其實他,一定真的知道答案
所以本質上它比較像是看過大量文字後,學會「什麼樣的問題通常會接什麼樣的回答」,當它不知道答案時,可能會根據語言模式補出一個「看起來合理」的答案
例如你問某某冷 ...
回饋給券活動商品異動的全貌鏈路
全貌鏈路同樣是修改回饋給券活動的商品,從後台畫面圈選與從批次匯入進入,會走到不同的 API。畫面圈選直接修改原商品集合;批次異動會先比較商品清單,再更新活動引用的集合。
這裡的商品集合是 collection,由 collectionId 識別。以下聚焦 RewardReachPriceWithCoupon 已有指定/排除商品集合的流程;實際執行仍需通過 API 驗證。
呼叫來源:SMS 畫面與 SCM NMQ 批次flowchart TB
subgraph SmsSource["SMS 後台入口"]
Screen["給券活動商品圈選"] --> Edit["EditTargetIdList"]
Upload["回饋商品批次匯入"] --> Task["建立批次任務"]
end
Task -.->|"批次交接"| Nmq["SCM NMQ:商品批次處理"]
Nmq --> Client["SCM API Client"]
Client --> Scm["SCMAPIV2:ModifyPromotionSalePag ...
回饋給券活動商品異動的全貌鏈路
全貌鏈路
.rc-flow{--rc-ink:#243449;--rc-muted:#526379;--rc-line:#dce4ed;--rc-panel:#f5f8fc;--rc-blue:#245eaa;color:var(--rc-ink);line-height:1.85;overflow-wrap:anywhere}
.rc-flow *{box-sizing:border-box}
.rc-flow h2,.rc-flow h3{color:var(--rc-ink)}
.rc-flow h3{margin-top:2em;font-size:1.15em}
.rc-lead{padding:22px 24px;border:1px solid var(--rc-line);border-top:4px solid var(--rc-blue);border-radius:12px;background:var(--rc-panel);margin:16px 0 24px}
.rc-lead p{margin:0}
.rc-figure{border:1px solid ...
CalculatePayDeliveryMappingProcessor
01.處理什麼問題02.內部資料處理03.全域 Mapping 資料04.商品頁金物流資料源05.商品間的金流交集06.商品間的物流交集07.交集後的金物流配對08.DeliveryTypeUnionList 的用意09.結果與例外
#article-container .pdm-paper{--ink:#1f2430;--sub:#5b6472;--line:#ece7dc;--card:#fff;background:#fbf9f4;color:var(--ink);border:1px solid var(--line);border-radius:20px;padding:30px;font-family:"Segoe UI","Microsoft JhengHei",sans-serif;line-height:1.9;}
#article-container .pdm-paper *{box-sizing:border-box;}
#article-container .pdm-paper p{color:var(--sub);margin:14px 0;}
#articl ...
Promotion Cart Calculate
架構摘要系統關係請求與資料流活動規則來源Redis Key 與快取分支活動建立與會員範圍失敗路徑查核與修正
.pc-article{--pc-ink:#243449;--pc-muted:#526379;--pc-line:#dce4ed;--pc-panel:#f5f8fc;--pc-blue:#245eaa;--pc-green:#167561;--pc-red:#b42332;color:var(--pc-ink);line-height:1.85;overflow-wrap:anywhere}
.pc-article *{box-sizing:border-box}
.pc-article h2{font-size:1.55em;margin:2.6em 0 1em;padding-bottom:.5em;border-bottom:1px solid var(--pc-line);color:var(--pc-ink)}
.pc-article > h2:first-child{margin-top:0}
.pc-article h3{font-size:1.15em;mar ...
金流異常處理
https://wiki.91app.com/pages/viewpage.action?pageId=236486916
購物車 uniqueKey
購物車操作時帶上 uniqueKey,其實不完全是為了防重播攻擊,而是為了:
保證資料正確性(資料的歸屬與一致性)
避免資料混淆或誤用(區分同一帳號不同來源)
有時也可以延伸作為防止重播、防偽等手段
🧠 拆解購物車 uniqueKey 的用途(真實意圖)🔹1️⃣ 識別這個「購物流程的上下文」【主要目的】✅ 舉例說明:
當使用者進行購物行為(點選商品 → 加入購物車 → 結帳),系統會幫他產生一個:
CartSessionId = “CART-20251118-8FDE23C8F231”
這個 uniqueKey(或叫 CartId、CartSessionId、TransactionId…):
代表一組購物流程
在操作「新增商品、刪除商品、選擇優惠」時都要帶上
就像「你去 IKEA 拿購物推車時的車號」
🔹2️⃣ 避免同帳號操作被混淆📦 假設情境:
小明開了兩個瀏覽器分頁,各自買不同商品
如果沒有 uniqueKey,可能會把 A 分頁的商品加到 B 分頁的購物車中
加上 uniqueKey,每次操作都清楚知道是在哪一台車上加的
🔹3️⃣ 支援匿名用戶購物
很多電商允 ...
Untitled
title: mweb CORSC:\91APP\NineYi.WebStore.MobileWebMall\WebStore\WebAPI\Extensions\HttpModules\CorsModule.cs
Application_EndRequest
Access-Control-Allow-Origin「每次 Request 結束時」,自動決定
回應要不要加上 Access-Control-Allow-Origin
加上哪一個允許跨域的來源(Allow-Origin)
取得來源網址 (Origin / Referrer) → 判斷是否在允許清單 → 產生 Allow-Origin → 寫入 Response Header
Step 0:取得 HttpContext12var httpApplication = (HttpApplication)sender;var httpContext = httpApplication.Context;
✨ Step 1:錯誤狀態不處理 CORS1234if (httpContext.Response.StatusCo ...
Untitled
title: FluentValidationFluentValidationhttps://github.com/FluentValidation/FluentValidation
https://docs.google.com/presentation/d/1bj-cdmw9ArauCphDmmEm-D2QKRBnwohUuRv6TP2IRUs/edit?slide=id.g8394b5fbe8_0_53#slide=id.g8394b5fbe8_0_53
Wrapper Adapter
1.5.2 WrapperWrapper 模式是一種常見的設計模式,它可以用來包裝現有的物件,提供額外的功能或改變其行為。在泛型的幫助下,我們可以建立通用的 Wrapper 類別來處理任何型別的物件
🎯 Wrapper 基本概念Wrapper 類別的主要目的是:
🔐 封裝原始物件:提供對底層物件的受控存取
🎨 增強功能:在不修改原始類別的情況下添加新功能
🛡️ 保護資料:控制對包裝物件的存取方式
🔄 轉換介面:為不相容的介面提供適配
📝 實際應用範例以下範例展示了泛型 Wrapper 的使用和一些需要注意的問題:
123456789101112131415161718192021222324252627282930313233343536void Main(){ var items = new List<int> { 1, 2, 3 }; var wrappers = CreateWrapper2<int>(items); var store = new List<Wrapper<int ...




