AISmarteasy – 시맨틱 커널 개발하기 3 – Semantic Function

사용자는 ai 애플리케이션을 사용하고, ai 애플리케이션은 llm을 사용한다.

* 지금 ai는 llm 빼고는 할 말이 없다. ai 애플리케이션의 주된 일은 llm 서비스와 연동하는 것이다. llm에게  뭘 해 달라고 지시하고, 그 처리 결과를 받는 것이다. 그게 아닌 뭔가 해야 할 일이 있다면, 그것은 llm이 잘 할 수 있는데 스스로 좋은 상황을 만들지 못할 때 그 상황이 좀 더 나아지도록 도와 주는 것이다.

llm은 언어 모델이므로, ai 애플리케이션은 뭘 해 달라고 지시할 때 자연어를 사용해야 한다. 자연어로 작성된 llm에게 전달되는 자연어 지시를 llm 세계에서는 프롬프트라고 한다.

ai 애플리케이션은 llm을 사용해야 하고, llm에게  지시할 유일한 수단은 프롬프트이니, ai 애플리케이션은 프롬프트를 잘 다뤄야 한다. llm 연동 ai 애플리케이션 개발을 도와주는 개발 프레임워크도 이 부분에 중점을 둘 수 밖에 없다. 프롬프트를 잘 다루려다 보니 템플릿도 등장 시켰으니, 개발 프레임워크도 프롬프트 템플릿을 잘 다뤄줘야 한다.

llm은 할 수 있는 일을 잘 지시하면, 지시한 일을 잘 한다. 함수 관점으로 보면, ai 애플리케이션은 함수를 호출하는 것이고 llm은 함수를 실행하는 것이다.  ai 애플리케이션의 중요한 일이 llm에게 지시하는 거니, llm 에게 지시하는 부분이 기능(함수)이다. llm에게 지시하는 함수를 시맨틱 함수라 한다. ai 애플리케이션 주된 개발이 llm 연동이고, llm에게 지시하는 일을 시맨틱 함수로 작성하니, ai 애플리케이션 개발의 주 됨이 프롬프트 템플릿 작성이 된다.

 

시맨틱 함수란 프롬프트 템플릿을 llm에게 전달하는 것이니, 프롬프트 템플릿이 관리되어야 한다.

llm과 연동한다고 해서 llm 모델과 직접 연동 되는 경우는 별로 없고, llm 연동 서비스 api와 연동한다. 서비스를 사용할 때 사용자나 제공자가  요구하는 설정들이 있을 수 있다. 이런 설정도 시맨틱 함수에서 관리하면서 llm 서비스와 연동될 때 전달해 줘야 한다.

시맨틱 커널에서는 프롬프트 템플릿과 설정을 파일로 구분하고 있고 시맨틱 함수는 이들을 포함하는 폴더로 작성한다. 보통 프롬프트 템플릿은 skprompt.txt로, 설정은 config.json으로 작성한다. 함수 하나로도 의미를 갖기도 하지만 하나의 개념을 처리하기 위해 다수의 함수들이 필요한 경우가 더 일반적이다. 함수들을 묶어 다룰 개념도 필요한데 시맨틱 커널에서는 플러그인이라 한다.

 

[설계 결정]

– 시맨틱 함수는 폴더로 작성하고, 시맨틱 함수에 해당하는 프롬프트와 llm 서비스 요청을 위한 설정은 함수 폴더에 파일로 작성한다. 프롬프트 파일은 skprompt.txt라고 하고, 설정 파일은 config.json이라고 하자.

시맨틱 함수들은 플러그인에 포함되니, 전체 시맨틱 함수 폴더 계층은 다음과 같이 구성하자. 

plugins – semantic – [Skill 접미어를 사용해 작성한 플러그인 이름] – [시맨틱 함수 이름]

예) summarize하고 topic을 작성하는 기능이 있다고 할 때, 이것들은 writer skill로 보고 디렉토리 계층을 구성해 보면

plugins -semantic – writerskill

– summarize

– topic

– [개발 미 반영] 설정은 함수 마다 작성하는 것은 낭비이니.  llm이 처리해 주기를 원하는 수준에 따라 몇 개만 만들어두고, 어떤 수준으로 할 것 인지에 따라 선택해서 사용하도록 하자. 프롬프트 템플릿은 내용을 직접 바꿀 일이 많으니 코딩 할 수도 있지만 별도 텍스트 파일을 두도록 하고. 설정은 몇 개에서 선택해서 사용하게 코딩하도록 하자.

– ai 애플리케이션 실행 시작 시, 시맨틱 함수들은 모두 로딩하고 시작한다.

함수는 플러그인 이름을 알고 함수 이름을 알면 찾을 수 있다. 이렇게 함수가 관리되도록 하자.

커널이 ai 애플리케이션 코어이니, 여기서 로딩 된 함수들을 관리하도록 하자.

 

About the Author
(주)뉴테크프라임 대표 김현남입니다. 저에 대해 좀 더 알기를 원하시는 분은 아래 링크를 참조하세요. http://www.umlcert.com/kimhn/

Leave a Reply

*