== 2024-06-09 16:44 bowen
重新回到 package, 製作獨立包裝版本，很棒
然後，這個版本要能夠除錯之前 jan 反饋的錯誤 try catch

==

todo
    要真實把 embeddings_to_qdrant 一次全部做完
    要可以真實把 1500 pdf docx 全部製作完畢，一口氣全部做完
    接下去要實驗詢問 1500 份文件的精準度看效果
    要清除 run_split_txts run_async_summary 的不需要的 print
    == nice to have ==
    自動檢驗 run_split_txts 沒有正常產出的，回報
    自動檢驗 run_async_summary 沒有正常產出的，回報
    自動檢驗 embeddings_to_qdrant 沒有正常產出的，回報
    支援 google vision api ocr 能力
    run_async_summary 可能會發生錯誤，現在 retry 1 的原因是因為，發生錯誤也沒用要事後補救較好，要事後補救程式碼
    run_split_txts 可能發生 1500 文件當中 17 pdf有圖像 or .doc 無法處理，要事後補救程式碼

== 2024-02-10 19:25 bowen
done sh/push.sh "已經成功semaphor embeddings_to_qdran成功可以去除force, qdrant 重複的不會寫入了"
done embeddings_to_qdrant 必須支援 semaphore 限制最大平行 50 任務

== 2024-02-10 15:19 bowen
比較 multi threads v.s. multi process 哪一種比較快 split
done 要可以讓 run_split_txts.py 要可以平行跑
done 要可以讓 run_split_txts.py 可以運用 --force 有作用
done 要可以讓 run_async_summary.py 要可以平行跑
done 要可以讓 run_async_summary.py 可以運用 --force 有作用

== 2024-02-10 01:00 bowen
已經確定 vision.googleapis.com 有辦法 OCR 正確超過九成 for pdf 圖像
有將近 17 份文件是圖像掃描類型
也有兩個出不來的

(base) chiubowen@ChiudeMacBook-Pro botrun_ask_folder % open "./data/農業部/JC改好檔名的_近2會期模擬題/輿情、索資及 質詢模擬題/20231001_10-8質詢/1031經濟組、財政組個人質詢/20231031_17.(陳超明13.1)後龍鎮保安林解編及成立西瓜雜糧專區 案進度？.docx"
(base) chiubowen@ChiudeMacBook-Pro botrun_ask_folder % open "./data/農業部/JC改好檔名的_近2會期模擬題/輿情、索資及 質詢模擬題/20231001_10-8輿情(含索資)/20231001_1121027-農糧署-(邱志偉)提升國產雜糧進口替代率，是否有長期目標？.docx"

無cache因此推論得知, pdf圖像掃描非文字, 以及轉不出來的docx的文件如下：
🍌no cache source_file:./data/農業部/MOA_施政答詢訓練資料_20240130/口頭質詢/10-8會期/1121114林業署回復廖婉汝委員-恆春半島銀合歡移除及復育-附件.pdf
🍌no cache source_file:./data/農業部/MOA_施政答詢訓練資料_20240130/口頭質詢/10-8會期/1121204資訊司回復陳培瑜委員-食農教育資訊整合平臺資料更新及推廣作法-附件.pdf
🍌no cache source_file:./data/農業部/MOA_施政答詢訓練資料_20240130/口頭質詢/10-8會期/1130109輔導司回復吳欣盈委員-參考勞退計算機精進農民退休計算機.pdf
🍌no cache source_file:./data/農業部/MOA_施政答詢訓練資料_20240130/口頭質詢/10-8會期/1121215農糧署提供洪申翰委員-輔導販賣有機農產品及有機轉型期農產品操作指南.pdf
🍌no cache source_file:./data/農業部/MOA_施政答詢訓練資料_20240130/口頭質詢/10-7會期/1120616漁業署回復洪申翰委員-漁電共生改善制度書面報告.pdf
🍌no cache source_file:./data/農業部/MOA_施政答詢訓練資料_20240130/口頭質詢/10-7會期/1120328農糧署回復陳亭妃委員-奉核-陳亭妃台肥特支費公關費.pdf
🍌no cache source_file:./data/農業部/MOA_施政答詢訓練資料_20240130/口頭質詢/10-7會期/1120325畜牧處回復李貴敏委員-缺蛋會議會議記錄-附件.pdf
🍌no cache source_file:./data/農業部/MOA_施政答詢訓練資料_20240130/書面質詢/10-8會期/1121016經濟委員會-國發會轉來陳明文委員書面質詢/1121016陳明文委員書面質詢農業移工.pdf
🍌no cache source_file:./data/農業部/MOA_施政答詢訓練資料_20240130/書面質詢/10-8會期/1121025經濟委員會/1121107綜規司回復廖婉汝委員-農業政策-附件-書面報告.pdf
🍌no cache source_file:./data/農業部/MOA_施政答詢訓練資料_20240130/書面質詢/10-8會期/1121025經濟委員會/1121108綜規司回復廖婉汝委員-農業部新成立後，農業輔導、農業轉型等政策目標-附件.pdf
🍌no cache source_file:./data/農業部/MOA_施政答詢訓練資料_20240130/書面質詢/10-8會期/1121012財政委員會/1121030畜牧司回復羅明才委員-請提供全民完整進口蛋流向資訊-112年進口雞蛋專案流向表-畜產會1121018更新.pdf
🍌no cache source_file:./data/農業部/MOA_施政答詢訓練資料_20240130/書面質詢/10-7會期/1120315司法法制/1120324漁業署回復林思銘委員-推動漁業資源保育.pdf
🍌no cache source_file:./data/農業部/MOA_施政答詢訓練資料_20240130/書面質詢/10-7會期/1120301經濟/1120308防檢局回復林楚茵委員-研議彈性輸入農產品管制單位之可能性.pdf
🍌no cache source_file:./data/農業部/MOA_施政答詢訓練資料_20240130/書面質詢/10-7會期/1120524經濟/1120627林務局回復廖國棟委員-原住民狩獵權益、改良式陷阱推廣及野生動物分類爭議等議題-附件2.pdf
🍌no cache source_file:./data/農業部/MOA_施政答詢訓練資料_20240130/書面質詢/10-7會期/1120330經濟/1120413農水署回復林思銘委員-農委會停灌措施皆排除非使用水庫的農業用水的適用-附件2.pdf
🍌no cache source_file:./data/農業部/MOA_施政答詢訓練資料_20240130/書面質詢/10-7會期/1120322經濟/1120412畜牧處回復賴香伶委員-進口蛋價差、雞蛋銷售通路及禽流感疫區國家進口雞蛋檢疫-附件.pdf
🍌no cache source_file:./data/農業部/MOA_施政答詢訓練資料_20240130/書面質詢/10-7會期/1120306財政等6委員會聯席/1120322農水署回復黃世杰委員-加速進行農田水利設施工程.pdf
🍌no cache source_file:./data/農業部/JC改好檔名的_近2會期模擬題/輿情、索資及質詢模擬題/20231001_10-8質詢/1031經濟組、財政組個人質詢/20231031_17.(陳超明13.1)後龍鎮保安林解編及成立西瓜雜糧專區案進度？.docx
./data/農業部/JC改好檔名的_近2會期模擬題/輿情、索資及質詢模擬題/20231001_10-8質詢/1031經濟組、財政組個人質詢/20231031_17.(陳超明13.1)後龍鎮保安林解編及成立西瓜雜糧專區案進度？.docx generated an exception: "no relationship of type 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument' in collection"
🍌no cache source_file:./data/農業部/JC改好檔名的_近2會期模擬題/輿情、索資及質詢模擬題/20231001_10-8輿情(含索資)/20231001_1121027-農糧署-(邱志偉)提升國產雜糧進口替代率，是否有長期目標？.docx
./data/農業部/JC改好檔名的_近2會期模擬題/輿情、索資及質詢模擬題/20231001_10-8輿情(含索資)/20231001_1121027-農糧署-(邱志偉)提升國產雜糧進口替代率，是否有長期目標？.docx generated an exception: "no relationship of type 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument' in collection"

== 2024-02-09 23:04 bowen
ok, 那現在要繼續開發的事情

== 農業部立委問答案「🚢波通鑑」雛形驗證
text-embedding-3-large + qdrant  ⚡️快 💰省 🎯準
. 001 前處理：每頁摘要、每頁三提問、每頁法條號碼，先做 text-embedding-3-large 向量存 local qdrant docker
. 002 查詢時：拿使用者提問去做 text-embedding-3-large 向量去 query local qdrant docker, top 4 好用
. 因為 text-embedding-3-large 3072 dimension 精準度大幅度上揚（之前只有 1536 dimension）
. 因為事先用 gpt-3.5-turbo 做每頁三提問，每頁摘要，每頁法條號碼，所以問題相似度比對的效果好
. qdrant 向量資料庫是目前全球最猛快的，採用 RUST 程式碼語言，而且可以架設在 local docker
. 快：只要 2.2 secs
. 省：每次搜尋時只要 text-embedding-3-large $0.00013 / 1K tokens
. 準：100%精準度, 農業部12份文件超精準，雛形大成功


(base) chiubowen@ChiudeMacBook-Pro data % find . -name "*.txts"
./農業部/MOA_施政答詢訓練資料_20240130/口頭質詢/10-8會期/1121005畜牧司回復林為洲委員-8月巴西進口雞蛋572噸海關放行流向.txts
./農業部/MOA_施政答詢訓練資料_20240130/口頭質詢/10-7會期/1120309企劃處回復李貴敏委員-附件-因應國際情勢我國糧食整備情形.txts
./農業部/MOA_施政答詢訓練資料_20240130/書面質詢/10-8會期/1120927社福衛環/1121005畜牧司回復廖國棟委員-進口雞蛋標示.txts
./農業部/MOA_施政答詢訓練資料_20240130/書面質詢/10-7會期/1120301經濟/1120308防檢局回復林楚茵委員-研議彈性輸入農產品管制單位之可能性.txts
./農業部/JC改好檔名的_近2會期模擬題/專題模擬題/20231001_10-8會期/20231001_「中國大陸暫停我國芒果輸入」專題模擬題_1120822.txts
./農業部/JC改好檔名的_近2會期模擬題/專題模擬題/20230301_10-7會期/20230301_「疫後強化經濟與社會韌性及全民共享經濟成果特別條例」專題QA_農委會1120224.txts
./農業部/JC改好檔名的_近2會期模擬題/輿情、索資及質詢模擬題/20230301_10-7輿情(含索資)/20230301_1111212-畜牧處-(賴香伶)我國蛋價兼顧生產者與消費者權益.txts
./農業部/JC改好檔名的_近2會期模擬題/輿情、索資及質詢模擬題/20231001_10-8質詢/0922專案進口雞蛋專報/20230922_01.(黃國書1.1)既然農業部陳吉仲前部長口口聲聲都聲稱政策沒有問題，又為何要請辭？行政院陳院長是否認同陳前部長及農業部的說法？若認同，准辭理由為何？.txts
./農業部/JC改好檔名的_近2會期模擬題/輿情、索資及質詢模擬題/20230301_10-7質詢/0224施政報告、政黨質詢/20230224_01.(賴惠員1.3-1)農田灌溉用水及農水路整修等基礎農業設施經費是否可一次到位？.txts
./農業部/JC改好檔名的_近2會期模擬題/輿情、索資及質詢模擬題/20231001_10-8輿情(含索資)/20231001_1120801-永續司-(民眾黨團)農業綠能推動策略及綠能發展區規劃1120907更新.txts
./農業部/JC改好檔名的_近2會期模擬題/施政模擬題/20231001_10-8會期施政模擬題/20231001_001.綜規司-[院]假設中共封鎖臺灣，如何確保糧食安全供應？.txts
./農業部/JC改好檔名的_近2會期模擬題/施政模擬題/20230301_10-7會期施政模擬題/20230301_001.企劃處-[院]因應國際情勢我國糧食安全之整備情形.txts
(base) chiubowen@ChiudeMacBook-Pro data % find . -name "*.txts" | wc
      12      42    2465
(base) chiubowen@ChiudeMacBook-Pro data % find . -name "*.txts" | wc -l
      12

== 2024-02-08 17:01 bowen
ok, 接下去做詮釋資料

(venv) (base) chiubowen@ChiudeMacBook-Pro botrun_ask_folder % sh/go.sh
time python run_async_summary.py --input_folder ./data

real    0m43.002s
user    0m5.790s
sys     0m0.831s
(venv) (base) chiubowen@ChiudeMacBook-Pro botrun_ask_folder %


== 2024-02-08 13:41 bowen

59 directories, 1651 files
real    6m11.086s
to txts 轉換算成功了啦，但錯誤訊息怪怪的，先不管了，先弄相似比對
然後轉換速度太慢也是有問題

der}} }, State = (com.sun.star.beans.PropertyState)DIRECT_VALUE }, (com.sun.star.beans.PropertyValue){ Name = (string)"Overwrite", Handle = (long)0x0, Value = (any){ (boolean)true }, State = (com.sun.star.beans.PropertyState)DIRECT_VALUE })
2024-02-08 13:35:37.788 soffice[96975:22030060] WARNING: Secure coding is automatically enabled for restorable state! However, not on all supported macOS versions of this application. Opt-in to secure coding explicitly by implementing NSApplicationDelegate.applicationSupportsSecureRestorableState:.
unoconv: RuntimeException during import phase:
Office probably died. Unsupported URL <-o>: "from LoadEnv::startLoading"
unoconv: UnoException during export phase:
Unable to store document to file:///Users/chiubowen/PycharmProjects/botrun_ask_folder/data/%E8%BE%B2%E6%A5%AD%E9%83%A8/JC%E6%94%B9%E5%A5%BD%E6%AA%94%E5%90%8D%E7%9A%84_%E8%BF%912%E6%9C%83%E6%9C%9F%E6%A8%A1%E6%93%AC%E9%A1%8C/%E6%96%BD%E6%94%BF%E6%A8%A1%E6%93%AC%E9%A1%8C/20230301_10-7%E6%9C%83%E6%9C%9F%E6%96%BD%E6%94%BF%E6%A8%A1%E6%93%AC%E9%A1%8C/20230301_097.%E6%B0%B4%E4%BF%9D%E5%B1%80-%5B%E9%99%A2%5D%E7%8F%BE%E8%A1%8C%E3%80%8C%E6%B0%B4%E5%9C%9F%E4%BF%9D%E6%8C%81%E6%B3%95%E3%80%8D%E6%9C%AA%E7%B4%8D%E5%85%A5%E8%B3%87%E8%A8%8A%E5%85%AC%E9%96%8B%E5%8F%8A%E5%85%AC%E6%B0%91%E5%8F%83%E8%88%87%E6%A9%9F%E5%88%B6%EF%BC%8C%E7%9B%B8%E9%97%9C%E8%A8%88%E7%95%AB%E6%A1%88%E4%BB%B6%E5%AF%A9%E6%9F%A5%E7%BC%BA%E4%B9%8F%E5%85%A8%E6%B0%91%E7%9B%A3%E7%9D%A3%EF%BC%8C%E8%BE%B2%E5%A7%94%E6%9C%83%E6%AA%A2%E8%A8%8E%E6%83%85%E5%BD%A2%E7%82%BA%E4%BD%95%EF%BC%9F.docx (Error (com.sun.star.io.IOException){ (com.sun.star.uno.Exception){ Message = (string)"SfxBaseModel::impl_store <file:///Users/chiubowen/PycharmProjects/botrun_ask_folder/data/%E8%BE%B2%E6%A5%AD%E9%83%A8/JC%E6%94%B9%E5%A5%BD%E6%AA%94%E5%90%8D%E7%9A%84_%E8%BF%912%E6%9C%83%E6%9C%9F%E6%A8%A1%E6%93%AC%E9%A1%8C/%E6%96%BD%E6%94%BF%E6%A8%A1%E6%93%AC%E9%A1%8C/20230301_10-7%E6%9C%83%E6%9C%9F%E6%96%BD%E6%94%BF%E6%A8%A1%E6%93%AC%E9%A1%8C/20230301_097.%E6%B0%B4%E4%BF%9D%E5%B1%80-%5B%E9%99%A2%5D%E7%8F%BE%E8%A1%8C%E3%80%8C%E6%B0%B4%E5%9C%9F%E4%BF%9D%E6%8C%81%E6%B3%95%E3%80%8D%E6%9C%AA%E7%B4%8D%E5%85%A5%E8%B3%87%E8%A8%8A%E5%85%AC%E9%96%8B%E5%8F%8A%E5%85%AC%E6%B0%91%E5%8F%83%E8%88%87%E6%A9%9F%E5%88%B6%EF%BC%8C%E7%9B%B8%E9%97%9C%E8%A8%88%E7%95%AB%E6%A1%88%E4%BB%B6%E5%AF%A9%E6%9F%A5%E7%BC%BA%E4%B9%8F%E5%85%A8%E6%B0%91%E7%9B%A3%E7%9D%A3%EF%BC%8C%E8%BE%B2%E5%A7%94%E6%9C%83%E6%AA%A2%E8%A8%8E%E6%83%85%E5%BD%A2%E7%82%BA%E4%BD%95%EF%BC%9F.docx> failed: 0x4c0c(Error Area:Sfx Class:Write Code:12)", Context = (com.sun.star.uno.XInterface)0x0{} } })

Properties: ((com.sun.star.beans.PropertyValue){ Name = (string)"FilterName", Handle = (long)0x0, Value = (any){ (string)"Office Open XML Text" }, State = (com.sun.star.beans.PropertyState)DIRECT_VALUE }, (com.sun.star.beans.PropertyValue){ Name = (string)"OutputStream", Handle = (long)0x0, Value = (any){ (com.sun.star.uno.XInterface)0x6000034b3628{, supportedInterfaces={com.sun.star.io.XOutputStream,com.sun.star.lang.XTypeProvider}} }, State = (com.sun.star.beans.PropertyState)DIRECT_VALUE }, (com.sun.star.beans.PropertyValue){ Name = (string)"Overwrite", Handle = (long)0x0, Value = (any){ (boolean)true }, State = (com.sun.star.beans.PropertyState)DIRECT_VALUE })

real    6m11.086s
user    0m39.293s
sys     0m17.355s


== 2024-02-08 botrun_ask_folder 開發

== 下載 qdrant
docker pull qdrant/qdrant

== 啟動qdrant
docker run -p 6333:6333 -p 6334:6334 \
    -v $(pwd)/qdrant_storage:/qdrant/storage:z \
    qdrant/qdrant

== 準備開始設計 split_pages_by_folder.py
