工作內容

研究問題

本研究有下列三項研究問題:

  • (1) 創建Library處理含有ANSI escape sequences的資料:
    創建一個Dart Library,處理包含ANSI escape sequences的複雜資料和封裝其他PTT論壇的功能操作,以應對TUI與GUI (Graphical User Interface) 之間的內容互動。
    圖. 含有ANSI escape sequences的資料。在終端機 (Terminal) 上會把這些Escape Code解釋為相應的指令和文字格式。

  • (2) 使用大語言模型和Python進行資料分析處理:
    藉由openAI的gpt-3.5-turbo API,利用大語言模型的文字分類、文案撰寫等技術,配合Python的pandas Library 等進行資料的分析。

  • (3) 建立APP使用介面:
    採用跨平台框架Flutter,結合APP連線、UI組件、資料處理等,建立一個使用者友好的APP介面。
    圖.  flutter 官方網站 flutter.dev

研究方法及步驟

不同於PCMan系列BBS連線軟體 的解析方法,本研究將把含有ANSI escape sequences 的內容,轉換為HTML tags 的方法解決複雜的排版問題,儘管可以在自行建立的Parser中處理cursor controls 指令,但仍有很大的可能性會容易在裝置大小變化的情況下,出現編輯與排版的問題。
本研究先行轉換為HTML tags的方法可以有效利用現今已成熟發展的HTML render,來應對響應式設計 (Responsive design),而這也是其較為擅長的。此外,為了確保LLM回應結果之精確性,去除非相關內容的Prompt應至關重要,也能透過利用HTML parser輔助我們進行更進一步的處理。
因此,在這個研究中,我們提出了四個步驟處理此問題:1) 資料獲取 (Data Fetching),2) 資料轉換 (Data Conversion),3) 內容分析 (Content Analysis),以及 4) 介面繪製 (UI Render),如圖所示。每個步驟的介紹如下:

圖. 與生成式AI結合的開源跨平台PTT瀏覽程式之研究示意圖:整合Python與透過LLM model驅動的分析。

    1. 資料獲取 (Data Fetching)
      為了盡可能透過Flutter 解決跨平台的問題,大部分內容將以Dart語言進行實作。基於這一前提,資料獲取的初始步驟是使用WebSocket協定 進行連線,以取得PTT回傳的原始資料,並且使UTF-8 和Big5-UAO 標準對binary資料進行編碼。另外,我們將包裝其他PTT論壇功能,這個方式可以將與TUI互動的步驟分離,以利後續使用。在以wrapper形式封裝功能的情況下,可以透過直接調用得以更快速的互動或取得我們所需的資料。
    1. 資料轉換 (Data Conversion)
      資料轉換是串聯文字與分析的關鍵步驟之一。此部分將建立一個Library,負責提取與轉換。具體而言,可以分為純文字 (raw text) 和格式化文字 (formatted text)。對於不需要ANSI escape sequences 排版等資訊的內容,如看板清單,可僅提取純文字,反之,對於需要顏色、排版等資訊的內容,如文章,則將其轉換為HTML tags。這種方式可以僅在必要時進行轉換,得以提升處理效率。
    1. 內容分析 (Content Analysis)
      此研究的內容分析可分為兩種類別,由大語言模型 (LLM) 驅動的分析和透過Python pandas Library等進行的一般分析。為了提高GPT模型回應的準確率,需要明確、有意義的Prompt,藉由利用HTML parser提取需要的資料片段和正規表示式 (Regular expression) 等方法,可以提升Prompt 的有效性。分析的目標包括文章統整、留言統整,智慧回復建議,參與者反應解析等。而一般分析的部分,此研究將建立一種基於時間範圍的演算法,辨別熱度突增的文章,並給予進一步的分析,包括文字雲、熱門時段、趨勢追蹤等。
    1. 介面繪製 (UI Render)
      使用者體驗 (User Experience) 為較少被討論但至關重要的一面。這意味著如何在現有的使用過程中,整合LLM帶來的應用。更明確的說,其中可能包括版面設計、提示的主動性與否以及互動流程等。作為和使用者互動的界面,我們希望在符合操作邏輯的情況下,提升PTT身為文字論壇的使用體驗。期望結合多種內容分析以提供一個全新的體驗,探索社群媒體和生成式AI的未來發展。