iT邦幫忙

2026 iThome 鐵人賽

DAY 15
0
Build on Google AI

打造零成本企業級 AI Agent:以 Gemini 2.5 Flash 構建金融分析助手與維運實戰系列 第 17

【Day 17】後處理防線:Post-processing 程式碼強制規則與 9 組禁止詞處理

  • 分享至 

  • xImage
  •  

「在 AI 工程中,僅靠模型自律並不足以百分之百防堵 LLM 脫口說出不當用語或龐大數字。最穩健的生產級架構,是在程式碼層級與 Prompt 約束中加入硬性規則。」

先前,我們探討了三階段分析管道的運作。今天我們將深入 daily_analysis.py 中的 Post-processing(後處理)與數據標準化機制,解析我們如何在程式碼發送至 Telegram 與知識庫之前,對數據與系統用語進行二次淨化。

本篇重點摘要

  1. 剖析 daily_analysis.py 中的 _fmt() 數據轉換正則機制。
  2. 解密 Prompt 中寫死的系統語言隱藏規則。
  3. 確保輸出結果從原始數字到專業名詞皆達到 Production-Ready 標準。

一、程式碼層級的金額後處理與格式化

在 daily_analysis.py 中,為了防止 TWSE 回傳的 raw data(如 123456789012)直接被帶入 Prompt 或報告中,我們在 pre-process/post-process 階段使用了正則表達式進行 9 位數以上的數字補位與格式轉換:

Python
# PRE-PROCESS & POST-PROCESS: Format large numbers in market data
import re as _re

def _fmt(val):
    """Convert raw number strings to readable format."""
    if not isinstance(val, str):
        return val
    clean = val.replace(',', '').strip()
    try:
        num = float(clean)
        if num >= 1_000_000_000_000:
            return f"約 {num/1_000_000_000_000:.2f} 兆元"
        elif num >= 100_000_000:
            return f"約 {num/100_000_000:.1f} 億元"
    except (ValueError, TypeError):
        pass
    return val

tw_summary_parts = [_re.sub(r'[\d,]{9,}', lambda m: _fmt(m.group(0)), p) for p in tw_summary_parts]

二、系統禁止詞與語言隱藏規則

除了數字格式化之外,為了徹底防止 LLM 在報告中印出「根據知識庫...」、「無具體新聞」等暴露系統底層實現的露餡詞彙,我們在 daily_analysis.py 的 Core Execution Rules 中明確規定了系統用語的硬性替換邏輯:

Python
# 摘自 daily_analysis.py 中的 Core Execution Rules
"3. 數據格式化:金額大於億一律四捨五入換算為億元或兆元(保留小數點後1-2位)。絕對禁止輸出原始多位數數字。\n"
"5. 隱藏系統語言:絕對禁止提及「知識庫」「投資框架」「新聞列表為選單」「無具體新聞」等。新聞不足時直接以「從量價結構與籌碼動向觀察」帶過。\n"
當新聞數據不足時,指令強制要求模型不得輸出「無新聞」,而是自動替換為專業的金融觀點:「從量價結構與籌碼動向觀察」,確保產出品質高度穩定。

三、今日總結

透過 daily_analysis.py 內建的 _fmt 轉換與系統語言硬性隱藏規則,我們完成了 Angelina Agent 輸出的最後一塊品質保證:
1. 極致數據可讀性:長位數金額在進入與產出階段皆完成「億元/兆元」自動轉譯。
2. 消滅系統暴露:禁止模型提及內部運算機制,維護金融分析報告的專業感。

明天(Day 18)我們將深入探討 daily_analysis.py 中 send_telegram() 的訊息切分邏輯,以及如何處理 UTF-8 Byte-Safe 的 3800-Byte 精確切分!

明日預告:【Day 18】推播優化:Telegram 訊息 UTF-8 Byte-Safe 精確切分演算法


上一篇
【Day 16】分析品質提升:Core Execution Rules 與金額兆/億元前處理格式化
下一篇
【Day 18】推播優化:Telegram 訊息 UTF-8 Byte-Safe 精確切分演算法
系列文
打造零成本企業級 AI Agent:以 Gemini 2.5 Flash 構建金融分析助手與維運實戰18
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言