https://saju.choeum.com/pos/front/sjuF0101.do?ref=s_BwgZAV1CS2tVJUAFBwEHCjMAAAAAbUJXUg
처음 사주 - 인생 7포인트
2026년 성공하는 시기·성향·연애운·금전운·10년 운까지 한눈에
saju.choeum.com
구글 Gemini API 호출 Java 예제가 인터넷에 없어서 만들었다.
인터넷에 올라온 글들은 따라하기 복잡했는데, 아래 소스는 1소스로 모두 테스트가 가능한 예제이다. 아래 maven 정보의 lib 를 설정한후 (1) API 키와 (2) 프롬프트만 주고 실행하면 된다.
https://aistudio.google.com/app/apikey
이곳에서 API 키를 발급 받아야 하는데, 구글 Gemini 는 무료로도 이용가능하니 일단 무료로 테스트 해보자.
모델에 따른 API 주소는 다를수도 있으니 실행이 안된다면 확인 바란다.
불 필요한 설명은 생략한다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.HttpURLConnection;
import java.net.URL;
import org.json.JSONArray;
import org.json.JSONObject;
public class GeminiApiExample {
private static final String API_KEY = "YOUR_API_KEY"; // 여기에 API 키를 입력하세요
private static final String MODEL_NAME = "gemini-pro"; // 사용할 모델을 선택하세요
// 선택 가능한 Gemini 모델:
// "gemini-pro": 일반적인 프로 모델 (유료)
// "gemini-pro-vision": 멀티모달 입력을 지원하는 프로 모델 (유료) - 이미지 검색 및 텍스트 생성 기능 포함
// "gemini-ultra": 최고 성능을 자랑하는 울트라 모델 (유료) - 대규모 데이터 처리 및 복잡한 작업에 최적
// "gemini-nano": 경량화된 모델 (무료) - 기본적인 텍스트 생성 및 간단한 작업에 적합
// 요금 정보: https://ai.google.dev/pricing
public static void main(String[] args) {
String prompt = "인공지능(AI)이 어떻게 작동하는지 설명해 주세요\n" +
"가급적 전문용어보다는 이해하기 쉽도록 설명해 주세요.\n" +
"유익한 예제를 추가해주세요.";
try {
String response = callGeminiApi(prompt);
System.out.println("Response from API: " + response);
} catch (Exception e) {
e.printStackTrace();
}
}
private static String callGeminiApi(String prompt) throws Exception {
String urlString = "https://generativelanguage.googleapis.com/v1beta/models/" + MODEL_NAME + ":generateContent?key=" + API_KEY;
URL url = new URL(urlString);
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
conn.setRequestMethod("POST");
conn.setRequestProperty("Content-Type", "application/json");
conn.setDoOutput(true);
// JSON 형식이 올바른지 확인
String jsonInputString = String.format(
"{\"contents\": [{\"parts\": [{\"text\": \"%s\"}]}]}",
prompt.replace("\n", "\\n")
);
try (OutputStream os = conn.getOutputStream()) {
byte[] input = jsonInputString.getBytes("utf-8");
os.write(input, 0, input.length);
}
int responseCode = conn.getResponseCode();
if (responseCode == 200) { // 성공적인 응답 코드 200을 체크
try (BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream(), "utf-8"))) {
StringBuilder response = new StringBuilder();
String responseLine;
while ((responseLine = br.readLine()) != null) {
response.append(responseLine.trim());
}
// JSON 응답에서 메시지만 추출
JSONObject jsonResponse = new JSONObject(response.toString());
if (jsonResponse.has("candidates")) {
JSONArray candidates = jsonResponse.getJSONArray("candidates");
StringBuilder message = new StringBuilder();
for (int i = 0; i < candidates.length(); i++) {
JSONObject content = candidates.getJSONObject(i).getJSONObject("content");
JSONArray parts = content.getJSONArray("parts");
for (int j = 0; j < parts.length(); j++) {
message.append(parts.getJSONObject(j).getString("text")).append("\n");
}
}
return message.toString().trim();
} else {
return "No candidates found in the response.";
}
}
} else if (responseCode == 401) {
throw new RuntimeException("Failed : HTTP error code : 401 Unauthorized. Please check your API key and permissions.");
} else if (responseCode == 400) {
try (BufferedReader br = new BufferedReader(new InputStreamReader(conn.getErrorStream(), "utf-8"))) {
StringBuilder response = new StringBuilder();
String responseLine;
while ((responseLine = br.readLine()) != null) {
response.append(responseLine.trim());
}
throw new RuntimeException("Failed : HTTP error code : 400 Bad Request. Response: " + response.toString());
}
} else {
throw new RuntimeException("Failed : HTTP error code : " + responseCode);
}
}
}
/*
필요한 라이브러리의 Maven 정보:
<dependency>
<groupId>org.json</groupId>
<artifactId>json</artifactId>
<version>20210307</version>
</dependency>
*/
/*
cURL 호출 예제:
curl -H 'Content-Type: application/json' \
-d '{"contents":[{"parts":[{"text":"Explain how AI works"}]}]}' \
-X POST 'https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=YOUR_API_KEY'
*/
결과
Response from API: **인공지능(AI)의 작동 방식**
AI는 인간과 비슷한 방식으로 생각하고 학습하는 컴퓨터 시스템입니다. 인간이 문제를 해결하듯이 AI는 데이터를 분석하고 패턴을 찾고 예측을 합니다. AI는 다음과 같은 방법으로 작동합니다.
**1. 데이터 수집:**
AI 시스템은 관련 데이터를 수집합니다. 예를 들어, 스팸 이메일 필터는 이메일을 학습하여 스팸과 정상 이메일을 구분합니다.
**2. 패턴 인식:**
AI는 데이터에서 패턴을 식별합니다. 스팸 이메일 필터는 특정 단어, 구문 또는 발신자 주소와 같은 스팸 이메일의 특징을 찾습니다.
**3. 학습:**
AI 시스템은 패턴을 기반으로 학습합니다. 새로운 데이터를 접하면 AI는 지식을 업데이트하고 향후 결정을 보다 정확하게 내립니다.
**4. 예측과 의사 결정:**
학습이 완료되면 AI는 새로운 데이터에 대해 예측하고 의사 결정을 내릴 수 있습니다. 스팸 이메일 필터는 이메일이 스팸인지 아닌지를 예측합니다.
**예제:**
* **자동 주행 차량:** AI 시스템은 카메라, 센서, GPS를 사용하여 도로 상황을 인지하고 안전하게 주행합니다.
* **개인화 추천:** AI 시스템은 사용자의 선호도를 학습하여 맞춤형 영화 추천, 음악 재생 목록, 뉴스 피드를 제공합니다.
* **의료 진단:** AI 시스템은 의학 이미지를 분석하고 환자의 증상을 평가하여 질병을 조기에 진단하는 데 도움을 줍니다.
* **스팸 이메일 필터:** 위에서 설명한 것처럼 AI 시스템은 이메일을 분석하고 스팸 메시지를 걸러냅니다.
* **고객 서비스 챗봇:** AI 시스템은 인간과 같은 대화를 하여 고객 질문에 답하고 문제를 해결합니다.
*. 이 글이 유용했다면 추천 댓글 한번씩 부탁드립니다.
https://saju.choeum.com/pos/front/sjuF0101.do?ref=s_BwgZAV1CS2tVJUAFBwEHCjMAAAAAbUJXUg
처음 사주 - 인생 7포인트
2026년 성공하는 시기·성향·연애운·금전운·10년 운까지 한눈에
saju.choeum.com
'AI' 카테고리의 다른 글
| ChatGPT API 호출 Java 예제 (1) | 2024.05.22 |
|---|