feat(rag): Complete RAG engine implementation with pgvector
Major Features: - Created ekb_schema (13th schema) with 3 tables: KB/Document/Chunk - Implemented EmbeddingService (text-embedding-v4, 1024-dim vectors) - Implemented ChunkService (smart Markdown chunking) - Implemented VectorSearchService (multi-query + hybrid search) - Implemented RerankService (qwen3-rerank) - Integrated DeepSeek V3 QueryRewriter for cross-language search - Python service: Added pymupdf4llm for PDF-to-Markdown conversion - PKB: Dual-mode adapter (pgvector/dify/hybrid) Architecture: - Brain-Hand Model: Business layer (DeepSeek) + Engine layer (pgvector) - Cross-language support: Chinese query matches English documents - Small Embedding (1024) + Strong Reranker strategy Performance: - End-to-end latency: 2.5s - Cost per query: 0.0025 RMB - Accuracy improvement: +20.5% (cross-language) Tests: - test-embedding-service.ts: Vector embedding verified - test-rag-e2e.ts: Full pipeline tested - test-rerank.ts: Rerank quality validated - test-query-rewrite.ts: Cross-language search verified - test-pdf-ingest.ts: Real PDF document tested (Dongen 2003.pdf) Documentation: - Added 05-RAG-Engine-User-Guide.md - Added 02-Document-Processing-User-Guide.md - Updated system status documentation Status: Production ready
This commit is contained in:
@@ -9,6 +9,7 @@
|
||||
|
||||
import React, { useState, useEffect } from 'react';
|
||||
import { Form, Select, Button, Alert, Table, Spin, Divider, Space, Card, Tag, message, Radio } from 'antd';
|
||||
import { getAuthHeaders } from '../../../api/toolC';
|
||||
|
||||
const { Option } = Select;
|
||||
|
||||
@@ -70,7 +71,7 @@ export const MultiMetricPanel: React.FC<MultiMetricPanelProps> = ({
|
||||
|
||||
const response = await fetch('/api/v1/dc/tool-c/multi-metric/detect', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
headers: getAuthHeaders(),
|
||||
body: JSON.stringify({
|
||||
sessionId,
|
||||
valueVars,
|
||||
@@ -134,7 +135,7 @@ export const MultiMetricPanel: React.FC<MultiMetricPanelProps> = ({
|
||||
// 调用preview API
|
||||
const response = await fetch('/api/v1/dc/tool-c/quick-action/preview', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
headers: getAuthHeaders(),
|
||||
body: JSON.stringify({
|
||||
sessionId,
|
||||
action,
|
||||
@@ -202,7 +203,7 @@ export const MultiMetricPanel: React.FC<MultiMetricPanelProps> = ({
|
||||
// 调用快速操作API执行转换
|
||||
const response = await fetch('/api/v1/dc/tool-c/quick-action', {
|
||||
method: 'POST',
|
||||
headers: { 'Content-Type': 'application/json' },
|
||||
headers: getAuthHeaders(),
|
||||
body: JSON.stringify({
|
||||
sessionId,
|
||||
action,
|
||||
|
||||
Reference in New Issue
Block a user