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:
@@ -161,6 +161,44 @@
|
||||
<!-- 동적으로 생성될 내용 -->
|
||||
</div>
|
||||
|
||||
<!-- AI 유사 부적합 패널 -->
|
||||
<div id="aiSimilarPanel" class="mt-6 border-t pt-6 hidden">
|
||||
<div class="flex items-center justify-between mb-3">
|
||||
<h3 class="text-sm font-semibold text-gray-700">
|
||||
<i class="fas fa-robot text-purple-500 mr-2"></i>AI 유사 부적합
|
||||
</h3>
|
||||
<button id="aiSimilarRefresh" onclick="loadSimilarIssues()" class="text-xs text-purple-500 hover:text-purple-700">
|
||||
<i class="fas fa-sync-alt mr-1"></i>검색
|
||||
</button>
|
||||
</div>
|
||||
<div id="aiSimilarLoading" class="hidden text-center py-4">
|
||||
<i class="fas fa-spinner fa-spin text-purple-500 mr-2"></i>
|
||||
<span class="text-sm text-gray-500">유사 이슈 검색 중...</span>
|
||||
</div>
|
||||
<div id="aiSimilarResults" class="space-y-2">
|
||||
<!-- 유사 이슈 목록 -->
|
||||
</div>
|
||||
<div id="aiSimilarEmpty" class="hidden text-center py-3">
|
||||
<p class="text-sm text-gray-400">유사한 부적합이 없습니다</p>
|
||||
</div>
|
||||
|
||||
<!-- RAG 해결방안 제안 -->
|
||||
<div class="mt-4 pt-3 border-t border-purple-100">
|
||||
<button id="aiSuggestSolutionBtn" onclick="aiSuggestSolution()"
|
||||
class="w-full px-3 py-2 bg-gradient-to-r from-purple-500 to-indigo-500 text-white text-sm rounded-lg hover:from-purple-600 hover:to-indigo-600 transition-all">
|
||||
<i class="fas fa-lightbulb mr-2"></i>AI 해결방안 제안 (과거 사례 기반)
|
||||
</button>
|
||||
<div id="aiSuggestLoading" class="hidden mt-2 text-center py-3">
|
||||
<i class="fas fa-spinner fa-spin text-purple-500 mr-1"></i>
|
||||
<span class="text-xs text-gray-500">과거 사례 분석 중...</span>
|
||||
</div>
|
||||
<div id="aiSuggestResult" class="hidden mt-2 bg-indigo-50 border border-indigo-200 rounded-lg p-3">
|
||||
<div id="aiSuggestContent" class="text-sm text-gray-700 whitespace-pre-line"></div>
|
||||
<div id="aiSuggestSources" class="mt-2 text-xs text-indigo-500"></div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 모달 푸터 -->
|
||||
<div class="flex justify-end space-x-3 mt-6 pt-6 border-t">
|
||||
<button onclick="closeIssueDetailModal()" class="px-4 py-2 text-gray-600 hover:text-gray-800">
|
||||
@@ -299,13 +337,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/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-management.js?v=20260213"></script>
|
||||
<script src="/static/js/core/permissions.js?v=20260306"></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/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-management.js?v=20260306"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
||||
Reference in New Issue
Block a user