사용자 도구

사이트 도구


wiki:it:wiki:gemini_api_integration

문서의 이전 판입니다!


Gemini API 연동 개발

이 문서는 DokuWiki와 Google Gemini API를 연동한 플러그인 개발에 대한 상세한 설명입니다.

아키텍처 개요

사용자 인터페이스

  • 편집기 툴바에 두 개의 AI 버튼 추가
  • 반응형 디자인으로 모바일 지원
  • 색상 구분: 파란색(초안 생성), 녹색(텍스트 수정)

백엔드 구조

  • action.php - 메인 플러그인 클래스
  • AJAX 이벤트 핸들러 등록
  • API 키 관리 및 보안
  • 사용량 제한 및 모니터링

프론트엔드 구조

  • script.js - 사용자 인터페이스 로직
  • 텍스트 선택 및 편집기 조작
  • AJAX 통신 및 오류 처리
  • 사용자 피드백 제공

핵심 기능

==== AI 초안 생성 TEMP_FIVE

  • 전체 편집기 내용을 기반으로 초안 생성
  • DokuWiki 문법 규칙 엄격 준수
  • 상세하고 구조적인 문서 생성
  • 한국어 출력 보장

TEMP_FIVE AI 텍스트 수정 ====

  • 선택된 텍스트만 수정
  • 사용자 지시사항 기반 수정
  • 원본 DokuWiki 문법 보존
  • 실시간 편집기 업데이트

API 설정 및 보안

==== API 키 관리 TEMP_FIVE

  • DokuWiki 설정 관리자를 통한 안전한 키 저장
  • 하드코딩 방지
  • 관리자 권한으로만 접근 가능

TEMP_FIVE 사용량 제한 ====

  • 분당 10회 호출 제한
  • 일일 500회 호출 제한
  • 파일 기반 사용량 추적
  • 자동 제한 및 사용자 알림

모델 설정

==== Gemini 2.5 Flash 모델 TEMP_FIVE

  • 최신 모델 사용으로 성능 최적화
  • 1,048,576 토큰 입력 한도
  • 65,536 토큰 출력 한도
  • 빠른 응답 속도

TEMP_FIVE 생성 설정 ====

generationConfig: {
    temperature: 0.7,        // 창의성 조절
    topP: 1.0,              // 다양성 조절
    topK: 32,               // 토큰 선택 범위
    maxOutputTokens: 8192    // 최대 출력 길이
}

프롬프트 엔지니어링

==== DokuWiki 문법 규칙 TEMP_FIVE

  • 제목: H3~H5 레벨만 사용
  • 목록: 2칸 들여쓰기 필수
  • 코드: 백틱 금지, 인라인,
    블록 사용
      * 구분선: ---- 4개 하이픈만 사용
    
    TEMP_FIVE 초안 생성 프롬프트 ====
    
    <code>
    You are an expert assistant for DokuWiki. 
    Your task is to expand this raw text into a 
    **comprehensive and detailed** DokuWiki document draft. 
    The draft must have an introduction, a body with 
    several sections (using headlines), and a conclusion.

오류 처리 및 디버깅

일반적인 오류

  • cURL 함수 없음: php-curl 패키지 설치 필요
  • API 키 미설정: 관리자 설정에서 키 입력
  • 사용량 초과: 제한 메시지 표시
  • 네트워크 오류: 연결 상태 확인

디버깅 방법

  • 브라우저 개발자 도구에서 네트워크 탭 확인
  • DokuWiki 오류 로그 확인
  • API 응답 원본 확인 (임시 디버그 모드)

성능 최적화

  • 비동기 AJAX 호출로 UI 블로킹 방지
  • 사용량 제한으로 API 비용 절약
  • 반응형 디자인으로 다양한 기기 지원
  • 캐시 활용으로 서버 부하 감소

관련 링크

wiki/it/wiki/gemini_api_integration.1753857794.txt.gz · 마지막으로 수정됨: 저자 127.0.0.1

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki