@vezlo/assistant-server 2.6.0 → 2.8.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -1
- package/database-schema.sql +6 -0
- package/dist/src/bootstrap/initializeServices.d.ts +2 -0
- package/dist/src/bootstrap/initializeServices.d.ts.map +1 -1
- package/dist/src/bootstrap/initializeServices.js +4 -1
- package/dist/src/bootstrap/initializeServices.js.map +1 -1
- package/dist/src/controllers/ChatController.d.ts +3 -12
- package/dist/src/controllers/ChatController.d.ts.map +1 -1
- package/dist/src/controllers/ChatController.js +121 -203
- package/dist/src/controllers/ChatController.js.map +1 -1
- package/dist/src/controllers/KnowledgeController.d.ts +8 -1
- package/dist/src/controllers/KnowledgeController.d.ts.map +1 -1
- package/dist/src/controllers/KnowledgeController.js +38 -1
- package/dist/src/controllers/KnowledgeController.js.map +1 -1
- package/dist/src/migrations/009_add_archived_at_column.d.ts +4 -0
- package/dist/src/migrations/009_add_archived_at_column.d.ts.map +1 -0
- package/dist/src/migrations/009_add_archived_at_column.js +17 -0
- package/dist/src/migrations/009_add_archived_at_column.js.map +1 -0
- package/dist/src/schemas/ConversationSchemas.d.ts +10 -0
- package/dist/src/schemas/ConversationSchemas.d.ts.map +1 -1
- package/dist/src/schemas/ConversationSchemas.js +4 -2
- package/dist/src/schemas/ConversationSchemas.js.map +1 -1
- package/dist/src/schemas/index.d.ts +10 -0
- package/dist/src/schemas/index.d.ts.map +1 -1
- package/dist/src/server.js +79 -1
- package/dist/src/server.js.map +1 -1
- package/dist/src/services/CitationService.d.ts +14 -0
- package/dist/src/services/CitationService.d.ts.map +1 -0
- package/dist/src/services/CitationService.js +76 -0
- package/dist/src/services/CitationService.js.map +1 -0
- package/dist/src/services/ResponseGenerationService.d.ts +65 -0
- package/dist/src/services/ResponseGenerationService.d.ts.map +1 -0
- package/dist/src/services/ResponseGenerationService.js +165 -0
- package/dist/src/services/ResponseGenerationService.js.map +1 -0
- package/dist/src/services/ResponseStreamingService.d.ts +33 -0
- package/dist/src/services/ResponseStreamingService.d.ts.map +1 -0
- package/dist/src/services/ResponseStreamingService.js +114 -0
- package/dist/src/services/ResponseStreamingService.js.map +1 -0
- package/dist/src/storage/ConversationRepository.d.ts.map +1 -1
- package/dist/src/storage/ConversationRepository.js +10 -1
- package/dist/src/storage/ConversationRepository.js.map +1 -1
- package/dist/src/storage/SupabaseStorage.d.ts.map +1 -1
- package/dist/src/storage/SupabaseStorage.js +7 -1
- package/dist/src/storage/SupabaseStorage.js.map +1 -1
- package/dist/src/types/index.d.ts +2 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/package.json +1 -1
package/dist/src/server.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/server.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { SupabaseClient } from '@supabase/supabase-js';
|
|
2
|
+
export declare class CitationService {
|
|
3
|
+
private supabase;
|
|
4
|
+
private tablePrefix;
|
|
5
|
+
private adjacentChunks;
|
|
6
|
+
constructor(supabase: SupabaseClient, tablePrefix?: string);
|
|
7
|
+
getContext(documentUuid: string, chunkIndices: number[]): Promise<{
|
|
8
|
+
document_title: string;
|
|
9
|
+
document_type: string;
|
|
10
|
+
file_type?: string;
|
|
11
|
+
content: string;
|
|
12
|
+
} | null>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=CitationService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CitationService.d.ts","sourceRoot":"","sources":["../../../src/services/CitationService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAGvD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,cAAc,CAAa;gBAEvB,QAAQ,EAAE,cAAc,EAAE,WAAW,GAAE,MAAgB;IAK7D,UAAU,CAAC,YAAY,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC;QACtE,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;KACjB,GAAG,IAAI,CAAC;CAsEV"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.CitationService = void 0;
|
|
7
|
+
const logger_1 = __importDefault(require("../config/logger"));
|
|
8
|
+
class CitationService {
|
|
9
|
+
constructor(supabase, tablePrefix = 'vezlo') {
|
|
10
|
+
this.adjacentChunks = 2;
|
|
11
|
+
this.supabase = supabase;
|
|
12
|
+
this.tablePrefix = tablePrefix;
|
|
13
|
+
}
|
|
14
|
+
async getContext(documentUuid, chunkIndices) {
|
|
15
|
+
try {
|
|
16
|
+
// Get document with full content
|
|
17
|
+
const { data: document, error: docError } = await this.supabase
|
|
18
|
+
.from(`${this.tablePrefix}_knowledge_items`)
|
|
19
|
+
.select('uuid, title, type, content, file_type')
|
|
20
|
+
.eq('uuid', documentUuid)
|
|
21
|
+
.single();
|
|
22
|
+
if (docError || !document) {
|
|
23
|
+
logger_1.default.error('Document not found:', docError);
|
|
24
|
+
return null;
|
|
25
|
+
}
|
|
26
|
+
// If document has full content, return it directly
|
|
27
|
+
if (document.content) {
|
|
28
|
+
return {
|
|
29
|
+
document_title: document.title,
|
|
30
|
+
document_type: document.type,
|
|
31
|
+
file_type: document.file_type || undefined,
|
|
32
|
+
content: document.content
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
// Fallback: If no full content, fetch relevant chunks with context
|
|
36
|
+
const { data: docData, error: idError } = await this.supabase
|
|
37
|
+
.from(`${this.tablePrefix}_knowledge_items`)
|
|
38
|
+
.select('id')
|
|
39
|
+
.eq('uuid', documentUuid)
|
|
40
|
+
.single();
|
|
41
|
+
if (idError || !docData) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
44
|
+
// Calculate range with adjacent chunks for context
|
|
45
|
+
const minIndex = Math.max(0, Math.min(...chunkIndices) - this.adjacentChunks);
|
|
46
|
+
const maxIndex = Math.max(...chunkIndices) + this.adjacentChunks;
|
|
47
|
+
logger_1.default.info(`📚 Fetching chunks ${minIndex}-${maxIndex} (relevant: ${chunkIndices.join(',')}, adjacent: ±${this.adjacentChunks})`);
|
|
48
|
+
// Fetch only relevant chunks with adjacent context
|
|
49
|
+
const { data: chunks, error: chunksError } = await this.supabase
|
|
50
|
+
.from(`${this.tablePrefix}_knowledge_chunks`)
|
|
51
|
+
.select('chunk_text, chunk_index')
|
|
52
|
+
.eq('document_id', docData.id)
|
|
53
|
+
.gte('chunk_index', minIndex)
|
|
54
|
+
.lte('chunk_index', maxIndex)
|
|
55
|
+
.order('chunk_index', { ascending: true });
|
|
56
|
+
if (chunksError) {
|
|
57
|
+
logger_1.default.error('Failed to fetch chunks:', chunksError);
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
// Combine chunks with context
|
|
61
|
+
const combinedContent = chunks?.map(c => c.chunk_text).join('\n\n') || '';
|
|
62
|
+
return {
|
|
63
|
+
document_title: document.title,
|
|
64
|
+
document_type: document.type,
|
|
65
|
+
file_type: document.file_type || undefined,
|
|
66
|
+
content: combinedContent
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
catch (error) {
|
|
70
|
+
logger_1.default.error('Citation context error:', error);
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
exports.CitationService = CitationService;
|
|
76
|
+
//# sourceMappingURL=CitationService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CitationService.js","sourceRoot":"","sources":["../../../src/services/CitationService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import { IntentService, IntentClassificationResult } from './IntentService';
|
|
2
|
+
import { AIService } from './AIService';
|
|
3
|
+
import { ChatMessage } from '../types';
|
|
4
|
+
export interface KnowledgeSearchResult {
|
|
5
|
+
knowledgeResults: string | null;
|
|
6
|
+
sources: Array<{
|
|
7
|
+
document_uuid: string;
|
|
8
|
+
document_title: string;
|
|
9
|
+
chunk_indices: number[];
|
|
10
|
+
}>;
|
|
11
|
+
}
|
|
12
|
+
export interface GenerationResult {
|
|
13
|
+
type: 'intent' | 'knowledge';
|
|
14
|
+
intentResponse?: string;
|
|
15
|
+
knowledgeContext?: {
|
|
16
|
+
conversationHistory: Array<{
|
|
17
|
+
role: 'user' | 'assistant' | 'system';
|
|
18
|
+
content: string;
|
|
19
|
+
}>;
|
|
20
|
+
knowledgeResults?: string;
|
|
21
|
+
};
|
|
22
|
+
sources?: Array<{
|
|
23
|
+
document_uuid: string;
|
|
24
|
+
document_title: string;
|
|
25
|
+
chunk_indices: number[];
|
|
26
|
+
}>;
|
|
27
|
+
}
|
|
28
|
+
export declare class ResponseGenerationService {
|
|
29
|
+
private intentService?;
|
|
30
|
+
private aiService?;
|
|
31
|
+
private chatHistoryLength;
|
|
32
|
+
constructor(intentService: IntentService | undefined, aiService: AIService | undefined, chatHistoryLength: number);
|
|
33
|
+
/**
|
|
34
|
+
* Classify user intent
|
|
35
|
+
*/
|
|
36
|
+
classifyIntent(message: string, history: ChatMessage[]): Promise<IntentClassificationResult>;
|
|
37
|
+
/**
|
|
38
|
+
* Handle intent classification result
|
|
39
|
+
* Returns response content if non-knowledge intent, null if knowledge intent
|
|
40
|
+
*/
|
|
41
|
+
handleIntentResult(result: IntentClassificationResult, userMessageContent: string): string | null;
|
|
42
|
+
/**
|
|
43
|
+
* Search knowledge base and extract sources
|
|
44
|
+
*/
|
|
45
|
+
searchKnowledgeBase(query: string, companyId?: number): Promise<KnowledgeSearchResult>;
|
|
46
|
+
/**
|
|
47
|
+
* Build chat context for AI generation
|
|
48
|
+
*/
|
|
49
|
+
buildChatContext(messages: ChatMessage[], knowledgeResults?: string | null): {
|
|
50
|
+
conversationHistory: Array<{
|
|
51
|
+
role: 'user' | 'assistant' | 'system';
|
|
52
|
+
content: string;
|
|
53
|
+
}>;
|
|
54
|
+
knowledgeResults?: string;
|
|
55
|
+
};
|
|
56
|
+
/**
|
|
57
|
+
* Get AI service for streaming
|
|
58
|
+
*/
|
|
59
|
+
getAIService(): AIService | undefined;
|
|
60
|
+
/**
|
|
61
|
+
* Get fallback response for intent
|
|
62
|
+
*/
|
|
63
|
+
private getFallbackResponse;
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=ResponseGenerationService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResponseGenerationService.d.ts","sourceRoot":"","sources":["../../../src/services/ResponseGenerationService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,0BAA0B,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,MAAM,WAAW,qBAAqB;IACpC,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,OAAO,EAAE,KAAK,CAAC;QACb,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC,CAAC;CACJ;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,QAAQ,GAAG,WAAW,CAAC;IAC7B,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,gBAAgB,CAAC,EAAE;QACjB,mBAAmB,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACvF,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B,CAAC;IACF,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC,CAAC;CACJ;AAED,qBAAa,yBAAyB;IACpC,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,OAAO,CAAC,SAAS,CAAC,CAAY;IAC9B,OAAO,CAAC,iBAAiB,CAAS;gBAGhC,aAAa,EAAE,aAAa,GAAG,SAAS,EACxC,SAAS,EAAE,SAAS,GAAG,SAAS,EAChC,iBAAiB,EAAE,MAAM;IAO3B;;OAEG;IACG,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,WAAW,EAAE,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAkBlG;;;OAGG;IACH,kBAAkB,CAChB,MAAM,EAAE,0BAA0B,EAClC,kBAAkB,EAAE,MAAM,GACzB,MAAM,GAAG,IAAI;IAmBhB;;OAEG;IACG,mBAAmB,CACvB,KAAK,EAAE,MAAM,EACb,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,qBAAqB,CAAC;IAsFjC;;OAEG;IACH,gBAAgB,CACd,QAAQ,EAAE,WAAW,EAAE,EACvB,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAC/B;QACD,mBAAmB,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;YAAC,OAAO,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QACvF,gBAAgB,CAAC,EAAE,MAAM,CAAC;KAC3B;IAUD;;OAEG;IACH,YAAY,IAAI,SAAS,GAAG,SAAS;IAIrC;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAa5B"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ResponseGenerationService = void 0;
|
|
7
|
+
const logger_1 = __importDefault(require("../config/logger"));
|
|
8
|
+
class ResponseGenerationService {
|
|
9
|
+
constructor(intentService, aiService, chatHistoryLength) {
|
|
10
|
+
this.intentService = intentService;
|
|
11
|
+
this.aiService = aiService;
|
|
12
|
+
this.chatHistoryLength = chatHistoryLength;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Classify user intent
|
|
16
|
+
*/
|
|
17
|
+
async classifyIntent(message, history) {
|
|
18
|
+
if (!this.intentService) {
|
|
19
|
+
return {
|
|
20
|
+
intent: 'knowledge',
|
|
21
|
+
needsGuardrail: false,
|
|
22
|
+
contactEmail: null
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
const resolvedHistory = Array.isArray(history) ? history : [];
|
|
26
|
+
logger_1.default.info('🧭 Classifying user intent...');
|
|
27
|
+
return this.intentService.classify({
|
|
28
|
+
message,
|
|
29
|
+
conversationHistory: resolvedHistory
|
|
30
|
+
});
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Handle intent classification result
|
|
34
|
+
* Returns response content if non-knowledge intent, null if knowledge intent
|
|
35
|
+
*/
|
|
36
|
+
handleIntentResult(result, userMessageContent) {
|
|
37
|
+
if (result.needsGuardrail && result.intent !== 'guardrail') {
|
|
38
|
+
logger_1.default.info('🛡️ Guardrail triggered');
|
|
39
|
+
return `I can help with documentation or implementation guidance, but I can't share credentials or confidential configuration. Please contact your system administrator or support for access.`;
|
|
40
|
+
}
|
|
41
|
+
logger_1.default.info(`🧾 Intent result: ${result.intent}${result.needsGuardrail ? ' (guardrail triggered)' : ''}`);
|
|
42
|
+
// For non-knowledge intents, return the response content to be streamed
|
|
43
|
+
if (result.intent !== 'knowledge') {
|
|
44
|
+
const responseContent = result.response || this.getFallbackResponse(result.intent);
|
|
45
|
+
return responseContent;
|
|
46
|
+
}
|
|
47
|
+
// Knowledge intent - proceed to RAG flow (return null to indicate streaming will happen later)
|
|
48
|
+
logger_1.default.info('📚 Intent requires knowledge lookup; proceeding with RAG flow.');
|
|
49
|
+
return null;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Search knowledge base and extract sources
|
|
53
|
+
*/
|
|
54
|
+
async searchKnowledgeBase(query, companyId) {
|
|
55
|
+
const sources = [];
|
|
56
|
+
let knowledgeResults = null;
|
|
57
|
+
const aiServiceAny = this.aiService;
|
|
58
|
+
if (!aiServiceAny || !aiServiceAny.knowledgeBaseService) {
|
|
59
|
+
logger_1.default.warn('⚠️ AI service or knowledge base service not available');
|
|
60
|
+
return { knowledgeResults: null, sources: [] };
|
|
61
|
+
}
|
|
62
|
+
try {
|
|
63
|
+
logger_1.default.info(`🔍 Searching KB: query="${query.substring(0, 50)}...", companyId=${companyId}`);
|
|
64
|
+
const searchResults = await aiServiceAny.knowledgeBaseService.search(query, {
|
|
65
|
+
limit: 5,
|
|
66
|
+
company_id: companyId
|
|
67
|
+
});
|
|
68
|
+
logger_1.default.info(`📊 Found knowledge base results: ${searchResults.length}`);
|
|
69
|
+
if (searchResults.length > 0) {
|
|
70
|
+
knowledgeResults = '\n\nRelevant information from knowledge base:\n';
|
|
71
|
+
searchResults.forEach((result) => {
|
|
72
|
+
const title = result.title || 'Untitled';
|
|
73
|
+
const content = result.content || '';
|
|
74
|
+
if (content.trim()) {
|
|
75
|
+
knowledgeResults += `- ${title}: ${content}\n`;
|
|
76
|
+
// Extract chunk indices from metadata.chunk_range (e.g., "0-2" -> [0,1,2])
|
|
77
|
+
let chunkIndices = [];
|
|
78
|
+
if (result.metadata?.chunk_range) {
|
|
79
|
+
const [start, end] = result.metadata.chunk_range.split('-').map((n) => parseInt(n, 10));
|
|
80
|
+
if (!isNaN(start) && !isNaN(end)) {
|
|
81
|
+
for (let i = start; i <= end; i++) {
|
|
82
|
+
chunkIndices.push(i);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
// Add to sources array (deduplicate by document_uuid)
|
|
87
|
+
if (!sources.find(s => s.document_uuid === result.id)) {
|
|
88
|
+
sources.push({
|
|
89
|
+
document_uuid: result.id,
|
|
90
|
+
document_title: title,
|
|
91
|
+
chunk_indices: chunkIndices
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
else {
|
|
95
|
+
const existing = sources.find(s => s.document_uuid === result.id);
|
|
96
|
+
if (existing) {
|
|
97
|
+
// Merge chunk indices
|
|
98
|
+
chunkIndices.forEach(idx => {
|
|
99
|
+
if (!existing.chunk_indices.includes(idx)) {
|
|
100
|
+
existing.chunk_indices.push(idx);
|
|
101
|
+
}
|
|
102
|
+
});
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
});
|
|
107
|
+
// Verify we actually have meaningful content (not just the header)
|
|
108
|
+
const headerLength = '\n\nRelevant information from knowledge base:\n'.length;
|
|
109
|
+
if (knowledgeResults.length > headerLength + 10) {
|
|
110
|
+
logger_1.default.info(`✅ Knowledge context prepared (${knowledgeResults.length} chars, ${searchResults.length} results)`);
|
|
111
|
+
logger_1.default.info(`📝 Knowledge preview: ${knowledgeResults.substring(0, 200)}...`);
|
|
112
|
+
}
|
|
113
|
+
else {
|
|
114
|
+
logger_1.default.warn(`⚠️ Knowledge results found but content is empty or too short (${knowledgeResults.length} chars), treating as no results`);
|
|
115
|
+
knowledgeResults = '';
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
else {
|
|
119
|
+
knowledgeResults = '';
|
|
120
|
+
logger_1.default.info('⚠️ No knowledge base results found; will return appropriate fallback response');
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
catch (error) {
|
|
124
|
+
console.error('❌ Failed to search knowledge base:', error);
|
|
125
|
+
logger_1.default.error('Failed to search knowledge base:', error);
|
|
126
|
+
knowledgeResults = null;
|
|
127
|
+
}
|
|
128
|
+
return { knowledgeResults, sources };
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Build chat context for AI generation
|
|
132
|
+
*/
|
|
133
|
+
buildChatContext(messages, knowledgeResults) {
|
|
134
|
+
return {
|
|
135
|
+
conversationHistory: messages.map(msg => ({
|
|
136
|
+
role: msg.role,
|
|
137
|
+
content: msg.content
|
|
138
|
+
})),
|
|
139
|
+
knowledgeResults: knowledgeResults ?? undefined
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
/**
|
|
143
|
+
* Get AI service for streaming
|
|
144
|
+
*/
|
|
145
|
+
getAIService() {
|
|
146
|
+
return this.aiService;
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Get fallback response for intent
|
|
150
|
+
*/
|
|
151
|
+
getFallbackResponse(intent) {
|
|
152
|
+
const fallbacks = {
|
|
153
|
+
greeting: 'Hello! How can I help you today?',
|
|
154
|
+
acknowledgment: "You're welcome! Let me know if you need anything else.",
|
|
155
|
+
personality: `I'm ${process.env.ASSISTANT_NAME || 'AI Assistant'}, your AI assistant for ${process.env.ORGANIZATION_NAME || 'Your Organization'}.`,
|
|
156
|
+
clarification: "I'm not sure I understood. Could you clarify what you need help with?",
|
|
157
|
+
guardrail: "I can help with documentation or implementation guidance, but I can't share credentials or confidential configuration.",
|
|
158
|
+
human_support_request: "I'd be happy to connect you with our support team. Could you please provide your email address?",
|
|
159
|
+
human_support_email: "Thank you! Our support team will reach out to you shortly."
|
|
160
|
+
};
|
|
161
|
+
return fallbacks[intent] || "I'm here to help. What would you like to know?";
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
exports.ResponseGenerationService = ResponseGenerationService;
|
|
165
|
+
//# sourceMappingURL=ResponseGenerationService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResponseGenerationService.js","sourceRoot":"","sources":["../../../src/services/ResponseGenerationService.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import { Response } from 'express';
|
|
2
|
+
export declare class ResponseStreamingService {
|
|
3
|
+
/**
|
|
4
|
+
* Stream text content word by word to simulate streaming
|
|
5
|
+
* This ensures consistent SSE format for all responses
|
|
6
|
+
*/
|
|
7
|
+
streamTextContent(content: string, res: Response): Promise<void>;
|
|
8
|
+
/**
|
|
9
|
+
* Stream AI response chunks with source handling
|
|
10
|
+
*/
|
|
11
|
+
streamAIResponse(stream: AsyncGenerator<{
|
|
12
|
+
chunk: string;
|
|
13
|
+
done: boolean;
|
|
14
|
+
fullContent?: string;
|
|
15
|
+
}, void, unknown>, res: Response, sources?: Array<{
|
|
16
|
+
document_uuid: string;
|
|
17
|
+
document_title: string;
|
|
18
|
+
chunk_indices: number[];
|
|
19
|
+
}>, knowledgeResults?: string | null): Promise<string>;
|
|
20
|
+
/**
|
|
21
|
+
* Send completion event
|
|
22
|
+
*/
|
|
23
|
+
sendCompletionEvent(res: Response, messageUuid: string, parentMessageUuid: string | undefined, createdAt: Date): void;
|
|
24
|
+
/**
|
|
25
|
+
* Send error event
|
|
26
|
+
*/
|
|
27
|
+
sendErrorEvent(res: Response, error: string, message?: string): void;
|
|
28
|
+
/**
|
|
29
|
+
* Setup SSE headers
|
|
30
|
+
*/
|
|
31
|
+
setupSSEHeaders(res: Response): void;
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=ResponseStreamingService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResponseStreamingService.d.ts","sourceRoot":"","sources":["../../../src/services/ResponseStreamingService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAGnC,qBAAa,wBAAwB;IACnC;;;OAGG;IACG,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,GAAG,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IA4BtE;;OAEG;IACG,gBAAgB,CACpB,MAAM,EAAE,cAAc,CAAC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,OAAO,CAAC;QAAC,WAAW,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,IAAI,EAAE,OAAO,CAAC,EAC7F,GAAG,EAAE,QAAQ,EACb,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,aAAa,EAAE,MAAM,CAAC;QACtB,cAAc,EAAE,MAAM,CAAC;QACvB,aAAa,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC,EACF,gBAAgB,CAAC,EAAE,MAAM,GAAG,IAAI,GAC/B,OAAO,CAAC,MAAM,CAAC;IAiDlB;;OAEG;IACH,mBAAmB,CAAC,GAAG,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,SAAS,EAAE,SAAS,EAAE,IAAI,GAAG,IAAI;IAWrH;;OAEG;IACH,cAAc,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI;IASpE;;OAEG;IACH,eAAe,CAAC,GAAG,EAAE,QAAQ,GAAG,IAAI;CAMrC"}
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.ResponseStreamingService = void 0;
|
|
7
|
+
const logger_1 = __importDefault(require("../config/logger"));
|
|
8
|
+
class ResponseStreamingService {
|
|
9
|
+
/**
|
|
10
|
+
* Stream text content word by word to simulate streaming
|
|
11
|
+
* This ensures consistent SSE format for all responses
|
|
12
|
+
*/
|
|
13
|
+
async streamTextContent(content, res) {
|
|
14
|
+
const words = content.split(' ');
|
|
15
|
+
const chunkSize = 2; // Stream 2 words at a time for smoother experience
|
|
16
|
+
const totalChunks = Math.ceil(words.length / chunkSize);
|
|
17
|
+
for (let i = 0; i < words.length; i += chunkSize) {
|
|
18
|
+
const chunk = words.slice(i, i + chunkSize).join(' ') + (i + chunkSize < words.length ? ' ' : '');
|
|
19
|
+
const chunkIndex = Math.floor(i / chunkSize) + 1;
|
|
20
|
+
const isLastChunk = chunkIndex === totalChunks;
|
|
21
|
+
const chunkData = JSON.stringify({
|
|
22
|
+
type: 'chunk',
|
|
23
|
+
content: chunk,
|
|
24
|
+
done: isLastChunk, // Mark last chunk with done: true
|
|
25
|
+
sources: undefined // Intent responses have no sources
|
|
26
|
+
});
|
|
27
|
+
res.write(`data: ${chunkData}\n\n`);
|
|
28
|
+
// Flush the response to ensure chunks are sent immediately
|
|
29
|
+
if (res.flush) {
|
|
30
|
+
res.flush();
|
|
31
|
+
}
|
|
32
|
+
// Delay for smooth streaming effect (30ms for better visibility)
|
|
33
|
+
await new Promise(resolve => setTimeout(resolve, 30));
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Stream AI response chunks with source handling
|
|
38
|
+
*/
|
|
39
|
+
async streamAIResponse(stream, res, sources, knowledgeResults) {
|
|
40
|
+
let accumulatedContent = '';
|
|
41
|
+
let chunkCount = 0;
|
|
42
|
+
logger_1.default.info('🔄 Starting OpenAI stream...');
|
|
43
|
+
for await (const { chunk, done, fullContent } of stream) {
|
|
44
|
+
chunkCount++;
|
|
45
|
+
// On last chunk, include sources (only if we actually have useful knowledge results)
|
|
46
|
+
// Don't send sources if LLM couldn't answer or apologized
|
|
47
|
+
const shouldIncludeSources = done && sources && sources.length > 0 && knowledgeResults && knowledgeResults.trim().length > 0;
|
|
48
|
+
const chunkData = JSON.stringify({
|
|
49
|
+
type: 'chunk',
|
|
50
|
+
content: chunk,
|
|
51
|
+
done: done || false,
|
|
52
|
+
sources: shouldIncludeSources ? sources : undefined
|
|
53
|
+
});
|
|
54
|
+
// Log sources on last chunk for debugging
|
|
55
|
+
if (shouldIncludeSources) {
|
|
56
|
+
logger_1.default.info(`📚 Sending sources with last chunk: ${JSON.stringify(sources)}`);
|
|
57
|
+
}
|
|
58
|
+
else if (done && sources && sources.length > 0) {
|
|
59
|
+
logger_1.default.info(`⚠️ Sources available but not sent (no knowledge results used)`);
|
|
60
|
+
}
|
|
61
|
+
res.write(`data: ${chunkData}\n\n`);
|
|
62
|
+
if (res.flush)
|
|
63
|
+
res.flush();
|
|
64
|
+
// Update accumulated content
|
|
65
|
+
if (chunk) {
|
|
66
|
+
accumulatedContent += chunk;
|
|
67
|
+
}
|
|
68
|
+
// Log first and last chunks
|
|
69
|
+
if (chunkCount === 1) {
|
|
70
|
+
logger_1.default.info(`📤 First chunk sent: "${chunk.substring(0, 30)}..."`);
|
|
71
|
+
}
|
|
72
|
+
if (done && fullContent) {
|
|
73
|
+
accumulatedContent = fullContent;
|
|
74
|
+
logger_1.default.info(`🏁 Stream complete: ${chunkCount} chunks sent, ${fullContent.length} total chars`);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return accumulatedContent;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Send completion event
|
|
81
|
+
*/
|
|
82
|
+
sendCompletionEvent(res, messageUuid, parentMessageUuid, createdAt) {
|
|
83
|
+
const completionData = JSON.stringify({
|
|
84
|
+
type: 'completion',
|
|
85
|
+
uuid: messageUuid,
|
|
86
|
+
parent_message_uuid: parentMessageUuid || '',
|
|
87
|
+
status: 'completed',
|
|
88
|
+
created_at: createdAt.toISOString()
|
|
89
|
+
});
|
|
90
|
+
res.write(`data: ${completionData}\n\n`);
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Send error event
|
|
94
|
+
*/
|
|
95
|
+
sendErrorEvent(res, error, message) {
|
|
96
|
+
const errorData = JSON.stringify({
|
|
97
|
+
type: 'error',
|
|
98
|
+
error,
|
|
99
|
+
message: message || 'Unknown error'
|
|
100
|
+
});
|
|
101
|
+
res.write(`data: ${errorData}\n\n`);
|
|
102
|
+
}
|
|
103
|
+
/**
|
|
104
|
+
* Setup SSE headers
|
|
105
|
+
*/
|
|
106
|
+
setupSSEHeaders(res) {
|
|
107
|
+
res.setHeader('Content-Type', 'text/event-stream');
|
|
108
|
+
res.setHeader('Cache-Control', 'no-cache');
|
|
109
|
+
res.setHeader('Connection', 'keep-alive');
|
|
110
|
+
res.setHeader('X-Accel-Buffering', 'no'); // Disable nginx buffering
|
|
111
|
+
}
|
|
112
|
+
}
|
|
113
|
+
exports.ResponseStreamingService = ResponseStreamingService;
|
|
114
|
+
//# sourceMappingURL=ResponseStreamingService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ResponseStreamingService.js","sourceRoot":"","sources":["../../../src/services/ResponseStreamingService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationRepository.d.ts","sourceRoot":"","sources":["../../../src/storage/ConversationRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,UAAU,CAAC;AAElB,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,WAAW,CAAS;gBAEhB,QAAQ,EAAE,cAAc,EAAE,WAAW,GAAE,MAAW;IAK9D,OAAO,CAAC,YAAY;IAId,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA2C3E,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAkBzE,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"ConversationRepository.d.ts","sourceRoot":"","sources":["../../../src/storage/ConversationRepository.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,UAAU,CAAC;AAElB,qBAAa,sBAAsB;IACjC,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,WAAW,CAAS;gBAEhB,QAAQ,EAAE,cAAc,EAAE,WAAW,GAAE,MAAW;IAK9D,OAAO,CAAC,YAAY;IAId,gBAAgB,CAAC,YAAY,EAAE,gBAAgB,GAAG,OAAO,CAAC,gBAAgB,CAAC;IA2C3E,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAkBzE,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAwBzG,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAY5D,oBAAoB,CACxB,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,MAAM,EACvB,OAAO,GAAE,uBAA4B,GACpC,OAAO,CAAC,sBAAsB,CAAC;YA6CpB,iBAAiB;CAuChC"}
|
|
@@ -80,6 +80,8 @@ class ConversationRepository {
|
|
|
80
80
|
updateData.responded_at = updates.respondedAt instanceof Date ? updates.respondedAt.toISOString() : updates.respondedAt;
|
|
81
81
|
if (updates.closedAt !== undefined)
|
|
82
82
|
updateData.closed_at = updates.closedAt instanceof Date ? updates.closedAt.toISOString() : updates.closedAt;
|
|
83
|
+
if (updates.archivedAt !== undefined)
|
|
84
|
+
updateData.archived_at = updates.archivedAt instanceof Date ? updates.archivedAt.toISOString() : updates.archivedAt;
|
|
83
85
|
updateData.updated_at = new Date().toISOString();
|
|
84
86
|
const { data, error } = await this.supabase
|
|
85
87
|
.from(tableName)
|
|
@@ -103,7 +105,7 @@ class ConversationRepository {
|
|
|
103
105
|
}
|
|
104
106
|
async getUserConversations(userId, organizationId, options = {}) {
|
|
105
107
|
const tableName = this.getTableName('conversations');
|
|
106
|
-
const { limit, offset, orderBy } = options;
|
|
108
|
+
const { limit, offset, orderBy, status } = options;
|
|
107
109
|
const orderColumn = orderBy === 'last_message_at' ? 'last_message_at' : 'updated_at';
|
|
108
110
|
const from = typeof offset === 'number' && offset >= 0 ? offset : 0;
|
|
109
111
|
const pageSize = typeof limit === 'number' && limit > 0 ? limit : undefined;
|
|
@@ -117,6 +119,12 @@ class ConversationRepository {
|
|
|
117
119
|
else {
|
|
118
120
|
query = query.eq('creator_id', parseInt(userId) || 1);
|
|
119
121
|
}
|
|
122
|
+
if (status === 'archived') {
|
|
123
|
+
query = query.not('archived_at', 'is', null);
|
|
124
|
+
}
|
|
125
|
+
else if (status === 'active') {
|
|
126
|
+
query = query.is('archived_at', null);
|
|
127
|
+
}
|
|
120
128
|
query = query.order(orderColumn, { ascending: false, nullsFirst: false });
|
|
121
129
|
if (pageSize) {
|
|
122
130
|
query = query.range(from, from + pageSize - 1);
|
|
@@ -161,6 +169,7 @@ class ConversationRepository {
|
|
|
161
169
|
joinedAt: row.joined_at ? new Date(row.joined_at) : undefined,
|
|
162
170
|
respondedAt: row.responded_at ? new Date(row.responded_at) : undefined,
|
|
163
171
|
closedAt: row.closed_at ? new Date(row.closed_at) : undefined,
|
|
172
|
+
archivedAt: row.archived_at ? new Date(row.archived_at) : undefined,
|
|
164
173
|
lastMessageAt: row.last_message_at ? new Date(row.last_message_at) : undefined
|
|
165
174
|
};
|
|
166
175
|
}
|