Page tree
Skip to end of metadata
Go to start of metadata

릴리즈 2.17.0 이상

알림

릴리즈 2.18.0, 3.0.0 이상에서의 설정 방법은 아래 링크를 이용해주세요.

[AIWriteSupporter] 릴리즈 2.18.0, 3.0.0 이상 설정 방법

생성형 AI를 연동해 자동 콘텐츠 생성을 지원하는 AI 글 작성 도우미 플러그인입니다.

업무용 콘텐츠 초안을 자동으로 생성하거나 다양한 편집을 할 수 있어 효율적인 콘텐츠 작성을 할 수 있습니다.


목차 


지원 브라우저

ChromeEdgeSafariIE

  • 공식적으로 지원하는 웹 브라우저는 다음과 같습니다.
    • Microsoft Edge 최신버전
    • Google Chrome 최신버전
    • Apple Safari 최신버전
  • 다른 브라우저에서도 작동할 수는 있지만 모든 기능이 올바르게 작동하지 않을 수 있습니다.
  • Internet Explorer 브라우저는 지원하지 않습니다.


사용 방법

플러그인 파일 불러오기 

<!-- SynapEditor 객체가 존재해야 적용할 수 있기 때문에 에디터 스크립트 파일 아래에 include 해야 합니다 -->

<script src="aiWriteSupporter.min.js의 url"></script>
<link rel="stylesheet" href="aiWriteSupporter.min.css의 url">


툴바에 버튼 추가하기

AI에게 글 작성을 요청하는 버튼을 툴바 영역, 벌룬, 바로 삽입, 메뉴 영역에 추가할 수 있습니다.

툴바에 추가 

synapeditor.config.js
//...
'editor.toolbar': [
	// AI 요청하기 버튼
    'openAIInteraction',
	//...
],
// ...


바로 삽입에 추가

synapeditor.config.js
//...
'editor.quickInsert': [
	// AI 요청하기 버튼
    'openAIInteraction',
	//...
],
// ...



플러그인 설정하기

사용 가능한 키

KeyType필수기본값설명
urlstringO''
  • 요청을 보낼 URL을 설정합니다.
    • OpenAI의 API 주소
    • OpenAI의 API로 요청을 하도록 구현한 URL
    • HyperCLOVA X로 요청을 하도록 구현한 URL 릴리즈 2.17.2311 이상
  • 설정이 되지 않으면 툴바에 플러그인 버튼이 표시되지 않습니다.
apiKeystring
''
  • OpenAI에서 발급받은 API Key를 설정합니다.
  • 해당 설정을 사용하게 되면 브라우저에 Key 값이 노출되기 때문에, Key 값을 설정하지 않고 서버를 통해 요청을 할 수 있도록 하는 것이 안전합니다. 

ai 

string


'gpt'

릴리즈 2.17.2311 이상

  • 사용할 AI를 설정합니다. 기본값은 'gpt'입니다.
    • OpenAI GPT: 'gpt' 
    • NAVER HyperCLOVA X: 'hcx'
requestBodyObject
{}
ocrUrlstring
''
  • OCR URL을 설정하면 초안 작성 메뉴에서 '이미지 첨부'메뉴가 활성화됩니다.
  • 이미지를 첨부하면 이미지에 있는 텍스트를 추출해 추출된 텍스트와 프롬프트를 AI에 함께 전송합니다.

customPrompts

Object[]
[]
  • 사용자 정의 프롬프트 메뉴를 추가합니다.
  • key, type, label, prompt 키를 가지는 객체의 배열을 설정합니다.
{
    key: 'customPromptKey',
    type: 'prompt', // 또는 'immediately'
    label: {
        ko: '메뉴에 보여지는 텍스트',
        en: 'Label shown in menu'
    },
    prompt: {
        ko: 'AI에게 전달될 프롬프트. 요약해줘, 내용을 늘려줘, ...',
        en: 'Prompts to be passed to the AI',
    }
}
{
    key: 'customPromptKey',
    type: 'group',
    label: {
        ko: '하위 메뉴가 있는 메뉴',
        en: 'Menu with submenus'
    },
    items: ['summarize', 'explanation', ...]
}
keyType필수설명
keystringO
  • 프롬프트를 구분할 수 있는 유니크한 값을 설정합니다.
type'prompt' | 'immediately' | 'group'O
  • prompt: 프롬프트 입력칸에 prompt에 정의한 텍스트가 추가됩니다.
  • immediately: prompt에 정의한 텍스트가 메뉴를 실행 시 바로 전송됩니다.
  • group: 하위 메뉴를 가지는 경우 설정합니다.
labelObjectO
  • 메뉴에 보일 텍스트를 설정합니다.
promptObject
  • type: 'prompt' 또는 type: 'immediately'일 때만 유효합니다.

  • 프롬프트로 전송할 텍스트를 설정합니다.
itemsstring[]
  • type: 'group'일 때만 유효합니다.

  • 하위 메뉴에 보일 프롬프트 메뉴의 key를 배열 형태로 설정합니다.
iconNamestring
  • 아이콘 이름을 설정합니다.
  • 이름에 해당하는 아이콘이 에디터에 등록이 되어있으면 메뉴에 아이콘이 보입니다.
categoryConfigObject
{}
  • 카테고리 별 보일 프롬프트 메뉴를 설정합니다.
  • 카테고리는 아래와 같습니다. 
    • favorite: 즐겨찾기
    • draft: 초안 작성
    • edit: 편집 또는 검토
    • createByReference: 내용을 참고하여 생성
    • write: 글쓰기

URL, API Key 설정

요청을 보낼 API의 URL, API Key를 설정합니다.

URL은 OpenAI의 API 주소 (https://api.openai.com/v1/chat/completions) 또는 OpenAI의 API로 요청을 하도록 한 URL을 설정합니다.

URL은 필수 값이기 때문에 설정을 하지 않으면 툴바나 메뉴 등에 플러그인의 'AI 요청하기' 버튼이 보이지 않습니다.

API Key에는 openAI에서 발급받은 키를 설정합니다. API Key를 클라이언트에 설정하게 되면 브라우저의 개발자 도구 > 네트워크 탭에 Key 값이 노출되기 때문에 안전하지 않습니다. Key 값을 보이지 않게 감추려면 해당 설정을 사용하지 않고, 서버에서 요청을 하도록 해야 합니다.

synapeditor.config.js
// URL과 API Key를 설정하는 경우
'aiWriteSupporter.config': {
    url: 'https://api.openai.com/v1/chat/completions',
    apiKey: 'sk-abc123...456xyz' // 브라우저에 노출되므로 안전하지 않음
}

// URL만 설정하는 경우
'aiWriteSupporter.config': {
    url: '/request'
}


릴리즈 2.17.2311 이상

사용할 생성형 AI에 맞춰 아래와 같이 설정합니다.

OpenAI GPT 설정

synapeditor.config.js
// URL과 API Key를 설정하는 경우
'aiWriteSupporter.config': {
    ai: 'gpt',
    url: 'https://api.openai.com/v1/chat/completions',
    apiKey: 'sk-abc123...456xyz' // 브라우저에 노출되므로 안전하지 않음
}

// URL만 설정하는 경우
'aiWriteSupporter.config': {
	ai: 'gpt',
    url: '/request'
}


Naver HyperCLOVA X 설정

synapeditor.config.js
// url: HyperCLOVA X로 요청을 하도록 구현한 URL
'aiWriteSupporter.config': {
    ai: 'hcx',
    url: '/request',
}

Request Body 설정

API 요청 시 추가로 필요한 값들을 설정합니다.

GPT의 설정할 수 있는 값들은 아래 링크에서 확인할 수 있습니다.

https://platform.openai.com/docs/api-reference/completions/create

synapeditor.config.js
// Request body 설정
'aiWriteSupporter.config': {
    url: 'url',
    apiKey: 'apiKey',
    requestBody: {
        temperature: 2,
        presence_penalty: 2, 
        ...
    }
}


릴리즈 2.17.2311 이상

HyperCLOVA X의 설정할 수 있는 값들은 아래와 같습니다.

필드타입

설명

temperaturedouble생성 토큰에 대한 다양성 정도 (설정값이 높을수록 다양한 문장 생성 가능) - 0~1 (기본값: 0.5)
topKint생성 토큰 후보군에서 확률이 높은 k 개를 후보로 지정하여 샘플링 - 0~128 (기본값: 0)
topPdouble생성 토큰 후보군을 누적 확률을 기반으로 샘플링 - 0~1 (기본값: 0.8)
repeatPenaltydouble같은 토큰을 생성하는 것에 대한 패널티 정도 (설정값이 높을수록 같은 결괏값을 반복 생성할 확률 감소) - 0~10 (기본값: 5)
stopBeforestring토큰 생성 중단 문자 - [] (기본값)
maxTokensint최대 생성 토큰 수 - 0~2048 (기본값: 2048)



OCR URL 설정: '이미지 첨부' 기능 사용

ocrUrl을 설정하면 초안 작성 메뉴에서 '이미지 첨부' 메뉴가 활성화됩니다.

'이미지 첨부' 기능은 이미지의 텍스트를 추출한 후 입력한 프롬프트와 함께 AI에게 전송하는 기능입니다.

사용 예시) 보도 자료 이미지 첨부 → '요약해줘' 프롬프트 입력 → 전송

synapeditor.config.js
'aiWriteSupporter.config': {
    ocrUrl: 'https://ailab.synap.co.kr/sdk', // 프로모션 기간 중 사용이 가능합니다.
    ocrApiKey: '발급받은 API key'
}


'ocrUrl'을 설정하지 않음: 초안 작성시 '이미지 첨부'메뉴 보이지 않음'ocrUrl'을 설정: 초안 작성시 '이미지 첨부'메뉴 보여짐


사용자 정의 프롬프트 설정

사용자 정의 프롬프트를 추가합니다.

synapeditor.config.js
'aiWriteSupporter.config': {
    customPrompts: [
        {
        	key: 'my-custom-menu1',
        	type: 'prompt',
      		label: {
      	    	ko: '나의 커스텀 메뉴 1',
            	en: 'My most used menu'
        	},
        	prompt: {
            	ko: '바나나를 영어로',
            	en: 'banana in english',
        	}
    	}, 
        {
            key: 'my-custom-menu2',
        	type: 'immediately',
        	label: {
            	ko: '나의 커스텀 메뉴 2',
            	en: 'My most used menu'
        	},
        	prompt: {
            	ko: '포도를 영어로',
            	en: 'grape in english',
        	}
    	},
		{
        	key: 'my-custom-menu3',
        	type: 'group',
        	label: {
            	ko: '내가 제일 자주쓰는 메뉴 모음',
            	en: 'My most used menu'
        	},
        	items: ['englishTranslation', 'tabularFormat']
    	}
    ]
}


카테고리 별 보일 프롬프트 메뉴 설정

카테고리 별 보일 프롬프트 메뉴를 설정합니다.

카테고리는 'favorites', 'draft', 'edit', 'createByReference', 'write'가 있고, 아래는 각각의 카테고리에 대한 설명입니다.

KeyCategory카테고리가 보여지는 경우기본 값
favorites즐겨찾기
  • 항상
[ ]
draft초안 작성
  • 에디터 컨텐츠가 셀렉션 되지 않은 상태(캐럿 상태)에서 'AI 요청하기'를 실행했을 때
[
    'emailGroup', 'meetingLogGroup', 'proposalGroup', 'reportGroup',
    'marketingGroup', 'contractGroup', 'roadmapGroup', 'announcementGroup',
    'guidelinesGroup', 'creativityGroup', 'draftEtcGroup'
]
edit편집 또는 검토
  • 에디터 컨텐츠가 셀렉션 된 상태에서  'AI 요청하기'를 실행했을 때
  • AI 요청에 대한 답변을 받았을 때
[
    'polishing', 'correctSpelling', 'writeShort', 'writeLong',
    'toneChangeGroup', 'arrangingFormatGroup', 'characterCount'
]
createByReference내용을 참고하여 생성
  • 에디터 컨텐츠가 셀렉션 된 상태에서  'AI 요청하기'를 실행했을 때
  • AI 요청에 대한 답변을 받았을 때
[
    'summarize', 'translationGroup', 'explanation', 'findActionItems',
    'keywordRecommendation', 'makeTitle', 'addRelatedInfo'
]
write글쓰기
  • 에디터 컨텐츠가 셀렉션 된 상태에서  'AI 요청하기'를 실행했을 때
  • AI 요청에 대한 답변을 받았을 때
['continueWriting']


초안 작성(draft) 카테고리 메뉴 재정의 하기

카테고리에 보일 메뉴를 재정의할 수 있습니다. 

플러그인에 미리 정의된 프롬프트 메뉴 Key는 [AIWriteSupporter] 미리 정의된 프롬프트 메뉴에서 확인할 수 있습니다.

적용된 모습설정

synapeditor.config.js
'aiWriteSupporter.config': {
    categoryConfig: {
        draft: [
            'meetingRequestEmail', 'salesEmail', 'jobAnnouncement'
        ]
    }
}


편집 또는 검토(edit), 내용을 참고하여 생성(createByReference) 카테고리가 보이지 않도록 하기

카테고리에 빈 배열을 설정하면 카테고리가 보이지 않게 할 수 있습니다.

적용된 모습설정

synapeditor.config.js
'aiWriteSupporter.config': {
    categoryConfig: {
        edit: [],
        createByReference: []
    }
}


즐겨찾기(favorite) 카테고리에 커스텀 메뉴 추가하기

즐겨찾기 카테고리는 모든 상황에서 항상 보여지는 카테고리입니다.

자주 사용하는 프롬프트 메뉴를 추가할 수 있습니다.

적용된 모습설정

synapeditor.config.js
// 즐겨찾기 카테고리에 커스텀 메뉴 추가
'aiWriteSupporter.config': {
    categoryConfig: {
        favorites: ['my-custom-menu1', 'my-custom-menu2', 'my-custom-menu3']
    },
    customPrompts: [
        {
        	key: 'my-custom-menu1',
        	type: 'prompt',
      		label: {
      	    	ko: '나의 커스텀 메뉴 1',
            	en: 'My custom menu'
        	},
        	prompt: {
            	ko: '바나나를 영어로',
            	en: 'banana in english',
        	}
    	}, 
        {
            key: 'my-custom-menu2',
        	type: 'immediately',
        	label: {
            	ko: '나의 커스텀 메뉴 2',
            	en: 'My custom menu'
        	},
        	prompt: {
            	ko: '포도를 영어로',
            	en: 'grape in english',
        	}
    	},
		{
        	key: 'my-custom-menu3',
        	type: 'group',
        	label: {
            	ko: '내가 제일 자주쓰는 메뉴 모음',
            	en: 'My most used menu'
        	},
        	items: ['englishTranslation', 'tabularFormat']
    	}
    ]
}




  • No labels