feat: AI 서비스 및 AI 어시스턴트 전용 페이지 추가

- ai-service: Ollama 기반 AI 서비스 (분류, 시맨틱 검색, RAG Q&A, 패턴 분석)
- AI 어시스턴트 페이지: 채팅형 Q&A, 시맨틱 검색, 패턴 분석, 분류 테스트
- 권한 시스템에 ai_assistant 페이지 등록 (기본 비활성)
- 기존 페이지에 AI 기능 통합 (대시보드, 수신함, 관리함)
- docker-compose, gateway, nginx 설정 업데이트

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Hyungi Ahn
2026-03-06 09:38:30 +09:00
parent d385ce7ac1
commit b3012b8320
44 changed files with 2914 additions and 53 deletions

View File

@@ -204,6 +204,26 @@
</div>
</div>
<!-- AI 분류 추천 -->
<div class="bg-purple-50 border border-purple-200 rounded-lg p-3">
<div class="flex items-center justify-between">
<span class="text-sm font-medium text-purple-700">
<i class="fas fa-robot mr-1"></i>AI 분류 추천
</span>
<button id="aiClassifyBtn" onclick="aiClassifyCurrentIssue()"
class="px-3 py-1 bg-purple-500 text-white text-xs rounded-lg hover:bg-purple-600 transition-colors">
<i class="fas fa-magic mr-1"></i>AI 분석
</button>
</div>
<div id="aiClassifyLoading" class="hidden mt-2 text-center">
<i class="fas fa-spinner fa-spin text-purple-500 mr-1"></i>
<span class="text-xs text-purple-600">AI 분석 중...</span>
</div>
<div id="aiClassifyResult" class="hidden mt-2 text-sm text-purple-800 space-y-1">
<!-- AI 결과가 여기에 표시됩니다 -->
</div>
</div>
<!-- 수정 폼 -->
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
<div>
@@ -350,13 +370,14 @@
<!-- Scripts -->
<script src="/static/js/date-utils.js?v=20260213"></script>
<script src="/static/js/core/permissions.js?v=20260213"></script>
<script src="/static/js/components/common-header.js?v=20260213"></script>
<script src="/static/js/core/page-manager.js?v=20260213"></script>
<script src="/static/js/components/mobile-calendar.js?v=20260213"></script>
<script src="/static/js/utils/issue-helpers.js?v=20260213"></script>
<script src="/static/js/utils/photo-modal.js?v=20260213"></script>
<script src="/static/js/utils/toast.js?v=20260213"></script>
<script src="/static/js/components/mobile-bottom-nav.js?v=20260213"></script>
<script src="/static/js/pages/issues-inbox.js?v=20260213"></script>
<script src="/static/js/components/common-header.js?v=20260306"></script>
<script src="/static/js/core/page-manager.js?v=20260306"></script>
<script src="/static/js/components/mobile-calendar.js?v=20260306"></script>
<script src="/static/js/utils/issue-helpers.js?v=20260306"></script>
<script src="/static/js/utils/photo-modal.js?v=20260306"></script>
<script src="/static/js/utils/toast.js?v=20260306"></script>
<script src="/static/js/components/mobile-bottom-nav.js?v=20260306"></script>
<script src="/static/js/api.js?v=20260306"></script>
<script src="/static/js/pages/issues-inbox.js?v=20260306"></script>
</body>
</html>