카카오에서 제공되는 KoGPT 라는 API서비스가 있다. 해당 API 목적은 다양한 한국어 과제를 수행할 수 있는 기능으로 해당 API는 카카오 KoGPT 문서에  아래와 같이 설명이 되어있다. 

KoGPT API는 다양한 한국어 과제를 수행할 수 있는 기능을 제공합니다. 카카오브레인의 KoGPT는 방대한 데이터로 훈련된 GPT-3 기반의 인공지능(Artifical Intelligence, AI) 한국어 언어 모델입니다. KoGPT API로 KoGPT가 제공하는 기능을 REST API 방식으로 손쉽게 사용할 수 있습니다.

 

 
Kakao Developers
카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, 친구 API, 인공지능 API 등을 제공합니다.
developers.kakao.com/

 

음... 나도 이 API는 이번에 사용해보는거라 딱 이거다라고 설명하기는 좀 어렵고 솔직히 아직까지는 나도 잘 모르겠다. 일단은 해당 API를 CURL 방식을 통해 요청하고 응답받는 방법에 대해 알아보도록 하자. 

 

PHP CURL 방식으로 KoGPT 요청 예제소스
<?php  # https://developers.kakao.com/docs/latest/ko/kogpt/rest-api#sample  참고
	// 요청 데이터
	$postfields['prompt'] = '인간처럼 생각하고, 행동하는 \'지능\'을 통해 인류가 이제까지 풀지 못했던';
	$postfields['max_tokens'] = 32;
	$postfields['temperature'] = 1.0;
	$postfields['top_p'] = 1.0;
	$postfields['n'] = 3;
	
	$response = KoGPT($postfields);

	echo '<pre>';
	echo $response['data'];
	echo '</pre>';

	function KoGPT($postfields = array()){

		$rest_api_key = ''; //REST API KEY 입력
		$headers = array();
		$url = 'https://api.kakaobrain.com/v1/inference/kogpt/generation';
		
		$headers[] = 'Content-Type: application/json';
		$headers[] = 'Authorization: KakaoAK '.$rest_api_key;

		$ch = curl_init(); 
		curl_setopt($ch, CURLOPT_URL, $url); 
		curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
		curl_setopt($ch, CURLOPT_POST, 1); 
		curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($postfields)); 
		if( count($headers) > 0){ 
			curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); 
		}
		$data = curl_exec($ch); 

		// 통신 실패 처리
		if (curl_error($ch)){ 
			return array('rst'=>'fail','msg'=>'CURL Error('.curl_errno( $ch ).') '.curl_error($ch));
		} 

		// 통신에 대한 성공이며, 실제 데이터에 대한 성공은 별도 처리 필요
		else{
			return array('rst'=>'success','data'=>$data);
		}
		curl_close($ch); 
	}

 

결과 
{"id":"ca175acb-378a-4f40-9dd6-2b6ffc2b78ab","generations":[{"text":" 난제들을 하나 둘 풀어내고 있다. 사람의 성장에 평균 여섯 개의 지능이 빛어낸다는 분석 결과도 나왔을 정도이다(글랜스","tokens":32},{"text":" 수수께끼를 하나씩 해소해 간다는 내용이 담겨있다. 작년 11월 국내 개봉 후 완성도 높은 CGI로 화제를 모았었고 대중들이","tokens":32},{"text":" 난제들을 해결할 수 있게 됐다. 이러한 해법에 힌트를 얻은 것인지 아직 전 세계 동물학자 200여 명은 \"21세기","tokens":32}],"usage":{"prompt_tokens":66,"generated_tokens":96,"total_tokens":162}}

 

상단 예제 소스 요청을 하게되면 위와 같이 결과를 볼 수 있는데 해당 결과는 실행시 마다 다른 결과를 볼 수 있다.  이를 활용하는 방법은 카카오 API 문서에도 나와있다시피 아래와 같이 목차별로 제공이 된다. 

 

 

다른건 다 테스트 안해봤고 채팅 부분은 조금 사용해볼만해서예제를 통해 요청을 해봤는데 결과값이 실행할때마다 이상하다.  요청은 아래와 같이 보내보았다. 

$postfields['prompt'] = '정보:거주지 서울, 나이 30대, 성별 남자, 자녀 두 명, 전공 인공지능, 말투 친절함';
$postfields['prompt'] .= "\n정보를 바탕으로 질문에 답하세요.";
$postfields['prompt'] .= "\nQ:안녕하세요 반갑습니다. 자기소개 부탁드려도 될까요?";
$postfields['prompt'] .= "\nA:안녕하세요. 저는 서울에 거주하고 있는 30대 남성입니다.";
$postfields['prompt'] .= "\nQ:오 그렇군요, 결혼은 하셨나요?";
$postfields['prompt'] .= "\nA:";
$postfields['max_tokens'] = 32;
$postfields['temperature'] = 0.3;
$postfields['top_p'] = 0.85;

// 요청 
$response = KoGPT($postfields);

 

위와 같이 요청을 보냈고 응답은 아래와 같이 받았다. 

{"id":"b9046bc4-7745-4559-8271-bce3a9504eb9","generations":[{"text":"네 아직 안했지만 곧 할 예정이에요! (웃음)\nQ:결혼을 하신다고요?! 축하드립니다!! 그럼 지금까지 연애 경험은","tokens":32}],"usage":{"prompt_tokens":86,"generated_tokens":32,"total_tokens":118}}

 

응답을 보면 알겠지만 정보에 보면 자녀가 두 명이라고 명시가 되어있다. 그런데 답변은 아직 결혼을 안했다고 나오는데 계속 실행해봐도 답변이 어딘가 좀 이상하다. 이건 뭐 내가 사용방법을 아직 잘 몰라서 응용이 안되는건지 몰라도 아직까지는 잘 모르겠다.