feat: Knowledge Base RAG 시스템 + 채팅 LLM 개선 (Phase 0~5 완료)
- KB RAG 전체 파이프라인: 업로드, 파싱(xlsx/pdf/docx/text), 임베딩, Qdrant 인덱싱 - KB 관리 UI(14번 탭): 로그인, 문서 목록, 업로드, 삭제, 재인덱스 - OllamaController: 한글 시스템 프롬프트, plant_context.md 외부 파일화, SSE tool_start/tool_result 이벤트 - 프론트: 툴 실행 카드, KB 인용 링크, 표 자동 렌더, 추천 질문 칩 - nl2sql_worker: history_table.recorded_at 사용, tag_metadata 응답 개선 - DB: KB 테이블 5개 DDL + 시드, pgcrypto 확장
This commit is contained in:
@@ -3,6 +3,7 @@ using ExperionCrawler.Core.Application.Services;
|
||||
using ExperionCrawler.Infrastructure.Certificates;
|
||||
using ExperionCrawler.Infrastructure.Csv;
|
||||
using ExperionCrawler.Infrastructure.Database;
|
||||
using ExperionCrawler.Infrastructure.Kb;
|
||||
using ExperionCrawler.Infrastructure.Mcp;
|
||||
using ExperionCrawler.Infrastructure.OpcUa;
|
||||
using ExperionCrawler.Web;
|
||||
@@ -119,6 +120,14 @@ builder.Services.AddSingleton<IPidGraphEventBroadcaster, PidGraphEventBroadcaste
|
||||
// ── FastTable Cleanup Service ─────────────────────────────────────────────────
|
||||
builder.Services.AddHostedService<ExperionFastCleanupService>();
|
||||
|
||||
// ── Knowledge Base (RAG) ──────────────────────────────────────────────────────
|
||||
builder.Services.AddSingleton<KbQdrantClient>();
|
||||
builder.Services.AddSingleton<KbStorageService>();
|
||||
builder.Services.AddSingleton<KbEmbeddingClient>();
|
||||
builder.Services.AddScoped<IKbAuthService, KbAuthService>();
|
||||
builder.Services.AddHostedService<KbStartupService>();
|
||||
builder.Services.AddHostedService<KbIngestWorker>();
|
||||
|
||||
// ── Ollama HttpClient ─────────────────────────────────────────────────────────
|
||||
builder.Services.AddHttpClient("Ollama", c =>
|
||||
{
|
||||
@@ -149,6 +158,17 @@ try
|
||||
{
|
||||
var db = scope.ServiceProvider.GetRequiredService<IExperionDbService>();
|
||||
await db.InitializeAsync();
|
||||
|
||||
try
|
||||
{
|
||||
var kbAuth = scope.ServiceProvider.GetRequiredService<IKbAuthService>();
|
||||
await kbAuth.EnsureCredentialAsync();
|
||||
}
|
||||
catch (Exception kbEx)
|
||||
{
|
||||
var lg = app.Services.GetRequiredService<ILogger<Program>>();
|
||||
lg.LogWarning(kbEx, "[Kb] 관리자 비밀번호 초기화 실패");
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (Exception ex)
|
||||
|
||||
Reference in New Issue
Block a user