@vezlo/assistant-server 2.0.0 → 2.1.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 +1 -1
- package/database-schema.sql +61 -2
- package/dist/src/bootstrap/initializeServices.d.ts +38 -0
- package/dist/src/bootstrap/initializeServices.d.ts.map +1 -0
- package/dist/src/bootstrap/initializeServices.js +105 -0
- package/dist/src/bootstrap/initializeServices.js.map +1 -0
- package/dist/src/controllers/ChatController.d.ts +11 -1
- package/dist/src/controllers/ChatController.d.ts.map +1 -1
- package/dist/src/controllers/ChatController.js +168 -31
- package/dist/src/controllers/ChatController.js.map +1 -1
- package/dist/src/controllers/KnowledgeController.js +4 -4
- package/dist/src/controllers/KnowledgeController.js.map +1 -1
- package/dist/src/migrations/001_initial_schema.d.ts.map +1 -1
- package/dist/src/migrations/001_initial_schema.js +2 -1
- package/dist/src/migrations/001_initial_schema.js.map +1 -1
- package/dist/src/migrations/003_drop_content_index.d.ts +4 -0
- package/dist/src/migrations/003_drop_content_index.d.ts.map +1 -0
- package/dist/src/migrations/003_drop_content_index.js +19 -0
- package/dist/src/migrations/003_drop_content_index.js.map +1 -0
- package/dist/src/migrations/004_add_vector_search_rpc.d.ts +4 -0
- package/dist/src/migrations/004_add_vector_search_rpc.d.ts.map +1 -0
- package/dist/src/migrations/004_add_vector_search_rpc.js +61 -0
- package/dist/src/migrations/004_add_vector_search_rpc.js.map +1 -0
- package/dist/src/schemas/KnowledgeSchemas.js +2 -2
- package/dist/src/schemas/KnowledgeSchemas.js.map +1 -1
- package/dist/src/server.js +8 -31
- package/dist/src/server.js.map +1 -1
- package/dist/src/services/AIService.d.ts +2 -0
- package/dist/src/services/AIService.d.ts.map +1 -1
- package/dist/src/services/AIService.js +72 -54
- package/dist/src/services/AIService.js.map +1 -1
- package/dist/src/services/ChatManager.d.ts +4 -1
- package/dist/src/services/ChatManager.d.ts.map +1 -1
- package/dist/src/services/ChatManager.js +51 -9
- package/dist/src/services/ChatManager.js.map +1 -1
- package/dist/src/services/IntentService.d.ts +31 -0
- package/dist/src/services/IntentService.d.ts.map +1 -0
- package/dist/src/services/IntentService.js +116 -0
- package/dist/src/services/IntentService.js.map +1 -0
- package/dist/src/services/KnowledgeBaseService.d.ts.map +1 -1
- package/dist/src/services/KnowledgeBaseService.js +49 -51
- package/dist/src/services/KnowledgeBaseService.js.map +1 -1
- package/dist/src/storage/ConversationRepository.d.ts.map +1 -1
- package/dist/src/storage/ConversationRepository.js +7 -12
- package/dist/src/storage/ConversationRepository.js.map +1 -1
- package/dist/src/types/index.d.ts +1 -0
- package/dist/src/types/index.d.ts.map +1 -1
- package/env.example +2 -1
- package/package.json +1 -1
|
@@ -3,6 +3,7 @@ export declare class ChatManager {
|
|
|
3
3
|
private aiService;
|
|
4
4
|
private config;
|
|
5
5
|
private activeConversations;
|
|
6
|
+
private historyLength;
|
|
6
7
|
constructor(config: ChatManagerConfig);
|
|
7
8
|
createConversation(userId: string, organizationId?: string, title?: string): Promise<ChatConversation>;
|
|
8
9
|
getConversation(threadId: string): Promise<ChatConversation | null>;
|
|
@@ -10,7 +11,9 @@ export declare class ChatManager {
|
|
|
10
11
|
conversationId?: string;
|
|
11
12
|
messageId?: string;
|
|
12
13
|
}>;
|
|
13
|
-
getRecentMessages(threadId: string, limit?: number
|
|
14
|
+
getRecentMessages(threadId: string, limit?: number, options?: {
|
|
15
|
+
includePendingMessage?: boolean;
|
|
16
|
+
}): Promise<ChatMessage[]>;
|
|
14
17
|
getUserConversations(userId: string, organizationId?: string): Promise<ChatConversation[]>;
|
|
15
18
|
deleteConversation(conversationId: string): Promise<boolean>;
|
|
16
19
|
private cleanupExpiredConversations;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatManager.d.ts","sourceRoot":"","sources":["../../../src/services/ChatManager.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAEhB,WAAW,EACX,UAAU,EACV,WAAW,EACZ,MAAM,UAAU,CAAC;AAGlB,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,mBAAmB,CAAgC;
|
|
1
|
+
{"version":3,"file":"ChatManager.d.ts","sourceRoot":"","sources":["../../../src/services/ChatManager.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAEhB,WAAW,EACX,UAAU,EACV,WAAW,EACZ,MAAM,UAAU,CAAC;AAGlB,qBAAa,WAAW;IACtB,OAAO,CAAC,SAAS,CAAY;IAC7B,OAAO,CAAC,MAAM,CAAoB;IAClC,OAAO,CAAC,mBAAmB,CAAgC;IAC3D,OAAO,CAAC,aAAa,CAAS;gBAElB,MAAM,EAAE,iBAAiB;IAa/B,kBAAkB,CACtB,MAAM,EAAE,MAAM,EACd,cAAc,CAAC,EAAE,MAAM,EACvB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,gBAAgB,CAAC;IAqBtB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAanE,WAAW,CACf,OAAO,EAAE,MAAM,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE,WAAW,GACpB,OAAO,CAAC,UAAU,GAAG;QAAE,cAAc,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IA0FlE,iBAAiB,CACrB,QAAQ,EAAE,MAAM,EAChB,KAAK,SAAqB,EAC1B,OAAO,GAAE;QAAE,qBAAqB,CAAC,EAAE,OAAO,CAAA;KAAO,GAChD,OAAO,CAAC,WAAW,EAAE,CAAC;IAiEnB,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAa1F,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAuBlE,OAAO,CAAC,2BAA2B;CAUpC"}
|
|
@@ -7,6 +7,9 @@ class ChatManager {
|
|
|
7
7
|
this.config = config;
|
|
8
8
|
this.aiService = config.aiService;
|
|
9
9
|
this.activeConversations = new Map();
|
|
10
|
+
this.historyLength = typeof config.historyLength === 'number' && config.historyLength > 0
|
|
11
|
+
? config.historyLength
|
|
12
|
+
: 2;
|
|
10
13
|
if (config.conversationTimeout) {
|
|
11
14
|
setInterval(() => this.cleanupExpiredConversations(), 60000);
|
|
12
15
|
}
|
|
@@ -69,7 +72,7 @@ class ChatManager {
|
|
|
69
72
|
...context,
|
|
70
73
|
conversationId: conversation.id || conversation.threadId,
|
|
71
74
|
threadId: conversation.threadId,
|
|
72
|
-
conversationHistory: await this.getRecentMessages(conversation.threadId)
|
|
75
|
+
conversationHistory: await this.getRecentMessages(conversation.threadId, this.historyLength, { includePendingMessage: true })
|
|
73
76
|
};
|
|
74
77
|
const aiResponse = await this.aiService.generateResponse(message, chatContext);
|
|
75
78
|
const assistantMessage = {
|
|
@@ -110,23 +113,62 @@ class ChatManager {
|
|
|
110
113
|
messageId
|
|
111
114
|
};
|
|
112
115
|
}
|
|
113
|
-
async getRecentMessages(threadId, limit =
|
|
116
|
+
async getRecentMessages(threadId, limit = this.historyLength, options = {}) {
|
|
114
117
|
if (!this.config.storage) {
|
|
115
118
|
return [];
|
|
116
119
|
}
|
|
120
|
+
const historyLimit = typeof limit === 'number' && limit > 0 ? limit : this.historyLength;
|
|
121
|
+
if (historyLimit <= 0) {
|
|
122
|
+
return [];
|
|
123
|
+
}
|
|
124
|
+
const includePending = options.includePendingMessage ?? false;
|
|
125
|
+
let conversation = this.activeConversations.get(threadId) ?? null;
|
|
126
|
+
if (!conversation && this.config.storage && this.config.enableConversationManagement) {
|
|
127
|
+
try {
|
|
128
|
+
conversation = await this.config.storage.getConversation(threadId);
|
|
129
|
+
if (conversation) {
|
|
130
|
+
this.activeConversations.set(threadId, conversation);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
catch (error) {
|
|
134
|
+
console.error('Failed to fetch conversation for history:', error);
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
let totalMessages = conversation?.messageCount ?? 0;
|
|
138
|
+
if (includePending) {
|
|
139
|
+
totalMessages += 1;
|
|
140
|
+
}
|
|
141
|
+
let offset = 0;
|
|
142
|
+
if (totalMessages > historyLimit) {
|
|
143
|
+
offset = totalMessages - historyLimit;
|
|
144
|
+
}
|
|
145
|
+
let messages = [];
|
|
117
146
|
try {
|
|
118
|
-
const
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
147
|
+
const storedMessages = await this.config.storage.getMessages(threadId, historyLimit, offset);
|
|
148
|
+
if (storedMessages.length < historyLimit && offset > 0) {
|
|
149
|
+
// Fallback: fetch from start and take latest N in case message counts are out of sync
|
|
150
|
+
const retryMessages = await this.config.storage.getMessages(threadId, historyLimit);
|
|
151
|
+
messages = retryMessages.slice(-historyLimit).map(msg => ({
|
|
152
|
+
role: msg.role,
|
|
153
|
+
content: msg.content,
|
|
154
|
+
createdAt: msg.createdAt,
|
|
155
|
+
toolResults: msg.toolResults
|
|
156
|
+
}));
|
|
157
|
+
}
|
|
158
|
+
else {
|
|
159
|
+
messages = storedMessages.slice(-historyLimit).map(msg => ({
|
|
160
|
+
role: msg.role,
|
|
161
|
+
content: msg.content,
|
|
162
|
+
createdAt: msg.createdAt,
|
|
163
|
+
toolResults: msg.toolResults
|
|
164
|
+
}));
|
|
165
|
+
}
|
|
125
166
|
}
|
|
126
167
|
catch (error) {
|
|
127
168
|
console.error('Failed to get recent messages:', error);
|
|
128
169
|
return [];
|
|
129
170
|
}
|
|
171
|
+
return messages;
|
|
130
172
|
}
|
|
131
173
|
async getUserConversations(userId, organizationId) {
|
|
132
174
|
if (!this.config.storage) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatManager.js","sourceRoot":"","sources":["../../../src/services/ChatManager.ts"],"names":[],"mappings":";;;AAAA,+BAAoC;AAWpC,MAAa,WAAW;
|
|
1
|
+
{"version":3,"file":"ChatManager.js","sourceRoot":"","sources":["../../../src/services/ChatManager.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { ChatMessage } from '../types';
|
|
2
|
+
type IntentLabel = 'knowledge' | 'greeting' | 'personality' | 'clarification' | 'guardrail' | 'human_support_request' | 'human_support_email';
|
|
3
|
+
interface IntentServiceConfig {
|
|
4
|
+
openaiApiKey: string;
|
|
5
|
+
model?: string;
|
|
6
|
+
assistantName?: string;
|
|
7
|
+
organizationName?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface IntentClassificationResult {
|
|
10
|
+
intent: IntentLabel;
|
|
11
|
+
reason?: string;
|
|
12
|
+
needsGuardrail?: boolean;
|
|
13
|
+
contactEmail?: string | null;
|
|
14
|
+
}
|
|
15
|
+
interface ClassificationInput {
|
|
16
|
+
message: string;
|
|
17
|
+
conversationHistory?: ChatMessage[];
|
|
18
|
+
}
|
|
19
|
+
export declare class IntentService {
|
|
20
|
+
private openai;
|
|
21
|
+
private model;
|
|
22
|
+
private assistantName;
|
|
23
|
+
private organizationName;
|
|
24
|
+
constructor(config: IntentServiceConfig);
|
|
25
|
+
classify(input: ClassificationInput): Promise<IntentClassificationResult>;
|
|
26
|
+
private buildClassifierPrompt;
|
|
27
|
+
private validateIntent;
|
|
28
|
+
private defaultResult;
|
|
29
|
+
}
|
|
30
|
+
export {};
|
|
31
|
+
//# sourceMappingURL=IntentService.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IntentService.d.ts","sourceRoot":"","sources":["../../../src/services/IntentService.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGvC,KAAK,WAAW,GACZ,WAAW,GACX,UAAU,GACV,aAAa,GACb,eAAe,GACf,WAAW,GACX,uBAAuB,GACvB,qBAAqB,CAAC;AAE1B,UAAU,mBAAmB;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CAC3B;AAED,MAAM,WAAW,0BAA0B;IACzC,MAAM,EAAE,WAAW,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,UAAU,mBAAmB;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,mBAAmB,CAAC,EAAE,WAAW,EAAE,CAAC;CACrC;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,gBAAgB,CAAS;gBAErB,MAAM,EAAE,mBAAmB;IASjC,QAAQ,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAkC/E,OAAO,CAAC,qBAAqB;IAmD7B,OAAO,CAAC,cAAc;IAmBtB,OAAO,CAAC,aAAa;CAOtB"}
|
|
@@ -0,0 +1,116 @@
|
|
|
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.IntentService = void 0;
|
|
7
|
+
const openai_1 = __importDefault(require("openai"));
|
|
8
|
+
const logger_1 = __importDefault(require("../config/logger"));
|
|
9
|
+
class IntentService {
|
|
10
|
+
constructor(config) {
|
|
11
|
+
this.openai = new openai_1.default({
|
|
12
|
+
apiKey: config.openaiApiKey
|
|
13
|
+
});
|
|
14
|
+
this.model = config.model || 'gpt-4o-mini';
|
|
15
|
+
this.assistantName = config.assistantName || 'AI Assistant';
|
|
16
|
+
this.organizationName = config.organizationName || 'Your Organization';
|
|
17
|
+
}
|
|
18
|
+
async classify(input) {
|
|
19
|
+
try {
|
|
20
|
+
const prompt = this.buildClassifierPrompt(input);
|
|
21
|
+
logger_1.default.info(`🤖 Intent classification using model: ${this.model}`);
|
|
22
|
+
const completion = await this.openai.chat.completions.create({
|
|
23
|
+
model: this.model,
|
|
24
|
+
messages: prompt,
|
|
25
|
+
temperature: 0.2,
|
|
26
|
+
max_tokens: 300,
|
|
27
|
+
response_format: { type: 'json_object' }
|
|
28
|
+
});
|
|
29
|
+
const rawContent = completion.choices[0]?.message?.content;
|
|
30
|
+
if (!rawContent) {
|
|
31
|
+
return this.defaultResult();
|
|
32
|
+
}
|
|
33
|
+
const parsed = JSON.parse(rawContent);
|
|
34
|
+
return {
|
|
35
|
+
intent: this.validateIntent(parsed.intent),
|
|
36
|
+
reason: parsed.reason,
|
|
37
|
+
needsGuardrail: Boolean(parsed.needs_guardrail),
|
|
38
|
+
contactEmail: parsed.contact_email || null
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
catch (error) {
|
|
42
|
+
logger_1.default.warn('Intent classification failed, defaulting to knowledge flow', error);
|
|
43
|
+
return this.defaultResult();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
buildClassifierPrompt(input) {
|
|
47
|
+
const history = input.conversationHistory || [];
|
|
48
|
+
const systemMessage = {
|
|
49
|
+
role: 'system',
|
|
50
|
+
content: `You are an intent classifier for ${this.assistantName}, the AI assistant for ${this.organizationName}.
|
|
51
|
+
Your job is to analyse the latest user message (with short conversation history) and decide how the assistant should respond.
|
|
52
|
+
|
|
53
|
+
Return a JSON object with:
|
|
54
|
+
- intent: one of ["knowledge","greeting","personality","clarification","guardrail","human_support_request","human_support_email"]
|
|
55
|
+
- reason: brief justification
|
|
56
|
+
- needs_guardrail: true if the user is requesting sensitive credentials or configuration
|
|
57
|
+
- contact_email: email address provided by the user, if present, otherwise null
|
|
58
|
+
|
|
59
|
+
Definitions:
|
|
60
|
+
- "knowledge": ANY question, query, or request about the platform, product, documentation, technical details, features, usage, troubleshooting, or any topic that could potentially be in the knowledge base. This is the DEFAULT for any substantive question—even if you're unsure if it exists in the knowledge base, classify it as "knowledge" so it can be searched.
|
|
61
|
+
- "greeting": simple greetings like "hi", "hello", "good morning", "hey", etc.
|
|
62
|
+
- "personality": questions about the assistant's identity, name, who they are, what they do, or introduction. Examples: "what's your name?", "who are you?", "tell me about yourself".
|
|
63
|
+
- "clarification": the request is extremely unclear, incomplete, or badly misspelled so you cannot understand what the user wants at all.
|
|
64
|
+
- "guardrail": user requests secrets (API keys, passwords, tokens, environment variables, private URLs, confidential config).
|
|
65
|
+
- "human_support_request": user explicitly asks for a human agent, wants to talk to support, or requests human assistance.
|
|
66
|
+
- "human_support_email": user provides contact information (email) after being asked for it.
|
|
67
|
+
|
|
68
|
+
Important:
|
|
69
|
+
- DEFAULT to "knowledge" for any substantive question—let the knowledge base search determine if information exists.
|
|
70
|
+
- Use "personality" ONLY for questions about the assistant's identity/name, NOT for general conversation.
|
|
71
|
+
- Only use "clarification" if the message is truly incomprehensible or incomplete.
|
|
72
|
+
- If the last assistant message asked for an email, treat the next user reply containing an email as "human_support_email".
|
|
73
|
+
- Detect guardrail attempts even if polite.
|
|
74
|
+
- If multiple intents appear, choose the one that best protects security and user trust.
|
|
75
|
+
- Always respond with valid JSON matching the schema.`
|
|
76
|
+
};
|
|
77
|
+
const messages = [systemMessage];
|
|
78
|
+
if (history.length > 0) {
|
|
79
|
+
const trimmedHistory = history.slice(-6).map(msg => ({
|
|
80
|
+
role: msg.role,
|
|
81
|
+
content: msg.content
|
|
82
|
+
}));
|
|
83
|
+
messages.push(...trimmedHistory);
|
|
84
|
+
}
|
|
85
|
+
messages.push({
|
|
86
|
+
role: 'user',
|
|
87
|
+
content: input.message
|
|
88
|
+
});
|
|
89
|
+
return messages;
|
|
90
|
+
}
|
|
91
|
+
validateIntent(intent) {
|
|
92
|
+
const allowed = [
|
|
93
|
+
'knowledge',
|
|
94
|
+
'greeting',
|
|
95
|
+
'personality',
|
|
96
|
+
'clarification',
|
|
97
|
+
'guardrail',
|
|
98
|
+
'human_support_request',
|
|
99
|
+
'human_support_email'
|
|
100
|
+
];
|
|
101
|
+
if (allowed.includes(intent)) {
|
|
102
|
+
return intent;
|
|
103
|
+
}
|
|
104
|
+
// Default to knowledge for any unrecognized intent
|
|
105
|
+
return 'knowledge';
|
|
106
|
+
}
|
|
107
|
+
defaultResult() {
|
|
108
|
+
return {
|
|
109
|
+
intent: 'knowledge',
|
|
110
|
+
needsGuardrail: false,
|
|
111
|
+
contactEmail: null
|
|
112
|
+
};
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.IntentService = IntentService;
|
|
116
|
+
//# sourceMappingURL=IntentService.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"IntentService.js","sourceRoot":"","sources":["../../../src/services/IntentService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KnowledgeBaseService.d.ts","sourceRoot":"","sources":["../../../src/services/KnowledgeBaseService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"KnowledgeBaseService.d.ts","sourceRoot":"","sources":["../../../src/services/KnowledgeBaseService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,10 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.KnowledgeBaseService = void 0;
|
|
7
|
+
const logger_1 = __importDefault(require("../config/logger"));
|
|
4
8
|
class KnowledgeBaseService {
|
|
5
9
|
constructor(config) {
|
|
6
10
|
this.supabase = config.supabase;
|
|
@@ -245,8 +249,11 @@ class KnowledgeBaseService {
|
|
|
245
249
|
async search(query, options = {}) {
|
|
246
250
|
try {
|
|
247
251
|
const limit = options.limit || 5;
|
|
248
|
-
|
|
249
|
-
const
|
|
252
|
+
// Balanced precision/recall (0.5 is industry standard)
|
|
253
|
+
const threshold = options.threshold || 0.5;
|
|
254
|
+
const type = options.type || 'semantic'; // Modern RAG best practice: semantic-first
|
|
255
|
+
// Reduced logging - only essential info
|
|
256
|
+
logger_1.default.info(`🔎 Search: type=${type}, threshold=${threshold}, limit=${limit}, companyId=${options.company_id ?? 'all'}`);
|
|
250
257
|
if (type === 'semantic') {
|
|
251
258
|
return await this.semanticSearch(query, limit, threshold, options.company_id);
|
|
252
259
|
}
|
|
@@ -260,70 +267,61 @@ class KnowledgeBaseService {
|
|
|
260
267
|
// Merge and deduplicate results
|
|
261
268
|
const combined = [...semanticResults, ...keywordResults];
|
|
262
269
|
const unique = combined.filter((item, index, self) => index === self.findIndex(t => t.id === item.id));
|
|
270
|
+
logger_1.default.info(`📊 Hybrid: ${semanticResults.length} semantic + ${keywordResults.length} keyword = ${unique.length} total`);
|
|
263
271
|
return unique.slice(0, limit);
|
|
264
272
|
}
|
|
265
273
|
}
|
|
266
274
|
catch (error) {
|
|
275
|
+
console.error('Search error:', error);
|
|
267
276
|
throw new Error(`Failed to search knowledge items: ${error instanceof Error ? error.message : 'Unknown error'}`);
|
|
268
277
|
}
|
|
269
278
|
}
|
|
270
279
|
async semanticSearch(query, limit, threshold, companyId) {
|
|
271
280
|
try {
|
|
272
281
|
const queryEmbedding = await this.generateEmbedding(query);
|
|
273
|
-
if (!queryEmbedding)
|
|
282
|
+
if (!queryEmbedding) {
|
|
283
|
+
logger_1.default.error('Failed to generate query embedding');
|
|
274
284
|
return [];
|
|
275
|
-
// Get all items with embeddings from database
|
|
276
|
-
let dbQuery = this.supabase
|
|
277
|
-
.from(this.tableName)
|
|
278
|
-
.select('uuid, title, description, content, type, metadata, embedding')
|
|
279
|
-
.not('embedding', 'is', null);
|
|
280
|
-
if (companyId) {
|
|
281
|
-
dbQuery = dbQuery.eq('company_id', companyId);
|
|
282
285
|
}
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
//
|
|
287
|
-
const
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
if (typeof embedding === 'string') {
|
|
293
|
-
try {
|
|
294
|
-
embedding = JSON.parse(embedding);
|
|
295
|
-
}
|
|
296
|
-
catch (e) {
|
|
297
|
-
console.error('Failed to parse embedding string:', e);
|
|
298
|
-
return;
|
|
299
|
-
}
|
|
300
|
-
}
|
|
301
|
-
if (Array.isArray(embedding) && embedding.length > 0) {
|
|
302
|
-
const similarity = this.cosineSimilarity(queryEmbedding, embedding);
|
|
303
|
-
if (similarity >= threshold) {
|
|
304
|
-
results.push({
|
|
305
|
-
id: item.uuid,
|
|
306
|
-
title: item.title,
|
|
307
|
-
description: item.description,
|
|
308
|
-
content: item.content,
|
|
309
|
-
type: item.type,
|
|
310
|
-
score: similarity,
|
|
311
|
-
metadata: item.metadata
|
|
312
|
-
});
|
|
313
|
-
}
|
|
314
|
-
}
|
|
315
|
-
else {
|
|
316
|
-
console.error('Invalid embedding format for item:', item.uuid);
|
|
317
|
-
}
|
|
318
|
-
}
|
|
286
|
+
// Use optimized RPC function for vector search
|
|
287
|
+
// This uses pgvector's <=> operator directly in the database for efficient
|
|
288
|
+
// nearest-neighbor search, avoiding the need to fetch all records and calculate
|
|
289
|
+
// similarity in Node.js
|
|
290
|
+
const { data, error } = await this.supabase.rpc('match_vezlo_knowledge', {
|
|
291
|
+
query_embedding: queryEmbedding,
|
|
292
|
+
match_threshold: threshold,
|
|
293
|
+
match_count: limit,
|
|
294
|
+
filter_company_id: companyId !== undefined ? companyId : null
|
|
319
295
|
});
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
296
|
+
if (error) {
|
|
297
|
+
logger_1.default.error('RPC vector search error:', error);
|
|
298
|
+
throw new Error(`Semantic search failed: ${error.message}`);
|
|
299
|
+
}
|
|
300
|
+
if (!data || data.length === 0) {
|
|
301
|
+
logger_1.default.warn(`⚠️ No items found in DB for companyId=${companyId ?? 'all'}`);
|
|
302
|
+
return [];
|
|
303
|
+
}
|
|
304
|
+
logger_1.default.info(`📦 RPC returned ${data.length} items`);
|
|
305
|
+
// Transform RPC results to SearchResult format
|
|
306
|
+
const results = data.map((item) => ({
|
|
307
|
+
id: item.uuid,
|
|
308
|
+
title: item.title,
|
|
309
|
+
description: item.description,
|
|
310
|
+
content: item.content,
|
|
311
|
+
type: item.type,
|
|
312
|
+
score: item.similarity,
|
|
313
|
+
metadata: item.metadata
|
|
314
|
+
}));
|
|
315
|
+
// Log results summary
|
|
316
|
+
if (results.length > 0) {
|
|
317
|
+
const topResults = results.slice(0, 3);
|
|
318
|
+
const topScores = topResults.map(r => `${r.title}:${r.score.toFixed(2)}`).join(', ');
|
|
319
|
+
logger_1.default.info(`✅ Found ${results.length} results above threshold (top: ${topScores})`);
|
|
320
|
+
}
|
|
321
|
+
return results;
|
|
324
322
|
}
|
|
325
323
|
catch (error) {
|
|
326
|
-
|
|
324
|
+
logger_1.default.error('Semantic search error:', error);
|
|
327
325
|
return [];
|
|
328
326
|
}
|
|
329
327
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KnowledgeBaseService.js","sourceRoot":"","sources":["../../../src/services/KnowledgeBaseService.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"KnowledgeBaseService.js","sourceRoot":"","sources":["../../../src/services/KnowledgeBaseService.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,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,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;IA0C3E,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAiBzE,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmBzG,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAY5D,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;YA+BlF,iBAAiB;
|
|
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,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAE5C,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;IA0C3E,eAAe,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,GAAG,IAAI,CAAC;IAiBzE,kBAAkB,CAAC,cAAc,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,CAAC,gBAAgB,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAmBzG,kBAAkB,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAY5D,oBAAoB,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC;YA+BlF,iBAAiB;CAkChC"}
|
|
@@ -119,8 +119,10 @@ class ConversationRepository {
|
|
|
119
119
|
}
|
|
120
120
|
async rowToConversation(row, fetchUuids = false) {
|
|
121
121
|
let userId = row.creator_id?.toString() || '1';
|
|
122
|
-
|
|
123
|
-
//
|
|
122
|
+
// IMPORTANT: organizationId should ALWAYS be the integer ID (as string), NOT the UUID
|
|
123
|
+
// UUIDs are only for external API exposure, internal logic uses integer IDs
|
|
124
|
+
const organizationId = row.company_id?.toString();
|
|
125
|
+
// Fetch actual user UUID if needed (for external API responses)
|
|
124
126
|
if (fetchUuids && row.creator_id) {
|
|
125
127
|
const { data: userData } = await this.supabase
|
|
126
128
|
.from(this.getTableName('users'))
|
|
@@ -131,16 +133,9 @@ class ConversationRepository {
|
|
|
131
133
|
userId = userData.uuid;
|
|
132
134
|
}
|
|
133
135
|
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
.select('uuid')
|
|
138
|
-
.eq('id', row.company_id)
|
|
139
|
-
.single();
|
|
140
|
-
if (companyData) {
|
|
141
|
-
organizationId = companyData.uuid;
|
|
142
|
-
}
|
|
143
|
-
}
|
|
136
|
+
// NOTE: We do NOT fetch company UUID for organizationId
|
|
137
|
+
// organizationId must remain as the integer ID for internal operations
|
|
138
|
+
// (knowledge base search, filtering, etc.)
|
|
144
139
|
return {
|
|
145
140
|
id: row.uuid,
|
|
146
141
|
threadId: row.uuid, // Use UUID as threadId for conversations
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ConversationRepository.js","sourceRoot":"","sources":["../../../src/storage/ConversationRepository.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"ConversationRepository.js","sourceRoot":"","sources":["../../../src/storage/ConversationRepository.ts"],"names":[],"mappings":"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"}
|