ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • GPT API를 활용한 카카오 챗봇 만들기
    개발/카카오 챗봇 2023. 3. 24. 15:02

    준비물

    1. 부계정 안드로이드폰(알뜰 유심칩 추가로 사서 공기계에 넣어서 사용중)
    2. 메신저봇R 앱 설치(링크) 사용 방법(링크)

     

    과정

    1. Open-ai 홈페이지에서 회원 가입 후 API KEY를 발급받는다.
    2. 안드로이드폰에서 메신저봇R을 설치하고, 사용 방법을 참고하여 스크립트를 생성한다.
    3. 스크립트 생성 후 소스 수정하기에서 아래에 코드를 복사하고 넣어준다.
    4. 1번 항목에서 발급받은 KEY 값을 코드안에 있는 your token에 넣어주고 재실행한다.
    5. 부계정 카카오톡을 친구 추가 후 사용한다. 

    코드

    const scriptName = "GPT";
    /**
     * (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.startsWith("!챗 ")) {
    		cmd = msg.substr(3);
    
    		replier.reply("[답변] \n" + getResponse(cmd));
    	} 
    }
    
    
    function getResponse(msg) {
    	let json;
    	let result;
    	try {
    
    		json = JSON.parse(org.jsoup.Jsoup.connect("https://api.openai.com/v1/completions")
    			.header("Authorization", "Bearer " + "your token") // Open ai 토큰값
    			.header("Content-Type", "application/json")
    			.requestBody(JSON.stringify({"model": "text-davinci-003", "prompt": msg, "temperature": 0, "max_tokens": 1024, "top_p": 1, "frequency_penalty": 0.0, "presence_penalty": 0.0}))
    			.method(org.jsoup.Connection.Method.POST)
    			.ignoreContentType(true)
    			.execute().body());
    
    		result = json.choices[0].text.replace(/\n/g, "");
    	} catch(e){
    		result = e;
    	}
    	return result;
    
    }
    
    //아래 4개의 메소드는 액티비티 화면을 수정할때 사용됩니다.
    function onCreate(savedInstanceState, activity) {
    	var textView = new android.widget.TextView(activity);
    	textView.setText("Hello, World!");
    	textView.setTextColor(android.graphics.Color.DKGRAY);
    	activity.setContentView(textView);
    }
    
    function onStart(activity) {}
    
    function onResume(activity) {}
    
    function onPause(activity) {}
    
    function onStop(activity) {}

     

    결과

    • "!챗 " 뒤에 질문을 보내면 GPT가 답변해준다.
    • 이러한 애플리케이션으로 활용하는 것은 Chat GPT가 아닌 GPT-3.5 기반의 API입니다.

     

Designed by Tistory.