릴리즈 2.17.0 이상
생성형 AI를 연동해 자동 콘텐츠 생성을 지원하는 AI 글 작성 도우미 플러그인입니다.
업무용 콘텐츠 초안을 자동으로 생성하거나 다양한 편집을 할 수 있어 효율적인 콘텐츠 작성을 할 수 있습니다.
지원 브라우저
- 공식적으로 지원하는 웹 브라우저는 다음과 같습니다.
- Microsoft Edge 최신버전
- Google Chrome 최신버전
- Apple Safari 최신버전
- Mozilla Firefox 최신버전
- 다른 브라우저에서도 작동할 수는 있지만 모든 기능이 올바르게 작동하지 않을 수 있습니다.
- Internet Explorer 브라우저는 지원하지 않습니다.
사용 방법
플러그인 파일 불러오기
<!-- SynapEditor 객체가 존재해야 적용할 수 있기 때문에 에디터 스크립트 파일 아래에 include 해야 합니다 --> <script src="aiWriteSupporter.min.js의 url"></script> <link rel="stylesheet" href="aiWriteSupporter.min.css의 url">
툴바에 버튼 추가하기
AI에게 글 작성을 요청하는 버튼을 툴바 영역, 벌룬, 바로 삽입, 메뉴 영역에 추가할 수 있습니다.
툴바에 추가
//... 'editor.toolbar': [ // AI 요청하기 버튼 'openAIInteraction', //... ], // ...
바로 삽입에 추가
//... 'editor.quickInsert': [ // AI 요청하기 버튼 'openAIInteraction', //... ], // ...
플러그인 설정하기
사용 가능한 키
Key | Type | 필수 | 설명 | ||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
ai | string | 릴리즈 2.18.0 이상O |
| ||||||||||||||||||||||||||||
url | string | O |
| ||||||||||||||||||||||||||||
apiKey | string |
| |||||||||||||||||||||||||||||
requestBody | Object |
| |||||||||||||||||||||||||||||
ocrUrl | string |
| |||||||||||||||||||||||||||||
customPrompts | Object[] |
{ 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', ...] }
| |||||||||||||||||||||||||||||
categoryConfig | Object |
|
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 값을 보이지 않게 감추려면 해당 설정을 사용하지 않고, 서버에서 요청을 하도록 해야 합니다.
// URL과 API Key를 설정하는 경우 'aiWriteSupporter.config': { url: 'https://api.openai.com/v1/chat/completions', apiKey: 'sk-abc123...456xyz' // 브라우저에 노출되므로 안전하지 않음 } // URL만 설정하는 경우 'aiWriteSupporter.config': { url: '/request' }
릴리즈 2.18.0 이상
사용할 AI, OpenAI의 GPT 또는 NAVER의 HyperCLOVA X를 URL, API Key 설정을 통해 지정할 수 있습니다.
OpenAI의 GPT를 사용할 경우 아래와 같이 설정합니다.
// 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를 사용할 경우 아래와 같이 설정합니다.
// URL과 API Key를 설정하는 경우 'aiWriteSupporter.config': { ai: 'hcx', tokenUrl: 'https://api.hyperclova.ai/v1/tokens', // 토큰 발급 요청 API URL url: 'https://api.hyperclova.ai/v1/chat-completions/HCX-001', clientID: '2029ae...97b72', clientSecret: '8gsetc...0bges3' // 브라우저에 노출되므로 안전하지 않음 } // URL만 설정하는 경우 'aiWriteSupporter.config': { ai: 'hcx', url: '/request', }
Request Body 설정
API 요청 시 추가로 필요한 값들을 설정합니다.
GPT의 설정할 수 있는 값들은 아래 링크에서 확인할 수 있습니다.
https://platform.openai.com/docs/api-reference/completions/create
// Request body 설정 'aiWriteSupporter.config': { url: 'url', apiKey: 'apiKey', requestBody: { temperature: 2, presence_penalty: 2, ... } }
릴리즈 2.18.0 이상
HyperCLOVA X의 설정할 수 있는 값들은 아래와 같습니다.
필드 | 타입 | 설명 |
---|---|---|
temperature | double | 생성 토큰에 대한 다양성 정도 (설정값이 높을수록 다양한 문장 생성 가능) - 0~1 (기본값: 0.5) |
topK | int | 생성 토큰 후보군에서 확률이 높은 k 개를 후보로 지정하여 샘플링 - 0~128 (기본값: 0) |
topP | double | 생성 토큰 후보군을 누적 확률을 기반으로 샘플링 - 0~1 (기본값: 0.8) |
repeatPenalty | double | 같은 토큰을 생성하는 것에 대한 패널티 정도 (설정값이 높을수록 같은 결괏값을 반복 생성할 확률 감소) - 0~10 (기본값: 5) |
stopBefore | string | 토큰 생성 중단 문자 - [] (기본값) |
maxTokens | int | 최대 생성 토큰 수 - 0~2048 (기본값: 2048) |
OCR URL 설정: '이미지 첨부' 기능 사용
ocrUrl
을 설정하면 초안 작성 메뉴에서 '이미지 첨부' 메뉴가 활성화됩니다.
'이미지 첨부' 기능은 이미지의 텍스트를 추출한 후 입력한 프롬프트와 함께 AI에게 전송하는 기능입니다.
사용 예시) 보도 자료 이미지 첨부 → '요약해줘' 프롬프트 입력 → 전송
'aiWriteSupporter.config': { ocrUrl: 'https://ailab.synap.co.kr/sdk', // 프로모션 기간 중 사용이 가능합니다. ocrApiKey: '발급받은 API key' }
'ocrUrl'을 설정하지 않음: 초안 작성시 '이미지 첨부'메뉴 보이지 않음 | 'ocrUrl'을 설정: 초안 작성시 '이미지 첨부'메뉴 보여짐 |
---|---|
사용자 정의 프롬프트 설정
사용자 정의 프롬프트를 추가합니다.
'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'가 있고, 아래는 각각의 카테고리에 대한 설명입니다.
Key | Category | 카테고리가 보여지는 경우 | 기본 값 |
---|---|---|---|
favorites | 즐겨찾기 |
| [ ] |
draft | 초안 작성 |
| [ 'emailGroup', 'meetingLogGroup', 'proposalGroup', 'reportGroup', 'marketingGroup', 'contractGroup', 'roadmapGroup', 'announcementGroup', 'guidelinesGroup', 'creativityGroup', 'draftEtcGroup' ] |
edit | 편집 또는 검토 |
| [ 'polishing', 'correctSpelling', 'writeShort', 'writeLong', 'toneChangeGroup', 'arrangingFormatGroup', 'characterCount' ] |
createByReference | 내용을 참고하여 생성 |
| [ 'summarize', 'translationGroup', 'explanation', 'findActionItems', 'keywordRecommendation', 'makeTitle', 'addRelatedInfo' ] |
write | 글쓰기 |
| ['continueWriting'] |
초안 작성(draft) 카테고리 메뉴 재정의 하기
카테고리에 보일 메뉴를 재정의할 수 있습니다.
플러그인에 미리 정의된 프롬프트 메뉴 Key는 미리 정의된 프롬프트 메뉴에서 확인할 수 있습니다.
적용된 모습 | 설정 |
---|---|
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'] } ] } |