-
(메신저봇R) GPT(OpenAI), Gemini(Google) API 호출 코드IT 지식 창고 2025. 5. 4. 12:37
메신저봇R을 통해서 개인적인 AI봇을 만들 때, 사용한 API 호출 코드입니다.
공통
const scriptName = "AI봇"; /** * (string) room * (string) sender * (boolean) isGroupChat * (void) replier.reply(message) * (boolean) replier.reply(room, message, hideErrorToast = false) // 전송 성공시 true, 실패시 false 반환 * (string) imageDB.getProfileBase64() * (string) packageName */ function response(room, msg, sender, isGroupChat, replier, imageDB, packageName) { if (msg.includes("AI봇") || msg.startsWith("/")){ if (msg.startsWith("/")){ msg = msg.slice(1); } let resGpt = getChatGPTResponse(msg); // let resGemini = getGeminiResponse(msg); replier.reply(resGemini); } }GPT (OpenAI)
function getChatGPTResponse(msg){ const REST_API_KEY = "OPEN_API_KEY"; let json; let result; try { let data = { "model": "gpt-4o-mini", "messages": [{ "role": "system", "content": "당신은 AI봇입니다." + "질문에 상세하게 답합니다." },{"role":"user", "content":msg}] }; let response = org.jsoup.Jsoup.connect("https://api.openai.com/v1/chat/completions") .header("Authorization", "Bearer " + REST_API_KEY) .header("Content-Type", "application/json") .requestBody(JSON.stringify(data)) .ignoreContentType(true) // html이외의 데이터도 전달받으려면, true로 해야함. .ignoreHttpErrors(true) // HttpError들도 error가 아니라 결과로 return함. .timeout(30000) 30초 .post() json = JSON.parse(response.text()); result = json.choices[0].message.content; } catch(e){ result = e; Log.e(e); } return result; }Gemini(Google)
function getGeminiResponse(msg){ const API_URL = "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=GOOGLE_API_KEY"; let result; try { let data = { "contents": [ { "role": "user", "parts":[ { "text": "당신은 AI봇 입니다." + "질문에 상세하게 대답합니다."}] }, { "role": "user", "parts":[ { "text": msg } ] } ] } let response = org.jsoup.Jsoup.connect(API_URL) .header("Content-Type", "application/json") .requestBody(JSON.stringify(data)) .ignoreContentType(true) .ignoreHttpErrors(true) .timeout(30000) .post() json = JSON.parse(response.text()); result = json.candidates[0].content.parts[0].text; } catch(e){ result = e; Log.e(e); } return result; }'IT 지식 창고' 카테고리의 다른 글
(WSL) Ubuntu 24.04 D드라이브 경로에 설치 방법 (0) 2025.08.02 (gemini) gemini API OpenAI SDK 호환 가능 (0) 2025.05.06 GCP를 위한 ssh-keygen 생성 시 -C 옵션으로 계정 선택 (0) 2025.05.04 (Hibernate) SQLite Dialect Error (0) 2024.08.24 (torchio) 3D Data Augmentation 중 주로 사용하는 기법 (0) 2024.05.14 댓글