나만무 16일차 - GEMINI API를 이용한 이슈 자동생성 기능

김명석·2025년 7월 5일

나만무

목록 보기
19/39
post-thumbnail

Gemini API를 이용해서 사용자가 회의록을 입력하면 GEMINI API가 자동으로 이슈를 생성해주는 기능을 만들었다.

GEMINI API를 쓰기 위해서는 먼저 apiKey를 받아와야만 한다. apiKey는 GEMINI API 사이트에서 발급받아서 사용한다.

https://ai.google.dev/gemini-api/docs/text-generation?hl=ko

API가 발급된 이후에는

import { GoogleGenAI } from '@google/genai';

이 라이브러리를 이용해서 JS에서 API를 사용할 수 있는데

여기에는
model : 어떤 모델을 사용할지
content : AI에게 부탁할 명령
config : AI 프롬프트

이렇게 3개의 요소가 필수적으로 구성되어야 한다. AI의 설정 또한 가능한데 나는 AI의 생각속도를 최대한 빠르게 구현하기 위해서

thinkingBudget: 0,

로 AI의 생각하는데 별도의 시간을 할애하지 않도록 설정하였다.

전체 코드는

const response = await this.genai.models.generateContent({ model: "gemini-2.5-flash", 
                contents: `reporter_id: ${user.id}\n project_id: ${projectId}\n ${text}`,
            config:{
                systemInstruction: `작성한 프롬프트 내용`,
                thinkingConfig:{
                    thinkingBudget: 0,
                }
            } });

위와 같이 된다.

결과는 json 형식으로 반환되는데 ai가 반환한 결과물을 한번 걸러주기 위해서

// ```json으로 시작하고 ```로 끝나는 경우 제거
                if (cleanJson.startsWith('```json')) {
                    cleanJson = cleanJson.replace(/^```json\s*/, '');
                }
                if (cleanJson.startsWith('```')) {
                    cleanJson = cleanJson.replace(/^```\s*/, '');
                }
                if (cleanJson.endsWith('```')) {
                    cleanJson = cleanJson.replace(/\s*```$/, '');
                }

위와 같이 AI의 대답을 문자열 파싱으로 한번 정제해주었다.

프론트엔드에서는 파싱된 json문을 이용해 사용자에게 이슈카드들을 추천해주고 사용자는 이중에서 자신에게 맞는 API를 취사선택해서 이슈카드를 생성할 수 있다.

profile
응애

0개의 댓글