Upgrade to Pro — share decks privately, control downloads, hide ads and more …

自 LLM 誕生的新 UX 模式,如何在現有軟體服務整合 copilot

Kewang
October 26, 2024

自 LLM 誕生的新 UX 模式,如何在現有軟體服務整合 copilot

自從 2022 年底 ChatGPT 問世以來,許多 LLM 的應用層出不窮,其中一個分支就是 copilot,無論是 Microsoft 或是 GitHub 都有推出自己的 copilot,GitHub Copilot 更是目前軟體工程師必備的好幫手,雖然大家開始跳槽到 Cursor XD

但如果要在一個軟體服務裡面加上 copilot 的話,有想過該如何實作嗎?這場分享主要會拿市面上最大的行程規劃服務,在現有的前後端軟體架構上,利用 Socket.IO 加上 message queue 完成 copilot 這種新的 UX 模式

1. 什麼是 copilot?
2. 如何在軟體服務的前後端上整合 copilot?
3. 開發 copilot 與一般 UI 操作的不同之處及注意事項

Kewang

October 26, 2024
Tweet

More Decks by Kewang

Other Decks in Programming

Transcript

  1. Kewang • 王慕羣 Kewang • JavaScript / Java • PostgreSQL

    / MongoDB / Elasticsearch / HBase • Git / DevOps • 熱愛開源 Linkedin Linkedin kewangtw kewangtw SlideShare SlideShare kewang kewang Gmail Gmail cpckewang cpckewang Facebook Facebook Kewang 的資訊進化論 Kewang 的資訊進化論 devopsday taipei devopsday taipei '17 '17 hadoopcon hadoopcon '14 '15 '14 '15 jcconf jcconf '16 '17 '18 '16 '17 '18 GitHub GitHub kewang kewang Funliday Funliday kewang kewang modernweb modernweb '18 '19 '20 '21 '18 '19 '20 '21 coscup coscup '20 '21 '20 '21 mopcon mopcon '14 '20 '22 '14 '20 '22 webconf webconf '23 '23
  2. 11 今天內容 • 跟 GitHub Copilot 完全無關 • 只講如何整合 Copilot

    到你開發的軟體 • Message Queue 及 Socket.IO 必備
  3. 44

  4. 47

  5. 48

  6. 55 要注意喔 • LLM – Function call – Shift system

    prompt – 自定義 context – 刪除動作必須 double check
  7. 56 要注意喔 • LLM – Function call – Shift system

    prompt – 自定義 context – 刪除動作必須 double check • Socket.IO
  8. 57 要注意喔 • LLM – Function call – Shift system

    prompt – 自定義 context – 刪除動作必須 double check • Socket.IO – client 要能分辨 copilot
  9. 58 要注意喔 • LLM – Function call – Shift system

    prompt – 自定義 context – 刪除動作必須 double check • Socket.IO – client 要能分辨 copilot – emit 要分開發送
  10. 59 要注意喔 • LLM – Function call – Shift system

    prompt – 自定義 context – 刪除動作必須 double check • Socket.IO – client 要能分辨 copilot – emit 要分開發送 • 支援多動作
  11. 64 Shift system prompt no. role prompt 1 system (base)

    你是行程規劃 copilot, blahblah
  12. 65 Shift system prompt no. role prompt 1 system (base)

    你是行程規劃 copilot, blahblah 2 system (context) {"context":{"pois":[{"id":123,"name":" 鼎泰豐 "}, {"id":456,"name":" 晴空塔 "}]}}
  13. 66 Shift system prompt no. role prompt 1 system (base)

    你是行程規劃 copilot, blahblah 2 system (context) {"context":{"pois":[{"id":123,"name":" 鼎泰豐 "}, {"id":456,"name":" 晴空塔 "}]}} 3 user 幫我把鼎泰豐標示為午餐
  14. 67 Shift system prompt no. role prompt 1 system (base)

    你是行程規劃 copilot, blahblah 2 system (context) {"context":{"pois":[{"id":123,"name":" 鼎泰豐 "}, {"id":456,"name":" 晴空塔 "}]}} 3 user 幫我把鼎泰豐標示為午餐 4 assistant {"id":"call_id_test","arguments": {"id":123,"name":" 鼎泰豐 ","alias":" 午餐 "}}
  15. 68 Shift system prompt no. role prompt 1 system (base)

    你是行程規劃 copilot, blahblah 2 system (context) {"context":{"pois":[{"id":123,"name":" 鼎泰豐 "}, {"id":456,"name":" 晴空塔 "}]}} 3 user 幫我把鼎泰豐標示為午餐 4 assistant {"id":"call_id_test","arguments": {"id":123,"name":" 鼎泰豐 ","alias":" 午餐 "}} 5 tool*n {"id":"call_id_test","content":"{\"success\":true}"}
  16. 69 Shift system prompt no. role prompt 1 system (base)

    你是行程規劃 copilot, blahblah 2 system (context) {"context":{"pois":[{"id":123,"name":" 鼎泰豐 "}, {"id":456,"name":" 晴空塔 "}]}} 3 user 幫我把鼎泰豐標示為午餐 4 assistant {"id":"call_id_test","arguments": {"id":123,"name":" 鼎泰豐 ","alias":" 午餐 "}} 5 tool*n {"id":"call_id_test","content":"{\"success\":true}"} 6 assistant 已成功為您把鼎泰豐標示為午餐
  17. 70 Shift system prompt no. role prompt 3 user 幫我把鼎泰豐標示為午餐

    4 assistant {"id":"call_id_test","arguments": {"id":123,"name":" 鼎泰豐 ","alias":" 午餐 "}} 5 tool*n {"id":"call_id_test","content":"{\"success\":true}"} 6 assistant 已成功為您把鼎泰豐標示為午餐
  18. 71 Shift system prompt no. role prompt 3 user 幫我把鼎泰豐標示為午餐

    4 assistant {"id":"call_id_test","arguments": {"id":123,"name":" 鼎泰豐 ","alias":" 午餐 "}} 5 tool*n {"id":"call_id_test","content":"{\"success\":true}"} 6 assistant 已成功為您把鼎泰豐標示為午餐 7 system (base) 你是行程規劃 copilot, blahblah
  19. 72 Shift system prompt no. role prompt 3 user 幫我把鼎泰豐標示為午餐

    4 assistant {"id":"call_id_test","arguments": {"id":123,"name":" 鼎泰豐 ","alias":" 午餐 "}} 5 tool*n {"id":"call_id_test","content":"{\"success\":true}"} 6 assistant 已成功為您把鼎泰豐標示為午餐 7 system (base) 你是行程規劃 copilot, blahblah 8 system (context) {"context":{"pois":[{"id":123,"name":" 鼎泰 豐 ","alias":" 午餐 "},{"id":456,"name":" 晴空塔 "}]}}
  20. 73 Shift system prompt no. role prompt 3 user 幫我把鼎泰豐標示為午餐

    4 assistant {"id":"call_id_test","arguments": {"id":123,"name":" 鼎泰豐 ","alias":" 午餐 "}} 5 tool*n {"id":"call_id_test","content":"{\"success\":true}"} 6 assistant 已成功為您把鼎泰豐標示為午餐 7 system (base) 你是行程規劃 copilot, blahblah 8 system (context) {"context":{"pois":[{"id":123,"name":" 鼎泰 豐 ","alias":" 午餐 "},{"id":456,"name":" 晴空塔 "}]}} 9 user 幫我把晴空塔刪掉
  21. 81 Context useless • 2024/10/22 : claude 公佈 computer use

    • 不久的將來連自行定義 context 都不用了
  22. 82 Context useless • 2024/10/22 : claude 公佈 computer use

    • 不久的將來連自行定義 context 都不用了 – 將來快到了 ...
  23. 86 支援多動作 • 使用 Function call 可一次萃取多個任務 • 後端同時回傳多個任務給前端 •

    後端難度:同時支援新舊版的前端,同時回傳一 個或多個任務
  24. 87 支援多動作 • 使用 Function call 可一次萃取多個任務 • 後端同時回傳多個任務給前端 •

    後端難度:同時支援新舊版的前端,同時回傳一 個或多個任務 • 前端難度:從原本 1 個任務,變成 n 個任 務, UIUX 的挑戰變高
  25. 93 Advanced - WebConf 2024 • 在現有軟體服務中整合 Copilot 功能: Context

    與 UI 的新挑戰 • 整合 Copilot 功能的挑戰與解決策略 • 情境對 Copilot 效果的影響 • 創新的 UI 設計
  26. 94