跳至主要内容

LLM系列課程

📑 目錄


Part I:大型語言模型實作初階班 ( Prompt, Make Automation)

一、作品示例

二、課程資料

  • 01 - AI Overview & Prompt Engineering

    • 熟悉介面操作 (10 min)

      請幫我寫一份去台北市立動物園的旅遊日記 -> 請幫我總結 (或 TL;DR) -> 請幫我萃取(或Extract)我看了哪些動物。

      • ChatGPT

        • 請幫我寫一份去台北市立動物園的旅遊日記

          日期:2024年2月15日

          今天我去了台北市立動物園,這是我期待已久的一個旅程。早晨,我與我的朋友一起出發,充滿了興奮和期待。我們搭乘捷運前往,從市中心到動物園只需要短短的時間。

          抵達動物園時,我們立刻被眼前的景象所震撼。入口處矗立著一座巨大的象徵性拱門,歡迎著遊客的到來。我們迫不及待地買了門票,然後便踏入了這個奇妙的世界。

          首先吸引我們的是非洲動物區。我們看到了大象、長頸鹿、獅子和許多其他令人驚嘆的動物。這些動物們在寬敞的環境中自由自在地生活著,讓人感受到了大自然的奇妙。

          接著,我們又來到了亞洲動物區。這裡有許多精靈般的猴子,在樹上嬉戲玩耍。我們還看到了懶惰的熊貓,它們慵懶地趴在竹林中享受陽光。

          在動物園裡漫步,我們不僅欣賞到了各種動物的美麗,還學到了許多有關它們的知識。我們還參加了一些教育性的活動,例如動物表演和解說員的講解,讓我們更深入地了解了動物的生活狀況。

          整個旅程過得非常愉快,充滿了歡笑和驚奇。當我們準備離開時,我們心中充滿了對這次美好經歷的回憶,並期待著下一次再來這裡探訪。台北市立動物園給我留下了深刻的印象,這將是一次難忘的旅行經歷。

        • 請幫我總結

          總結:今天我與朋友一同造訪台北市立動物園,這是一趟充滿驚奇和歡樂的旅程。我們在動物園中欣賞了各種動物的美麗,從非洲大象到亞洲猴子,每一種動物都給我們帶來了難忘的印象。我們參加了教育性的活動,學到了許多關於動物的知識。整個旅程讓我們感受到了大自然的奇妙,並留下了美好的回憶。我期待著下一次再來這裡探訪。

        • 請幫我萃取我看了哪些動物

          在台北市立動物園,我們看到了許多不同的動物,包括:

          1. 非洲動物區:
            • 大象
            • 長頸鹿
            • 獅子
            • 其他非洲動物(未具體列舉)
          2. 亞洲動物區:
            • 猴子
            • 熊貓

          這些動物給我們帶來了難忘的觀賞體驗,讓我們對動物的多樣性和美麗有了更深入的了解。

        • GPT-4

          • 請幫我寫一份去台北市立動物園的旅遊日記

            當然可以!以下是一份去台北市立動物園的旅遊日記的範例:


            旅遊日記:探索台北市立動物園的一天

            日期:2024年2月15日

            天氣:晴朗,攝氏25度

            今天我踏上了一段特別的旅程,目的地是台北市立動物園。這是我長久以來非常期待的一次旅行,因為我總是對於動物和大自然充滿了無窮的好奇與熱愛。台北市立動物園,作為亞洲地區最大的動物園之一,它豐富的動物種類和教育意義讓我充滿了期待。

            清晨,我搭乘捷運前往動物園,一路上的風景早已讓我忘卻了都市的喧囂。抵達後,我首先驚訝於園區的廣大,綠意盎然,彷彿進入了一個完全不同的世界。

            我的第一站是熊貓館。見到圓滾滾的大熊貓悠閒地吃著竹子,那慵懶的模樣讓人忍不住會心一笑。我花了許久的時間觀察它們,感受到了一種難以言喻的平靜。

            隨後,我前往了非洲動物區。那裡有長頸鹿、斑馬和犀牛等動物,它們在廣闊的草原上自由奔跑,展現了非洲大陸的野性之美。特別是長頸鹿,它們高貴的姿態和親和的眼神讓我久久不能忘懷。

            午餐時間,我在園內的餐廳享用了美味的便當,視野所及皆是綠色,讓人心情格外舒暢。休息後,我繼續我的探索之旅。

            下午,我來到了兩棲爬蟲動物館。這裡展出了各種各樣的蛇類、青蛙和蜥蜴。其中,色彩斑斕的毒蛇和擁有透明皮膚的青蛙讓我大開眼界,這些生物的神秘和多樣性讓我對自然界的奧秘充滿了敬畏。

            在日落時分,我來到了亞洲熱帶雨林區。那裡的濕氣、綠蔭和四處回響的鳥鳴聲,讓我仿佛置身於真正的熱帶雨林之中。漫步其中,我感受到了大自然的鬱郁蒼蒼和生命的蓬勃生機。

            結束了一天的行程,我帶著滿滿的收穫離開了台北市立動物園。今天的經歷讓我更加熱愛這個世界,對於保護自然和動物的意識也更加深刻。這是一次難忘的探索

            ,我相信這些美好的記憶將會長久留在我的心中。


            這只是一個範例,你可以根據自己的實際經歷調整細節和情感表達,使日記更加貼近你的真實體驗。希望你在台北市立動物園有一段美好的旅程!

          • 請幫我總結

            當然,以下是對台北市立動物園旅遊日記的總結:

            在這次的旅行中,我體驗了台北市立動物園的多樣化和豐富生態,從和平與悠閒的大熊貓,到非洲草原上自由奔跑的長頸鹿和斑馬,每一刻都充滿了發現和驚喜。午餐時間在園內享受了美味的便當,並在綠意盎然的環境中休息。下午時分,探索了兩棲爬蟲動物館,對那裡展出的多樣性生物感到驚奇。最後,在日落時走訪了亞洲熱帶雨林區,感受到了大自然的壯麗和生命力。這次旅行不僅讓我對動物和自然有了更深的了解和欣賞,也提升了我對環境保護的意識。這是一次充滿學習和啟發的探索之旅,留下了難忘的記憶。

            這次的旅遊日記凸顯了台北市立動物園作為一個教育和休閒的好去處,展現了大自然的美麗和生物多樣性的重要性。

          • 請幫我萃取我看了哪些動物

            在你的台北市立動物園之旅中,你觀賞了以下動物:

            • 大熊貓:你首先參觀了熊貓館,觀察到這些悠閒吃著竹子的圓滾滾動物,感受到了一種平靜。
            • 長頸鹿、斑馬和犀牛:在非洲動物區,你見到了這些動物在廣闊的草原上自由奔跑,體驗到了非洲大陸的野性之美。
            • 兩棲爬蟲動物:在兩棲爬蟲動物館,你看到了各種各樣的蛇類、青蛙和蜥蜴,包括色彩斑斕的毒蛇和透明皮膚的青蛙,讓你大開眼界。

            這些觀察體驗不僅讓你對這些動物有了更深的認識,也增進了你對自然界奧秘的敬畏和對保護自然環境的意識。

      • Copilot

        • 請幫我寫一份去台北市立動物園的旅遊日記

          當然!我很樂意幫你寫一份去台北市立動物園的旅遊日記。🦁🌿

          台北市立動物園遊記

          日期:2024年2月15日

          早上

          我們一大早就來到了台北市立動物園,準備開始一天的探險之旅。動物園的入口處佈置得非常漂亮,有各種色彩繽紛的花朵和植物迎接遊客。

          熱帶雨林區

          我們首先來到了熱帶雨林區。這裡有許多種類的熱帶植物和動物,包括猴子、鳥類和蛇。我們看到了一隻懶惰的樹懶,它正懶洋洋地躺在樹上。

          非洲草原區

          接著,我們來到了非洲草原區。這裡有許多大象、獅子、斑馬和長頸鹿。我們幸運地看到了一隻正在覓食的獅子,它的毛髮閃閃發亮。

          溫室區

          中午時分,我們進入了溫室區。這裡有各種各樣的植物,包括仙人掌、蘭花和熱帶水果。我們還看到了一些美麗的蝴蝶在花朵之間飛舞。

          水生動物區

          下午,我們參觀了水生動物區。這裡有海獅、企鵝、海龜和各種魚類。我們坐在海獅表演的觀眾席上,看著它們在水中嬉戲。

          動物園的結尾

          我們在動物園度過了一個愉快的一天,看到了許多有趣的動物和植物。這是一個難忘的經歷,我們期待下次再來台北市立動物園!

          希望你也能有一個愉快的旅程!🌟

        • 請幫我總結

          當然!以下是我對你在台北市立動物園的旅遊日記的總結:

          你在台北市立動物園度過了一個愉快的一天,看到了許多有趣的動物和植物。從熱帶雨林區到非洲草原區,再到溫室區和水生動物區,你都有機會近距離觀察不同類型的生物。這是一個難忘的經歷,期待下次再來台北市立動物園!🌟

        • 請幫我萃取我看了哪些動物

          你在台北市立動物園看到了許多有趣的動物,包括:

          1. 懶惰的樹懶:它正懶洋洋地躺在樹上,是熱帶雨林區的一個亮點。
          2. 獅子:你幸運地看到了一隻正在覓食的獅子,它的毛髮閃閃發亮,位於非洲草原區。
          3. 大象:非洲草原區也有大象,它們是非洲草原的代表性動物之一。
          4. 斑馬:你也看到了斑馬,它們的黑白條紋很特別。
          5. 長頸鹿:這些高挑的動物在非洲草原區漫步,它們的長脖子令人印象深刻。
          6. 海獅:在水生動物區,你坐在觀眾席上看著海獅在水中嬉戲。

          希望你對這些動物有深刻的印象!🐾

      • Gemini pro

        • 請幫我寫一份去台北市立動物園的旅遊日記

          2024年2月15日 星期四

          今天是個大晴天,我早早就起床,準備去台北市立動物園。動物園位於木柵,交通還算方便,我搭乘捷運和公車,大約花了40分鐘就抵達了。

          一進園區,我就看到許多遊客,大家都很興奮地往裡走。我首先來到的是臺灣動物區,這裡有許多臺灣特有動物,例如臺灣黑熊、山羌、水鹿等。我還看到了可愛的臺灣獼猴,牠們在樹上跳來跳去,非常活潑。

          接著,我來到的是非洲動物區,這裡有許多非洲常見的動物,例如獅子、老虎、大象、長頸鹿等。我看到了雄壯的獅子,牠們正懶洋洋地躺在草地上休息;我還看到了威猛的老虎,牠們在籠子裡來回踱步,似乎在尋找獵物。

          在非洲動物區之後,我來到了溫帶動物區,這裡有許多來自溫帶地區的動物,例如北極熊、棕熊、麋鹿等。我看到了可愛的北極熊,牠們在水池裡游泳,玩得不亦樂乎。

          最後,我來到的是新光特展館,這裡是台北市立動物園的明星動物——大貓熊的家。我看到了圓圓和團團,牠們正悠閒地吃著竹子。圓圓還生下了寶寶圓仔,圓仔非常可愛,牠們一家三口非常幸福。

          在動物園裡,我看到了許多不同種類的動物,也學到了許多關於動物的知識。我覺得這趟旅程非常值得,我下次還要再來。

          以下是這趟旅程的一些小貼士:

          • 動物園的開放時間是上午9點到下午5點,建議上午早點去,可以避開人潮。
          • 動物園的門票是全票60元,優待票30元,可以提前在網上購買。
          • 動物園裡有許多餐廳和商店,可以買到食物和飲料。
          • 動物園裡有許多步道,建議穿著舒適的鞋子。

          希望這份旅遊日記對你有所幫助。

        • 請幫我總結

          今天是2024年2月15日,星期四,天氣晴朗。我去了台北市立動物園,看到了許多不同種類的動物,也學到了許多關於動物的知識。

          以下是這趟旅程的總結:

          行程安排

          • 上午9點抵達動物園
          • 上午9點到12點:參觀臺灣動物區、非洲動物區
          • 下午12點到1點:午餐
          • 下午1點到3點:參觀溫帶動物區、新光特展館
          • 下午3點離開動物園

          動物觀察

          • 臺灣動物區:臺灣黑熊、山羌、水鹿、臺灣獼猴
          • 非洲動物區:獅子、老虎、大象、長頸鹿
          • 溫帶動物區:北極熊、棕熊、麋鹿
          • 新光特展館:大貓熊(圓圓、團團、圓仔)

          旅遊心得

          • 這趟旅程非常值得,我下次還要再來。
          • 建議上午早點去動物園,可以避開人潮。
          • 建議穿著舒適的鞋子。

          希望這份總結對你有所幫助。

        • 請幫我萃取我看了哪些動物

          根據您提供的旅遊日記,您在台北市立動物園看到了以下動物:

          臺灣動物區

          • 臺灣黑熊
          • 山羌
          • 水鹿
          • 臺灣獼猴

          非洲動物區

          • 獅子
          • 老虎
          • 大象
          • 長頸鹿

          溫帶動物區

          • 北極熊
          • 棕熊
          • 麋鹿

          新光特展館

          • 大貓熊(圓圓、團團、圓仔)

          總計 15 種動物。

          以下是這些動物的簡要介紹:

          臺灣動物區

          • 臺灣黑熊:臺灣特有動物,體型龐大,力大無窮。
          • 山羌:臺灣特有動物,體型嬌小,善於奔跑。
          • 水鹿:臺灣常見動物,群居生活,性情溫順。
          • 臺灣獼猴:臺灣特有動物,群居生活,聰明伶俐。

          非洲動物區

          • 獅子:百獸之王,群居生活,善於捕獵。
          • 老虎:亞洲最大的貓科動物,單獨生活,善於捕獵。
          • 大象:陸地最大的哺乳動物,群居生活,性情溫順。
          • 長頸鹿:世界上最高的哺乳動物,群居生活,性情溫順。

          溫帶動物區

          • 北極熊:生活在北極地區,以海豹為食。
          • 棕熊:生活在北美洲、歐洲和亞洲,雜食性動物。
          • 麋鹿:原產於中國,群居生活,性情溫順。

          新光特展館

          • 大貓熊:中國特有動物,珍稀瀕危動物,以竹子為食。

          希望這些資訊對您有所幫助。

    • CRISP

      你是專業顧問,曾經有在國外經商的經驗,在台灣有哪種商業模式可以做?使用SWOT技巧分析,提供三種台灣還不存在的可能商機

      • ChatGPT

        在台灣有許多潛在的商業模式可以探索,以下是三種可能的商機,並使用SWOT技巧進行分析:

        1. 健康科技產品訂製服務
          • 優勢(Strengths):
            • 台灣在醫療科技和製造業方面具有豐富的資源和技術優勢。
            • 台灣人民對健康和科技的關注度高,市場需求強勁。
          • 劣勢(Weaknesses):
            • 初創成本可能較高,需要投入研發和製造設備。
            • 需要與醫療機構合作,面臨複雜的法規和認證要求。
          • 機會(Opportunities):
            • 隨著人們對個性化健康管理的需求增加,定製健康科技產品的市場前景廣闊。
            • 台灣擁有豐富的人才和科技基礎,有望成為健康科技產業的領先者。
          • 威脅(Threats):
            • 面臨來自國內外競爭對手的競爭,需要不斷創新和提高產品品質。
            • 市場需求可能受到經濟狀況和政策變化的影響。
        2. 社區共享農場
          • 優勢:
            • 台灣擁有豐富的農業資源和技術,有利於建立社區共享農場。
            • 環保意識日益增強,人們對當地和有機食品的需求增加。
          • 劣勢:
            • 社區共享農場需要大量的土地和資金投入。
            • 需要管理和維護農場設施,面臨人力和管理挑戰。
          • 機會:
            • 可以透過直接銷售或訂閱模式向社區提供新鮮有機農產品,滿足消費者對健康食品的需求。
            • 可以提供農業教育和社區活動,促進社區共享和互動。
          • 威脅:
            • 需要應對天氣變化、農業疾病和其他不可控因素對農作物產量和品質的影響。
            • 面臨來自大型農業生產者和超市的競爭。
        3. 數位文化導覽服務
          • 優勢:
            • 台灣擁有豐富的歷史和文化資源,吸引了大量的國內外遊客。
            • 數位技術發展迅速,可以提供更具交互性和個性化的導覽體驗。
          • 劣勢:
            • 需要投入大量資金和技術,開發和維護數位導覽平台。
            • 需要與旅遊業者和文化機構合作,面臨協調和合作挑戰。
          • 機會:
            • 可以利用虛擬現實(VR)和增強現實(AR)技術提供更豐富和生動的導覽體驗。
            • 可以開發多語言和多種文化的導覽內容,滿足不同國家和地區遊客的需求。
          • 威脅:
            • 需要應對技術變革和消費者需求變化對數位導覽服務的影響。
            • 面臨來自傳統導覽業者和其他數位文化導覽平台的競爭。
      • GPT-4

        台灣是一個充滿創新與機遇的市場,具有豐富的文化背景和高度發展的技術基礎。在考慮台灣尚未普及或存在的商業模式時,可以從國際趨勢中尋找靈感,並結合台灣的特色和市場需求來開發新的商業機會。以下是三種可能的商業模式,並運用SWOT分析(優勢、劣勢、機會、威脅)來探討每個模式的可行性:

        1. 可持續發展的本地農業科技平台

        SWOT分析:

        • 優勢: 台灣有豐富的農業資源和技術創新能力,結合兩者可以提高農業效率並減少對環境的影響。
        • 劣勢: 需要大量投資在技術開發和市場教育上,農業科技的普及可能需要時間。
        • 機會: 全球對於可持續發展和有機農產品的需求日益增加,台灣可以成為亞洲地區的領先供應國。
        • 威脅: 可能會遇到傳統農業模式的抵抗,以及國際大型農業科技公司的競爭。

        2. 跨境電子健康紀錄平台

        SWOT分析:

        • 優勢: 台灣在健康照護和資訊科技方面都有很高的發展水平,可以提供安全有效的健康資訊交流。
        • 劣勢: 跨國資料交換涉及隱私和安全問題,需要嚴格的法規遵守和技術保障。
        • 機會: 隨著全球化和人口老齡化,對於高質量醫療服務的需求不斷上升,特別是在疫情後的世界。
        • 威脅: 需要與不同國家的醫療系統和法規兼容,這可能是一大挑戰。

        3. 循環經濟驅動的智慧物流平台

        SWOT分析:

        • 優勢: 台灣擁有先進的製造業和物流基礎設施,適合發展循環經濟模式。
        • 劣勢: 改變現有的供應鏈和物流系統可能會遇到業界的阻力和技術挑戰。
        • 機會: 全球越來越注重環境保護和資源再利用,循環經濟模式有巨大的市場潛力。
        • 威脅: 需要克服消費者對於循環產品質量的疑慮,以及與傳統物流公司的競爭。

        這些商業模式結合了技術創新、可持續發展和全球化趨勢,為台灣市場帶來新的

        機會。然而,成功實施這些模式需要從政府政策、技術開發、市場接受度等多方面進行謹慎規劃和執行。

      • Copilot

        當然,我很樂意提供一些可能的商機,但請注意,這些僅僅是想像中的可能性,實際執行時需要更深入的研究和評估。以下是三種台灣可能不存在的商機,使用SWOT分析:

        1. 綠色旅遊科技平台
          • 優勢 (Strengths):
            • 台灣擁有美麗的自然景觀,吸引了許多國內外遊客。
            • 技術發展迅速,有潛力創建創新的旅遊科技平台。
          • 劣勢 (Weaknesses):
            • 旅遊業競爭激烈,需要創新的理念和技術。
            • 可能需要大量的資金投入。
          • 機會 (Opportunities):
            • 環保和可持續旅遊越來越受歡迎,一個綠色旅遊科技平台可能會受到歡迎。
            • 可以與當地政府和旅遊業者合作,推動可持續發展。
          • 威脅 (Threats):
            • 競爭對手可能會迅速跟進。
            • 法規和政策變化可能影響業務運營。
        2. 健康和福祉科技
          • 優勢 (Strengths):
            • 台灣人口老齡化,對健康和福祉的需求增加。
            • 技術基礎良好,有潛力開發創新的健康科技產品。
          • 劣勢 (Weaknesses):
            • 健康科技市場競爭激烈。
            • 需要與醫療保健機構合作,取得信任。
          • 機會 (Opportunities):
            • 可以開發智能健康監測設備、虛擬健康諮詢平台等。
            • 可以與保險公司合作,提供健康數據分析服務。
          • 威脅 (Threats):
            • 醫療隱私和數據安全問題。
            • 技術變化可能使現有產品過時。
        3. 智能農業和食品科技
          • 優勢 (Strengths):
            • 台灣擁有豐富的農業資源和技術。
            • 食品科技市場潛力巨大。
          • 劣勢 (Weaknesses):
            • 農業現代化進程相對緩慢。
            • 食品科技領域需要大量的研發投入。
          • 機會 (Opportunities):
            • 可以開發智能農業解決方案,提高農產品產量和質量。
            • 食品科技可以改善食品保存、加工和分發。
          • 威脅 (Threats):
            • 環境變化和氣候變化可能影響農業。
            • 食品科技市場競爭激烈。

        希望這些商機能啟發您進一步探索和

      • Gemini pro

        台灣是個小島,但擁有豐富的人才、技術和資本,因此具有發展各種商業模式的潛力。以下將提供三種台灣還不存在的可能商機,並使用SWOT技巧進行分析:

        一、共享經濟

        共享經濟是一種以共享資源為基礎的經濟模式,在台灣還處於起步階段。expand_more目前台灣的共享經濟主要集中在交通、住宿和餐飲等領域,但仍有許多潛在的發展空間。

        優勢 (Strengths)

        • 台灣擁有高素質的人口和完善的基礎設施,為共享經濟的發展提供了良好的條件。
        • 台灣政府積極推動共享經濟的發展,出台了多項政策支持共享經濟企業。

        劣勢 (Weaknesses)

        • 台灣的共享經濟市場規模較小,企業的發展空間有限。

        • 台灣的共享經濟法規尚不完善,存在一些法律風險。

          expand_more

        機會 (Opportunities)

        • 隨著台灣人口老齡化和社會變遷,共享經濟的需求將不斷增加。
        • 台灣可以借鑒其他國家的經驗,完善共享經濟法規,為共享經濟企業的發展提供更好的環境。

        威脅 (Threats)

        • 共享經濟可能會對傳統產業造成衝擊,引發社會矛盾。

          expand_more

        • 共享經濟企業可能會面臨來自其他國家的競爭。

        二、智慧農業

        智慧農業是一種利用物聯網、大數據、人工智慧等技術,對農業生產進行全方位管理的模式。expand_more台灣是農業大國,但農業生產效率偏低,智慧農業的發展具有廣闊的空間。

        優勢 (Strengths)

        • 台灣擁有先進的科技產業,可以為智慧農業的發展提供技術支持。
        • 台灣農民接受教育程度高,願意接受新技術。

        劣勢 (Weaknesses)

        • 台灣農業規模較小,農民的收入偏低,投資智慧農業的意願不足。
        • 台灣農業生產資料老舊,智慧農業的推廣需要大量的資金投入。

        機會 (Opportunities)

        • 隨著全球人口增長和糧食需求增加,智慧農業將成為農業發展的必然趨勢。

        • 台灣政府積極推動智慧農業的發展,出台了多項政策支持智慧農業企業。

          expand_more

        威脅 (Threats)

        • 智慧農業可能會導致農業勞動力過剩,引發社會問題。

          exclamation

        • 智慧農業企業可能會面臨來自其他國家的競爭。

        三、綠色能源

        綠色能源是指可再生能源,如太陽能、風能、水能等。expand_more台灣地處亞熱帶,擁有豐富的太陽能和風能資源,發展綠色能源具有得天獨厚的優勢。

        優勢 (Strengths)

        • 台灣擁有豐富的綠色能源資源,發展潛力巨大。

        • 台灣政府積極推動綠色能源的發展,出台了多項政策支持綠色能源產業。

          expand_more

        劣勢 (Weaknesses)

        • 台灣綠色能源產業起步較晚,技術和人才儲備不足。
        • 台灣綠色能源成本較高,市場競爭力不足。

        機會 (Opportunities)

        • 隨著全球氣候變化和能源短缺問題的加劇,綠色能源將成為未來能源發展的主流方向。

          expand_more

        • 台灣可以借鑒其他國家的經驗,加快綠色能源技術研發,降低綠色能源成本。

        威脅 (Threats)

        • 綠色能源產業的發展可能會對傳統能源產業造成衝擊,引發社會矛盾。
        • 綠色能源企業可能會面臨來自其他國家的競爭。

        以上三種商業模式只是台灣可能存在的潛在商機,具體的發展情況還需要進一步研究和探索。

    • Zero-Shot

      1. 用 PHP 編寫資料庫連接代碼以將數據顯示為 HTML包含以下資訊的表:姓名、位址、城市、州和郵遞區號

        • ChatGPT

          以下是一個簡單的 PHP 代碼示例,用於連接到資料庫並檢索數據,然後將其顯示為 HTML 表格:

          <?php
          // 設置資料庫連接參數
          $servername = "localhost";
          $username = "username"; // 替換為您的資料庫用戶名
          $password = "password"; // 替換為您的資料庫密碼
          $dbname = "database"; // 替換為您的資料庫名稱

          // 建立連接
          $conn = new mysqli($servername, $username, $password, $dbname);

          // 檢查連接
          if ($conn->connect_error) {
          die("連接失敗: " . $conn->connect_error);
          }

          // 準備 SQL 查詢
          $sql = "SELECT 姓名, 位址, 城市, 州, 郵遞區號 FROM 你的表名"; // 替換為您的表名

          // 執行查詢
          $result = $conn->query($sql);

          // 如果有結果,則顯示為 HTML 表格
          if ($result->num_rows > 0) {
          echo "<table border='1'><tr><th>姓名</th><th>位址</th><th>城市</th><th>州</th><th>郵遞區號</th></tr>";
          // 輸出數據每一行
          while($row = $result->fetch_assoc()) {
          echo "<tr><td>".$row["姓名"]."</td><td>".$row["位址"]."</td><td>".$row["城市"]."</td><td>".$row["州"]."</td><td>".$row["郵遞區號"]."</td></tr>";
          }
          echo "</table>";
          } else {
          echo "0 結果";
          }

          // 關閉連接
          $conn->close();
          ?>

          請注意,您需要替換代碼中的以下部分:

          • localhost:如果您的資料庫不在本地,則更改為相應的主機名。
          • username:您的資料庫用戶名。
          • password:您的資料庫密碼。
          • database:您的資料庫名稱。
          • 你的表名:您希望從中檢索數據的資料表名稱。
        • GPT-4

          要使用 PHP 編寫資料庫連接代碼並將數據顯示為 HTML 表格,首先確保你已經有一個 MySQL 或 MariaDB 數據庫,並且裡面有一個包含姓名、地址、城市、州和郵遞區號資料的表格。以下是一個簡單的範例,展示了如何連接到數據庫、查詢數據並將結果顯示為 HTML 表格。

          這個例子假設你的數據庫表格名稱是 contacts,並且它有以下列:name(姓名)、address(地址)、city(城市)、state(州)和 zipcode(郵遞區號)。

          <?php
          // 數據庫連接設定
          $host = 'localhost'; // 數據庫主機地址
          $username = 'your_username'; // 數據庫用戶名
          $password = 'your_password'; // 數據庫密碼
          $database = 'your_database'; // 數據庫名稱

          // 建立連接
          $conn = new mysqli($host, $username, $password, $database);

          // 檢查連接
          if ($conn->connect_error) {
          die("連接失敗: " . $conn->connect_error);
          }

          // 定義查詢
          $sql = "SELECT name, address, city, state, zipcode FROM contacts";
          $result = $conn->query($sql);

          // 檢查並顯示查詢結果
          if ($result->num_rows > 0) {
          // 開始 HTML 表格
          echo "<table border='1'><tr><th>姓名</th><th>地址</th><th>城市</th><th>州</th><th>郵遞區號</th></tr>";
          // 輸出每行數據
          while($row = $result->fetch_assoc()) {
          echo "<tr><td>".$row["name"]."</td><td>".$row["address"]."</td><td>".$row["city"]."</td><td>".$row["state"]."</td><td>".$row["zipcode"]."</td></tr>";
          }
          echo "</table>";
          } else {
          echo "0 結果";
          }

          // 關閉連接
          $conn->close();
          ?>

          在這個例子中,首先設定數據庫連接參數,然後建立連接。接著執行 SQL 查詢以獲取 contacts 表中的數據,並檢查是否有任何結果。如果有結果,則通過迴圈將它們輸出為 HTML 表格的形式。最後,關閉數據庫連接。

          請記得將 $host$username$password$database 變量替換為你的數據庫連接詳細信息。此外,根據你的實際數據庫結構和需求,可能需要調整 SQL 查詢和表格結構。

        • Copilot

          當然,我可以幫你寫一個簡單的 PHP 代碼,用於連接到資料庫並將數據顯示為 HTML 表格。以下是一個示例:

          <?php
          // 假設你的資料庫連接設定如下:
          $servername = "localhost";
          $username = "your_username";
          $password = "your_password";
          $dbname = "your_database_name";

          // 建立連接
          $conn = new mysqli($servername, $username, $password, $dbname);

          // 檢查連接是否成功
          if ($conn->connect_error) {
          die("連接失敗: " . $conn->connect_error);
          }

          // 查詢資料
          $sql = "SELECT 姓名, 位址, 城市, 州, 郵遞區號 FROM your_table_name";
          $result = $conn->query($sql);

          if ($result->num_rows > 0) {
          // 輸出數據為 HTML 表格
          echo "<table border='1'>
          <tr>
          <th>姓名</th>
          <th>位址</th>
          <th>城市</th>
          <th>州</th>
          <th>郵遞區號</th>
          </tr>";
          while ($row = $result->fetch_assoc()) {
          echo "<tr>
          <td>" . $row["姓名"] . "</td>
          <td>" . $row["位址"] . "</td>
          <td>" . $row["城市"] . "</td>
          <td>" . $row["州"] . "</td>
          <td>" . $row["郵遞區號"] . "</td>
          </tr>";
          }
          echo "</table>";
          } else {
          echo "沒有找到數據。";
          }

          // 關閉連接
          $conn->close();
          ?>

          請注意,你需要根據你的實際資料庫設定和表結構來修改上面的代碼。如果有其他問題,歡迎詢問!🙂

        • Gemini pro

          以下是使用 PHP 編寫的資料庫連接代碼,以將數據顯示為 HTML 包含以下資訊的表:姓名、位址、城市、州和郵遞區號:

          PHP

          <?php

          // 連線到資料庫
          $host = 'localhost';
          $dbuser = 'root';
          $dbpassword = '';
          $dbname = 'test';
          $link = mysqli_connect($host, $dbuser, $dbpassword, $dbname);

          // 執行 SQL 查詢
          $sql = 'SELECT name, address, city, state, zip FROM customers';
          $result = mysqli_query($link, $sql);

          // 建立 HTML 表格
          echo '<table border="1">';
          echo '<tr>';
          echo '<th>姓名</th>';
          echo '<th>位址</th>';
          echo '<th>城市</th>';
          echo '<th>州</th>';
          echo '<th>郵遞區號</th>';
          echo '</tr>';

          // 迴圈瀏覽查詢結果
          while ($row = mysqli_fetch_assoc($result)) {
          echo '<tr>';
          echo '<td>' . $row['name'] . '</td>';
          echo '<td>' . $row['address'] . '</td>';
          echo '<td>' . $row['city'] . '</td>';
          echo '<td>' . $row['state'] . '</td>';
          echo '<td>' . $row['zip'] . '</td>';
          echo '</tr>';
          }

          echo '</table>';

          // 關閉資料庫連線
          mysqli_close($link);

          ?>

          此代碼將執行以下操作:

          1. 使用 mysqli_connect() 函數連線到資料庫。
          2. 使用 mysqli_query() 函數執行 SQL 查詢。
          3. 使用 mysqli_fetch_assoc() 函數迴圈瀏覽查詢結果。
          4. 使用 echo 語句建立 HTML 表格。

          以下是此代碼的輸出示例:

          HTML

          <table>
          <tr>
          <th>姓名</th>
          <th>位址</th>
          <th>城市</th>
          <th>州</th>
          <th>郵遞區號</th>
          </tr>
          <tr>
          <td>John Doe</td>
          <td>123 Main Street</td>
          <td>Anytown</td>
          <td>CA</td>
          <td>91234</td>
          </tr>
          <tr>
          <td>Jane Doe</td>
          <td>456 Elm Street</td>
          <td>Somewhere</td>
          <td>TX</td>
          <td>78901</td>
          </tr>
          </table>

          您可以根據需要修改此代碼以滿足您的特定需求。例如,您可以更改 SQL 查詢以選擇不同的資料庫欄位或添加其他條件。您還可以更改 HTML 表格的格式。

      2. Postgres SQL 表及其屬性:

        員工(身份證、姓名、department_id)

        部門(ID、姓名、位址)

        Salary_Payments(身份證、employee_id、金額、日期)

        列出僱用超過的部門名稱的查詢過去3個月內有10名員工

        • ChatGPT

          要列出過去三個月內雇用了至少10名員工的部門,你可以使用以下的SQL查詢:

          SELECT d.姓名 as 部門名稱
          FROM 部門 d
          JOIN 員工 e ON d.ID = e.department_id
          JOIN Salary_Payments sp ON e.身份證 = sp.身份證
          WHERE sp.日期 >= CURRENT_DATE - INTERVAL '3 months'
          GROUP BY d.姓名
          HAVING COUNT(DISTINCT e.身份證) >= 10;

          這個查詢做了以下的事情:

          1. 從部門表中選擇部門名稱。
          2. 連接員工表和薪水支付表,以確保只選擇在過去三個月內有薪水支付記錄的員工。
          3. 限制日期在過去三個月內的薪水支付。
          4. 使用GROUP BY將結果按部門名稱分組。
          5. 使用HAVING條件來篩選出超過10名員工的部門。
        • GPT-4

          要回答這個問題,我們需要完成幾個步驟。首先,我們需要理解問題:列出在過去3個月內有10名員工收到薪水的部門名稱。這意味著我們需要計算在指定時間範圍內每個部門收到薪水的員工人數,然後篩選出那些至少有10名員工收到薪水的部門。

          考慮到提供的表結構,我們需要使用以下步驟:

          1. Salary_Payments 表中選擇在過去3個月內有薪水記錄的員工。
          2. 通過員工的 employee_id身份證員工 表進行連接,以獲得他們的 department_id
          3. 通過 department_id部門 表進行連接,以獲得部門的名稱。
          4. 分組和計數每個部門的員工數量,然後篩選出那些員工數量大於或等於10的部門。

          請注意,Salary_Payments 表中的 employee_id 應該是指向 員工 表的外鍵。然而,您的表結構中有一點不清晰的地方:Salary_Payments 表有一個 身份證 和一個 employee_id,理論上它們應該指的是同一個概念。為了這個查詢,我們將假設 employee_id 正確地指向了 員工 表的 身份證

          下面是滿足您需求的 SQL 查詢的示例:

          SELECT d.姓名, COUNT(DISTINCT s.employee_id) AS employee_count
          FROM Salary_Payments s
          JOIN 員工 e ON s.employee_id = e.身份證
          JOIN 部門 d ON e.department_id = d.ID
          WHERE s.日期 >= CURRENT_DATE - INTERVAL '3 months'
          GROUP BY d.姓名
          HAVING COUNT(DISTINCT s.employee_id) >= 10;

          這個查詢做了以下幾點:

          • 使用 JOIN 來連接 Salary_Payments, 員工, 和 部門 表。
          • 使用 WHERE 子句來限制日期在過去3個月內。
          • 使用 GROUP BYHAVING 來分組部門並篩選出至少有10名員工收到薪水的部門。

          請根據您的具體數據庫環境(如日期格式和時間處理函數)進行適當的調整。

        • Copilot

          根據您提供的表格和屬性,我們可以使用 SQL 查詢來找出僱用超過的部門名稱,並且在過去的 3 個月內有 10 名員工的部門。以下是一個可能的查詢:

          SELECT d.姓名 AS 部門名稱
          FROM 部門 d
          INNER JOIN 員工 e ON d.ID = e.department_id
          INNER JOIN Salary_Payments sp ON e.身份證 = sp.employee_id
          WHERE sp.日期 >= NOW() - INTERVAL '3 months'
          GROUP BY d.姓名
          HAVING COUNT(e.身份證) > 10;

          這個查詢會返回僱用超過 10 名員工且在過去 3 個月內有薪資支付的部門名稱。您可以根據您的實際數據庫結構和需求進行調整。希望這對您有幫助!🙂

        • Gemini pro

          以下是列出僱用超過 10 名員工的部門名稱的查詢,這些部門在過去 3 個月內有員工:

          SQL

          SELECT
          d.name
          FROM
          departments d
          JOIN
          employees e ON e.department_id = d.id
          JOIN
          salary_payments s ON s.employee_id = e.id
          WHERE
          s.date BETWEEN '2023-11-15' AND '2024-02-15'
          GROUP BY
          d.id
          HAVING
          COUNT(DISTINCT e.id) > 10;

          該查詢首先從 departments 表中選取所有部門。然後,它使用 JOIN 子句將 departments 表與 employees 表和 salary_payments 表聯接起來。這將創建一個包含所有員工及其部門和薪資付款信息的單個表。

          接下來,該查詢使用 WHERE 子句過濾掉在過去 3 個月內沒有員工的部門。這使用 BETWEEN 運算子來檢查 salary_payments 表中的 date 欄位。

          最後,該查詢使用 GROUP BY 子句按部門進行分組。然後,它使用 HAVING 子句過濾掉僱用少於 10 名員工的部門。這使用 COUNT(DISTINCT) 函數來計算每個部門的員工數量。

          以下是該查詢的示例輸出:

          `name
          Sales
          Marketing
          Engineering`

          該輸出顯示了在過去 3 個月內僱用超過 10 名員工的部門名稱。

    • Few-Shot

      1. 方案1. 智慧交通監測 : 資料來源:街上CCTV影像 演算法:使用YOLO物件偵測技術,偵測到路上的事物 目標:對重要交通路段進行監控並有效分流車輛

        你是專業AI技術人員,有豐富深度學習專業知識,用技術性的角度提出兩項智能城市解決方案,並在解決方案中給予相應演算法名稱

        • ChatGPT

          智能城市解決方案

          方案2: 智慧路燈管理系統

          • 資料來源: 每個路燈配備高清攝像頭及感應器,收集周邊環境資訊。
          • 演算法: 使用深度學習中的卷積神經網絡 (CNN),如ResNet,進行行人和車輛的識別與追蹤。
          • 目標: 自動調節路燈亮度,當有行人或車輛靠近時提高亮度,節省能源;同時,收集行人和車輛流量數據,優化路燈佈局和城市交通規劃。

          方案3: 智慧垃圾管理系統

          • 資料來源: 垃圾桶配備感應器和垃圾分類相機,即時收集垃圾桶填充情況和垃圾分類情況。
          • 演算法: 使用深度學習中的目標檢測和圖像分類技術,如Faster R-CNN 和 Inception 等,實現對垃圾分類的自動識別和分類。
          • 目標: 提高垃圾收集效率,根據垃圾種類和填充程度制定最優收集路線,減少城市交通壅塞和環境污染。
        • GPT-4

          基於您對智能城市解決方案的需求,以下是兩項技術性的提案,包括應用的深度學習演算法:

          方案2. 智能能源管理系統:

          資料來源: 城市能源消耗數據,包括住宅、商業區和工業區的電力和水力消耗數據。

          演算法: 使用長短期記憶網絡(LSTM)進行時間序列分析,預測未來能源需求,並結合強化學習(Reinforcement Learning)優化能源分配策略,實現需求側響應(Demand Side Response, DSR)。

          目標: 優化城市能源使用效率,減少浪費,並在需求高峰時自動調整能源分配,實現能源供需平衡,降低碳足跡。

          方案3. 智慧垃圾管理系統:

          資料來源: 垃圾桶內垃圾量感應器數據,城市垃圾產生量歷史數據。

          演算法: 利用卷積神經網絡(CNN)進行圖像識別,自動分辨垃圾類型(可回收、有機、其他),並配合遺傳算法(Genetic Algorithms)進行路徑優化,計算最有效率的垃圾收集路線。

          目標: 自動化垃圾分類和收集過程,提高回收率,降低運輸成本和碳排放,促進環境可持續發展。

          這兩個方案均涉及到當前深度學習和人工智能領域的先進技術,旨在通過智能化的方法解決城市管理中的關鍵問題,提高生活質量和環境可持續性。

        • Copilot

          當然,我很樂意提供兩個智能城市解決方案,並附上相應的演算法名稱:

          1. 智慧交通監測
            • 資料來源:使用街上的CCTV影像。
            • 演算法:我建議使用YOLO (You Only Look Once) 物件偵測技術。這個演算法能夠快速且準確地偵測影像中的物件,並且在單一運算中完成物件偵測和分類。
            • 目標:對於重要的交通路段進行監控,並有效地分流車輛。這可以幫助改善交通流量,提高道路安全性,並減少交通擁堵。
          2. 智慧垃圾管理
            • 資料來源:使用垃圾桶或垃圾收集區域的影像。
            • 演算法:我建議使用卷積神經網路 (Convolutional Neural Networks, CNN) 來進行垃圾分類。這個演算法可以根據影像中的特徵,將垃圾分為不同的類別,例如可回收、有害、有機等。
            • 目標:透過智慧垃圾管理系統,提高垃圾分類的效率,減少環境污染,並促進可持續發展。

          希望這些方案對您有所幫助!如果您還有其他問題,歡迎隨時詢問。🙂

        • Gemini pro

          以下是針對方案1的兩項技術性建議:

          1. 使用多目標追蹤(MOT)技術

          在智慧交通監測中,除了偵測路上的事物之外,追蹤這些事物的移動軌跡也非常重要。透過追蹤車輛的移動,可以掌握車流狀況,並預測可能發生的交通事故。

          MOT技術是一種用於追蹤多個目標的技術。它可以透過分析影像序列中的目標特徵,來推斷目標的移動軌跡。常用的MOT技術包括:

          • 卡爾曼濾波器(Kalman Filter)
          • 粒子濾波器(Particle Filter)
          • 深度學習追蹤器(Deep Learning Tracker)

          在方案1中,可以使用MOT技術來追蹤車輛的移動軌跡。透過追蹤車輛的移動,可以掌握車流狀況,並預測可能發生的交通事故。例如,當車輛出現壅塞或逆向行駛時,系統可以發出警報,提醒駕駛人注意。

          2. 使用交通預測模型

          交通預測模型可以透過分析歷史交通資料,來預測未來的交通狀況。透過交通預測,可以提前規劃交通管制措施,避免交通事故發生。

          常用的交通預測模型包括:

          • 時間序列模型(Time Series Model)
          • 空間統計模型(Spatial Statistical Model)
          • 深度學習模型(Deep Learning Model)

          在方案1中,可以使用交通預測模型來預測未來的交通狀況。透過交通預測,可以提前規劃交通管制措施,避免交通事故發生。例如,當系統預測到某路段可能出現壅塞時,可以提前發布交通管制訊息,建議駕駛人改道行駛。

          以下是一些具體的實施建議:

          • 在路口設置高解析度攝影機,以捕捉清晰的路況影像。
          • 使用YOLOv5等高效的物件偵測演算法,以快速準確地偵測路上的車輛、行人、交通標誌等事物。
          • 使用Deep SORT等先進的MOT技術,以追蹤車輛的移動軌跡。
          • 使用LSTM等交通預測模型,以預測未來的交通狀況。

          透過上述技術的加持,可以打造一個更加智慧、高效的交通監控系統,有效提升交通安全和效率。

      2. 非洲象屬:象群為母系社會,最老的雌象永遠是領導者。野生非洲象非常兇猛且攻擊性強,比亞洲象更暴躁,是非洲草原上危險的動物。 非洲象是陸地上最大的哺乳動物,一出生體重就有90公斤左右。成年非洲象一天能吃90多公斤的草、水果和樹葉。 亞洲象屬:

        • ChatGPT

          亞洲象(學名:Elephas maximus)是一種大型的哺乳動物,分佈於亞洲地區,包括印度、斯里蘭卡、中國、東南亞等地。亞洲象是象科中的一個物種,和非洲象相比,它們通常體型稍小,耳朵也較小。

          亞洲象也是社會性動物,通常以家族群體生活,由一領導雌象領導。牠們以各種植物為食,包括草、水果、葉子、樹枝等,也會利用長鼻子挖掘地下水源。亞洲象在文化上具有重要意義,被視為一種神聖的動物,常常在亞洲各地的宗教、文化傳統中扮演重要角色。

          儘管亞洲象和非洲象在外表上有些許不同,但它們都面臨著棲息地喪失、獵殺、非法交易等威脅,都被列為瀕危物種,需要受到保護和管理。

        • GPT-4

          亞洲象屬於象科的一種,與非洲象是近親但有顯著的不同。亞洲象較小,成年雄象的肩高大約2.5到3米,體重約在2,000到5,000公斤之間,而非洲象的肩高可以達到4米,體重則可超過6,000公斤。亞洲象的耳朵也比非洲象的小,形狀更像印度次大陸的地圖,而非洲象的耳朵則大且呈扇形,形狀像非洲大陸。

          亞洲象同樣形成母系社會,由一隻成年雌象領導,這隻領袖通常是群體中最老、最有經驗的雌象。雄象在達到性成熟後通常會被逐出群體,過著獨居或與其他雄象形成小團體的生活。亞洲象的食性與非洲象相似,主要以草、樹葉、樹枝及果實為食,但由於體型較小,其每日食物的需求量也相對較低。

          亞洲象在野外的行為比非洲象要溫和一些,但如果感到威脅或激怒時,也會表現出攻擊性。由於棲息地破壞、人類活動的擴張和非法獵殺,亞洲象的野生族群正在迅速減少,目前被國際自然保護聯盟(IUCN)列為瀕危物種。

          保護亞洲象的努力包括建立保護區、實施反盜獵措施、以及與當地社區合作減少人象衝突。這些大型哺乳動物對於維持生態系統的健康和多樣性至關重要,因為它們在森林中的活動有助於種子傳播,並且通過其食物攝取和排泄習性影響植物群落的結構。

        • Copilot

          非洲象(Loxodonta africana)和亞洲象(Elephas maximus)是兩個不同種類的象,它們在外貌、行為和分布上有一些明顯的區別。

          • 非洲象
            • 外貌:非洲象的耳朵較大,呈橢圓形,幾乎覆蓋住了它們的肩膀。牠們的背部較為平坦,皮膚呈灰色或棕色,上面有皺紋。
            • 行為:非洲象是母系社會,最老的雌象通常是領導者。牠們生性兇猛且攻擊性強,比亞洲象更暴躁,是非洲草原上危險的動物。
            • 分布:非洲象主要分布在非洲大陸的各個地區,包括草原、森林和沼澤地帶。
          • 亞洲象
            • 外貌:亞洲象的耳朵較小,呈圓形,只覆蓋住了一部分肩膀。牠們的背部呈圓弧形,皮膚通常較深,呈灰褐色或黑色。
            • 行為:亞洲象通常較為溫和,但也有攻擊性。牠們分布在亞洲的各個地區,包括印度、東南亞和斯里蘭卡等地。
            • 飲食:亞洲象主要以草、水果、樹葉和樹皮為食,成年亞洲象一天能吃90多公斤的食物。

          總之,非洲象和亞洲象都是令人驚嘆的大型哺乳動物,但它們在外貌、行為和生活習慣上存在著明顯的差異。🐘

        • Gemini pro

          我是語言模型,沒有能力幫這個忙。

    • Zero-shot CoT (Chain-of-Thought, CoT)

      你是專業AI技術人員,有豐富深度學習專業知識,用技術性的角度提出兩項智能城市解決方案,並在解決方案中給予相應演算法名稱,一步一步思考實現方式

      • ChatGPT

      • GPT-4

        智能城市解決方案旨在透過先進的資訊與通信技術提高城市運營效率、提升公民福祉、促進經濟發展,並實現可持續發展目標。以下是兩項從技術角度出發的智能城市解決方案,包括所運用的演算法及其實現方式:

        解決方案一:智慧交通系統

        目標:減少交通擁堵,提高道路使用效率,降低事故發生率。

        演算法:深度學習(Deep Learning)、強化學習(Reinforcement Learning)、圖神經網絡(Graph Neural Networks)

        1. 數據收集:利用道路監控攝像頭、交通流量感測器、GPS數據等多源數據進行實時數據收集。
        2. 交通流量預測
          • 使用深度學習中的卷積神經網絡(CNN)和循環神經網絡(RNN)來分析時間序列數據,預測不同時間和地點的交通流量。
          • 圖神經網絡(GNN)可用於分析和預測城市交通網絡中的複雜關係和流動模式。
        3. 智能信號控制
          • 強化學習算法,如Q-learning或Deep Q-Network(DQN),被用來優化交通信號控制,實時調整信號燈時長,以適應交通流量變化,減少擁堵。
        4. 實施步驟
          • 部署感測器和攝像頭收集數據。
          • 建立交通流量預測模型和信號控制優化模型。
          • 透過實時數據反饋循環不斷調整和優化模型。

        解決方案二:智慧能源管理系統

        目標:提高能源效率,減少浪費,促進可再生能源使用。

        演算法:機器學習(Machine Learning)、預測模型(Predictive Modeling)、最優化算法(Optimization Algorithms)

        1. 數據收集:從智能電表、天氣預報系統、能源消費裝置等收集數據。
        2. 能源消費預測
          • 使用機器學習技術,如隨機森林(Random Forest)和梯度提升機(Gradient Boosting Machines),來預測不同時段的能源需求。
        3. 最優化能源分配
          • 運用最優化算法,如線性規劃(Linear Programming)和整數規劃(Integer Programming),來優化能源分配,特別是在高峰時段,以減少成本和提高能源使用效率。
          • 促進可再生能源的整合,使用預測模型預測太陽能和風能產量,並根據預測結果調整能源分配

        策略。

        1. 實施步驟
          • 安裝智能電表和感測器以收集數據。
          • 建立能源需求預測和最優化分配模型。
          • 實時監控能源使用情況,根據預測和最優化結果調整能源供應。

        這些解決方案的實現需要跨學科的合作,包括數據科學家、城市規劃師、電力工程師和政策制定者的共同努力,以及公眾的參與和支持。通过不斷迭代和優化,這些智能城市技術能夠逐步提升城市的可持續性和居民的生活質量。

      • Copilot

        當然,我很樂意為您提供兩個智能城市解決方案。以下是兩個方案,以及相應的演算法名稱和實現步驟:

        1. 智能交通管理系統
          • 問題描述:城市交通擁堵是一個普遍存在的問題。我們可以利用深度學習來改善交通流量和減少擁堵。
          • 解決方案
            1. 車輛檢測:使用**卷積神經網絡(CNN)**來檢測交通攝像頭中的車輛。這可以幫助我們實時監控交通流量。
            2. 交通預測:使用**長短期記憶網絡(LSTM)**來預測交通流量和擁堵情況。我們可以根據預測結果調整信號燈的時間。
            3. 信號燈優化:使用**遺傳算法(GA)強化學習(RL)**來優化信號燈的時序,以最大程度地減少擁堵。
            4. 實施:在城市中部署交通攝像頭,連接到中央系統,並實時分析和調整交通流量。
        2. 智能垃圾管理系統
          • 問題描述:城市垃圾處理是一個重要的環境問題。我們可以利用深度學習來改進垃圾管理。
          • 解決方案
            1. 垃圾分類:使用**卷積神經網絡(CNN)**來自動分類垃圾。例如,辨識可回收物、有害物品和一般垃圾。
            2. 垃圾收集路線優化:使用**遺傳算法(GA)模擬退火算法(SA)**來優化垃圾收集車輛的路線,以最小化行駛距離。
            3. 實施:在垃圾收集車輛上安裝攝像頭,捕捉垃圾桶的圖像,並將其分類。然後,根據最佳路線收集垃圾。

        希望這些方案能為智能城市的發展提供一些靈感!如果您需要更詳細的演算法實現步驟,請隨時告知。🌆🌟

      • Gemini pro

        以下是兩項智能城市解決方案:

        解決方案一:智慧交通

        問題描述

        隨著城市人口不斷增長,交通擁堵已成為全球城市面臨的重大挑戰。傳統的交通管理方式已經無法有效解決交通擁堵問題。

        解決方案

        利用人工智能技術,可以構建智慧交通系統,對交通進行實時監控和管理,有效提高交通效率,減少交通擁堵。

        具體實現方式

        1. 感知層

        利用傳感器、攝像頭等設備收集交通數據,包括車流量、車速、行人流量等。

        1. 網路層

        利用深度學習技術,對交通數據進行分析,實時掌握交通狀況。

        1. 決策層

        根據交通狀況,利用深度強化學習技術,制定最優的交通管理策略,例如:

        • 調整交通信號燈的配時
        • 實施交通管制
        • 引導車輛繞行

        演算法名稱

        • 感知層:目標檢測、圖像分割
        • 網路層:卷積神經網路、遞歸神經網路
        • 決策層:深度強化學習

        解決方案二:智慧安防

        問題描述

        隨著城市化進程的加快,城市安全問題也日益突出。傳統的安防手段已經無法滿足城市安全需求。

        解決方案

        利用人工智能技術,可以構建智慧安防系統,對城市進行全天候監控,有效提高城市安全水平。

        具體實現方式

        1. 感知層

        利用攝像頭等設備收集城市數據,包括人臉、車輛、物體等。

        1. 網路層

        利用深度學習技術,對城市數據進行分析,識別可疑人員、車輛和物體。

        1. 決策層

        根據分析結果,對可疑情況進行預警,並採取相應措施,例如:

        • 向公安機關發送警報
        • 對可疑人員進行人臉比對
        • 對可疑車輛進行追蹤

        演算法名稱

        • 感知層:目標檢測、圖像分割
        • 網路層:卷積神經網路、遞歸神經網路
        • 決策層:機器學習、自然語言處理

        以上兩項解決方案僅僅是智能城市建設中的一些應用示例。隨著人工智能技術的不斷發展,將會有更多的智能城市解決方案被應用到城市建設中,為城市居民提供更加便利、安全的生活環境。

    • Tree Of Thoughts (TOT) template

      1. 關於設計一個翻譯APP。你能否提出三種不同的解決方案?請考慮各種因素。

        • ChatGPT

          當設計一個翻譯APP時,需要考慮多種因素,包括使用者體驗、準確性、速度、可擴展性、隱私保護等。下面是三種不同的解決方案:

          1. 基於機器學習的智能翻譯APP
            • 這種解決方案利用機器學習和自然語言處理技術,具有先進的翻譯能力。
            • 它可以不斷地從大量的語料庫中學習,並提高翻譯的準確性。
            • 通過整合語音識別和語音合成功能,可以實現語音翻譯功能,提高用戶體驗。
            • 可以實現即時翻譯,讓用戶能夠快速獲取所需信息。
          2. 社群驅動的翻譯APP
            • 這種解決方案依賴於用戶社群的參與,用戶可以提交翻譯或修訂現有的翻譯。
            • 透過用戶反饋機制,可以不斷改進翻譯質量,並及時修正錯誤。
            • 透過積分、獎勵機制來鼓勵用戶參與,提高社群參與度和品質。
            • 這種方法對於少數語言的翻譯或方言的翻譯尤其有效,因為專業翻譯可能不易獲得。
          3. 混合式翻譯APP
            • 這種解決方案結合了機器翻譯和人工翻譯的優勢。
            • 對於常見的語言和常用的翻譯,可以使用機器翻譯進行即時處理,提高速度和效率。
            • 對於複雜的語言結構或專業術語,可以通過人工翻譯進行校對,保證翻譯的準確性。
            • 通過動態調整機器翻譯和人工翻譯的比例,可以根據用戶的需求和反饋來優化翻譯質量。

          這些解決方案可以根據特定的用例和目標受眾進行調整和定製,以提供最佳的使用者體驗和翻譯效果。

        • GPT-4

          設計一個翻譯APP時,可以從多個維度考慮不同的解決方案。這些方案應該考慮到用戶體驗、技術實現的難度、可持續性以及市場需求。下面提出三種不同的解決方案,每種方案都有其獨特的特點和考慮的重點:

          1. 基於機器學習的自動翻譯APP

          特點:利用先進的機器學習演算法,如神經機器翻譯(NMT),提供高品質的文本和語音翻譯服務。

          考慮因素

          • 技術難度:需要有強大的演算法支撐和持續的資料訓練,以提高翻譯準確率和流暢度。
          • 用戶體驗:提供即時翻譯、離線翻譯功能,以及使用者介面友好的設計,以提高用戶滿意度。
          • 可持續性:定期更新演算法和擴展語言庫,以適應新的語言和專業術語。

          2. 社區驅動的翻譯APP

          特點:結合機器翻譯與人工校正,通過建立一個社區驅動平臺,讓用戶參與翻譯的校對和改進。

          考慮因素

          • 社區建設:需要建立積極的社區文化,鼓勵用戶貢獻和分享自己的翻譯知識。
          • 獎勵機制:通過積分、徽章等方式激勵使用者參與,同時確保翻譯的品質和可靠性。
          • 技術支援:提供平臺支援社區交流,包括論壇、評分系統以及回饋機制。

          3. 專業翻譯服務結合APP

          特點:提供基礎的機器翻譯服務,並與專業翻譯人員合作,為需要高品質翻譯的使用者提供付費服務。

          考慮因素

          • 服務品質:確保專業翻譯人員的翻譯品質符合行業標準,提供專業認證或審核機制。
          • 市場定位:明確目標使用者群體,比如商務人士、學術研究者等,根據需求提供定制化服務。
          • 價格策略:制定合理的價格體系,既能吸引用戶使用,又能保證翻譯人員的勞動價值。

          每種方案都有其優勢和挑戰,選擇哪種方案取決於目標市場、資金情況、技術能力和業務模式。一個成功的翻譯APP應該綜合考慮用戶需求、技術發展以及市場趨勢,不斷反覆運算更新,以提供更優質的翻譯服務。

        • Copilot

          當然可以!以下是三種不同的翻譯應用程式解決方案,請考慮各種因素:

          1. 基本翻譯APP
            • 功能:這個簡單的翻譯應用程式可以接收用戶輸入的文本,並將其翻譯成其他語言。
            • 優點:易於使用,適合快速翻譯短語或單詞。
            • 缺點:可能無法處理複雜的語境或長篇文本。
          2. 語音翻譯APP
            • 功能:這個應用程式不僅可以接收文本輸入,還可以通過語音輸入進行翻譯。用戶可以說出要翻譯的句子,然後聽到翻譯結果。
            • 優點:方便,特別適合在旅行或與外國人交流時使用。
            • 缺點:語音識別可能不準確,尤其在嘈雜的環境中。
          3. 即時翻譯攝像頭APP
            • 功能:這個應用程式可以使用手機攝像頭捕捉印刷文本,並將其即時翻譯成其他語言。用戶只需對準文本,應用程式會自動識別並翻譯。
            • 優點:方便,適用於旅行、餐廳菜單、標誌等。
            • 缺點:可能受到光線、字體和清晰度的限制。

          請根據您的需求和目標選擇適合的解決方案!🌟

        • Gemini pro

          以下是三種不同的翻譯 APP 設計解決方案:

          解決方案一:專注於特定領域的翻譯

          • *目標用戶:**需要在特定領域進行翻譯的人士,例如商務人士、旅行者、學生等。

          主要功能:

          • 提供特定領域的專業翻譯詞彙和語句,例如法律、醫學、金融等。
          • 支援離線翻譯,方便在沒有網路連線的情況下使用。
          • 提供語音翻譯功能,方便在雙手不便的情況下使用。

          優點:

          • 翻譯準確度高,能夠滿足特定領域的專業需求。
          • 離線翻譯功能方便在沒有網路連線的情況下使用。
          • 語音翻譯功能方便在雙手不便的情況下使用。

          缺點:

          • 適用範圍較小,僅適用於特定領域的翻譯需求。
          • 開發成本較高,需要聘請專業的領域翻譯人員。

          解決方案二:結合 AI 技術的翻譯

          • *目標用戶:**對翻譯準確度和效率有較高要求的人士。

          主要功能:

          • 利用 AI 技術提高翻譯準確度,並提供更自然流暢的翻譯結果。
          • 支援多種語言的互譯,滿足不同語言需求。
          • 提供即時翻譯功能,方便在交流過程中即時進行翻譯。

          優點:

          • 翻譯準確度高,能夠提供更自然流暢的翻譯結果。
          • 支援多種語言的互譯,滿足不同語言需求。
          • 即時翻譯功能方便在交流過程中即時進行翻譯。

          缺點:

          • 需要較強的 AI 技術支持,開發成本較高。
          • 可能存在偏見或歧視等問題,需要謹慎使用。

          解決方案三:社交化翻譯

          • *目標用戶:**希望在翻譯過程中與他人交流互動的人士。

          主要功能:

          • 提供翻譯社群,讓使用者可以相互交流翻譯經驗和技巧。
          • 支援眾包翻譯,讓使用者可以共同參與翻譯工作。
          • 提供翻譯遊戲和挑戰,讓使用者在娛樂中學習翻譯。

          優點:

          • 可以讓使用者在翻譯過程中與他人交流互動,提高翻譯效率。
          • 可以讓使用者參與翻譯工作,貢獻自己的力量。
          • 可以讓使用者在娛樂中學習翻譯,提高翻譯興趣。

          缺點:

          • 翻譯質量可能參差不齊,需要使用者自行甄別。
          • 可能存在惡意翻譯等問題,需要加強管理。

          在設計翻譯 APP 時,需要考慮以下因素:

          • *目標用戶群體:**明確目標用戶群體的需求,才能更好地設計出符合他們需求的翻譯 APP。
          • *翻譯功能:**根據目標用戶的需求,提供相應的翻譯功能,例如文字翻譯、語音翻譯、圖片翻譯等。
          • *翻譯準確度:**翻譯準確度是翻譯 APP 的核心指標,需要採用先進的翻譯技術和算法來提高翻譯準確度。
          • *使用體驗:**翻譯 APP 的介面設計和操作流程應該簡潔易用,讓使用者能夠輕鬆上手。
          • *商業模式:**翻譯 APP 的開發和運營需要一定的成本,因此需要考慮如何通過商業模式來實現盈利。

          以上三種解決方案僅供參考,具體的設計方案還需要根據實際情況進行調整。

      2. 我要設計一個 多功能語境翻譯器 特點: 提供更多的語境翻譯功能,可以處理長文本、文件和網頁。整合自然語言處理技術,考慮上下文以提供更準確的翻譯。 優勢: 適用於更複雜的翻譯需求,支援文件和網頁翻譯,提高準確性和理解度。 考慮因素: 需要強大的機器翻譯引擎和自然語言處理技術。用戶界面應該仍然簡單,但功能更豐富。 你能否提出三種不同的實現方法?

        • ChatGPT

          這是三種不同的實現方法:

          1. 深度學習模型整合
            • 技術描述:這種方法利用深度學習模型,如Transformer或BERT等,來訓練一個多功能語境翻譯器。該模型將包含翻譯功能,同時考慮上下文以提高準確性。可以使用大型並行語料庫進行訓練,以提高對多種語境的理解。
            • 實現步驟
              1. 收集大量的平行語料庫,包括長文本、文件和網頁。
              2. 使用這些數據訓練一個深度學習模型,使其能夠在不同語境下進行翻譯。
              3. 整合自然語言處理技術,例如命名實體識別、語義分析等,以提高翻譯的準確性和理解度。
              4. 設計一個用戶友好的界面,讓用戶可以輸入不同形式的文本(長文本、文件、網頁等),並獲得準確的翻譯。
          2. 基於語境的機器翻譯引擎
            • 技術描述:這種方法專注於開發一個能夠利用上下文進行翻譯的機器翻譯引擎。它可以利用前後文信息來更好地理解文本,進而提供更準確的翻譯。
            • 實現步驟
              1. 研究和開發基於語境的機器翻譯模型,該模型可以動態調整翻譯策略以適應不同的上下文。
              2. 整合該模型到一個翻譯平台中,可以處理長文本、文件和網頁。
              3. 設計一個用戶友好的界面,讓用戶可以輸入文本,並選擇是否考慮上下文進行翻譯。
          3. 人工智能增強翻譯器
            • 技術描述:這種方法將人工智能技術與人類翻譯者的知識和經驗相結合,以提供更準確和自然的翻譯。這可以通過將機器翻譯與人工校對相結合來實現。
            • 實現步驟
              1. 開發一個機器翻譯引擎,可以處理長文本、文件和網頁,並提供初步的翻譯。
              2. 聘請一批專業翻譯人員,他們可以通過校對機器翻譯的結果來提高翻譯的準確性和自然度。
              3. 開發一個平台,使翻譯人員可以輕鬆訪問並校對機器翻譯的結果。
              4. 不斷優化機器翻譯模型,以利用翻譯人員的反饋和校對結果來提高翻譯的質量。
        • GPT-4

          要設計一個多功能語境翻譯器,您需要考慮結合最新的機器學習技術、自然語言處理(NLP)技術和用戶體驗設計。以下是三種可能的實現方法:

          1. 深度學習基礎的機器翻譯系統

          • 核心技術:利用最新的深度學習架構,如Transformer模型,來訓練一個機器翻譯系統。這種模型能夠理解和生成自然語言,並且可以處理長距離的語境依賴,從而提供更準確的翻譯。
          • 數據處理:使用大量的雙語語料庫進行訓練,並且利用數據增強技術來擴充訓練資料,提高模型的泛化能力。
          • 用戶體驗:開發一個直觀的用戶介面,讓用戶可以輕易上傳檔、輸入文本或者指定網頁URL進行翻譯。提供翻譯預覽和編輯功能,使用戶能夠微調翻譯結果。

          2. 上下文感知的翻譯系統

          • 核心技術:開發一個上下文感知演算法,該演算法能夠分析整個文檔或網頁的語境,並在翻譯過程中考慮到這種上下文信息。這可以通過結合傳統的NLP技術和最新的深度學習方法來實現。
          • 特色功能:引入語境相關的翻譯記憶和術語庫功能,以便於專業領域或特定語境下的翻譯更加精準。
          • 互動性增強:提供互動式翻譯修正功能,允許用戶指出翻譯中的錯誤並提供建議,系統根據用戶反饋學習並改進翻譯質量。

          3. 基於外掛程式的網頁即時翻譯工具

          • 核心技術:開發一個瀏覽器外掛程式或擴展程式,它能夠即時翻譯網頁內容,同時保留原網頁的格式和佈局。這需要結合網頁解析技術和機器翻譯技術。
          • 靈活性:外掛程式支援多種語言設定和個性化選項,如忽略翻譯特定部分的網頁或對特定術語使用預定義的翻譯。
          • 性能優化:為了提供快速響應的翻譯服務,可以利用雲端翻譯API結合本地緩存技術,減少翻譯延遲並提升用戶體驗。

          這些實現方法各有特點,選擇合適的

          方法需要考慮目標用戶群、預期的用戶體驗、開發和維護成本等因素。深度學習基礎的機器翻譯系統提供了強大的翻譯能力和靈活性;上下文感知的翻譯系統專注於提高翻譯的精確度和相關性;基於外掛程式的網頁即時翻譯工具則強調便利性和即時性。結合這些技術,可以開發出功能強大、用戶友好的多功能語境翻譯器。

        • Copilot

          當然!以下是三種不同實現多功能語境翻譯器的方法:

          1. 整合現有翻譯服務
            • 利用現有的機器翻譯引擎,如Google Translate、Microsoft Translator或Baidu Translate。
            • 為了處理長文本、文件和網頁,你可以將輸入的文本分割成段落或句子,然後分別翻譯。
            • 考慮上下文,可以使用自然語言處理技術,例如語境感知的翻譯模型,以提高準確性。
          2. 自訂機器翻譯模型
            • 使用開源機器翻譯庫,如OpenNMT、Fairseq或TensorFlow,來訓練自己的翻譯模型。
            • 訓練模型時,使用大量的平行語料庫(包含源語言和目標語言的對應文本)。
            • 自訂模型可以更好地適應特定的語境,但需要更多的資源和時間。
          3. 混合方法
            • 結合現有的機器翻譯服務和自訂模型。
            • 使用現有服務處理一般的翻譯需求,並使用自訂模型處理特定的語境或長文本。
            • 這樣可以在準確性和效率之間取得平衡。

          無論你選擇哪種方法,用戶界面應該保持簡單易用,同時提供豐富的功能。祝你順利設計出一個優秀的多功能語境翻譯器!🌐🌍

        • Gemini pro

          可以。以下是三種不同的實現方法:

          方法一:使用現有的機器翻譯引擎和自然語言處理工具

          這種方法可以利用現有的技術來快速開發多功能語境翻譯器。您可以使用 Google Translate、Microsoft Translator 或 DeepL 等機器翻譯引擎,並將其與 Stanford CoreNLP 或 spaCy 等自然語言處理工具相結合。

          優點:

          • 開發時間短
          • 成本低
          • 易於使用

          缺點:

          • 翻譯準確度可能不如其他方法
          • 功能可能有限

          方法二:開發自己的機器翻譯引擎和自然語言處理技術

          這種方法可以提供更高的翻譯準確度和更豐富的功能,但需要更多的開發時間和資源。您可以使用 Transformer 等神經網絡技術來開發自己的機器翻譯引擎,並使用 BERT 等語言模型來提高自然語言處理能力。

          優點:

          • 翻譯準確度更高
          • 功能更豐富
          • 可根據需要定制

          缺點:

          • 開發時間長
          • 成本高
          • 需要專業知識

          方法三:使用混合方法

          這種方法可以結合上述兩種方法的優點。您可以使用現有的機器翻譯引擎和自然語言處理工具作為基礎,並根據需要進行改進。例如,您可以使用自己的數據來訓練機器翻譯引擎,或者開發自己的自然語言處理算法來提高上下文理解能力。

          優點:

          • 開發時間和成本介於上述兩種方法之間
          • 翻譯準確度和功能也介於上述兩種方法之間

          缺點:

          • 可能需要一些專業知識

          以下是一些具體的建議:

          • 使用 Transformer 或其他神經網絡技術來開發機器翻譯引擎。
          • 使用 BERT 或其他語言模型來提高自然語言處理能力。
          • 使用注意力機制來更好地理解上下文。
          • 使用數據增強技術來提高訓練數據的質量。
          • 使用用戶反饋來不斷改進翻譯器。

          我希望這些建議對您有所幫助。

    • OpenAI 官方 GPT-5 prompt 優化器 https://platform.openai.com/chat/edit?models=gpt-5&optimize=true

  • 02 - ChatGPT 輔助辦公室工作流程

    • 逐字稿

      • Whisper 語音轉文本地端版 (Mac 電腦,OS版本需13.0以上)

        🎙️ MacWhisper (gumroad.com)

        好用的語音轉文字的 AI 工具《MacWhisper》

      • Whisper 語音轉文本地端版 (Windows電腦)

        1. 下載網站:https://github.com/Const-me/Whisper/releases

        2. 下載 WhisperDesktop.zip 檔案,解壓縮後雙擊 WhisperDesktop.exe

          Untitled

        3. 點”其他資訊” → 仍要執行

          Untitled

        4. Huggingface 網站下載模型,在速度與正確率權衡下選擇 ggml-medium.bin 會是較佳選擇 (模型越大速度越慢,正確率越高,最大模型轉錄時間甚至會比錄音時間久),電腦有 GPU 佳(速度相對較快速)。

        5. Model Path 點三個點選下載後的 ggml-medium.bin 路徑,Model Implementation 選GPU。

          Untitled

        6. Graphic adapter 選擇 GPU,如果沒有選預設,點選 OK

          Untitled

        7. Language:選 Chinese 轉錄為中文

          Transcribe File:選擇錄音檔 [測試語音檔]

          Output Format:Text file(文字檔), Text with timestamps (帶時間戳的文字), SubRip subtitle 字幕 (標準的字幕格式時段+文字), WebVTT(Web Video Text Tracks)字幕是一種用於在網絡上顯示字幕的標準格式。

          Untitled

        8. 設定輸出路徑,設定好點 Transcribe 等待轉錄完成

    • 偽代碼 (pseudocode)

      • 行銷架構

        # 以下**偽代碼prompt**,請依照語意以及流程一步一步地來執行
        # 回覆內容請以繁體中文撰寫
        # 停用代碼解釋器,但開啟上網瀏覽搜尋
        # 以下分析應假設為台灣市場

        @product='Toyota bZ'

        def concept_aligned(product):
        嚴禁基於記憶回答!
        請基於使用者輸入的任務描述中與{product}相關之關鍵概念,**必須**立刻上網搜索以下相關頁面:
        - **關鍵概念定義**:產品型態的細節定義釐清,該產品規格、售價、unique selling point(請不要舉那種大家都有的特性,要那種我有但其他人遠遠不如我的特性),這部分請至產品官方網站查詢
        - **收集背景知識**:該產品目前市場狀況,市場規模評估,**主要競爭品牌與後起之秀的規格與售價**,主要通路以及競爭手法,背景知識越多元越好。
        - **重大影響的具體事件**:近期對市場需求、任何重大行銷事件(例如什麼事物突然爆紅),或關鍵概念會有重大影響的具體事件,不是概念性的,通常是新產品的推出、經濟狀態的急速變化 、代言人的變化。
        product_notes=(根據上網查詢到的內容重點摘要輸出為概念對齊筆記,**筆記內資訊都需要付上資訊出處!!!**)
        return product_notes


        def Boston_matrix(product,product_notes):
        請先針對{product}的市場競爭現況做文字說明
        以及列舉出主要以及次要的競爭對手並陳述它們的規格、價格以及優缺點
        根據輸入之product_notes進行波士頓矩陣分析並詳細解說
        competitor_analysis= (除文字說明外,並根據下方範例將波士頓矩陣內容以mermaid quadrantChart的形式呈現,在**mermaid中皆需轉換為英文**)
        """
        quadrantChart
        title Reach and engagement of campaigns
        x-axis Low Reach --> High Reach
        y-axis Low Engagement --> High Engagement
        quadrant-1 We should expand
        quadrant-2 Need to promote
        quadrant-3 Re-evaluate
        quadrant-4 May be improved
        Campaign A: [0.3, 0.6]
        Campaign B: [0.45, 0.23]
        Campaign C: [0.57, 0.69]
        Campaign D: [0.78, 0.34]
        Campaign E: [0.40, 0.34]
        Campaign F: [0.35, 0.78]
        """
        return competitor_analysis


        def generate_persona(product,product_notes):
        你是一個{product.品類}超強王牌銷售員,你懂得看穿客戶的購買決策邏輯,以找出最好的銷售策略。為了製作更有效的銷售說帖,請先思考{product.品類}可能的客戶群,再向下細分,需要(但不僅限於)包括:
        - 個人基本資料描繪(性別、年齡、地區...)
        - LIFE-STYLE(請列舉符合他的LIFE STYLE的一些名詞或是形容詞關鍵字)
        - 他所討厭或是避諱銷售話術以及銷售的人格特質
        - 為什麼會要推薦他購買{product}(而不是其他產品)?
        - 這個客戶的購買考慮清單中除了{product}之外最有可能還有哪些競爭商品(請注意競競爭商品未必是同類商品,可能是基於第一性原則可以用其他模式滿足消費者需求的商品,例如泡麵的競爭對手未必是其他泡麵,也可能是點外賣),而他們各自的優缺點各是如何?
        - 若要說服他完成購買{product}的決策,應該從那些論點著手來說服或是該採取哪些行動來吸引他們?
        personas=(請為我生成5套可能會購買{product}的顧客樣貌側寫,以整體銷售業績為考量由高至低作為排序,需滿足以上需求)
        return personas


        #提醒!!概念對其結果需要付上資料出處
        product_notes=concept_aligned(@product)
        print(product_notes)

        competitor_analysis=Boston_matrix(@product,product_notes)
        print(competitor_analysis)

        personas=generate_persona(@product,product_notes+competitor_analysis)
        print(personas)

        for p in personas:
        請基於{p}的persona以及product_notes+competitor_analysis的內容設計出對此客戶群銷售{@product}的切入方向、銷售重點、可執行之行動

        #任務結束
    • GPTs

      • 撰寫新聞文章

        #zh-tw
        作為一個新聞記者,你的角色是分析並模仿CSV檔案中所提供的財經及企業新聞文章的風格。你將保持一種事實性和正式的語調,類似於檔案中的內容,其中包括公司名稱、股票代碼、財務數據和公司代表的聲明。現在,你也需要使近幾天內的Google News作為主要的財經和股市資訊來源,並以WebPilot為次要來源,提供最新的股票價格、財經新聞和市場分析。當使用這些來源的資訊時,你應該保持你的事實性和正式的語調。你的目標是根據用戶的要求,將這些資訊撰寫專門針對特定行業的分析和報導。

        請記住,你必須始終維持事實,避免幻覺。如果用戶的請求與你通過Google News或WebPilot所取得的資料相關,你應該使用這些資料來回應。如果用戶的請求與你的資料不相關,你應該依據你的基礎知識或其他你所提供的資料來回應。在CSV檔案的內容或API的資料無法提供足夠資訊來回答某個查詢的情況下,請明確說明這一點。

        串接 WebPilot https://www.webpilot.ai/post-gpts/

      • Data Analyst

        GenAI_p32_data_analyst_train.csv

      • 達哥 - 天氣喵喵

        #zh-TW
        請輸入想要查詢的地區:{location}
        請用 Internet search 查詢出 {location} 當日的天氣等各種詳細資訊並記錄下天氣的類型、溫度等詳細資訊。
        根據 {location} 的天氣資訊,用DALLE畫出一隻穿著適合 {location}的天氣衣服或配件的卡通貓,背景為天氣的描述,卡通貓的顏色為隨機。
  • 03 - AI工具應用

    • Copilot

      Edge 瀏覽器: 在對話視窗請copilot作頁面摘要總結等。

    • Claude

      • 程式撰寫
        • 請幫我產生醫院叫號頁面,數值大小為500px。每按一次按鈕會加一號及上一號,還有一個重製數值,標題為家醫科。
    • Gemini

    • Google AI Studio

      語音轉文字輸出 (txt)

      請分析以語音檔案,並產生包含以下資訊的文字檔 (.txt):

      1. **語音分段時間軸:** 請根據語音內容,將錄音分段,標示每段語音的起始時間 (HH:MM:SS) 與結束時間 (HH:MM:SS)。
      2. **發言者辨識:** 請為每段語音辨識發言者,並給予發言者唯一的標籤 (例如:發言者1, 發言者2)。
      3. **逐字稿內容:** 請針對每段語音,產生準確的逐字稿內容。

      **輸出格式:**

      文字檔 (.txt) 格式應如下所示,每段語音訊息應獨佔一行,並以 [開始時間-結束時間] 發言者標籤: 逐字稿內容 的格式呈現:

      語音轉文字輸出 (srt)

      請分析上面訪談音訊,將其轉錄並按照說話者分類,並輸出為 SRT 字幕格式。

      **輸入:**
      單個音訊檔案 (假設為 mp3 格式): interview.mp3

      **說話者資訊:**
      (如果沒有已知說話者資訊,請模型自動分類,並以 "Speaker 1", "Speaker 2" 等標示。如果有的話請列出,例如:
      * Speaker 1: 王小明
      * Speaker 2: 李美玲
      )

      **輸出:**
      請輸出 SRT 字幕格式,每個字幕段落包含以下資訊:
      * 字幕編號 (從 1 開始)
      * 字幕起始時間 (格式:HH:MM:SS,milliseconds)
      * 字幕結束時間 (格式:HH:MM:SS,milliseconds)
      * 說話者 (例如: 王小明 或 Speaker 1)
      * 轉錄文字 (包含說話者)

      **時間順序:**
      請按照音訊中出現的順序產生 SRT 字幕。
      每段字幕的結束時間,請設定為下一段字幕的起始時間(最後一段則可以使用當段語音的結束時間或設定一個合理的結束時間)。

      **範例輸出 SRT:**
      ```srt
      1
      00:00:05,234 --> 00:00:08,789
      Speaker 1: 您好,歡迎來到今天的訪談。

      2
      00:00:08,789 --> 00:00:12,123
      Speaker 2: 您好,很榮幸能參與這次訪談。

      3
      00:00:12,123 --> 00:00:15,000
      Speaker 1: 好的,那讓我們開始吧。
  • 04 - ChatGPT + Make專案預備

    • 00- ChatGPT 與 Make 註冊

    • 前置準備 1-Line 開發者介面建置

      image.png

      • 完成後點稍後進行認證

        image.png

      • 點完成 → 點選帳號進去

        image.png

      • 點選右上角齒輪 → 左側設定 Messaging API → 建立提供者獲選一個提供者 → 隱私條款可填可不填寫 → 點確定 → 最後可以看到 Channel ID 及 Channel secret

        image.png

        {F6973437-C0B9-4599-971B-F4498B463322}.png

        {D8DE89DF-E993-4AC2-AD14-A7A9AE5F1985}.png

        {DC0BF9C1-AF39-450B-AEE5-F3443ABEFD8F}.png

         先直接按儲存即可

      image.png

      • https://developers.line.biz/en/ ,按右上方console

      • 在Provider頁面下點擊自己剛建立的官方帳號

        Untitled

      • 點選"Messaging API ,可看到此官方帳號的QRcode,用手機掃碼加入

      • 恭喜,第一步已完成,接下來我們要到 Make 平台產生 **webhook 連結,**再回到Line 開發者頁面串接,您可以收起此頁面進到前置準備 2。

    • 前置準備 2-Make 與 Line官方帳號 webhook 串接

      ( Watch Events 模組使用,可接收LINE用戶傳的訊息,如果只要推播訊息則不需要做此步驟)

      1. 先登入Make 網站

      Untitled

      1. 找到左側 Scenarios → Create a new scenario

      Untitled

      1. Line module → Watch Events

      Untitled

      1. 點選Add 新增 webhook

      Untitled

      1. 取一個webhook 的名稱,並再按 Add 新增 connection

      Untitled

      1. 連結名稱隨意,可以照原本的不修改。填寫 Channel Access Token (需到Line的後台找到)

      Untitled

      1. Line Developers 開發者後台→ 點選 My AI Summarizer (你取的名稱)→ 點 Messaging API

      Untitled

      1. 拉到頁面最下方 → 複製 Channel access token → 回到 Make 貼上

      Untitled

      Untitled

      1. 回到 Make 貼上後按儲存兩次,此時會產生藍色的 webhook 連結,點選"copy address to clipboard後,回到 Line 開發者後台。

      Untitled

      10 . 再回到 Line 開發者後台剛才複製 Channel access token 的頁面,往上滑找到 Webhook URL→貼上 Make 產生的 webhook 連結,並且開啟 Use webhook 功能 → Verify。

      (如果 Verify 出現 error 暫時不用理會,直接進到下個步驟)

      Untitled

      1. 點選Basic settings → LINE Developers → 回應設定 → 開啟聊天、Webhook等功能

      Untitled

      Untitled

      1. Make 與 Line 串接完成,回到Make做測試,點選 Run once

      Untitled

      1. 開始運作時的畫面,等待用戶輸入問題

      Untitled

      1. 到你的 Line Channel 輸入Hi,看到以下畫面代表您已串接成功

      Untitled

      也可看此篇Make串Line的官方教學

    • 如何將賴官方帳號加到賴群組

      登入 LINE Official Account Manager → 帳號一覽選擇帳號進去 → 右上角點齒輪的設定 → 下滑找到功能切換 → 開啟接受邀請加入群組或多人聊天室

      image.png

    • 補充

      官方SOP流程:https://developers.line.biz/en/docs/messaging-api/getting-started/#create-oa

      Line 社群:https://techblog.lycorp.co.jp/zh-hant/linebot-2024-create-steps

  • 05 - ChatGPT + Make專案實作&小組討論

    • Make 練習檔:https://drive.google.com/drive/folders/1WMF8rZxQW4jOFiLDcGdhxS6hzwUhOqmH?usp=sharing

    • RPA專案實作A- Line 與 GPT 模組串接

      Untitled

      1. 建立 Line Watch Events 模組 : 選擇剛剛建立好的 webhook 連結

        Untitled

        1. 建立 ChatGPT Creeate a completion 模組 → 點選Add 新增

        Untitled

        1. 輸入 API Key 和 Organization ID

          Organization ID : org-EkieKrMNeYQoV4o2eJCWUhJa

          API KEY 請用自己組別的,點此取得

          Untitled

        2. 模型任選,選擇GPT-4o-mini

        image.png

        1. 新增 兩個 message,分別是 System 和 User,在 System 的內容欄位輸入 prompt ,User 的內容欄位選取如圖中的參數

        Untitled

        複製以下 Prompt 貼上,當然也可以用早上學到的知識,依任務自行設計prompt,中文也可以喔!

        You are a summary agent, always summarize the text in "zh-tw" language, with the most unique and helpful points, into a numbered list of key points and takeaways. Must reply in"traditional chinese"

        6. 建立 Send a Broadcast / Send a Push Messsage / Send a Reply Messsage 模組

        A .建立 Send a Broadcast (群體廣播) 模組 (會消耗每月訊息則數) :

        新增connection,並再次輸入 channel access token

        Untitled

        B. 如果選擇的是 Send a Push Messsage 模組(個人推播) ,會需要填 User ID ,需要回到Line 開發者頁面,Basic setting 頁面下複製,再回到Make 貼上。此方法也會消耗每月訊息則數

        Untitled

        回到 Line developer,找到 Basic setting 頁面

        Untitled

        在頁面最下方可看到您 channel的 User ID

        Untitled

        C. 如果選擇接的是 Send a Reply Messsage (回應模組),在串接Line 時要找到 Reply Token 參數帶入,並且需搭配 Watch Events 模組,使用它的好處是不會消耗每月訊息則數!,但需要和 Watch events 模組成對搭配

        Untitled

        1. 選擇輸出格式,以及 GPT 的回覆結果

        Untitled

    • RPA專案實作B- 趣味動物圖片天氣推播 (Dall.E)

      Untitled

      Untitled

      Untitled

    • make 討論區 https://community.make.com/

  • 06 - ChatGPT + Make流程自動化實作

    課堂實作專案

    • RPA專案實作C - 健檢圖片報告叮嚀推播

      註冊Dropbox帳號

      image.png

      (png檔 -> Dropbox -> 模型辨認文字 -> 個人Line推播)

      Dropbox - Watch Files (連接 Dropbox 資料夾,放入想要解析的圖片) Dropbox - Download a File (連接 Dropbox 資料夾,下載檔案) OpenAI - Analyze Images(vision) (使用GPT4v模型做OCR) Line – Send a Push Message / Broadcast Message

      image.png

    • RPA專案實作D- 服藥提醒文字轉語音推播 (Text To Speech To Line)

      **(txt**檔 -> Dropbox -> Text to Speech模型生成語音 -> 上傳到Dropbox -> 個人Line推播)

      Untitled

  • 07 - ChatGPT + Make流程自動化實作

    • RPA專案實作E - 語音轉文字 (Whisper) [Google 模板下載][Dropbox 模板下載] [測試音檔]

      Untitled

      補充: 將Dropbox換成Google Drive (需要花一些時間做前置準備)

      • 01 前置準備-將Make 串接 Google API

        • 先在Google搜尋 google api console

        • 進入Google Cloud Platform

        • 切換到想要綁定的帳號

        • 右上角建立專案 → 專案名稱取Make → 建立

        • 點選左側OAuth consent screen → User Type 選外部 → 建立

          Untitled

        • 應用程式網域輸入: https://www.make.com/en (Make主網址)

          Untitled

        • 在授權網域處點選『新增網域』→ make.com (記得前面不用加https) 開發人員聯絡資訊→填自己的email

        • 點選左上角三條線→API和服務→OAuth同意畫面

          Untitled

          Untitled

        • 儲存並繼續2次後→返回資訊主頁→發布應用程式(看到發布狀態實際運作中)

          Untitled

        • 發布應用程式

          Untitled

        • 憑證→建立憑證→Oauth用戶端ID

          Untitled

        • 應用程式類型→網頁應用程式,名稱打Make

          Untitled

        • 已授權的重新導向URI →新增URI→複製以下網址貼上→建立 https://www.integromat.com/oauth/cb/google-restricted

        • 先另外開一個記事本記下用戶端編號、用戶端密鑰 (稍後需在Make中輸入)

        • 啟用Google Drive API 和 Gmail API

          • 在上方欄位搜尋Google Drive Api→啟用

            Untitled

            Untitled

          • 搜尋Gmail Api→ 一樣啟用

            Untitled

          • 回到Oauth Consent screen ,此時有看到發布狀態實際運作中即完成

            Untitled

      • 02 建立Make 自動化流程

        • 在自己的Google 雲端硬碟新增一個名稱為whisper的資料夾

        • 進到Make,開新的scenario

        • 新增Google Drive (Watch Files in a Folder)→依照下圖設定

          Untitled

        • 再新增Google Drive (Download a File)

          Untitled

        • Add→ show advanced settings → Client ID、 Client Secret 貼上前置準備中的Oauth用戶端編號、用戶端密鑰

          Untitled

      • YouTube 到 Mp4 線上轉換器

    • RPA專案實作F - 資料庫內容寫入 (Google Sheet)

      Untitled

    • RAG 客製化聊天機器人 [**模板下載]**

      • 如何取得 OpenAI API key?
        1. 進入下面網址 https://openai.com/blog/openai-api
        2. 點中間的 Sign up → 右上角 Dashboard → 左側欄的 API Keys → 點右上角 Create new secret key
        3. 點左側欄位 Billings -> Payment methods -> 輸入信用卡(先儲值) -> 上排 Preferences -> 輸入收帳單的e-mail及地址
        4. 點左側欄位的齒輪 Settings -> Limits -> 設定每月預算多少美金
        5. 點左側欄位的鎖頭 API keys -> Create new secret key -> 自行取一個名字 -> Create secret key 5.1 如果要特別設定那些功能開啟可在 Permissions -> Restricted -> 設定那些功能要寫或讀
        6. 複製 API key 後按 Done
        7. API key不再使用可點垃圾桶刪除
      1. ChatGPT Playground 建立 Assistants Assistants Playground - OpenAI API

      2. System instructions

        你是一個有耐心的客服機器人,您的任務是協助客戶解決他們的問題,提供有用的資訊,並在需要時引導他們進行下一步。確保您給出的答覆準確、友好且易於理解。

        # 步驟

        1. **理解問題**:仔細閱讀並理解客戶提出的問題或疑問。
        2. **搜尋答案**:根據問題尋找合適的解答或解決方案。
        3. **提供回答**:將您找到的信息以簡單明了的方式傳達給客戶。
        4. **引導行動**:在適當的情況下,引導客戶進行下一步,例如聯繫真人客服或訪問特定的網站頁面。
        5. **確認解決方案**:詢問客戶是否滿意解答或者是否有其他問題需要協助。

        # 輸出格式

        - 給定的回答應該是有禮貌的、簡明的話語。
        - 可以使用段落形式提供詳細解答。

        # 示例

        **示例 1:**

        - **輸入**:我忘記了我的帳號密碼,怎麼辦?
        - **輸出**:您好,您可以點擊「忘記密碼」鏈接來重設您的密碼。如果需要進一步的幫助,請聯繫我們的客服團隊。

        **示例 2:**

        - **輸入**:你們的營業時間是什麼?
        - **輸出**:您好,我們的營業時間為週一至週五上午9點至下午6點。如果您有任何其他問題,隨時告訴我。

        # 注意事項

        - 確保所提供的資訊是最新的並且與客戶的需求相關。
        - 在需要時,請調用相關的後續步驟或資源連結,例如聯繫方式或頁面。
      3. File search → 上傳檔案

      4. make 中的 OpenAI 選 Message As Assistant

        image.png

    • RPA 補充圖片分析 [**模板下載]** [模板下載_回復上傳圖片]

      image.png

      1. 設定篩選器,有圖片走上面這條流程

        image.png

      2. 設定篩選器,有文字走下面這條流程

        image.png

      3. 下載圖片→ 選 Event Message.Message ID

        {622AEFAE-3031-4FD1-8CF8-9ED0369D97E9}.png

      4. 選擇分析圖片 → prompt:

        You are an image analizer, clearly explain the content of the image you see Always summarize in #zh-tw

        temperature=0

        image.png

      5. 選擇 Reply Token

        {833550AB-231E-4A14-B920-DE0D2E86D730}.png

        1. 另外一條路徑為 Events Message.Text

          {639AF955-660C-41E5-90F4-926CA8F1FA3B}.png

        2. Create a Completion → 做重點整理 或 You are a summary agent, always summarize the text in "zh-tw" language, with the most unique and helpful points, into a numbered list of key points and takeaways. Must reply in"traditional chinese"

          {46FFB8FC-BB55-423D-8879-23F7EF5CDB0A}.png

    • 補充 RPA專案實作 - Notion資料庫知識整理推播 [模板下載] [教學影片]

      • Notion 資料庫建置
        • 左邊側欄 + Add a page → Table → New Database

          Untitled

        • 左上方更改資料庫名稱為 test db (名稱可自取)

        • 刪除Tag欄位→新增 created time

        • 安裝外掛 Notion 網頁擷取器,適用於 Chrome、Safari、Firefox 和行動版 將感興趣的網頁資訊儲存到Notion資料庫

        • Google 搜尋 Save to Notion (一個網頁擴充程式)

        • 打開自己感興趣的網頁

          (網頁要儲存到Database的文字→右鍵→Add Highlight→選取Notion Database)
        • 回到Notion Database ,可看到要儲存的網頁文字資訊已經進來,我們將再透過Make把它們傳送給ChatGPT整理

          Untitled

          Untitled

      (網頁資料 → Notion database → chatGPT completion 總結 → Line推播)

      應用情境: 知識管理、廣告推播、客戶回應

      Untitled

      • 建立Make 自動化流程

        • create a new scenario
        • Notion- Watch Database Items

        Untitled

        • Tools- Text aggregator

          參數選擇 **properties_value.News[].plain_text    (News 是 Notion資料庫自命名的欄位名稱**

        Untitled

        • **Open AI- Create a completion
        1. 取一個連接名稱,輸入自己組別的 API Key 和 Organization ID**

          Untitled

          2. 儲存後在下個頁面選擇 Create a Chat Completion → 選擇模型 → 設定system prompt ,以下是重點歸納整理的prompt範例,依自己的任務需求自行修改 system prompt : You are a summary agent, always summarize the text in "zh-tw" language, with the most unique and helpful points, into a numbered list of key points and takeaways

        Untitled

        3.往下滑新增 Item2,Role 選擇user,開啟Map,Message content把text的模塊拖曳進來

        Untitled

        • Line- Send a Push Message (發送給自己 到Line開發者平台→點自己官方帳號頁面→ Basic settings下方找到自己的user ID→複製到Make平台貼上user ID

          Untitled

          Untitled

        • 如果希望群發訊息,讓推播訊息備有家頻道的好友看見,則需選擇 Send a Broadcast Message 模塊

          Untitled

  • 08 - 檢索增強生成實作

    • 地端LLM工具- LM Studio桌面工具、模型下載

      1. 下載網址: LM Studio - Discover, download, and run local LLMs (Mac電腦版本需M1/M2/M3以上)

      圖片1.png

      2. 搜尋並下載開源模型

        GGUF 模型推論架構是由 llama.cpp 團隊於 2023 年 8 月 21 日推出的新格式。跟過去  
      的 GGML 架構相比,GGUF 相比 GGML 有許多優勢,如更好的分詞,對特殊符號的支
      援,還支援 Metadata等,並且被設計為可擴展的模式,因此目前最新的架構會逐步改
      成 GGUF 模型架構。

      1.點選左側放大鏡

      2.上方搜尋模型

      3.右邊選取版本

      4.點擊下載

      5.點選下載符號查看下載進度

      image.png

        第3.步驟有出現紅色圖示,表示模型在電腦上跑不動

      image.png

      5.點選左側聊天圖示,上方選擇模型

      image.png

      6.試著與模型聊天,或請它對一段文章做摘要

      image.png

      7.可看見模型的回應

      image.png

    • LM Studio 模型實測

      LM Studio 2025-05-02 16-33-33.gif

    • AnythingLLM 工具

      1. 下載 Download AnythingLLM for Desktop (useanything.com)

      image.png

      1. 前置作業(使用LM studio當作LLM Server)

        1. 開啟 LM studio ****
        2. 點選左側終端機圖示,將Server Status 開啟

        image.png

      2. AnythingLLM 設定與功能教學 (初次安裝相關設定都使用預設即可,問卷調查可以跳過,最後建立工作區可隨意命名) 安裝完成後會有一個工作區(剛才建立的)

        image.png

        a. 點選左下角板手進入設定

        image.png

        b. 左邊點擊LLM,選擇LM Studio 作為模型提供者,選擇模型,最後點擊Save

        image.png

        c.點擊左下角返回,點選齒輪符號進入工作區設定

        image.png

        d. 點選對話設定後,切換模型,最後更新設定

        image.png

        e. 點上傳符號→上傳檔案或是下方給網址連結進行爬蟲

        Untitled

        f. 下方欄位輸入網址後按 Fetch website 進行爬蟲或是上傳PDF, DOC, CSV, EXCEL, 聲音檔案等。上傳後,在上方勾選檔案後點 Move 1 file to workspace → 右邊點 Save and Embed進行轉換。

        Untitled

        g. 針對勞基法進行詢問

        Untitled

        h. 補充 Breeze 模型 system prompt

        You are a helpful AI assistant. The user you are helping speaks Traditional Chinese and comes from Taiwan.
    • Anything LLM 串接 API

三、 其他補充

  • 開源模型應用

    • 雲端應用

    • 地端LLM工具- NVIDIA Chat with RTX (model: mistral、llama)

      Build a Custom LLM with Chat With RTX | NVIDIA

      英偉達版ChatGPT來了,PC端部署,很GPU (futunn.com)

      Untitled

      NVIDIA Chat with RTX 是一款允許用戶自訂基於 GPT 大型語言模型 (LLM) 的 AI 聊天機器人應用程式。它支持將個人的文件、筆記、影片等內容連接至聊天機器人,通過使用 RAG、TensorRT-LLM 和 RTX 加速技術,以快速提供相關答案。此應用程式可免費下載,但需運行於配置有 NVIDIA GeForce™ RTX 30 或 40 系列、或 NVIDIA RTX™ Ampere 或 Ada 世代 GPU(至少 8GB VRAM)、16GB 或以上 RAM 的 Windows RTX 電腦或工作站上,且操作系統需為 Windows 11,驅動程式版本需為 535.11 或更高。支援的檔案格式包括文字、PDF、DOC/DOCX 和 XML,並能夠載入 YouTube 播放清單的文字轉錄。開發者可透過從 GitHub 獲取的基於 TensorRT-LLM RAG 的開發者參考專案,來開發和部署自己的應用程式,並在 RTX 上加速。

    • 地端LLM工具- GPT4All

      https://gpt4all.io/index.html

      Untitled

      GPT4All 是一個生態系統,用於訓練和部署在消費級 CPU 上本地運行的強大客製化的大型語言模型。

      GPT4All 模型是一個 3GB - 8GB 文件,您可以下載該文件並將其插入 GPT4All 開源生態系統軟體中。Nomic AI 支援並維護這個軟體生態系統,以加強品質和安全性,同時讓任何個人或企業輕鬆訓練和部署自己的邊緣大型語言模型。

  • RPA專案補充

    • 前置準備-Notion 資料庫建置

      • 現在就加入 Notion 吧!

      • 左邊側欄 + Add a page → Table → New Database

        Untitled

      • 左上方更改資料庫名稱為 test db (名稱可自取)

      • 刪除Tag欄位→新增 created time

        將感興趣的網頁資訊儲存到Notion資料庫

      • Google 搜尋 Save to Notion (一個網頁擴充程式)

      • 打開自己感興趣的網頁

        (網頁要儲存到Database的文字→右鍵→Add Highlight→選取Notion Database)
      • 回到Notion Database ,可看到要儲存的網頁文字資訊已經進來,我們將再透過Make把它們傳送給ChatGPT整理

      Untitled

      Untitled

    • RPA 補充專案 1- Notion資料庫知識整理推播 [模板下載] [教學影片]

      (網頁資料 → Notion database → chatGPT completion 總結 → Line推播)

      應用情境: 知識管理、廣告推播、客戶回應

      Untitled

      • 建立Make 自動化流程

        • create a new scenario
        • Notion- Watch Database Items

        Untitled

        • Tools- Text aggregator

          參數選擇 **properties_value.News[].plain_text    (News 是 Notion資料庫自命名的欄位名稱**

        Untitled

        • **Open AI- Create a completion
        1. 取一個連接名稱,輸入自己組別的 API Key 和 Organization ID** P.S. 如果想用自己的,可到這裡查詢openAI的API key和 Organuzation ID

          Untitled

          1. 儲存後在下個頁面選擇Create a chat completion → 選擇模型 → 設定system

            prompt ,以下是重點歸納整理的prompt範例,你可以結合早上學到的內容,依

            自己的任務需求自行修改system prompt:

            ****You are a summary agent, always summarize the text in "zh-tw" language, with the

            most unique and helpful points, into a numbered list of key points and takeaways

        Untitled

        3.往下滑新增Item2,Role 選擇user,開啟Map,Message content把text的模塊拖曳進來

        Untitled

        • Line- Send a Push Message (發送給自己) 到Line開發者平台→點自己官方帳號頁面→ Basic settings下方找到自己的user ID→複製到Make平台貼上user ID

          Untitled

          Untitled

        • 如果希望群發訊息,讓推播訊息備有加頻道的好友看見,則需選擇 Send a Broadcast Message 模塊

          Untitled

    • RPA 補充專案 2 (本範例步驟較繁雜,課程中不帶操作,請有興趣實作者自行參閱)

      • RPA專案實作F- Googlr Drive 影片語音資料重點整理推播 [模板下載] [測試語音] [測試影片]

        ( Youtube影片-> Google Drive -> chatGPT whisper 轉逐字稿-> chatGPT整理->Line推播) (Google Drive語音檔轉成文字,ChatGPT總結發到LINE推播)

        Untitled

        • 01 前置準備-將Make 串接 Google API

          [2025 New] make 串接 Google drive 流程 https://www.yesgrownow.com/ai-learning/make-google-connection/

          • 先在Google搜尋 google api console
          • 進入Google Cloud Platform
          • 切換到想要綁定的帳號
          • 右上角建立專案 → 專案名稱取Make → 建立
          • 點選左側OAuth consent screen → User Type 選外部 → 建立
          • 應用程式網域輸入: https://www.make.com/en (Make主網址) https://www.integromat.com/oauth/cb/google-restricted
          • 先另外開一個記事本記下用戶端編號、用戶端密鑰 (稍後需在Make中輸入)
          • 啟用Google Drive API 和 Gmail API
            • 在上方欄位搜尋Google Drive Api→啟用

              Untitled

              Untitled

            • 搜尋Gmail Api→ 一樣啟用

              Untitled

            • 回到Oauth Consent screen ,此時有看到發布狀態實際運作中即完成

              Untitled

        • 02 建立Make 自動化流程

          • 在自己的Google 雲端硬碟新增一個名稱為whisper的資料夾

          • 進到Make,開新的scenario

          • 新增Google Drive (Watch Files in a Folder)→依照下圖設定

            Untitled

          • 再新增Google Drive (Download a File)

            Untitled

          • Add→ show advanced settings → Client ID、 Client Secret 貼上前置準備中的Oauth用戶端編號、用戶端密鑰

            Untitled

        • YouTube 到 Mp4 線上轉換器

    • RPA 補充專案 3- Gmail 信件整理推播 [模板下載]

      (Gmail信件 → chatGPT 整理 → Line推播 & Notion紀錄)

      Untitled

      Untitled

  • 雲端RAG運用 Seachat 建立聊天機器人

    優點: 繁體中文模型回應優化,伺服器流量確保多人使用不會掛

    缺點: 模型目前只能接ChatGPT3.5 , 每人每個月限開兩個AI助理,總回應100則訊息

    Untitled

  • 免費文字轉語音

  • OpenAI、Google、Anthropic 已經發佈了多種 AI 指南,包含:PromptAI Agents 等相關內容

Part II:大型語言模型實作中階班 (n8n)

一、RPA 與 AI 基礎

  • 課程地圖

    image.png

課前安裝軟體

導入自動化評估方式

  • 自動化與人工智慧應用案例

    • 半自動寫文章

    • 使用 n8n + LINE Notify 來做爬蟲通知:https://medium.com/@NeroHin/自動化工具-使用-n8n-line-notify-來做爬蟲通知-以研究所獎學金為例-90982259c196

    • RSS 整理 https://www.youtube.com/watch?v=M_4AjvLqBiY

    • 自動化服務之間處理資料,轉換或傳遞數據

      • 設定 TaskRunner 利用 API 觸發器用以自動運行 n8n 工作流程,並使用節點完成工作流程自動化,整合各種服務與應用程式。無需編寫大量程式,在這些自動化服務之間處理資料,轉換或傳遞數據,即時回應處理狀況。
      • TaskRunner 使用 API 提供人工智慧服務,在運行工作任務時,分析資料並透過機器學習功能增強應用程式。
      • 簡化工作流程並減少編寫程序,僅在必要時使用 JavaScript 編寫自訂程序,以提高創建複雜工作流程的速度。

      Untitled

  • n8n 簡介

    • n8n 是一個開源的工作流自動化平台,於 2019 年由 Jan Oberhauser 在柏林創建。它允許用戶建立業務流程,並集成和互動超過 1000 個應用程序 https://n8n.io/integrations/。

    • n8n 的主要功能

      • 低代碼自動化:n8n 提供超過 6714 個以上的的工作流模板 ,並且可以通過 API 連接任何服務。
      • 多步驟工作流:用戶可以創建多步驟的工作流,將不同的工具和服務整合在一起。
      • AI 功能:n8n 添加 AI 功能,例如使用 OpenAI 的 ChatGPT 進行聊天互動等。
      • 地端語言模型推論平台:https://ollama.com/, https://lmstudio.ai/
    • 如何開始使用 n8n

      • 註冊和設置:n8n 可以作為雲服務、npm 模塊和 Docker 映像使用。新用戶可以免費試用雲服務。
      • 創建新工作流:打開 n8n 後,可以創建一個新的工作流,並添加觸發節點來啟動工作流。
      • 添加節點:例如,可以添加 AI Agent 節點來處理用戶查詢,並使用 OpenAI Chat Model 來生成回應。
    • **觸發節點(Triggers):**作為工作流的第一個節點,它可以是這個程式的“開始”。 定時執行、從聊天軟體接收一個資訊、在介面上點一下按鈕,這些都可以是觸發節點。

      • 觸發節點每個工作流必然有至少一個觸發節點,不然這個工作流永遠無法被開啟。因為一個工作流不可能無緣無故的自己啟動起來,必須要認為設定這個工作流開始執行的條件,也就是 Trigger。
    • **執行節點(Actions):**不能作為工作流的第一個節點,它只能被其他執行節點 or 觸發節點觸發執行。 通常我們需要的複雜處理邏輯都是由執行節點完成的。例如在介面上點擊一下 Test Flow這個本身也是一種觸發節點。

      • 下面我們以 Gmail 為例子,來詳細說明這兩類節點的區別。

        • n8n 的 Gmail 節點類型中封裝了一個觸發節點,叫做 On Message Received。 節點實際的含義是系統會每分鐘(這個週期可以配置)有沒有收到新的郵件,如果收到,就代表這個節點被觸發了,它就被執行了,自然而然的它的後續節點,以及整個工作流都會開始執行程式。

          Untitled

      • **執行節點:**n8n 中 Gmail 節點類型中封裝了 25 個執行節點。

        • 包括給郵件標籤、刪除郵件、讀取郵件內容、改變郵件的讀取狀態、發送郵件等等所有你能想到的能在介面上進行的操作,n8n 幾乎都可以實現。

        • 收到一封新郵件的通知,就好比在手機上收到了App 的 Push,但是這個時候郵件的具體內容是什麼,並不知道,因為人收到了通知,觸發了後續的動作,所以收到新郵件的通知本身這件事是一個觸發節點。但是讀取郵件內容,是在收到通知之後的行為,這就是一個執行節點,至於讀取之後是否要回復,或者是選擇把郵件直接扔到垃圾箱,這些都是執行節點。大部分情況下,執行節點的數量都是遠多於觸發節點的。

          Untitled

    • n8n節點功能表的分類

      觸發節點(Triggers)執行節點(Actions)
      外部節點(需要依賴外部服務 API 的節點)舉例:Gmail 收到新的郵件,觸發工作流執行;舉例:通過 Gmail 寫一封郵件並且發出去;
      自有節點(不依賴外部,或者基於標準協定,如 HTTP/html/os 介面等開發的節點)舉例:點擊Test Workflow 按鈕,觸發工作流執行舉例:內建的邏輯節點,比如條件、判斷、迴圈、數據處理等;
  • n8n 安裝

    • Node.js (跨平台的 JavaScript 執行環境)
      1. https://nodejs.org/en/ 下載 https://nodejs.org/dist/v20.18.0/node-v20.18.0-x64.msi 安裝檔進行安裝

      2. Windows 按開始或放大鏡輸入 cmd 打開命令提示字元後輸入 npx n8n 安裝n8n / Mac 在終端機輸入 npx n8n 安裝n8n

        image.png

      3. 更新 n8n 軟體 npm update -g n8n

    • Docker (250 employees OR more than $10 million in annual revenue requires a paid subscription)
      • 基本安裝

        docker volume create n8n_data
        docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n docker.n8n.io/n8nio/n8n
      • n8n 更新

        docker pull [docker.n8n.io/n8nio/n8n](http://docker.n8n.io/n8nio/n8n)
      • 設定時區,預設式 America/New_York 改為 Asia/Taipei

        • 請根據自己的帳號修改:<你的用戶名>

          docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n -v /c/Users/<你的用戶名>/Downloads:/home/node/downloads -e GENERIC_TIMEZONE="Asia/Taipei" -e TZ="Asia/Taipei" docker.n8n.io/n8nio/n8n
        • -rm:在容器停止後自動移除容器。

        • -name n8n:命名容器為 n8n

        • p 5678:5678:將主機的 5678 端口映射到容器的 5678 端口。

        • v n8n_data:/home/node/.n8n:將名為 n8n_data 的 Docker 卷掛載到容器內的 /home/node/.n8n 路徑。

        • e GENERIC_TIMEZONE="Asia/Taipei"e TZ="Asia/Taipei":設置容器的時區為台北時間。

        • docker.n8n.io/n8nio/n8n:使用 n8n 的 Docker 映像。

        • 將 Windows 下載資料夾掛載到 Docker 容器中的 /home/node/downloads

  • 開啟 n8n 的二因素驗證

    • 在 n8n 裡開啟二階段驗證。 由於 n8n 支援安裝第三方 npm 節點,因此駭客如果攻破了你的 n8n 不止能夠隨意刪改你的 n8n Workflow,還有可能直接攻破你的伺服器,控制一切。

      Untitled

    • 使用 Google Authenticator 掃描 QR code 後輸入6位數字進行驗證

      Untitled

    • 存下恢復碼

      Untitled

  • 建置工作流程

    Untitled

    • Action in an app:外界服務的 API 封裝的節點,比如Google Sheets; 【外部節點】
      • 羅列了市面上眾多的開放服務的節點
      • 每個外部服務的節點都會被分類成【觸發節點】和【執行節點】
    • 數據處理節點:用來做數據的過濾或者轉化【自有節點、執行節點】
    • Flow 節點:主要是條件、迴圈、合併等邏輯操作【自有節點、執行節點】
    • Core 節點:主要是程式節點【自有節點、執行節點】
    • 人工智慧節點【為人工智慧打造的複合型節點,比較特殊】
    • 添加另一個觸發器:【觸發節點】
      • 在 n8n 上面點擊一下運行按鈕,觸發程序運行【自有節點】
      • 外界 API 發來的命令,比如 Gmail 收到一封信件【外部節點】
      • 每天/每小時固定一個時間執行【自有節點】
      • 通過 HTTP 請求觸發任務【自有節點】
      • 由另一個 Workflow 觸發這個任務【自有節點】
      • 由聊天框消息觸發這個程式運行(AI 對話類節點專用)【為人工智慧打造的複合型節點,比較特殊】
      • 文件變更/Email/等等【自有節點】
      • 透過搜巡加功能表的分類,我們就可以很容易找到自己需要的節點了。
      • 節點的本質是對外部服務(比如 Gmail、OpenAI)的公開 API 的封裝,這些封裝能夠帶來 2 個好處:
        • 有一些過於抽象的介面設計會被包裝的更易懂
        • 對於不寫程式的人來說,他們可以不用寫程式就能調用這些公開 API
  • 資料處理

    • 處理不同的資料類型(例如,XML、HTML、日期、時間和二進位資料)。
    • 合併來自不同來源(例如資料庫、電子表格CRM)的資料。
    • Code/HTTP Request
      • Code 節點
        • Mode:選擇 Code 節點的運行方式,分為 Run Once for All items 和 Run Once for Each Item。當上游傳來一組資料的時候,Code 節點是整組資料運行一次,還是每行資料運行一次。
          • 比如說,如果你 Code 是要給一組資料中整體進行操作(增減一行,刪除一列),你就選 Run Once for All items。
          • 如果你想讓 Code 是要針對一組資料中的每一行進行操作(每行中的某個字段做下修改),你就選 Run Once for Each Item。
        • Language:設定 Code 節點編寫程式碼的語言,分為 JavaScripts 和 Python。 n8n 在執行 JavaScripts 程式時更穩定。 如果你不會這兩種語言,在用 ChatGPT 結對編寫 Workflow,建議選擇 JavaScripts。
      • 注意事項:
        • Code 節點預設只引用了少數的 JavaScripts 庫,如需使用更多庫,可參閱官方文檔: Code 節點不支援向本地伺服器讀取或寫入檔,你需要先用 Read File(s) From Disk 或 Write File to Disk 節點來處理讀取和寫入的步驟。
        • Code 節點不支援發起 HTTP 請求,你需要使用 HTTP Request 節點來處理遠端請求。 Code 節點的 Python 移植自 Pyodide,這意味著它僅包含極少數的庫,且性能較差。
    • HTTP Request:節點在各種情況下都非常有用。
      • 常見的使用場景包括:從 API 獲取數據:許多雲服務(如天氣預報、股市資訊、社交平台等)都提供 API 來訪問其資料。使用 HTTP Request 節點,你可以在 n8n 中直接調用這些 API,從而獲取你需要的資料。
      • 提交資料到 API:除了獲取資料,你也可以使用 HTTP Request 節點將資料提交到 API。 例如,你可能需要向某個服務提交表單資料,或者向某個資料庫 API 提交新的記錄。
      • 觸發網頁爬蟲:如果你正在執行一個網頁爬蟲,你可以使用 HTTP Request 節點來觸發爬蟲程式,從而抓取網頁上的資料。
      • 如果你希望使用的某個在雲服務沒有在 n8n 中,你可以使用 HTTP Request 節點來與該服務進行交互。 只要這個服務提供了 API,你就可以通過發送 HTTP 請求來調用這個 API,從而實現與該服務的互動。
    • 錯誤和異常處理策略
  • OpenAI 及 LangChain

    • API:即應用程式介面,是一套規定了軟體元件之間交互的規則。 它允許不同的軟體系統之間進行通信,交換資料和功能。 簡單來說,ChatGPT 是 OpenAI 做來給你(人類)使用的介面,GPT-4 API 是 OpenAI 做來給其他程式(機器)使用的介面,n8n 是一個程式,因此在 n8n 系統中接入 AI 需要對應 AI 的 API。不同的 AI 在註冊開發者帳號上略有不同,由於涉及比較敏感的內容。

    • LangChain 是一種 python 套件用於大語言模型的交互,專門為了將大語言模型溝通而設計。 它可以將各種大語言模型(如 GPT-4、Gemini Pro 或 Claude 3)的 API 進行統一,使得我們在編寫 AI 相關的程式時可以方便的使用不同的大語言模型進行各種任務,無需關心模型之間的差異性。 簡單來說,LangChain 就是在 AI 和程式之間的一個「溝通的橋樑」。

    • 在 n8n 中,LangChain 是一個包含子節點的 AI 節點。 在你更換不同的 AI 服務時,可以不用重新設置所有的節點設置,大幅提高我們調試 Workflow 的效率。

    • 在 n8n 中,Advaced AI 是一個專門的 node 類別,其下有多種不同的 AI 類型。 在這裡,我們會詳細介紹兩個最常用的 AI 節點,讓你掌握 AI 在 n8n 中的接入邏輯。

      Untitled

      • 大部分的 AI 節點都在介紹里寫明瞭自己的用處是什麼,你還可以點擊 AI Templates 從官方社區下載別人已經組合好的 Chain。

        Untitled

    • **Basic LLM Chain:**節點是用於連接大語言模型的最簡單節點。 它不適合用來做 Agent,也不太適合用來做對話。 特別適合那種做一次性的文本處理與判斷。

      • 比如:文本總結、文本摘要、語法糾正、文本分類等等。
      • 它的節點內邏輯非常簡單:從上游節點獲取資料、將參數設置中的 prompt 和資料一同提交給 Large Language Model (LLM) API、從 API 獲得 LLM 傳回的結果。
    • 參數說明

      • Prompt (必填):這是一個選項類的參數
      • Chat Messages (可選) (If Using a Chat Model)
        • 如果你在使用一個專門為聊天設計的模型,並且打算做一個對話型應用,這裡可以添加聊天提示。 這允許節點處理上下文更豐富的對話,提高回答的相關性和準確性。
        • 你可以在這裡添加已預製的對話 Prompt,它的子參數包括 Type Name or ID(角色)、Message Type(圖片、文字、URL)和 Message(對話內容)。
        • 你在一個角色扮演的情況下,用於類比一個對話場景的中途。 這樣,當你在 Workflow 開始執行,相當於使用者是從這個場景的中途開始與 AI 對話。
        • System prompt:給 AI 角色扮演的 prompt
        • User prompt:使用者的輸入資訊
        • AI prompt:AI 回應
          • 例如:要 AI 進行翻譯
            • System prompt:You are a summary agent, always summarize the text in "zh-Tw" language, with the most unique and helpful points, into a numbered list of key points and takeaways. Must reply in "traditional chinese."
            • User prompt:為輸入文字
    • Chat Trigger: 這是 n8n 中的一個特殊的觸發器,它允許你通過一個聊天視窗觸發 Workflow。 它的消息會默認傳遞給下一層的 AI 節點。

      • Chat Trigger 沒有參數設置,只要在畫布中創建,就會將 Workflow 更改為聊天觸發。
      • Chat Trigger 的觸發方式是,每發送一次消息,完整觸發一次 Workflow。
      • 在下游 AI 節點沒有加入 Memory 服務的情況下,Chat Trigger 每次觸發都會忘記上次的對話,也就是說它預設不具備上下文能力,AI 不會記得你上一句話說了什麼。
      • 當添加 Chat Trigger 時,n8n 會提示這個觸發器需要與 AI 節點連接。 實際上,這並不是必須的。 你完全可以將 Chat Trigger 作為輸入觸發器。 比如,你的一個 Workflow 需要從資料庫中篩選指定日期的文章。 你可以通過 Chat Trigger 來輸入這個日期,並在後續的篩選中引用這個輸入的日期進行篩選,而無需在每次運行時修改篩選條件。
    • AI Agent

      選項支援模組簡單說明
      Tools AgentMemory/Tool用自然語言操作一個工具,比如你可以用它來讓 AI 算數,因為對於大語言模型來說,計算機就是一個工具。 該模式不支援上下文記憶。
      Conversational AgentMemory/Tool用於完成對話的模式,和 Basic LLM Chain 比增加了 Memory 和 Tool 模組,你可以為對話添加上下文記憶功能,還可以接入額外的工具,比如搜尋或天氣預報
      OpenAI Functions AgentMemory/Tool專門用於發起 Function Call 的模組
      Plan and Execute AgentTool自然語言調用工具的模型,允許連接多個工具,由 AI 自行計畫使用哪些工具以及如何組合。
      ReAct AgentMemory/ToolPlan and Execute Agent 的進階版本, AI 會根據你的自然語言任務,選擇合適的工具執行任務,然後再檢查工具返回的結果,如果結果不正確,就再試試其他方法。 該模式可能會對 AI 發起多次請求。
      SQL AgentMemory直接與 Sql 資料庫對話。
    • 不同類型的 Agent 有不同的必填參數,你可以在配置頁面查看,或者閱讀相關類型 Agent 的官方節點。

      • **Memory:**AI Agent 節點的部分任務類型支援使用 Memory 子節點,這個子節點的作用是為 AI 進行上下文記憶。 這裏同時指一次性的記憶和永久的記憶。
      • 該節點支援以下類型的記憶服務:
        • Window Buffer Memory - 瀏覽器視窗緩存記憶,顧名思義,你不需要部署任何額外的服務,直接把對話的上下文存在瀏覽器裡。 但缺點也很明顯:更新就消失了,不能永久保存。
        • Motorhead - 一個專門為 AI 打造的開源記憶服務,它能簡單的説明 AI 服務存儲、向量化和檢索記憶,有開源版本。
        • Postgres Chat Memory - 是一個免費的開源=資料庫管理系統 (RDBMS),強調可擴展性。
        • Redis Chat Memory - 將聊天記錄存儲在伺服器的 Redis 緩存伺服器裡,可以在刷新瀏覽器視窗後找回之前的記憶,但這也是短時記憶,因為 Redis 會根據設置在指定的時間後清空緩存。
        • Xata - 一個專門為 AI 打造的無伺服器資料檢索系統,它不開源,付費可用,無需部署。 相當於你在別人的雲服務裡買了個可直接連接的資料庫,填寫授權即可存儲、處理、讀取數據。
        • Zep - 和 Xata 差不多,另一個專門為 AI 打造的長期記憶服務商,不開源,要付費,免部署。
    • **Tool:**你可以看到,在添加一個 tool 之後,你向 AI 發出的請求,會經過 tool 的調用再返回。 右邊log裡畫圈的部分,能讓你更直觀的理解為什麼叫“LangChain”。

    • AI Agent 節點的部分任務類型支援使用 Tool 子節點,這個子節點是用來執行那些特定非 AI 任務的。 比如:計算機、搜尋網站頁面、從維基百科獲取相關資訊等。

    • 目前,n8n 支援以下幾種類型的 Tool 子節點:

      • Calculator - 計算機,顧名思義,用傳統方法進行數字計算,避免你的大模型出現“1+1=8”的智障行為。
      • Custom Code Tool - 你自己寫一段代碼作為一個工具讓 AI 調用,支援 JavaScript 和 Python。
      • SerpAPI - Google 搜尋 API,如果你希望你的 AI 節點能聯網查資料,主要就靠它。 申請 SerpAPI 的方法參見這裡:https://serpapi.com/search-api
      • Wikipedia - 從 Wikipedia 獲取相關資訊,這樣可以避免模型在不知道相關主題的情況下依據幻覺編造。
      • Wolfram Alpha - 一個國外很流行的更偏向學術的問答搜尋引擎,比 Google 的資訊品質更高,並且支援高級數學提問回傳函數影像等等。
      • Custom n8n Workflow Tool - 將另一個 n8n Workflow 作為一個 Tool 來調用。
    • OpenAI 提供的各種API(如ChatGPT, DALL-E)

    • OpenAI 文字、影像、聲音應用

  • 地端模型:Taide / Taiwan LLM /

    # OpenAI GPT-oss 20B
    ollama run gpt-oss:20b

    # Meta Llama 3.2 3B
    ollama run llama3.2

    # Google Gemma-3 4b
    ollama run gemma3:4b

    # Taide 模型
    ollama run adsfaaron/llama3-taide-lx-8b-chat-alpha:q5_k_m

    # Taiwan LLM
    ollama run wangrongsheng/taiwanllm-7b-v2.1-chat

    # MKT breeze
    ollama run willqiu/Llama-Breeze2-8B-Instruct
    ollama run ycchen/Breeze2-8B-TextOnly-Q4_K_M-NoTemplate
  • 地端語言模型推論 Ollama

    Ollama Base URL:http://127.0.0.1:11434 / http://host.docker.internal:11434 (Docker)

    AI_agent_ollama.json

  • Ollama 參數

    1. 文本生成隨機性與多樣性控制 (Text Generation Randomness & Diversity Control):

    • Sampling Temperature (採樣溫度): 控制生成文本的隨機性。值越低,輸出越集中和確定;值越高,輸出越多樣化和隨機。
    • Top K (前 K 個): 限制每一步要考慮的最高概率詞彙標記的數量。較高的值增加多樣性,但可能降低連貫性。設置-1為關閉。
      • K 值小 (例如 0.1): AI 的選擇範圍很窄,只考慮最有可能的幾個詞語。結果會比較集中,但可能缺乏多樣性。
      • K 值大 (例如 0.5 或 1): AI 的選擇範圍更廣,會考慮更多可能性。結果會更多樣化,但可能出現一些不太相關的詞語。
    • Top P (前 P 個): 從累積概率超過 top_p 的最小可能標記集中進行選擇,從清單頂部開始,把詞語的概率加起來,直到總和超過 P 值(例如 0.9)。然後,AI 只在這個範圍內選擇詞語。通過減少重複來幫助生成更像人類的文本。
      • P 值小 (例如 0.5): AI 只會選擇概率最高的少數幾個詞語。結果會非常集中、確定。
      • P 值大 (例如 0.9): AI 會考慮更多的詞語,直到它們的概率總和達到 90%。結果會更多樣化,同時也比較合理。

    2. 重複性懲罰 (Repetition Penalties):

    • Frequency Penalty (頻率懲罰): 調整已生成文本中已出現標記的懲罰。值越高,越能抑制重複。
    • Repetition Penalty (重複懲罰): 調整重複標記的懲罰因子。值越高,越強烈地抑制重複。設置為 1.0 則停用懲罰。
    • Presence Penalty (存在懲罰): 根據標記在目前已生成文本中的存在情況調整懲罰。正值會懲罰已出現的標記,從而鼓勵多樣性。

    3. 模型加載與記憶體管理 (Model Loading & Memory Management):

    • Keep Alive (保持活動): 指定使用後將加載的模型保存在記憶體中的持續時間。適用於常用模型。格式:1h30m(1 小時 30 分鐘)。
    • Low VRAM Mode (低 VRAM 模式): 是否啟動低 VRAM 模式,該模式以降低生成速度為代價來減少記憶體使用。適用於記憶體有限的 GPU。
    • Main GPU ID (主要 GPU ID): 指定用於主要計算的 GPU 的 ID。僅當您有多個 GPU 時才更改此設置。
    • Context Batch Size (上下文批次大小): 設置提示處理的批次大小。較大的批次大小可能會提高生成速度,但會增加記憶體使用量。
    • Context Length (上下文長度): 用作生成下一個標記的上下文的最大標記數。較小的值會減少記憶體使用量,而較大的值會為模型提供更多上下文。
    • **Number of GPUs (GPU數量):**指定用於並行處理的GPU數量。設置為-1進行自動檢測。
    • **Number of CPU Threads (CPU線程數):**指定用於處理的CPU線程數量。設置為0進行自動檢測。
    • Use Memory Locking (使用記憶體鎖定): 是否將模型鎖定在記憶體中以防止交換。這可以提高性能,但需要足夠的可用記憶體。
    • Use Memory Mapping (使用記憶體映射): 是否使用記憶體映射來加載模型。這可以減少記憶體使用量,但可能會影響性能。建議保持啟用狀態。
    • Load Vocabulary Only (僅加載詞彙表): 是否僅加載模型詞彙表而不加載權重。適用於快速測試標記化。

    4. 輸出控制 (Output Control):

    • Penalize Newlines (懲罰換行): 模型是否會較少生成換行字符,從而鼓勵更長的連續文本序列。
    • Output Format (輸出格式): Default (預設), Json
  • fixed 和expression 差異

    在 n8n 中,fixed 和 expression 是兩種常用的資料處理方式,它們在自動化工作流程的設定中有不同的用途。

    1. Fixed Value (固定值)

      fixed value 是指直接在 n8n 節點中設定一個固定的資料值。這些值不會改變,並且在每次運行工作流程時都保持相同。例如,若你需要發送固定的參數(如 API 密鑰或標題),你可以使用固定值來設定這些參數。這樣的設定不依賴於前面節點的輸出。

      • 應用範例:
        • 設定靜態的 API 路徑或標題
        • 直接輸入常數數值(如 100 或 "abc")
    2. Expression (表達式)

      expression 則是使用來從前一個節點或其他資料來源動態生成或計算資料。當你需要根據上一個節點的輸出來決定當前節點的輸入時,可以使用表達式。這種方式能夠讓資料在每次運行時根據不同的情況變化,從而實現更靈活的自動化。

      • 應用範例:
        1. 根據上一個節點的輸出來決定 API 參數
        2. 動態生成檔案名稱或日期
        3. 在 n8n 中,當你使用表達式時,會使用 {{}} 符號來包裹變數或計算式。例如,你可以在一個節點中這樣寫 {{ $json["name"] }},這樣會取出上一個節點中的 name 資料並作為輸入。
    3. 如何使用:

      1. 在 n8n 的每個節點設定中,會有一個選擇框來決定是使用固定值還是表達式。
      2. 若使用固定值,你只需要直接輸入資料。
      3. 若使用表達式,則需要點擊該欄位旁的「Expression」選項,然後輸入或選擇表達式。
    4. **注意事項:**如果表達式設定錯誤,可能會導致無限迴圈或錯誤的結果,這樣會影響整體工作流程的運行效率

    • Extensions 扮演著標準化的橋樑角色,連接代理程式(agents)與 API,使代理程式能夠順暢地執行 API 調用,而無需依賴自訂程式碼。舉例來說,在預訂機票的情境中,代理程式不再需要手動編寫邏輯來解析使用者查詢和處理錯誤,而是動態選擇正確的 extensions,例如 Google Flights API,來擷取相關資料。這種靈活性讓代理程式能夠處理各種不同的任務,例如預訂機票或尋找附近的咖啡店。 Extensions 作為代理程式的一部分進行配置,並在運行時動態應用,使其高效且具有適應性。
    • Functions 是可重複使用的程式碼模組,根據程式邏輯執行特定任務。然而,與 extensions 不同的是,functions 是在客戶端執行,而不是在代理程式內部執行。當 API 調用需要在代理程式架構之外(例如在前端系統中)進行,並且安全限制阻止直接 API 存取時,函數就非常有用。
  • n8n 串接操作流程

    • docker路徑讀取檔案

      1.將要使用的資料放在/c/Users/<你的用戶名>/Downloads路徑底下)

      2.以特定指令在docker運行n8n(其中-v /c/Users/<你的用戶名>/Downloads:/home/node/downloads代表將本機的/c/Users/<你的用戶名>/Downloads路徑下的檔案複製到docker中的/home/node/downloads路徑

      docker run -it --rm --name n8n -p 5678:5678 -v n8n_data:/home/node/.n8n -v /c/Users/<你的用戶名>/Downloads:/home/node/downloads -e GENERIC_TIMEZONE="Asia/Taipei" -e TZ="Asia/Taipei" [docker.n8n.io/n8nio/n8n](http://docker.n8n.io/n8nio/n8n)

      3.直接使用/home/node/downloads路徑讀取資料

    • 1-2 簡易AI_summarizer_agent 流程

      1. 選擇Trigger manually(點擊 Test Workflow 開始)

      image.png

      1. Read/Write Files from Disk(從硬碟讀取檔案)

        1. Operation:Read Files from Disk

        2. File(s) Selector 輸入檔案儲存的csv檔的路徑

          1. windows:

            test_data.csv

            image.png

          2. Mac:

          需先開起權限:

          截圖 2025-03-04 下午1.48.44.png

          截圖 2025-03-04 下午1.48.56.png

          截圖 2025-03-04 下午1.48.04.png

      2. Extract from File(將檔案轉換為json格式)

        1. Operation:Extract from CSV file
        2. Input Binary Field:data(前一步驟輸入的資料名稱)

        image.png

      3. Data transformation(整理資料)

        1. 選擇Aggregate(將多筆資料合併)
        2. Aggregate:All Item Data (Into a Single List)
        3. Put Output in Field:data
        4. Include:All Fields

        image.png

      4. AI Agent(將資料提供給 AI Agent 作總結)

        1. Agent:Tools Agent

        2. Source for Prompt (User Message):Define below:

        3. Text:(可從左方拉取輸入的資料)(欄位右上方改選Expression)

          {{ $json.data }}

        d. System Message(由下方Add Option添加System Message)

        輸入[You are a summary agent, always summarize the text in "zh-tw" language, with the most unique and helpful points, into a numbered list of key points and takeaways. Must reply in"traditional chinese”]

        image.png

      5. 選擇要使用地端還是雲端

        1. 地端:Ollama Chat Model(選擇要使用的模型)

          1. Credential to connect with:點選Create new credential並輸入http://localhost:11434(11434為Ollama在電腦上預設所開放的對應port,若有更改則須修改為對應的port),或是點選已經事先連接好的Ollama,(如果是使用docker建立n8n則須輸入http://host.docker.internal:11434,可以使Docker訪問主機的port)

          (Docker版本)

          image.png

          (node.js版本)

          image.png

          1. Model:選擇在Ollama上安裝並且想在這次的練習中運行的模型(此處以llama3.2:latest為例)

          image.png

        2. 雲端:OpenAI Chat Model(選擇要使用的模型)

          1. Credential to connect with:點選Create new credential並輸入API Key(會提供給每組API Key),再按Save儲存
          2. Model:選擇想在這次練習中運行的模型(此處以gpt-4o-mini為例)

        image.png

      6. Convert to File(將資料轉換為Binary格式)

        1. Operation:Convert to Text File
        2. Text Input Fields:output(前一步驟AI Agent所產生的資料名稱)
        3. Put Output File in Field:data(輸出時的資料名稱)

        image.png

      7. Read/Write Files from Disk(輸出檔案)

        1. Operation:Write File Disk

        2. File Path and Name:輸入希望儲存檔案的路徑及名稱(欄位右上角必須改選Expression)

          1. windows:

            image.png

          2. Mac:

          需先開起權限:

          截圖 2025-03-04 下午1.48.44.png

          截圖 2025-03-04 下午1.48.56.png

          截圖 2025-03-04 下午3.16.43.png

        3. Input Binary Field:data(輸入前一步的資料名稱)

      8. 結果:

      image.png

    • 1-2 進階AI_summarizer_agent 流程

      選擇右上加號”+”新增一個節點

      1. (監看資料夾文件變動)

        1. Add another trigger → Other ways… → Local File → On changes involving a specific folder

        2. Trigger On:Changes Involving a Specific Folder

        3. Folder to Watch:輸入希望監看資料夾的路徑及名稱(欄位右上角必須改選Expression)

          1. windows:

            image.png

          2. Mac:

          需先開起權限:

          截圖 2025-03-04 下午1.48.44.png

          截圖 2025-03-04 下午1.48.56.png

          image.png

        4. Watch for:下拉選擇File Added

      2. Edit Fieds(Set)修正路徑格式

        1. Mode:Manual Mapping

        2. Fields to Set:將前一個節點的path拖曳至Fields to Set(或是直接點選新增)

          1. name:path
          2. type:String
          3. value:
          {{ $json.path.replaceAll("\\","/") }}

          image.png

      3. Read/Write Files from Disk(從硬碟讀取檔案)

        1. Operation:Read Files from Disk
        2. File(s) Selector:將前一個節點的path拖曳(欄位右上角必須改選Expression)

        image.png

      4. Switch(由附檔名決定如何讀取)

        1. Mode:Rules

        2. Routing Rules:

          1. value1:左邊視窗input切換至schema,找到fileExtension拖曳至value1
          2. value2:填入可能讀取到的檔案格式(pdf、csv、xlsx、txt)

          image.png

      5. Extract from text file(將檔案從轉換為json格式)

        1. Operation:(分別建四個節點)

          1. Extract from csv file
          2. Extract from xlsx file
          3. Extract from pdf file
          4. Extract from text file

          image.png

        2. Input Binary Field:data(前一步驟輸入的資料名稱)

        下圖為csv檔為例(分別還有xlsx、pdf 以及text)

        image.png

      6. 多種文件處理

        1. xlsx、csv

          1. 選擇Aggregate(將多筆資料合併)
          2. Aggregate:All Item Data (Into a Single List)
          3. Put Output in Field:data
          4. Include:All Fields

          image.png

          image.png

        2. pdf、txt(直接連接至下一步驟的AI Agent)

      7. AI Agent(將資料提供給 AI Agent 作總結)

        1. Agent:Tools Agent

        2. Source for Prompt (User Message):Define below:

        3. Text:(可從左方拉取輸入的資料)(欄位右上方改選Expression)

          {{ $json.data||$json.text}}

        d. System Message(由下方Add Option添加System Message)

        輸入[You are a summary agent, always summarize the text in "zh-tw" language, with the most unique and helpful points, into a numbered list of key points and takeaways. Must reply in"traditional chinese”]

        image.png

      8. 選擇要使用地端還是雲端

        1. 地端:Ollama Chat Model(選擇要使用的模型)

          1. Credential to connect with:點選Create new credential並輸入http://localhost:11434(11434為Ollama在電腦上預設所開放的對應port,若有更改則須修改為對應的port),或是點選已經事先連接好的Ollama,(如果是使用docker建立n8n則須輸入http://host.docker.internal:11434,可以使Docker訪問主機的port)

          (Docker版本)

          image.png

          (node.js版本)

          image.png

          1. Model:選擇在Ollama上安裝並且想在這次的練習中運行的模型(此處以llama3.2:latest為例)

          image.png

        2. 雲端:OpenAI Chat Model(選擇要使用的模型)

          1. Credential to connect with:點選Create new credential並輸入API Key(會提供給每組API Key),再按Save儲存
          2. Model:選擇想在這次練習中運行的模型(此處以gpt-4o-mini為例)

        image.png

      9. Convert to File(將資料轉換為Binary格式)

        1. Operation:Convert to Text File
        2. Text Input Fields:output(前一步驟AI Agent所產生的資料名稱)
        3. Put Output File in Field:data(輸出時的資料名稱)

        image.png

      10. Read/Write Files from Disk(輸出檔案)

        1. Operation:Write File Disk

        2. File Path and Name:輸入希望儲存檔案的路徑及名稱(欄位右上角必須改選Expression)

          1. windows:

          image.png

          ii. Mac:

          需先開起權限:

          截圖 2025-03-04 下午1.48.44.png

          截圖 2025-03-04 下午1.48.56.png

          截圖 2025-03-04 下午3.16.43.png

        3. Input Binary Field:data(輸入前一步的資料名稱)

      11. 結果:

      image.png

    • 1-2 AI 文件統整模板

      2_1.json

      2_2.json

    • 3 whisper_translate_agent 流程

      1. On chat message(選擇Allow File Uploads並啟動Allow File Uploads按鈕)(從Chat中輸入音檔路徑)(以windows為例,輸入路徑時必須將原路徑的”\”反斜線改為正斜線”/”或是雙反斜線"\”才可讀取到檔案位置)

      image.png

      1. Execute Command(使用指令調用whisper模型)

        1. command輸入(欄位右上角必須改選Expression)(從On chat message內容輸入中獲取$json.chatInput(語音檔路徑))
        whisper {{ $json.chatInput }} --model tiny --verbose False --output_format txt --language Chinese

        補充:若是希望用GPU進行加速可以按照以下步驟進行

        2a.安裝pytorch套件(在CMD中輸入以下指令)

        pip3 install torch torchvision torchaudio --index-url https://download.pytorch.org/whl/cu126

        2b.確定cuda可以使用(在CMD中輸入以下指令)

        nvidia-smi

        2c.在Execute Comman的command中輸入(欄位右上角必須改選Expression)(從On chat message內容輸入中獲取$json.chatInput(語音檔路徑))(相較於不使用GPU多了—devic cuda)

        whisper {{ $json.chatInput }} --model tiny --verbose False --output_format txt --language Chinese --device cuda

      image.png

      1. Read/Write Files from Disk(從硬碟讀取檔案)

        1. Operation:Read Files from Disk
        2. File(s) Selector輸入(欄位右上角必須改選Expression)
        {{ $('When chat message received').item.json.chatInput.split('\\').pop().split('.')[0]}}.txt

        image.png

      2. Extract from text file(將檔案從轉換為json格式)

        1. Operation:Extract from text file
        2. Input Binary Field:data(前一步驟輸入的資料名稱)
        3. Destination Output Field:data(輸出時的資料名稱)

        image.png

      3. AI Agent(將資料提供給AI Agent做總結)

        1. Agent:Tools Agent

        2. Source for Prompt (User Message):Define Below

        3. Text:(可從左方拉取輸入的資料)(欄位右上角必須改選Expression)

          {{ $json.data }}
        4. System Message(由下方Add Option添加System Message)

          輸入[You are a summary agent, always summarize the text in "zh-tw" language, with the most unique and helpful points, into a numbered list of key points and takeaways. Must reply in"traditional chinese”]

          image.png

      4. Ollama Chat Model(選擇要使用的模型)

        1. Credential to connect with:點選Create new credential並輸入http://localhost:11434(11434為Ollama在電腦上預設所開放的對應port,若有更改則須修改為對應的port),或是點選已經事先連接好的Ollama,(如果是使用docker建立n8n則須輸入http://host.docker.internal:11434,可以使Docker訪問主機的port)
        2. Model:選擇在Ollama上安裝並且想在這次的練習中運行的模型(此處以deepseek-r1:1.5b為例)

        (Docker版本)

        image.png

        (node.js版本)

        image.png

        image.png

      5. Convert to File(將資料轉換為Binary格式)

        1. Operation:Cover to Text File
        2. Input Binary Field:output(前一步驟AI Agent所產生的資料名稱)
        3. Destination Output Field:data(輸出時的資料名稱)

        image.png

      6. Read/Write Files from Disk(輸出檔案)

        1. Operation:Write File Disk
        2. File Path and Name:輸入希望儲存檔案的路徑及名稱(欄位右上角必須改選Expression)
        3. Input Binary Field:data(輸入前一步的資料名稱)

        image.png

    • 4 LINE_Bot_AI_Agent

      1. 設定n8n-nodes-linewebhook

        1. n8n左下角點擊設定
        2. 進入Connunity nodes
        3. 點選Install a community node
        4. 輸入n8n-nodes-linewebhook

        image.png

      2. LineWebhook

        1. Credential to connect with:新建一個LINE webhook connect(輸入LINE官方帳號的Channel Secret)

          image.png

        b. Path:設定自己的webhook path

        image.png

        c. 後續流程:

        1.根據webhook的port(預設5678)運行ngrok與主機建立通道,並回到LINE Developers貼上Test URL並開啟”聊天”及”Webhook”功能

        1.1a(windows版本)前往ngrok官網(https://ngrok.com/)下載ngrok.exe並執行

        image.png

        image.png

        1.2a複製ngrok下載頁面的指令並進入剛剛的CMD頁面貼上執行

        image.png

        image.png

        1.3a使用ngrok與本地主機連線(在CMD中輸入以下內容),並複製出現的通道連結

        ngrok http 5678

        image.png

        1.4a回到 LINE Deveoloers 貼上 webhook(剛剛複製的網址+/webhook-test/path)

        image.png

        1.5a回到 Line official account manager 頁面,在回應設定分頁中,將「聊天」與「 Webhook」功能打開

        image.png

        1.1b前往ngrok官網(https://ngrok.com/)下載ngrok.exe並執行

        1.2a複製ngrok下載頁面的指令並進入剛剛的CMD頁面貼上執行

        截圖 2025-03-04 下午1.52.56.png

        截圖 2025-03-04 下午1.55.33.png

        截圖 2025-03-04 下午2.46.52.png

        記得將sudo unzip的路徑改成實際路徑

        截圖 2025-03-04 下午2.48.09.png

        1.3b使用ngrok與本地主機連線(輸入以下內容),並複製出現的通道連結

        ngrok http 5678

        截圖 2025-03-04 下午2.49.32.png

        1.4b(後續請根據1.4a繼續做)

        2.回到n8n測試trigger是否能收到LINE訊息

        image.png

      3. AI_Agent

        1. Agent:Tools Agent

        2. Source for Prompt (User Message):Define Below

        3. Text:(可從左方拉取輸入的資料)(欄位右上角必須改選Expression)

          {{ $json.event.message.text }}
        4. System Message(由下方Add Option添加System Message)

          輸入[你是擅於幫助的AI 助手。 對於使用者的提問你可以清楚分辨要要什麼工具幫助他:

          • 如果使用者詢問天氣、最新消息、即時內容等請務必呼叫 SerpApi 工具。
          • 如果使用者詢問歷史事件、百科知識,請使用 Wikipedia 工具。
          • 請以 zh-TW 給予回應。]

        image.png

      4. Ollama Chat Model(也可使用OpenAI Chat Model等雲端服務)

        1. Credential to connect with:點選Create new credential並輸入http://localhost:11434(11434為Ollama在電腦上預設所開放的對應port,若有更改則須修改為對應的port),或是點選已經事先連接好的Ollama,(如果是使用docker建立n8n則須輸入http://host.docker.internal:11434,可以使Docker訪問主機的port)
        2. Model:選擇在Ollama上安裝並且想在這次的練習中運行的模型(此處以deepseek-r1:1.5b為例)(deepseek-r1:1.5無法進行後續資料庫及上網蒐集資料,請選擇可以進行資料蒐集之模型)

        (Docker版本)

        image.png

        (node.js版本)

        image.png

        image.png

      5. Window Buffer Memory

        1. Session ID:Define below
        2. Key:{{$json.output}}(抓取前面的內容進行資料搜尋,可以直接拉output)
        3. Context Window Length:(可以自由設定數量)(一次性最多讀取的相關資料數量)

        image.png

      6. Wikipedia(沒有額外設定)

      7. SerpAPI

        1. Credential to connect with:點選Create new credential並輸入Serp API的API Key

        image.png

      8. LineMessageNode(Create a text message)

        1. Message Type:Text
        2. Text:{{ $json.output }}(直接拉取output標籤也可以)

        image.png

      9. LineMessaging

        1. Credential to connect with:點選Create new credential並輸入對應的LINE Developers中官方帳號的Channel Access Token

        2. Operations:Send Message

        3. Message:{{ $json.message }}(可以直接拖曳左方message標籤)

        4. ReplyToken:{{ $('LineWebhook').item.json.event.replyToken }}(可以直接拖曳左方replyToken標籤)

          image.png

      10. 正式上線:將Webhook URL中的測試 Webhook URL 改為正式Webhook URL(將原先 URL 中的“-test” 刪除即可)

    • 補充:n8n 跟 Line 串接詳細流程

      https://youtu.be/AsvzSM5Y614?si=wY9Ipv1a-PMJSrID

    • 5-1 Summarization_Chain 流程

      1. 設定Trigger node(在此專案中有兩種Trigger)

        1. When clicking ‘Test workflow’

        2. Schedule Trigger

          →設計固定的行程自動啟動workflow,此處為設定每日為間隔

          image.png

      2. Read Files from Disk(從桌面讀取檔案)

        以Window為例,需將原路徑的”\”反斜線改為正斜線”/”,讀取所需檔案

        image.png

      3. Extract from File

        將第二步中所讀取的檔案轉換成PDF檔案

        image.png

      4. Summarization Chain

        將資料提供給 Summarization Chain 作總結,

        image.png

        1. Summarization Method: Map Reduce

        2. Individual Summary Prompt / Final Prompt to Combine

          翻譯成繁體中文
          Write a concise summary of the following:
          "{{ $json.text }}"
        3. 選擇model,以Groq Chat Model為例 model: llama-3.3-70b-specdec

          image.png

        4. Document處理

          Type of Data: JSON

          Mode:Load All Inputa Data

          image.png

        5. Text Splitter

          選用Token Splitter,因為LLM使用Token當作輸入,故選擇此切割方式,並設定Chunk Size為1000,Chunk Overlap為20

          image.png

      5. Convert to FileSummarization Chain

        為了將檔案另存,故轉換成 Binary 格式

        Operation: Convert to Text File

        Test Input Field: response.text

        Put Output File in Field: data

        image.png

      6. Write Files from Disk

        進行檔案的輸出

        Operation: Write File to Disk

        File Path and Name: test_summary.txt

        Input Binary Field: data

        image.png

    • 5-2 Chat_with_crawler_json 流程

      1. 設定Trigger node

        image.png

      2. HTTP Request

        在此專案中取得中央社RSS新聞,而RSS(Really Simple Syndication)是一種訊息來源格式規範。

        Method: GET

        URL:https://feeds.feedburner.com/rsscna/intworld

        image.png

      3. Qdrant Vector Store

        將從網站爬下的資料,存入Qdrant向量資料庫中

        1. 註冊完Qdrant後,Create API key(Days until expiration要設定效期)

          image.png

        2. 取得API Key(記得先另外儲存下來,之後不會再出現)

          image.png

        3. 查看自己的Qdrant URL

          image.png

        4. Operation Mode的Credential to connect with 填入剛取得的API Key 及 Qdrant URL

          image.png

        5. Operation Mode: Insert Documents

          截圖 2025-02-27 下午2.36.48.png

        6. Qdrant Collection: from list test

      4. Generate Embeddings

        1. 使用Open AI的 Embeddings模型

          截圖 2025-02-27 下午2.50.46.png

        2. 使用Ollama地端的Embeddings模型

          須先自行下載Ollama的Embeddings模型,若要尋找繁體中文模型可參考下列網站,選擇符合需求的模型再進行下載及使用

          https://ihower.tw/blog/archives/12167

          image.png

      5. Default Data Loader

        截圖 2025-02-27 下午2.41.07.png

      6. Recursive Character Text Splitter

        截圖 2025-02-27 下午2.44.20.png

      7. When chat message received

      8. AI Agent

        1. Toos Agent

          截圖 2025-02-27 下午2.46.26.png

        2. 連接OpenAI Chat Model

          截圖 2025-02-27 下午2.51.19.png

        3. Context Window Length: 5

          截圖 2025-02-27 下午2.48.07.png

        4. Qdrant Vector Store

          從資料庫中進行Retrieve的動作

          Operation Mode: Retrieve Document(As Tool for AI Agent)

          Name: DB

          Description: data

          Qdrant Collection From list: test

          截圖 2025-02-27 下午2.51.55.png

        5. Embeddings OpenAI

          截圖 2025-02-27 下午2.55.09.png

    • 6-1 Data_Analyst_Agent 流程

      1. Chat Trigger

      2. Edit Fields

        1. Mode: Manual Mapping

        2. Fields to Set: 自訂 table_id 填入 NocoDB 表格的 ID

          image.png

      3. HTTP Request

        1. Method: GET

        2. URL: http://localhost:8080/api/v2/meta/tables/{{ $json.table_id }}

          (從 Edit Fields 節點獲取 table_id) 欄位右上角必須要選 expression 

        3. Authentication: Predefined Credential Type

        4. Credential Type: NocoDB Token

          image.png

      4. Edit Fields1

        1. Mode: Manual Mapping

        2. Fields to Set: 自訂 columns: {{ $json.columns.map(item => item.title).toJsonString() }}

          1. 從 HTTP Request 的結果中提取 columns 欄位,並將每個 column 的 title 轉換為 JSON string。

          image.png

      5. AI Agent (Data Analyst)

        1. Agent: Tool Agent

        2. Source for Prompt (User Message): {{ $('When chat message received').item.json.chatInput }}

          1. 使用者的聊天輸入 (來自 When chat message received)。
          2. 欄位右上角必須要選 expression
        3. System Message:

          You are a helpful Data Analyst assistant who is skilled at working with a database called nocodb. 

          You goal is to help the user understand the table that is specified.

          Here are the column names for the table.
          {{ $json.columns }}
          1. 請 AI 扮演數據分析師,擅長使用 Nocodb,目標是幫助使用者理解指定的表格,並提供表格的 column 名稱。
          2. 欄位右上角必須要選 expression
        4. 連接 Groq Chat Model (調用語言模型),目前實驗 OpenAI ChatGPT GPT-4o-mini 效果好,正確性高、速度快。

        5. 連接 Window Buffer Memory (用於記憶對話)

        6. 連接 NocoDB (作為工具)

        image.png

      6. Groq Chat Model

        1. Model
          1. mixtral-8x7b
          2. llama-3.2-3b-preview
        2. Credentials: Groq account
      7. Window Buffer Memory

        1. Session ID: Define below
        2. Session Key: {{ $('When chat message received').item.json.sessionId }} (使用 When chat message received 中的 sessionId。)
          1. 欄位右上角必須要選 expression
        3. Context Window Length: 10

        image.png

      8. NocoDB

        1. Credential to connect with: NocoDB Token account

        2. Tool Description: Set Automatically

        3. Resource: Row

        4. Operation: Get Many

        5. Workspace Name or ID: No Workspace (fixed)

        6. Base Name or ID: Getting Started / 網址連結內的倒數第二個 ID

        7. Table Name or ID: US_stock_valuation_dataset / {{ $('Edit Fields').item.json.table_id }} 從 "Edit Fields" 節點的 table_id 獲取

        8. Limit: 50 最多查詢結果 50 筆

        9. Options: Filter By Formula

          1. 欄位右上角必須要選 expression
          {{ $fromAI('filter_formula','formula to filter.  for example, (Ticker,eq,IMMR) will filter for Ticker column equal to IMMR.  the operators are neq for not equal, gt for greater than, etc.  Compound conditions can be expressed like (MCAP,gt,500000000)~or(MCAP,lt,1000000000)') }}

          image.png

    • 6-2 Data_Analyst_Agent_Visualization_groq 流程

      接續6-1工作流

      1. Execute Sub-workflow

        設定另一個工作流時,接受全部data

        截圖 2025-02-27 下午1.39.58.png

      2. AI Agent

        1. Tool Agent

        2. Source for Prompt (User Message): Define below

        3. text: Input data:{{ $json.query.query }} [Expression]

        4. System Message:(底下折疊展開查看)

          截圖 2025-02-27 下午1.43.16.png

        5. 連接 Groq Chat Model (調用語言模型)

        6. Structured Output Parser(底下折疊展開查看)

          用來將輸出內容設定格式

          截圖 2025-02-27 下午1.53.28.png

        7. Edit Fields

          name: response value:

          {{"[https://quickchart.io/chart?width=4](https://quickchart.io/chart?width=4)00&c="+encodeURIComponent($[json.output.to](http://json.output.to/)JsonString()) }} [Expression]

          截圖 2025-02-27 下午1.54.32.png

        • System Message

          I want you to act as a Chart.js visualization expert. Your primary goal is to generate valid and clearly labeled Chart.js configuration objects based on user requests.  These configurations should be directly usable within a Chart.js environment.

          Input: You will receive user requests describing the desired visualization. These requests may include:

          Chart Type: (e.g., bar, line, pie, scatter, radar, bubble, etc.)

          Data: The data to be visualized. This can be provided in various formats (CSV, JSON, lists). Clarify ambiguous data formats with the user. Handle data extraction as needed.

          Labels: Labels for data points, axes, and other elements. Specifically, the user must provide clear axis titles and units (if applicable). Ask clarifying questions if this information is missing.

          Styling: Customization options (colors, fonts, gridlines, titles, legends, tooltips, axis scales). Use Chart.js defaults if no specific styling is requested.

          Specific Chart.js options: Users might request specific Chart.js features (logarithmic scales, animations, plugins).

          Natural language descriptions: Interpret less structured descriptions and translate them into valid Chart.js configurations.

          Axis information: Request and expect clear details on axis labels, including:

          Axis Titles: Concise titles for x and y axes. (e.g., "Month", "Sales (USD)")

          Units: Units of measurement, if relevant. (e.g., "(USD)", "kg")

          Data Type: The type of data on each axis (categorical, numerical, time series).

          Specific Formatting: Requirements for date/number formats, currency symbols, etc.

          Output:  A valid, well-formatted, and easily readable JSON object representing a Chart.js configuration, ready to be used in a new Chart() constructor.  The output must include properly configured axis labels based on the provided input. This includes adding titles and units to both axes within the options.scales section of the JSON.

          Example Input (Improved):

          "Create a bar chart showing the monthly sales for the first quarter of 2024.  January had $10,000 in sales, February had $12,000, and March had $15,000.  Use blue for the bars. The chart title should be 'Q1 2024 Sales'. The x-axis represents the 'Month' and the y-axis represents 'Sales (USD)'."

          Example Output (Improved):  (See previous response for the updated JSON with axis labels)

          Important Considerations:

          Data Validation: Perform basic validation and ask for clarification if data is inconsistent or incomplete.

          Error Handling: Handle errors gracefully and inform the user if their request cannot be fulfilled.

          Chart.js Version: Assume the latest stable version unless specified otherwise.

          Best Practices: Adhere to Chart.js best practices for effective visualizations.

          Clear Axis Labels: Prioritize clear and informative axis labels in all generated Chart.js configurations.
        • Structured Output Parser

          {
          "name": "chart_configuration",
          "description": "Configuration schema for Chart.js charts",
          "strict": true,
          "schema": {
          "type": "object",
          "properties": {
          "type": {
          "type": "string",
          "enum": ["bar", "line", "radar", "pie", "doughnut", "polarArea", "bubble", "scatter", "area"]
          },
          "data": {
          "type": "object",
          "properties": {
          "labels": {
          "type": "array",
          "items": {
          "type": "string"
          }
          },
          "datasets": {
          "type": "array",
          "items": {
          "type": "object",
          "properties": {
          "label": {
          "type": ["string", "null"]
          },
          "data": {
          "type": "array",
          "items": {
          "type": "number"
          }
          },
          "backgroundColor": {
          "type": ["array", "null"],
          "items": {
          "type": "string"
          }
          },
          "borderColor": {
          "type": ["array", "null"],
          "items": {
          "type": "string"
          }
          },
          "borderWidth": {
          "type": ["number", "null"]
          }
          },
          "required": ["data", "label", "backgroundColor", "borderColor", "borderWidth"],
          "additionalProperties": false
          }
          }
          },
          "required": ["labels", "datasets"],
          "additionalProperties": false
          },
          "options": {
          "type": "object",
          "properties": {
          "scales": {
          "type": ["object", "null"],
          "properties": {
          "yAxes": {
          "type": "array",
          "items": {
          "type": ["object", "null"],
          "properties": {
          "ticks": {
          "type": ["object", "null"],
          "properties": {
          "max": {
          "type": ["number", "null"]
          },
          "min": {
          "type": ["number", "null"]
          },
          "stepSize": {
          "type": ["number", "null"]
          },
          "beginAtZero": {
          "type": ["boolean", "null"]
          }
          },
          "required": ["max", "min", "stepSize", "beginAtZero"],
          "additionalProperties": false
          },
          "stacked": {
          "type": ["boolean", "null"]
          }
          },
          "required": ["ticks", "stacked"],
          "additionalProperties": false
          }},
          "xAxes": {
          "type": ["object", "null"],
          "properties": {
          "stacked": {
          "type": ["boolean", "null"]
          }
          },
          "required": ["stacked"],
          "additionalProperties": false
          }
          },
          "required": ["yAxes", "xAxes"],
          "additionalProperties": false
          },
          "plugins": {
          "type": ["object", "null"],
          "properties": {
          "title": {
          "type": ["object", "null"],
          "properties": {
          "display": {
          "type": ["boolean", "null"]
          },
          "text": {
          "type": ["string", "null"]
          }
          },
          "required": ["display", "text"],
          "additionalProperties": false
          },
          "legend": {
          "type": ["object", "null"],
          "properties": {
          "display": {
          "type": ["boolean", "null"]
          },
          "position": {
          "type": ["string", "null"],
          "enum": ["top", "left", "bottom", "right", null]
          }
          },
          "required": ["display", "position"],
          "additionalProperties": false
          }
          },
          "required": ["title", "legend"],
          "additionalProperties": false
          }
          },
          "required": ["scales", "plugins"],
          "additionalProperties": false
          }
          },
          "required": ["type", "data", "options"],
          "additionalProperties": false
          }
          }
          • 解析:

            頂層結構 (chart_configuration) name: "chart_configuration" (結構的名稱). description: "Configuration schema for Chart.js charts" (結構的描述). strict: true (表示這個結構非常嚴格,不允許未定義的屬性). schema: 這包含了實際的結構定義。 schema 內的結構 type: "object" (表示這是一個物件). properties: 定義了這個物件可以擁有的屬性,以及這些屬性的類型和規則。 這是核心部分,定義了三個必要的子物件:type、data 和 options。 required: ["type", "data", "options"] (表示 type、data 和 options 屬性是必須存在的). additionalProperties: false (表示除了 properties 中定義的屬性外,不允許其他屬性。這就是 strict: true 的體現).

              1. type 屬性

              type: "string" (表示 type 的值必須是一個字串). enum: ["bar", "line", "radar", "pie", "doughnut", "polarArea", "bubble", "scatter", "area"] (表示 type 的值只能是這些預定義的圖表類型之一).

              1. data 屬性

              type: "object" properties: labels: type: "array" (表示標籤是一個陣列). items: { "type": "string" } (表示陣列中的每個元素都必須是字串). 這些通常是圖表 X 軸的標籤。 datasets: type: "array" (表示資料集是一個陣列). items: (表示陣列中的每個元素都是一個物件,代表一個資料集). type: "object" properties: 定義了每個資料集的屬性: label: {"type": ["string", "null"]} (資料集的標籤,可以是字串或 null). data: {"type": "array", "items": { "type": "number" }} (資料集的實際資料點,必須是一個數字陣列). backgroundColor: {"type": ["array", "null"], "items": { "type": "string" }} (資料點的背景顏色,可以是顏色字串陣列或 null). borderColor: {"type": ["array", "null"], "items": { "type": "string" }} (資料點的邊框顏色,可以是顏色字串陣列或 null). borderWidth: {"type": ["number", "null"]} (資料點的邊框寬度,可以是數字或 null). required: ["data", "label", "backgroundColor", "borderColor", "borderWidth"] (資料集物件中必須包含這些屬性). additionalProperties: false (資料集物件中不允許其他屬性). required: ["labels", "datasets"] (data 物件必須包含 labels 和 datasets). additionalProperties: false (data 物件不允許其他屬性).

              1. options 屬性

              type: "object" properties: scales: 定義圖表的座標軸設定。 type: ["object", "null"] properties: yAxes: Y 軸設定 (通常是垂直軸)。 type: "array" (可以有多個 Y 軸). items: (每個 Y 軸的設定). type: ["object", "null"] properties: ticks: 刻度設定。 type: ["object", "null"] properties: max: {"type": ["number", "null"]} (最大刻度值). min: {"type": ["number", "null"]} (最小刻度值). stepSize: {"type": ["number", "null"]} (刻度間距). beginAtZero: {"type": ["boolean", "null"]} (是否從 0 開始). required: ["max", "min", "stepSize", "beginAtZero"] additionalProperties: false stacked: {"type": ["boolean", "null"]} (是否堆疊). required: ["ticks", "stacked"] additionalProperties: false xAxes: X 軸設定

              • type: ["object", "null"]
              • properties:
              • stacked: {"type": ["boolean", "null"]}
              • required: ["stacked"]
              • additionalProperties: false required: ["yAxes", "xAxes"] additionalProperties: false plugins: 定義圖表的外掛程式設定,如標題和圖例。 type: ["object", "null"] properties: title: 標題設定。 type: ["object", "null"] properties: display: {"type": ["boolean", "null"]} (是否顯示標題). text: {"type": ["string", "null"]} (標題文字). required: ["display", "text"] additionalProperties: false legend: 圖例設定。 type: ["object", "null"] properties: display: {"type": ["boolean", "null"]} (是否顯示圖例). position: {"type": ["string", "null"], "enum": ["top", "left", "bottom", "right", null]} (圖例位置). required: ["display", "position"] additionalProperties: false required: ["title", "legend"] additionalProperties: false required: ["scales", "plugins"] additionalProperties: false

            參考說明:https://www.chartjs.org/docs/latest/

      3. Tool / Call n8n Workflow Tool

        1. Name: generate_a_chart

        2. Source: Database

        3. Workflow ID: {{ $workflow.id }} [Expressions]

        4. Input Schema

          Schema Type: Define Below

          {
          "type": "object",
          "properties": {
          "query": {
          "type": "string",
          "description": "a query describing the chart to generate in json format"
          }
          }
          }

          截圖 2025-02-27 下午1.58.43.png

    • 6-3 Technical_Analyst_Agent 流程

      1. When chat message received

      2. AI Agent

        1. Agent: Conversational Agent

        2. Source for Prompt (User Message): Connected Chat Trigger Node

        3. System Message

          Assistant is a large language model trained by Llama.

          Assistant is designed to be able to assist with a wide range of tasks, from answering simple questions to providing in-depth explanations and discussions on a wide range of topics. As a language model, Assistant is able to generate human-like text based on the input it receives, allowing it to engage in natural-sounding conversations and provide responses that are coherent and relevant to the topic at hand.

          Assistant is constantly learning and improving, and its capabilities are constantly evolving. It is able to process and understand large amounts of text, and can use this knowledge to provide accurate and informative responses to a wide range of questions. Additionally, Assistant is able to generate its own text based on the input it receives, allowing it to engage in discussions and provide explanations and descriptions on a wide range of topics.

          Overall, Assistant is a powerful system that can help with a wide range of tasks and provide valuable insights and information on a wide range of topics. Whether you need help with a specific question or just want to have a conversation about a particular topic, Assistant is here to assist.

          When doing a technical analysis, please display the resulting URL graph in markdown format

          Today's date is {{ $now }}

          截圖 2025-02-27 下午3.05.55.png

        4. Groq Chat Model 選用: llama-3.3-70b-specdec

        5. Window Buffer Memory

          Session ID: Connected Chat Trigger Node Context Window Length: 5

          截圖 2025-02-27 下午3.05.27.png

        6. Call n8n Workflow Tool

          Name: Technical_analysis Source: Database Workflow ID: {{ $workflow.id }} [Expressions] Field to Return: response

          截圖 2025-02-27 下午2.14.08.png

      3. Execute Sub-workflow

        設定離開另個工作流時,接受全部data

        截圖 2025-02-27 下午1.39.58.png

      4. Edit Fields (Set)

        Mode: Manual Mapping name: company function: {{ $json.query}} [Expression]

        截圖 2025-02-27 下午2.17.59.png

      5. HTTP Request (Tradingview Chart)

        1. Import cURL commandcurl (注意x-api-key記得更換成自己的)

          截圖 2025-02-27 下午3.11.53.png

          curl -X POST [https://api.chart-img.com/v2/tradingview/advanced-chart](https://api.chart-img.com/v2/tradingview/advanced-chart) \
          -H "x-api-key: YOUR_API_KEY" \
          -H "content-type: application/json" \
          -d "{\"theme\":\"dark\",\"interval\":\"1W\",\"symbol\":\"NASDAQ:MSFT\",\"override\":{\"showStudyLastValue\":false},\"studies\":[{\"name\":\"Volume\",\"forceOverlay\":true},{\"name\":\"MACD\",\"override\":{\"Signal.linewidth\":2,\"Signal.color\":\"rgb(255,65,129)\"}}]}" \
          -o chart-img-03.png

          截圖 2025-02-27 晚上8.53.13.png

          1. URL:https://api.chart-img.com/v2/tradingview/advanced-chart/storage

          2. Method: POST

          3. Authentication: Generic Credential Type

          4. Generic Auth Type: Header Auth

          5. Header Auth

            Name: x-api-key Value: YOUR_API_KEY(更換成自己的)

            截圖 2025-02-28 下午4.04.45.png

          6. Send Headers: On

          7. Specify Headers: Using Fields Below

          8. Name: content-type

          9. Value: application/json

          10. Body Content Type: JSON

          11. Specify Body: Using Fields Below

          12. name: symbol

          13. Value: {{ $json.company }} [Expression]

          14. Value: {{ $json.company }} [Expression]

          15. name:studies

          16. Value:參考底下折疊,studies的value

          17. Name:format

          18. Value:jpeg

          • studies的value

            {{
            [
            {
            "name": "Volume"
            },
            {
            "name": "Relative Strength Index"
            },
            {
            "name": "Directional Movement",
            "override": {
            "+DI.visible": true,
            "+DI.linewidth": 1,
            "+DI.plottype": "line",
            "+DI.color": "rgb(33,150,243)",
            "-DI.visible": true,
            "-DI.linewidth": 1,
            "-DI.plottype": "line",
            "-DI.color": "rgb(255,109,0)",
            "DX.visible": false,
            "DX.linewidth": 1,
            "DX.plottype": "line",
            "DX.color": "rgba(255,255,255,0)",
            "ADX.visible": true,
            "ADX.linewidth": 2,
            "ADX.plottype": "line",
            "ADX.color": "rgb(245,0,87)",
            "ADXR.visible": false,
            "ADXR.linewidth": 1,
            "ADXR.plottype": "line",
            "ADXR.color": "rgba(255,255,255,0)"
            }
            }
            ]
            }}

      6. HTTP Request (Download Chart)

        截圖 2025-02-27 晚上8.54.56.png

        截圖 2025-02-27 晚上8.55.26.png

        Method: GET URL: {{ $json.url }} [Expressions] Authentication: None Options: Response Response Format: File Put Output in Field: data

      7. Basic LLM Chain

        截圖 2025-02-27 晚上9.00.14.png

        截圖 2025-02-27 晚上9.00.25.png

        Source for Prompt (User Message):Define below Text: text Message Chat Messages (if Using a ChatModel) Type Name or ID: User Message Type: Image (Binary) Image Data Field Name: data Image Details: Auto Groq Chat Model Model: llama-3.2-11b-vision-preview

      8. Edit Fields

        截圖 2025-02-27 晚上9.02.35.png

        Mode: Manual Mapping Fields to Set: name: response value:{{ $json.text }} Here is the URL to the graph :{{ $('HTTP Request (Tradingview Chart)').item.json.url }} [Expressions]

    • MCP (Model Context Protocol)

      MCP是一種通訊協議,允許AI模型與外部工具和資料源以標準化方式進行通訊。此節點可用來連接 MCP 伺服器、訪問資源、執行工具並使用提示。

      MCP 旨在解決企業 AI 採用的一個基本問題:N×M 整合問題——將大量 AI 應用程式與各種工具和資料來源連接起來的挑戰,每個工具和資料來源都需要客製化整合。雖然 ODBC (Open Database Connectivity) 標準化了資料庫的連接方式,但 MCP 試圖對 AI 模型做同樣的事情,為 AI 與本地檔案系統、雲端服務、協作平台和企業應用程式等各種環境互動提供一致的方式。

      image.png

      image.png

      該協議旨在消除開發人員每次需要將新工具或資料來源連結到 AI 系統時編寫冗餘自訂整合程式碼的需求。相反,MCP 為所有這些連接提供了一種統一的方法,使開發人員可以花更多時間建立功能,而減少花在整合上的時間。為了說明 MCP 的廣泛實用性,想像 AI 模型需要與不同類型的資料互動:從 PostgreSQL 資料庫到 Google Drive 或 Slack 等雲端平台。 MCP 的目標是簡化這些交互,減少目前必要的手動編碼。

      最終目的如同中國歷史的秦始皇一統天下時要求各地「車同軌,書同文,行同倫」,實現各平台資訊大一統基礎。

      NameCommandArgumentsEnvironmentsGitHub URL
      MCP: Airtablenpx-y airtable-mcp-server
      AIRTABLE_API_KEY=123https://github.com/domdomegg/airtable-mcp-server
      MCP: Airbnbnpx-y @openbnb/mcp-server-airbnb --ignore-robots-txthttps://github.com/openbnb-org/mcp-server-airbnb
      MCP: Bravenpx-y @modelcontextprotocol/server-brave-search
      BRAVE_API_KEY=123https://github.com/modelcontextprotocol/servers/tree/main/src/brave-search
      MCP: OpenAInpx-y @mzxrai/mcp-openai@latestOPENAI_API_KEY=123https://github.com/modelcontextprotocol/servers/tree/main/src/brave-search
      MCP: tavily (web search)npx-y @mcptools/mcp-tavilyTAVILY_API_KEY=123https://github.com/kshern/mcp-tavily
      MCP: Puppeteernpx-y @modelcontextprotocol/server-puppeteerhttps://github.com/modelcontextprotocol/servers/tree/main/src/puppeteer
      MCP: PostgreSQLnpx-y @modelcontextprotocol/server-postgres postgresql://localhost/mydbhttps://github.com/modelcontextprotocol/servers/tree/main/src/postgres
      MCP: Slacknpx-y @modelcontextprotocol/server-postgres postgresql://localhost/mydbhttps://github.com/modelcontextprotocol/servers/tree/main/src/slack

      n8n 的 MCP 外掛:https://github.com/nerding-io/n8n-nodes-mcp

      https://github.com/punkpeye/awesome-mcp-servers

      資料來源:

      https://www.anthropic.com/news/model-context-protocol

      https://salesforcedevops.net/index.php/2024/11/29/anthropics-model-context-protocol/

    • 語音

      3.json

  • 地端 n8n 可同時上線使用人數受底層資料庫架構限制

    根據 n8n 的文件和社群討論,地端(self-hosted)版本的 n8n 在同時上線使用人數上,軟體本身沒有硬性限制,尤其是免費的社群版(Community Edition)可以支援無限數量的使用者。然而,實際可同時流暢使用的人數,主要取決於您的伺服器硬體資源、資料庫配置以及工作流程的複雜度和執行頻率。

    影響同時上線人數的關鍵因素:

    • 伺服器硬體: CPU、記憶體 (RAM) 和硬碟 I/O 效能是主要瓶頸。越多的使用者同時操作,對伺服器資源的消耗就越大。

      n8n 使用 地端 SQLite:**嚴格來說,只適合 1 個人穩定使用。最多能容忍 2-3 人進行非常低強度的、非同時性的操作。**一旦超過這個規模,您很快就會遇到瓶頸和錯誤,無論您的筆電是 8GB、16GB 還是 32GB 記憶體。


      核心瓶頸:不是記憶體,是 SQLite 的「單一寫入」機制

      要理解這一點,需要知道 n8n 如何與資料庫互動:

      1. 讀取操作:當您打開網頁、檢視工作流程時,n8n 會從資料庫讀取資料。
      2. 寫入操作:當您儲存工作流程、執行工作流程(手動或自動)、建立/修改憑證時,n8n 會向資料庫寫入資料。

      SQLite 的設計是在任何時間點,只允許一個「寫入」操作。當有程序正在寫入時,整個資料庫檔案會被鎖定,其他所有需要寫入的請求都必須排隊等待。

      這就像一個只有一個窗口的銀行。 無論銀行大廳(記憶體)有多大,能容納多少人排隊,窗口一次只能服務一個人。如果很多人同時要存款(寫入),隊伍就會排很長,後面的人就會等很久,甚至不耐煩而離開(操作逾時)。

      不同使用情境下的分析 (以一台 Core i5, 16GB RAM 的筆電為例)

      使用情境估計可同時服務人數主要瓶頸可能發生的狀況
      情境一:低強度
      - 1 人在編輯工作流程
      - 沒有或很少有背景自動執行的流程
      1-3 人使用者的耐心體驗尚可。如果第 2、3 個人只是偶爾查看或執行一下簡單的流程,系統還能應付。記憶體在此時完全夠用。
      情境二:中等強度 (最常見)
      - 1 人在編輯並頻繁儲存
      - 同時有幾個排程任務 (如每分鐘) 或 webhook 在背景執行
      1 人 (穩定)
      2 人 (非常勉強)
      SQLite 的資料庫鎖定這是問題的開始。 當您按下儲存時,剛好一個 webhook 進來,其中一個操作就會因為資料庫被鎖定 (SQLITE_BUSY 錯誤) 而失敗或延遲。您可能會遇到介面卡頓、儲存失敗、webhook 執行失敗等問題。
      情境三:高強度
      - 2 人或以上同時嘗試編輯和儲存不同的工作流程
      - 或是有多個 webhook 被同時觸發 (例如一個行銷活動)
      0-1 人 (系統會變得不穩定)SQLite 的資料庫鎖定系統將頻繁出錯。 會大量出現 SQLITE_BUSY 錯誤,工作流程執行紀錄會丟失,介面會非常卡頓,幾乎無法正常使用。增加記憶體到 32GB 或 64GB 也完全無法解決這個問題。

      記憶體 (RAM) 在這裡扮演什麼角色?

      雖然不是主要瓶頸,但記憶體依然重要:

      1. n8n 基礎運作: n8n 的 Node.js 程序本身需要消耗一定的記憶體 (約 200-500MB)。
      2. 工作流程執行: 當一個工作流程被執行時,它處理的資料(例如讀取的檔案、API 回應的 JSON)會暫時存放在記憶體中。如果您的流程會處理大型檔案或非常大的資料集,就需要較多的記憶體。
      3. 使用者介面: 每個打開的瀏覽器分頁都會與後端建立連線,消耗少量資源。

      對於一般的筆電 (8GB-16GB RAM),記憶體足以應付單人使用下非常複雜的工作流程,或是數個簡單的並行流程。但記憶體再多,也無法突破 SQLite 一次只能一人寫入的限制。

      • 定位:它是一個絕佳的個人學習工具、開發環境、或非關鍵任務的個人自動化助理
      • 人數限制:穩定使用的前提下,請將其視為單人工具
      • 升級路徑:如果您有以下任何一種需求,請立即將資料庫更換為 PostgreSQL,這是解決問題的唯一正確方法:
        • 需要 3 同時使用 n8n。
        • 您的 n8n 需要處理頻繁或重要的 webhook
        • 您追求系統的穩定性,不希望工作流程因資料庫問題而執行失敗。

      用筆電跑 SQLite 版的 n8n,請不要考慮服務「多個人」,而是將其當作您自己專屬的強大工具。

    • 資料庫效能:

      • 預設情況下,簡易的 n8n 安裝會使用 SQLite 資料庫。當有多個使用者同時編輯或執行工作流程時,SQLite 容易發生資料庫鎖定("SQLITE_BUSY" 錯誤),導致操作變慢或失敗。
      • 若有多使用者協作或高併發需求,官方和社群都強烈建議將資料庫更換為 PostgreSQL,以獲得更好的併發處理能力和穩定性。
    • 工作流程的併發執行:

      • 在標準模式(regular mode)下,n8n 不會限制同時執行的工作流程數量。 這可能導致過多的併發執行耗盡伺服器資源,影響系統回應速度。
      • 為了解決高併發問題,n8n 提供了「佇列模式」(queue mode),可以更有效地管理和控制工作流程的併發執行數量,建議在需要處理超過 50 個併發工作流程或有大量 webhook 請求時使用。
    • 使用者行為: 同時在線上編輯複雜工作流程的使用者,會比僅是觸發執行的使用者消耗更多的伺-服器資源。

    不同規模的建議配置:

    • 入門級: 對於少數使用者和較低的工作流程執行量(例如每天 5,000-10,000 次執行),使用 SQLite 的基本伺服器配置是可行的。
    • 進階級: 當使用者增加,或工作流程執行變得頻繁,導致資料庫鎖定或效能下降時,應遷移至使用 PostgreSQL 資料庫。
    • 大規模應用: 若需要處理非常高的併發量(例如每秒數百個請求),則應採用佇列模式,並可能需要多台伺服器來分散負載。

    總結來說,地端部署的 n8n,尤其是社群版,為使用者數量提供了極大的彈性。 只要您的硬體和基礎架構能夠應付,就可以支援相當多的使用者同時在線上使用。對於有成長需求的團隊,n8n 提供了從簡易到大規模部署的擴充路徑。

    效能比較:SQLite、PostgreSQL 與 Redis

    n8n 目前僅官方支援 SQLite 和 PostgreSQL 作為其主要的後端資料庫。Redis 的角色是擴展輔助,而 MongoDB 則不被支援作為後端資料庫。在選擇資料庫時,效能是關鍵考量因素。SQLite、PostgreSQL 和 Redis 在架構、設計理念和最佳使用場景上各有不同,這直接影響了它們的效能表現。以下將針對這三者進行詳細的效能比較。

    核心差異速覽

    特性SQLitePostgreSQLRedis
    類型嵌入式關聯式資料庫 (RDBMS)物件-關聯式資料庫系統 (ORDBMS)記憶體內鍵值儲存 (In-memory Key-Value Store)
    架構無伺服器 (Serverless),直接讀寫單一檔案主從式架構 (Client-Server)主從式架構 (Client-Server)
    資料儲存磁碟 (單一檔案)磁碟 (可分散至多檔案)記憶體 (RAM),可選配持久化至磁碟
    主要優勢輕量、零設定、高可攜性、讀取速度快功能強大、高併發、資料一致性、複雜查詢極高的讀寫速度、低延遲、豐富的資料結構
    主要限制寫入併發能力弱相較於 Redis 延遲較高資料集大小受限於記憶體、複雜查詢能力弱

    詳細效能比較

    1. 讀寫速度與延遲

    • Redis (冠軍): 作為一個記憶體內資料庫,Redis 的讀寫速度是三者中最快的。所有資料都儲存在 RAM 中,避免了磁碟 I/O 的延遲,使其能夠達到次毫秒級的回應時間。這使得 Redis 在需要即時反應的場景(如快取、即時分析、訊息代理)中表現極為出色。
    • SQLite: 對於本地端的單一使用者讀取操作,SQLite 的速度非常快,甚至在某些情境下可能比 PostgreSQL 或 Redis 更快。這是因為它直接在應用程式的進程內運作,省去了網路通訊的延遲。然而,其寫入效能會因為需要鎖定整個資料庫檔案而受到限制,尤其是在多個執行緒或進程同時嘗試寫入時。
    • PostgreSQL: PostgreSQL 提供非常穩定且可靠的讀寫效能,尤其是在處理複雜查詢和大量資料時。雖然它的延遲因為需要透過網路與伺服器溝通並進行磁碟 I/O 而高於 Redis,但其成熟的查詢優化器和多版本併發控制 (MVCC) 機制,使其在高併發的讀寫場景中表現優異。基準測試顯示,PostgreSQL 在 select 操作上通常比其他基於磁碟的 RDBMS (如 MySQL) 更快。

    2. 併發處理能力 (Concurrency)

    • PostgreSQL (冠軍): 專為高併發環境設計。它採用多版本併發控制 (MVCC),讀取操作不會被寫入操作阻塞,能夠支援數百甚至數千個用戶同時連線。這使其非常適合需要處理大量同時請求的網站和應用程式。
    • Redis: Redis 核心採用單執行緒模型來處理命令,這避免了鎖的複雜性和上下文切換的開銷,確保了操作的原子性。雖然是單執行緒,但透過非同步 I/O 和 I/O 多工技術,它能處理極高的請求量,每秒可達數百萬次請求。對於讀取密集的負載,可以透過增加副本節點來進行水平擴展。
    • SQLite (較弱): SQLite 的併發能力是其主要限制。雖然它允許多個讀取者同時存取資料庫,但在任何時間點只允許一個寫入者。當有寫入操作時,整個資料庫檔案會被鎖定,這會導致其他寫入請求排隊等待,在高併發的寫入場景中會成為效能瓶頸。

    3. 複雜查詢與資料處理

    • PostgreSQL (冠軍): 作為一個功能完整的物件-關聯式資料庫,PostgreSQL 提供了強大的 SQL 支援,包括複雜的 JOIN、子查詢、預存程序、觸發器以及對 JSONB 等進階資料型態的支援。其查詢優化器能夠高效地執行複雜的分析和聚合查詢,適合資料倉儲和需要複雜商業邏輯的應用。
    • SQLite: 支援大部分標準的 SQL 語法,對於許多應用程式來說已經足夠。但它缺乏一些進階功能,例如 RIGHT JOIN 和 FULL OUTER JOIN、預存程序等。其查詢效能對於簡單的本地查詢很好,但處理複雜的 JOIN 和大型資料集時不如 PostgreSQL 高效。
    • Redis (功能有限): Redis 主要是一個鍵值儲存,其查詢能力相對有限,主要是透過鍵來直接存取值。雖然它支援多種豐富的資料結構(如 Lists, Sets, Hashes),並可以透過這些結構執行一些伺服器端的運算,但它不支援傳統的 SQL 查詢和 JOIN 操作。複雜的查詢需要開發者在應用程式層級自行組合資料。

    結論與最佳使用場景

    資料庫最佳使用場景摘要
    SQLite* 嵌入式設備與物聯網 (IoT): 輕量、資源消耗少。適合本地、單機、讀取密集且併發寫入需求低的應用。追求的是極致的輕便和零設定。
    * 行動應用程式與桌面軟體: 作為本地資料儲存。
    * 低流量網站: 每天訪問量低於 10 萬次的網站。
    * 資料分析的暫存容器: 作為處理過程中的臨時資料庫。
    PostgreSQL* 高併發的 Web 應用: 需要處理大量用戶同時讀寫。效能與功能的王者。適合需要高併發、資料一致性、複雜查詢和長期可靠性的大型應用。
    * 大型資料庫與資料倉儲: 管理 PB 等級的資料。
    * 需要資料完整性和 ACID 事務的系統: 金融、電商等。
    * 地理資訊系統 (GIS) 和複雜資料分析。
    Redis* 高效能快取層: 為 PostgreSQL 等資料庫加速,減少延遲。速度的極致追求者。適合需要超低延遲和極高吞吐量的場景,通常作為快取或特定功能的資料儲存。
    * Session 管理與使用者狀態儲存。
    * 即時排行榜、計數器。
    * 訊息佇列與發布/訂閱系統 (Pub/Sub)。

    SQLite vs. PostgreSQL vs. Redis vs. MongoDB

    特性 / 資料庫SQLitePostgreSQLRedisMongoDB
    在 n8n 中的角色主要資料庫 (預設)主要資料庫 (推薦)擴展工具 (佇列模式)不支援 (僅能作為被操作的外部資料庫)
    支援狀態✅ 官方支援✅ 官方支援✅ 官方支援 (用於擴展)❌ 不支援
    主要用途儲存工作流程、憑證、執行紀錄儲存工作流程、憑證、執行紀錄管理高併發的工作流程執行佇列(無)
    併發能力 (寫入時鎖定整個資料庫) (MVCC 機制,讀寫不互相阻塞)極高 (用於訊息傳遞)(不適用)
    穩定性較低,易發生 SQLITE_BUSY 錯誤非常高,為生產環境設計非常高(不適用)
    設定複雜度極低 (零設定)中等 (需獨立安裝與設定)中等 (需獨立安裝與設定)(不適用)
    最佳使用場景個人使用、開發測試、低流量環境所有生產環境、團隊協作、高流量需要處理大量 webhook 或併發執行的場景(無)

    各資料庫詳細說明

    1. SQLite (預設選項,適用於入門)

    • 角色: n8n 的預設資料庫。當您第一次啟動 n8n 而未做任何資料庫設定時,它會自動建立一個 database.sqlite 檔案來儲存所有資料。
    • 運作方式: 這是一個無伺服器 (Serverless) 的嵌入式資料庫。所有資料都存在單一檔案中,n8n 應用程式直接讀寫這個檔案。
    • 優點:
      • 零設定:開箱即用,非常適合快速上手和測試。
      • 輕量級:資源消耗極低。
    • 致命缺點 (為何需要更換):
      • 併發性極差:SQLite 在進行「寫入」操作時,會鎖定整個資料庫檔案。這意味著如果有多個工作流程同時執行(寫入執行紀錄),或者有使用者在編輯儲存工作流程(寫入工作流程資料),它們必須排隊等待,非常容易導致操作逾時和 SQLITE_BUSY 錯誤。這會讓 n8n 變得非常不穩定。
    • 結論: 僅適合單人、低頻率的個人專案或初步的功能測試。任何正式上線或團隊協作的場景都應該避免使用 SQLite。

    2. PostgreSQL (官方推薦的生產環境選項)

    • 角色: n8n 推薦用於所有生產環境的主要資料庫。
    • 運作方式: 一個功能強大的主從式架構 (Client-Server) 的物件-關聯式資料庫。n8n 作為客戶端連接到獨立運行的 PostgreSQL 伺服器。
    • 優點:
      • 高併發處理能力: 採用多版本併發控制 (MVCC),讀取和寫入操作不會互相阻塞,可以輕鬆處理大量同時執行的工作流程和多個使用者同時在線上編輯。
      • 高穩定性與可靠性: 為高負載和資料一致性而設計,極少出現資料庫層面的錯誤。
      • 可擴展性: 能夠處理龐大的資料量,支援複雜的備份和還原策略。
    • 缺點:
      • 設定較複雜: 需要額外安裝、設定並維護一個 PostgreSQL 資料庫。
    • 結論: 只要您打算將 n8n 用於任何正式的商業或團隊用途,更換到 PostgreSQL 是必要的第一步。它可以從根本上解決 SQLite 的穩定性和併發問題。

    3. Redis (擴展工具,非主要資料庫)

    • 角色: Redis 不能 作為 n8n 的主要資料庫。它的作用是 n8n "佇列模式 (Queue Mode)" 下的訊息代理 (Message Broker)。
    • 運作方式:
      1. 當 n8n 設定為佇列模式後,主 n8n 實例在收到 webhook 或手動觸發時,不再自己執行工作流程
      2. 相反地,它會將執行任務打包成一個訊息,然後以極快的速度發送到 Redis 佇列中。
      3. 您可以啟動多個 n8n "工作者 (Worker)" 實例,這些工作者會從 Redis 佇列中獲取任務並實際執行它們。
    • 優點:
      • 極致的擴展性: 能夠應對極高的瞬間流量(例如每秒數百個 webhook 請求),避免因主程序忙碌而丟失觸發。
      • 負載均衡: 將繁重的執行工作分散到多個工作者機器上。
    • 缺點:
      • 增加架構複雜性: 您需要維護 Redis 伺服器以及多個 n8n 工作者進程。
    • 結論: 當您的 n8n 系統(即使已經使用 PostgreSQL)因為需要處理的併發執行數量太多而達到瓶頸時,就應該引入 Redis 來啟用佇列模式。它是 PostgreSQL 的補充,而不是替代品。

    4. MongoDB (不支援作為後端)

    • 角色: n8n 不支援 使用 MongoDB 作為其儲存工作流程、憑證等核心資料的後端資料庫。
    • 為何不支援: n8n 的底層資料模型是圍繞關聯式資料庫設計的,其 ORM (物件關聯對映) 工具 (TypeORM) 也是為 SQL 資料庫打造。要支援像 MongoDB 這樣的 NoSQL 文件資料庫需要重寫大量底層程式碼。
    • 重要區別: 雖然 n8n 不能運行在 MongoDB 之上,但 n8n 提供了 MongoDB 節點。您完全可以在工作流程中,使用這個節點去讀取、寫入、更新或刪除您獨立的 MongoDB 資料庫中的資料。
    • 結論: 您可以將 MongoDB 當作 n8n 自動化流程中的一個外部服務來進行操作,但不能用它來支撐 n8n 本身的運行。

    建議路徑

    1. 開始使用 & 測試: 使用預設的 SQLite
    2. 準備上線 & 團隊協作: 立即遷移到 PostgreSQL。這是確保穩定和多人使用的基礎。
    3. 流量變得非常大: 在 PostgreSQL 的基礎上,引入 Redis 啟用佇列模式來處理高併發執行。
    4. 需要與 MongoDB 互動: 在您的工作流程中使用 MongoDB 節點,而 n8n 本身繼續運行在 PostgreSQL 之上。

    總而言之,這三者並非絕對的競爭關係,而常常是互補的。一個典型的現代應用架構可能會同時使用 PostgreSQL 作為主要的資料庫來確保資料的持久性和一致性,並使用 Redis 作為快取層來加速熱點資料的讀取,以提升整體應用的效能和反應速度。SQLite 則在需要輕量級本地儲存的特定場景中發揮其獨特的優勢。

  • 地端 n8n 資料庫從 SQLite 遷移到 PostgreSQL 流程

    在開始之前:最重要的提醒

    備份!備份!備份!

    在進行任何操作之前,請務必備份您現有的 n8n 資料,所有資料(工作流程、憑證、執行紀錄)都儲存在一個檔案中。

    1. 停止目前正在運行的 n8n 服務。如果您是在終端機中透過 n8n啟動的,請按下 Ctrl + C
    2. 找到您的 n8n 設定資料夾。預設情況下,它位於:
      • Linux / macOS: /home/YOUR_USERNAME/.n8n/ 或簡寫為 ~/.n8n/
      • Windows: C:\\Users\\YOUR_USERNAME\\.n8n\\
    3. 在該資料夾中,找到 database.sqlite 這個檔案。
    4. database.sqlite 完整複製到一個安全的位置(例如桌面或一個備份專用的資料夾)。這個檔案就是您所有心血的結晶。如果後續操作有任何問題,您隨時可以將此檔案複製回來,恢復到原始狀態。

    整個遷移過程需要短暫的停機時間,請選擇適當的時機進行。


    事前準備

    1. 已安裝 PostgreSQL 伺服器:確保您的伺服器上已經安裝並正在運行 PostgreSQL。如果尚未安裝,請參考 PostgreSQL 官方網站 的說明進行安裝。
    2. 資料庫管理工具 (建議):您可以使用命令列工具 psql,或更方便的圖形化介面工具,如 pgAdminDBeaver 來管理 PostgreSQL。這會讓建立資料庫和使用者的過程更簡單。

    詳細步驟

    第一步:為 n8n 建立專用的資料庫和使用者

    出於安全和管理考量,最佳實踐是為 n8n 建立一個獨立的資料庫和對應的使用者帳號,而不是使用預設的 postgres 超級使用者。

    打開您的資料庫管理工具 (例如 psql 或 pgAdmin),執行以下 SQL 命令:

    -- 1. 建立一個名為 n8n 的資料庫
    CREATE DATABASE n8n;

    -- 2. 建立一個名為 n8nuser 的使用者,並設定一個高強度的密碼
    -- 請務必將 'YOUR_STRONG_PASSWORD' 替換為您自己的安全密碼
    CREATE USER n8nuser WITH PASSWORD 'YOUR_STRONG_PASSWORD';

    -- 3. 將 n8n 資料庫的所有權限授予 n8nuser 使用者
    -- 這允許 n8n 在該資料庫中建立、讀取、更新和刪除資料表
    GRANT ALL PRIVILEGES ON DATABASE n8n TO n8nuser;

    完成後,您就有了一個乾淨的、專供 n8n 使用的資料庫。

    第二步:將現有資料從 SQLite 匯出

    接下來,我們需要將您原本在 SQLite 中的工作流程和憑證匯出成檔案。

    1. 暫時確保 n8n 仍連接到舊的 SQLite。也就是說,暫時不要設定任何新的資料庫環境變數。

    2. 打開您的命令列/終端機,並切換到 n8n 的專案目錄 (如果有的話)。

    3. 執行以下指令,將所有工作流程匯出成一個 JSON 檔案:

      n8n export:workflow --all --output=all_workflows.json

    4. 執行以下指令,將所有憑證也匯出成 JSON 檔案。這一步非常重要

      n8n export:credentials --all --output=all_credentials.json --decrypted

      • -decrypted 參數會將憑證以未加密的方式匯出。這是必要的,因為新舊資料庫的加密金鑰 (encryption key) 不同。
      • 請務必妥善保管 all_credentials.json 這個檔案,並在完成遷移後立即刪除它,因為其中包含了敏感資訊。

    現在,您的 all_workflows.jsonall_credentials.json 檔案就包含了所有需要遷移的資料。

    第三步:設定環境變數,讓 n8n 指向 PostgreSQL

    n8n 是透過「環境變數」來得知要連接哪個資料庫的。您需要在啟動 n8n 之前 設定好這些變數。

    打開您的終端機,設定以下環境變數。請根據您在第一步中設定的資訊進行修改。

    在 Linux / macOS 上:

    export DB_TYPE=postgresdb
    export DB_POSTGRESDB_HOST=localhost
    export DB_POSTGRESDB_PORT=5432
    export DB_POSTGRESDB_DATABASE=n8n
    export DB_POSTGRESDB_USER=n8nuser
    export DB_POSTGRESDB_PASSWORD='YOUR_STRONG_PASSWORD'
    # 如果 PostgreSQL 要求 SSL 連線,請加上這行
    # export DB_POSTGRESDB_SSL=true

    在 Windows (CMD) 上:

    set DB_TYPE=postgresdb
    set DB_POSTGRESDB_HOST=localhost
    set DB_POSTGRESDB_PORT=5432
    set DB_POSTGRESDB_DATABASE=n8n
    set DB_POSTGRESDB_USER=n8nuser
    set DB_POSTGRESDB_PASSWORD="YOUR_STRONG_PASSWORD"

    • DB_POSTGRESDB_HOST: 通常是 localhost,除非您的 PostgreSQL 裝在另一台機器上。
    • DB_POSTGRESDB_PORT: 預設是 5432
    • DB_POSTGRESDB_PASSWORD: 就是您在第一步中設定的密碼。

    提示:為了讓設定永久生效,您可以將這些 export 或 set 指令加入到您系統的環境設定檔中 (例如 ~/.bash_profile, ~/.zshrc 等),這樣未來就不用每次都手動輸入。

    第四步:初始化新資料庫並匯入資料

    1. 在設定好上述環境變數的同一個終端機視窗中,先啟動一次 n8n

      n8n

      n8n 會偵測到這是一個空的 PostgreSQL 資料庫,並自動在其中建立所有需要的資料表結構。看到 n8n 成功啟動的訊息後,按 Ctrl + C 將其停止。

    2. 接下來,將我們剛剛備份的資料匯入:

      # 匯入工作流程
      n8n import:workflow --input=all_workflows.json

      # 匯入憑證
      n8n import:credentials --input=all_credentials.json

    第五步:最終啟動與驗證

    所有步驟都已完成!現在,您可以正常啟動 n8n 了。

    n8n

    打開瀏覽器進入 n8n 介面:

    1. 檢查您的工作流程是否都已存在。
    2. 檢查您的憑證是否都已存在。
    3. 嘗試手動執行一個簡單的工作流程,確認它能成功運行。
    4. 查看 "Executions" 頁面,新的執行紀錄應該會被正確記錄。

    如果一切正常,恭喜您!您的 n8n 已經成功運行在更穩定、更高效的 PostgreSQL 資料庫上了。

    最後,請記得將舊的 database.sqlite 檔案和匯出的 all_credentials.json 檔案從安全的地方徹底刪除,以防敏感資訊外洩。

參考資料:

Part III:大型語言模型實作高階班 (LangChain, RAG, Fine-tuning)

一、課程地圖

Untitled

二、學員作品示例

三、課程資料

補充:

2025年IBM舉辦的企業級RAG挑戰第一名演算法

探索 DeepSeek Model-Related Papers

作者有系統整理 DeepSeek 相關論文,涵蓋 DeepSeek LLM、DeepSeek-V2(專家混合模型)、DeepSeek-VL(視覺-語言理解)與 DeepSeek-Math(數學推理) 等關鍵技術。這些研究展現 DeepSeek 在 AI 領域的創新發展,並為業界與學術界提供深入分析。

About: 陳伶志博士, 台灣人工智慧學校執行長。他擁有豐富的學術與實務經驗,任職中央研究院資訊科學研究所研究員、資訊服務處處長,並積極參與政府與學術機構的 AI 相關諮詢工作

停止使用RAG,改用CAG吧!🚫 中研院資訊所 黃瀚萱 助研究員跟政大資科合作的論文!🌟

https://docs.google.com/document/d/1AwylUdyciJhvYn-64ltpe79UL7_G-BmNwqs4NNt4oQ0/edit?_bhlid=a9384dea1b6efd24178e4dbfdba0008c121b8835&tab=t.0#heading=h.y0vtu1yxeknu

四、 其他補充

為推動知識共享與資源應用,本文件內容採開源方式公開,提供大眾自由參考、複製與修改使用。

若您有需要,可依實際情況進行調整與引用。

請於使用或轉載時註明來源:

財團法人台灣人工智慧學校基金會

感謝大家的支持與推廣,讓知識得以持續傳遞與發揚。

聯絡信箱:hi@aiacademy.tw

image.png