iT邦幫忙

2024 iThome 鐵人賽

DAY 20
0

kintone × Gemini

是時候來串接點好玩的東西了,我們來接看看 Google 提供的 AI 機器人 Gemini。

Gemini 是什麼

官網:https://gemini.google.com/app?hl=zh-TW

Gemini 是 Google 於 2023 年 12 月推出的語言模型,你可以透過 Gemini 直接使用 Google AI,輕鬆撰寫內容、擬訂計畫、學習新知等。在 Gemini 中輸入提示後,生成回覆時會運用已知資訊或從其他來源 (例如其他 Google 服務) 擷取的資訊。

  • 語言模型會「閱讀」大量文本來學習,因此可以找出語言中的規律,並以日常語言回答你的問題
  • 語言模型會不斷學習,你的提示、回覆和意見回饋也會有所助益
  • Gemini 難免出錯,甚至可能提供令人反感的回覆

以上取自 Gemini 系列應用程式常見問題

先拿 token 再說

首先進去 計費模式 看一下,可以發現在 Google AI Studio 中可以免費使用,在其餘的情況下,如果專案中有綁定付款帳號,就會變成 即付即用 模式。

所以我們進入 Google AI Studio 產生一組 API Token。點選左方的 Get API KEY > 接著點 Create API KEY,選擇或建立專案就可以拿到 token。

建立 kintone 表單

先開一個新的應用程式,並在表單中建立等等要用的欄位,我們預想的是一個欄位放問題,一個欄位放 AI 給的答案,再一個空白欄位放產生的按鈕。

欄位類型 欄位 ID
單行文字方塊 question
多行文字方塊 answer
空白欄位 gemini-btn

按鈕不一定要用空白欄位,可以抓取上方 header menu 的 DOM。

串接 Gemini

專案建立過很多次了,就直接跳過,老樣子用 Vue 開發。首先裝一下套件:

npm install @google/generative-ai

先在程式碼中建立 Model,記得 API_KEY 換成自己的:

import { GoogleGenerativeAI } from "@google/generative-ai"

const API_KEY = "XXXXXXXXX"
const genAI = new GoogleGenerativeAI(API_KEY)

const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" })

接著把使用者的問題丟給 Gemini,再把拿到的答案更新回 kintone 就可以:

const APP_ID = kintone.app.getId()
const RECORD_ID = kintone.app.record.getId()

// 取得使用者問題
const getQuestion = () => {
  const response = kintone.app.record.get()
  const question = response.record.question.value
  return question
}

// 從 gemini 拿到答案
const getAnswer = async (prompt) => {
  try {
    const result = await model.generateContent(prompt)
    return result.response.text()
  } catch(e) {
    console.log(e)
  }
}

// 更新至 kintone 並重新整理
const updateField = async () => {
  try {
    const prompt = getQuestion()
    const answer = await getAnswer(prompt)

    const body = {
      app: APP_ID, 
      id: RECORD_ID,
      record: {
        answer: {
          value: answer
        }
      }
    }
    
    await kintone.api(kintone.api.url('/k/v1/record', true), 'PUT', body)
    window.location.reload()
  } catch (e) {
    console.log(e)
  }
};

點選按鈕觸發 updateField 就可以了,以下是實際產生的過程:

以上就是結合 AI 的簡單範例,也可以用來產生會議摘要、擷取重點、分析資料等用途,結合 kintone 後再渲染到畫面上。


上一篇
Day 19 | kintone 呈現台灣地圖
下一篇
Day 21 | 讓 Sentry 幫你監控 kintone 程式碼
系列文
我阿嬤都會的 kintone 客製化開發30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言