Spring Boot로 Gemini API 연동하기: AI 응답 흐름부터 보안 처리까지

두부링·2025년 3월 24일

AI

목록 보기
1/1

AI (gemini 기본 설정)

curl "https://generativelanguage.googleapis.com/v1beta/models/gemini-2.0-flash:generateContent?key=GEMINI_API_KEY" \
-H 'Content-Type: application/json' \
-X POST \
-d '{
  "contents": [{
    "parts":[{"text": "Explain how AI works"}]
    }]
   }'
  • curl : 요청경로

  • -H : Header 정보

  • -X : 요청정보

  • -d : 요청바디 Json 정보

  • postman 으로 요청하기

벡터 데이터베이스

  • 비정형 데이터를 숫자로 변환해 빠르고 효과적으로 비교하할 수 있다. 일반 데이터베이스는 이미지, 음성, 문서 같은 비정형 데이터를 직접 비교하는 건 어렵고 비효율적이다
  • 벡터 데이터베이스에서는 최근접 이웃 검색(Nearest Neighbor Search, NNS) 기법을 사용함

    유연하게 데이터를 가지고 올 수 있기에 벡터 데이터를 사용

Spring Boot에서 AI API 요청과 응답 처리 흐름 정리 (Gemini API)

  • 컨트롤러 prompt 에 질문이 담기고 서비스의 응답받는 객체(getChatResponse)로 흐름이 넘어간다.

  • 응답받는 객체(getChatResponse)가 요청을 위한 작업한다.
    1 . 요청을 형식에 맞춤

  1. 요청을 위한 밑작업(key, 찐 요청을 json 으로 변환) + 응답 과정

2-1. 응답과정 : extractResponse 를 통해서 우리가 원하는 데이터만을 뽑는다.(ex. content 의 text)

  • 원하는 데이터를 Mono 의 responseBody 에 들어감
  1. 요청에 응답된 데이터가 담긴 Mono 가 리턴된다.

    결국 GeminiService 는 원하는 응답데이터가 담긴 Mono를 리턴함

  2. Controller는 리턴된 Mono 객체를 우리가 보기 편한게 만들어서 응답함
  • 서비스에서 요청을 한 번 더 가공해서 보낸다.

다른 AI 를 이용할려면 Request 와 Response 만 변경해서 사용하면 된다.
Custom properties (api key, url) 변경

.gitignore 설정하기(API Key 조심)

  • Api key 는 보안 때문에 git 올리면 안되기에 해당 프로젝트에 .gitignore 파일 생성 후에 해당 파일 경로 작성하기
  • .gitignore 는 파일 생성해도 . 때문에 보이지 않음

AI 연동 + Restful

profile
하이하잉

0개의 댓글