wiki:it:wiki:gemini_api_integration
차이
문서의 선택한 두 판 사이의 차이를 보여줍니다.
wiki:it:wiki:gemini_api_integration [2025/07/30 06:43] – 만듦 - 바깥 편집 127.0.0.1 | wiki:it:wiki:gemini_api_integration [2025/08/01 12:22] (현재) – syjang0803 | ||
---|---|---|---|
줄 3: | 줄 3: | ||
이 문서는 DokuWiki와 Google Gemini API를 연동한 플러그인 개발에 대한 상세한 설명입니다. | 이 문서는 DokuWiki와 Google Gemini API를 연동한 플러그인 개발에 대한 상세한 설명입니다. | ||
- | ===== 아키텍처 개요 ===== | + | ===== 1. 아키텍처 개요 ===== |
- | ===== 사용자 인터페이스 ===== | + | ===== 2. 사용자 인터페이스 ===== |
- | * 편집기 툴바에 두 개의 AI 버튼 추가 | + | * **편집기 툴바 기능**: DokuWiki |
- | * 반응형 디자인으로 | + | * |
- | * 색상 구분: | + | * |
+ | | ||
+ | * **시각적 | ||
- | ===== 백엔드 구조 ===== | + | ===== 3. 백엔드 구조 ===== |
- | * '' | + | * **메인 플러그인 클래스 ('' |
- | * AJAX 이벤트 핸들러 등록 | + | |
- | * API 키 관리 및 보안 | + | |
- | * 사용량 제한 및 모니터링 | + | |
- | ===== 프론트엔드 구조 ===== | + | ===== 4. 프론트엔드 구조 ===== |
- | * '' | + | * **사용자 인터페이스 로직 ('' |
- | * 텍스트 선택 및 편집기 조작 | + | |
- | * AJAX 통신 및 오류 처리 | + | |
- | * 사용자 피드백 제공 | + | |
- | ===== 핵심 기능 ===== | + | ===== 5. 핵심 기능 ===== |
- | ==== AI 초안 생성 | + | ---- |
+ | ==== 1) AI 초안 생성 | ||
- | * 전체 편집기 내용을 기반으로 초안 생성 | + | |
- | * DokuWiki 문법 규칙 엄격 준수 | + | |
- | * 상세하고 구조적인 문서 생성 | + | |
- | * 한국어 출력 보장 | + | |
- | TEMP_FIVE | + | ---- |
+ | ==== 2) AI 텍스트 수정 ==== | ||
- | * 선택된 텍스트만 수정 | + | |
- | * 사용자 지시사항 기반 수정 | + | |
- | * 원본 DokuWiki 문법 보존 | + | |
- | * 실시간 편집기 업데이트 | + | |
- | ===== API 설정 및 보안 ===== | + | ===== 6. API 설정 및 보안 ===== |
- | ==== API 키 관리 | + | ---- |
+ | ==== 1) API 키 관리 | ||
- | * DokuWiki 설정 관리자를 통한 안전한 키 저장 | + | |
- | * 하드코딩 방지 | + | |
- | * 관리자 권한으로만 접근 가능 | + | |
- | TEMP_FIVE | + | ---- |
+ | ==== 2) 사용량 제한 ==== | ||
- | * 분당 10회 호출 제한 | + | |
- | * 일일 500회 호출 제한 | + | |
- | * 파일 기반 사용량 추적 | + | |
- | * 자동 제한 및 사용자 알림 | + | |
- | ===== 모델 설정 ===== | + | ===== 7. 모델 설정 ===== |
- | ==== Gemini 2.5 Flash 모델 | + | ---- |
+ | ==== 1) Gemini 2.5 Flash 모델 | ||
- | * 최신 모델 사용으로 성능 최적화 | + | |
- | * 1,048,576 토큰 입력 한도 | + | |
- | * 65,536 토큰 출력 한도 | + | |
- | * 빠른 응답 속도 | + | |
- | TEMP_FIVE | + | ---- |
+ | ==== 2) 생성 설정 ==== | ||
+ | |||
+ | 모델의 응답 특성을 제어하기 위한 핵심 매개변수 설정입니다. | ||
- | <code> | + | <file> |
generationConfig: | generationConfig: | ||
- | temperature: | + | temperature: |
- | topP: 1.0, // 다양성 조절 | + | topP: 1.0, // 다양성 조절 |
- | topK: 32, // 토큰 선택 범위 | + | topK: 32, // 토큰 선택 범위 |
- | maxOutputTokens: | + | maxOutputTokens: |
} | } | ||
- | </code> | + | </file> |
- | ===== 프롬프트 엔지니어링 ===== | + | ===== 8. 프롬프트 엔지니어링 ===== |
- | ==== DokuWiki 문법 규칙 | + | ---- |
+ | ==== 1) DokuWiki 문법 규칙 | ||
- | | + | AI가 DokuWiki 문서를 정확하게 생성하고 수정할 수 있도록 지시하는 핵심 문법 규칙입니다. |
- | * 목록: | + | |
- | * 코드: | + | * **제목**: DokuWiki의 가독성 및 일관성을 위해 [[doku> |
- | * 구분선: | + | |
+ | | ||
+ | | ||
+ | |||
+ | ---- | ||
+ | ==== 2) 초안 생성 프롬프트 ==== | ||
- | TEMP_FIVE | + | AI에게 DokuWiki 문서 |
- | <code> | + | <file> |
You are an expert assistant for DokuWiki. | You are an expert assistant for DokuWiki. | ||
Your task is to expand this raw text into a | Your task is to expand this raw text into a | ||
줄 93: | 줄 109: | ||
The draft must have an introduction, | The draft must have an introduction, | ||
several sections (using headlines), and a conclusion. | several sections (using headlines), and a conclusion. | ||
- | </code> | + | </file> |
- | ===== 오류 처리 및 디버깅 ===== | + | ===== 9. 오류 처리 및 디버깅 ===== |
- | ===== 일반적인 오류 ==== | + | ---- |
+ | ==== 1) 일반적인 오류 ==== | ||
- | * cURL 함수 없음: php-curl 패키지 설치 필요 | + | 플러그인 |
- | * API 키 미설정: 관리자 설정에서 키 입력 | + | |
- | * 사용량 초과: | + | |
- | * 네트워크 오류: 연결 상태 확인 | + | |
- | ===== 디버깅 방법 ==== | + | * **cURL 함수 없음**: PHP 환경에 cURL 확장이 설치되지 않은 경우 발생합니다. `sudo apt-get install php-curl` (Debian/ |
+ | * **API 키 미설정**: | ||
+ | * **사용량 초과**: 설정된 API 호출 제한(분당/ | ||
+ | * **네트워크 오류**: DokuWiki 서버가 Google Gemini API 서버와 통신할 수 없는 경우 발생합니다. 서버의 인터넷 연결 상태, | ||
- | * 브라우저 개발자 도구에서 네트워크 탭 확인 | + | ---- |
- | * DokuWiki 오류 로그 확인 | + | ==== 2) 디버깅 방법 ==== |
- | * API 응답 원본 확인 (임시 | + | |
- | ===== 성능 최적화 ===== | + | 플러그인 문제 발생 시 원인을 파악하기 위한 디버깅 절차입니다. |
- | * 비동기 AJAX 호출로 UI 블로킹 방지 | + | |
- | * 사용량 제한으로 | + | * **DokuWiki 오류 로그 확인**: DokuWiki의 `data/ |
- | * 반응형 디자인으로 | + | * **API 응답 원본 확인 (임시 디버그 모드)**: 플러그인 설정에 임시 디버그 모드를 활성화하여 Gemini API로부터 받은 원본 응답을 로그에 출력하도록 설정할 수 있습니다. 이를 통해 API의 실제 응답 내용을 직접 확인하여 문제를 진단합니다. |
- | * 캐시 활용으로 | + | |
+ | ===== 10. 성능 최적화 ===== | ||
+ | |||
+ | * **비동기 AJAX 호출**: AI 응답을 기다리는 동안 사용자 인터페이스가 멈추지 않도록 비동기 AJAX 호출을 사용하여 쾌적한 사용자 경험을 제공합니다. | ||
+ | | ||
+ | | ||
+ | | ||
---- | ---- | ||
- | ===== 관련 링크 ===== | + | ===== 11. 관련 링크 ===== |
* [[wiki: | * [[wiki: | ||
* [[wiki: | * [[wiki: | ||
* [[wiki: | * [[wiki: | ||
- | * [[wiki: | + | * [[wiki: |
- | + | ||
- | + | ||
- | + |
wiki/it/wiki/gemini_api_integration.1753857794.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1