今天的學習目標就是嘗試把 Gemini 連接到我的 Java 程式中。
API 是一個在不同軟體間可以溝通的工具,簡單來說就像是不同軟體之間的橋樑,讓一個程式可以向另一個程式提出需求,並取得對方回傳的資料或功能。整個流程就會是Java → Request → Gemini API → Response → Java。
目前使用的是 Google AI Studio 裡的 Gemini API Key。
API Key 就是在呼叫 Gemini API 時使用的憑證。要特別注意的是不能直接把真正的 API Key 公開在程式碼裡。
而為了避免之後把程式碼上傳到 GitHub,API Key 也會一起被公開出去。我需要另外設定了環境變數,把真正的 Key 藏在電腦的環境設定裡 "env":{ "GEMINI_API_KEY":...},而程式只負責讀取 String apiKey = System.getenv("GEMINI_API_KEY");,這樣就可以把程式碼和真正的 Key分開。
建立 Java 的 Request
新增 GeminiService.java,負責 Java 和 Gemini API 之間的連線。在 HttpClient 可以更清楚的了解HttpRequest如何傳送到指定的 API,以及傳送內容 Request 包含的方法:如 URI 是要把資料送到哪裡,Header 告訴 API 傳送的資料格式,以及POST 把準備好的 JSON 內容送出去。
Prompt 轉成 JSON
Gemini API 接收的資訊並非一般文字,而是需要以 JSON 格式傳送。因此文字內容需要被放進指定的 JSON 結構,再透過 HTTP Request 傳送。這裡學到可以使用 escapeJson() 來處理換行、雙引號等特殊字元,避免 JSON 的格式被文字破壞。
接收 Gemini 的 Response
Request 傳出去後,接下來就是等待 Gemini 回傳 Response:
加入簡單的 responseText ,如果連結成功就讓gemini回傳一句話最後成功收到 Gemini 回傳的內容:
還有一個小地方要注意,就是有時候因為已經開啟的終端機或 VS Code ,它不一定會馬上讀到新設定的環境變數,所以在設定完成後需要重新開啟程式或終端機,再重新執行!