[Golang][Gemini Pro] 使用 Chat Session 與 LINEBot 快速整合出有記憶的 LINE Bot

前提 前幾篇的文章 [Golang] 透過 Google Gemini Pro 來打造一個基本功能 LLM LINE Bot 曾經提過,如何整合基本的 Gemini Pro Chat 與 Gemini Pro Vision 兩個模型的使用。 本次將快速提一下,打造一個具有記憶體的 LINE Bot 該如何做。 相關開源程式碼: https://github.com/kkdai/linebot-gemini-pro 系列文章: 使用 Golang 透過 Google Gemini Pro 來打造一個具有LLM 功能 LINE Bot (一): Chat Completion and Image Vision 使用 Golang 透過 Google Gemini Pro 來打造一個具有LLM 功能 LINE Bot (二): 使用 Chat Session 與 LINEBot 快速整合出有記憶的 LINE Bot(本篇) 使用 Golang 透過 Google Gemini Pro 來打造一個具有LLM 功能 LINE Bot (三): 使用 Gemini-Pro-Vision 來打造名片管理的聊天機器人 什麼叫做有記憶的聊天機器人 原本在 OpenAI Completion API 是採取一問一答的方式,也就是你問一次,他回答。 下一次詢問的時候,就會完全的忘記。這邊提供網頁上的說明程式碼: from openai import OpenAI client = OpenAI() response = client.completions.create( model="gpt-3.5-turbo-instruct", prompt="Write a tagline for an ice cream shop." ) 在之前,如果需要有記憶的功能,就需要把之前的問與答都附在問句的前面。到了之後, OpenAI 推出了 ChatCompletion 的功能,相關的程式碼如下: from openai import OpenAI client = OpenAI() response = client.chat.completions.create( model="gpt-3.5-turbo", messages=[ {"role": "system", "content": "You are a helpful assistant."}, {"role": "user", "content": "Who won the world series in 2020?"}, {"role": "assistant", "content": "The Los Angeles Dodgers won the World Series in...
繼續閱讀

[線上演講筆記] Open-Source AI Projects at UC Berkeley & LMSys: Vicuna and Chatbot Arena

講者資訊 UC Berkeley 的 Wei-Lin Chiang (Winston Chiang) 於 12/29(五) 來陽明交大演講, 主題是有關 Large Language Model (LLM), 尤其是將會提及他們在 UC Berkeley 開發的一個十分知名 LLM – Vicuna. 該LLM今年推出後即已有+500 citations, 超過百萬次下載, 江韋霖是主要作者之一. 歡迎有興趣的老師同學踴躍參與. 時間:112.12.29(五) 10:30-12:00 地點: 陽明交大工程三館 114室 演講者: Wei-Lin Chiang, 江韋霖 (University of California, Berkeley) 演講題目: Open-Source AI Projects at UC Berkeley & LMSys: Vicuna and Chatbot Arena 演講內容 Why Vicuna ? GPT-3 只使用 “Few-Shot” 開始產生其他語言結果。 LLM 成果遠遠比 NLP 的成效更好,開始大量投入相關的開發。 一開始 GPT3 只能 complete ,無法達到 Q&A 。 透過 “Instruct-GPT” 讓只會 Complete 的 GPT3 開始能做 Q7A Stanford 做了 Alpaca ,於是 UC Berkeyley 也想做。 七萬筆數據。 2023 三月 release https://lmsys.org/blog/2023-03-30-vicuna/ 資料 -> 質量提高 -> 發現產出的結果也會提高。 價錢便宜一半,資料量級跟 Stanford 差不多。 Vicuna - Demo site https://chat.lmsys.org/ Data 經過清洗 Blog 的影響: 500 引用 3M 訪問 看圖的 model 也做了。 Vicuna - Limitation 數學, coding 有限制,回答不好。 後來多拿相關資料去優化。 接下來面對問題: 成功來自於「高質量」的數據 (data) 支出不便宜,但是資料搜集不易。 沒有好的 Evaluation 機制。 Benchmark 可能已經被 LLM 看過了。 Chat Area 開放的 ChatGPT (免費) 有許多 model (開源) 學校希望有更多回饋,與相關 RLHF 的資料。 放上所有開源 models 讓使用者評分相關問題,誰回答比較好。 作為資料的搜集。...
繼續閱讀

[TIL][Heroku][Golang] 使用 Github Release 來 Deploy 服務到 Heroku

Github Action 上的 CICD - Go Build 經常在教同學要打造自己的 side Project 的時候,要透過 Github 把自己的實際產品的想法表現出來。 其中,很重要的除了「文件的撰寫上」,那麼就會是「CICD」的實踐。 範例程式 Repo: kkdai/bookmark-makerserver: A IFTTT MakerServer to help you post your tweet to github issue as a bookmark 在 Github Action 上有一個 Golang 基本的 CICD 工具 Golang Build name: Go on: push: branches: [ master ] pull_request: branches: [ master ] jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - name: Set up Go uses: actions/setup-go@v5 with: go-version: 1.21 - name: Build run: go build -v ./... - name: Test run: go test -v ./... 這個就是 Github Action 提供的基本範本 ,可以讓你在 Pull Request 的時候跟 Merge 之後來跑 Go Build 的相關指令。 Github 上的部署到 Heroku 的設定 這邊也可以參考一下 Heroku 提供的基本設定教學與安裝 Github Action 的方法。 name: Deploy on: push: branches: - master jobs: build: runs-on: ubuntu-latest steps: - uses: actions/checkout@v2 - uses: akhileshns/[email protected] # This is the action with: heroku_api_key: $ heroku_app_name: "YOUR APP's NAME" #Must be unique in Heroku heroku_email: "YOUR EMAIL"...
繼續閱讀

[論文心得] Gemini vs GPT-4V: A Preliminary Comparison and Combination of Vision-Language Models Through Qualitative Cases

論文名稱: Gemini vs GPT-4V: A Preliminary Comparison and Combination of Vision-Language Models Through Qualitative Cases https://arxiv.org/abs/2312.15011 快速總結 裡面透過之前微軟發表過的論文中的相關測試案例外,本篇論文也加上幾個類別的案例。 tl;dr GPT-4v 比較簡潔中確性高,但是 Gemini-Pro 的敘述比較清楚。 裡面有很多圖片與相關案例,蠻值得一讀。 幾個有趣案例 當個偵探 都有看出幾個相關的點,蠻適合拿來做一些 side-project 。 :p 判斷鞋子的品牌 有判斷出 NIKE Air Force 1 我覺得蠻厲害的。 讀論文第一頁圖片 成效不錯,如果沒有 arxiv 的資訊可以抽取。這會是一個方法。
繼續閱讀

[年終回顧] 2023 年的回顧與展望

2023 年度回顧 懶人包 今年最令人懷念的就是: 八月的時候,來了一趟去英國跟法國的旅遊。 因為去年 LLM 大爆發,今年有幸可以參加一堆好玩的專案與內部訓練。 (共有 28 個 new Repositories) 到了這個年紀,可以從事自己喜愛的工作,家人開心在一起,還有健康身體,真的很重要。 數據總結 總共讀完: 2418 分鐘, 14 本書 (有 1 本其他平台) 2022: 24 本書。 部落格文章撰寫上: 2023: 59 篇文章 2022: 53 篇文章 健身運動: 2023: 3595 mins 2022: 3966 mins Github Contribution 上面: 2023: 1062 2022: 828 因為 LLM 今年有許多專案: (共有 28 個 new Repositories) linebot-langchain linebot-embedchain linebot-langchain-travel langchain-jira-agent chat-with-onlinepdf 有點多,建議大家去 repo 看。 聚會方面, 2023 比較解禁今年也比較有機會看到更多老朋友: 4 月可以跟東吳大學同學們聚餐。 12 月跟 Corel 的老朋友見面。 雜項數字
繼續閱讀

[Golang] 使用 Golang 透過 Google Gemini Pro 來打造一個具有LLM 功能 LINE Bot (一): Chat Completion and Image Vision

前提 上一次開始使用 tmc/langchaingo 打造一些基礎的 Golang 應用後,就在 12 月 13 號 Google 正式公開了 Gemini Pro 的相關 API 。本篇文章開始以下的事項: Google Gemini Pro 有哪些資源可以學習? 如何整合到 LINE Bot? 打造一個回覆,圖片辨識的 Gemini Pro LINE Bot 系列文章: 使用 Golang 透過 Google Gemini Pro 來打造一個具有LLM 功能 LINE Bot (一): Chat Completion and Image Vision(本篇) 使用 Golang 透過 Google Gemini Pro 來打造一個具有LLM 功能 LINE Bot (二): 使用 Chat Session 與 LINEBot 快速整合出有記憶的 LINE Bot 使用 Golang 透過 Google Gemini Pro 來打造一個具有LLM 功能 LINE Bot (三): 使用 Gemini-Pro-Vision 來打造名片管理的聊天機器人 Google Gemini Pro 有哪些資源可以學習 雖然才正式公佈不久,但是網路上其實有不少資源可以學習。我這邊列出一些資源: (直接問 Gemini Pro 出來的) 這裡也有一些我覺得蠻重要的資訊: Vetex-ai (Google) 的 function calling ? https://cloud.google.com/vertex-ai/docs/generative-ai/multimodal/function-calling#function-calling-sdk-samples Colab: https://colab.research.google.com/github/GoogleCloudPlatform/generative-ai/blob/main/gemini/function-calling/intro_function_calling.ipynb Golang 加上 Gemini pro 這邊有大大 Eli Bendersky 寫的 sample code https://eli.thegreenplace.net/2023/using-gemini-models-from-go/ 如何取得 Google Gemini Pro - API Keys 到 Google AI Studio : https://makersuite.google.com/app/apikey 目前價位如下,還有一些免費額度可以用: 如何整合 LINE Bot? 程式碼: https://github.com/kkdai/linebot-gemini-pro 這邊主要先整入兩個主要功能 : ChatSession 跟 Image ,相關程式碼都在 gemini.go Chat Completion // Gemini Chat Complete: Iput a prompt and get the response string. func...
繼續閱讀