是時候來串接點好玩的東西了,我們來接看看 Google 提供的 AI 機器人 Gemini。
Gemini 是 Google 於 2023 年 12 月推出的語言模型,你可以透過 Gemini 直接使用 Google AI,輕鬆撰寫內容、擬訂計畫、學習新知等。在 Gemini 中輸入提示後,生成回覆時會運用已知資訊或從其他來源 (例如其他 Google 服務) 擷取的資訊。
以上取自 Gemini 系列應用程式常見問題。
首先進去 計費模式 看一下,可以發現在 Google AI Studio 中可以免費使用,在其餘的情況下,如果專案中有綁定付款帳號,就會變成 即付即用 模式。
所以我們進入 Google AI Studio 產生一組 API Token。點選左方的 Get API KEY > 接著點 Create API KEY,選擇或建立專案就可以拿到 token。
先開一個新的應用程式,並在表單中建立等等要用的欄位,我們預想的是一個欄位放問題,一個欄位放 AI 給的答案,再一個空白欄位放產生的按鈕。
欄位類型 | 欄位 ID |
---|---|
單行文字方塊 | question |
多行文字方塊 | answer |
空白欄位 | gemini-btn |
按鈕不一定要用空白欄位,可以抓取上方 header menu 的 DOM。
專案建立過很多次了,就直接跳過,老樣子用 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 後再渲染到畫面上。