ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [generative-ai] 구글 Gemini API로 자바스크립트 챗봇 만들기
    Node.js/언어모델 2024. 4. 1. 09:18
    반응형

    Gemini API로 자바스크립트 챗봇 프로그램 만들기


    대규모 언어 모델(LLM)의 발전으로 인해 누구나 챗봇을 만들 수 있는 시대가 되었습니다. 최근에는 프로그래밍 언어를 거의 알지 못한 상태에서도 다양한 API를 이용해서 챗봇 구현은 코드 몇 줄로 해결할 수 있는데요, 이번에는 구글에서 선보인 대화형 인공지능 모델 제미나이(Gemini) API를 활용해서 간단한 챗봇 프로그램을 만들어 보도록 하겠습니다. 웹사이트에서 바로 사용할 수 있도록 자바스크립트(JavaScript) 언어로 구현하였으며, 해당 자바스크립트 파일을 웹사이트 구성요소에 집어넣을 경우 웹앱을 구현할 수 있습니다.

     

     

    제미나이 API 키 발급


    [그림 1] Gemini API 키 발급 화면

     

     

    제미나이 API를 이용하기 위해서는 API 키를 발급받아야 합니다. 해당 키는 구글 AI 스튜디오 홈페이지 에 접속한 뒤, 이용 약관에 동의한 후 API key 발급을 선택하면 됩니다. 해당 API 키는 계정 정보가 포함되어 있으므로, 공개된 장소에 업로드하거나 노출되지 않도록 주의해 주셔야 합니다.

     

     

    라이브러리 설치 및 실행


    자바스크립트에서 제미나이 API를 사용하기 위해서는 generative-ai 라이브러리를 설치해야 합니다. 해당 라이브러리는 npm을 이용해 설치할 수 있으며, npm i @google/generative-ai 명령어를 입력하면 금새 설치됩니다. 해당 라이브러리를 설치한 뒤 불러오려면 아래 코드와 같이 입력하시면 됩니다.

     

     

    const {GoogleGenerativeAI} = require('@google/generative-ai');
    const gemini = new GoogleGenerativeAI('API 키');

     

     

    이후에는, 아래 함수의 사용법을 확인하시고 원하는대로 배열해 두면 간단하게 챗봇 프로그램을 만들 수 있습니다. Node.js 기반으로 작성한 예시 코드를 맨 아래에 적어두었으므로, 참고해 두시기 바랍니다.

     

     

    • generative-ai.getGenerativeModel({model: 'model_name'}): 지정된 모델을 불러옵니다. 제미나이는 ultra, pro, nano의 3가지 모델을 제공하는데, 일반 사용자는 pro를 사용하는 것이 무난합니다.
    • model.generateContent('prompt'): 해당 함수에 입력된 프롬프트를 모델로 전달합니다.
    • Content.response: 모델에서 도출한 응답입니다.
    • response.text(): 응답을 문자열로 리턴합니다.

     

    // Import library
    const {GoogleGenerativeAI} = require('@google/generative-ai');
    
    // API key
    const apiKey = 'API 키';
    const gemini = new GoogleGenerativeAI(apiKey);
    
    // Run
    async function chat(prompt){
        try{
            const model = gemini.getGenerativeModel({model: 'gemini-pro'});
            const result = await model.generateContent(prompt);
            const response = await result.response;
            const text = await response.text();
    
            if (text) {
                console.log(text);
                return 200
            }
    
        }
    
        catch (error){
            console.error(`서버 에러가 발생했습니다: ${error}`);
        }
    
    }

     

    chat('안녕')
    Promise { <pending> }
    
    
    
    안녕하세요. 반갑습니다.
    반응형

    댓글

문의: jwkang3929@naver.com