@kiyeonjeon21/datacontext 0.2.0 → 0.3.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/.cursorrules +12 -0
- package/.env.example +8 -0
- package/.github/workflows/ci.yml +21 -1
- package/.github/workflows/publish.yml +21 -1
- package/CHANGELOG.md +41 -0
- package/README.md +247 -239
- package/datacontext.db +0 -0
- package/dist/api/server.d.ts.map +1 -1
- package/dist/api/server.js +145 -0
- package/dist/api/server.js.map +1 -1
- package/dist/api/start-server.d.ts +10 -0
- package/dist/api/start-server.d.ts.map +1 -0
- package/dist/api/start-server.js +73 -0
- package/dist/api/start-server.js.map +1 -0
- package/dist/cli/index.js +462 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/core/context-service.d.ts +58 -0
- package/dist/core/context-service.d.ts.map +1 -1
- package/dist/core/context-service.js +121 -0
- package/dist/core/context-service.js.map +1 -1
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.d.ts.map +1 -1
- package/dist/core/index.js +5 -1
- package/dist/core/index.js.map +1 -1
- package/dist/core/llm-service.d.ts +141 -0
- package/dist/core/llm-service.d.ts.map +1 -0
- package/dist/core/llm-service.js +284 -0
- package/dist/core/llm-service.js.map +1 -0
- package/dist/knowledge/store.d.ts +56 -3
- package/dist/knowledge/store.d.ts.map +1 -1
- package/dist/knowledge/store.js +193 -7
- package/dist/knowledge/store.js.map +1 -1
- package/dist/knowledge/types.d.ts +43 -1
- package/dist/knowledge/types.d.ts.map +1 -1
- package/dist/knowledge/types.js.map +1 -1
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +365 -0
- package/dist/mcp/tools.js.map +1 -1
- package/docs/API.md +173 -0
- package/docs/DEMO_SCRIPT.md +210 -0
- package/docs/SYNC_GUIDE.md +242 -0
- package/package.json +4 -1
- package/src/api/server.ts +160 -0
- package/src/api/start-server.ts +78 -0
- package/src/cli/index.ts +534 -0
- package/src/core/context-service.ts +157 -0
- package/src/core/index.ts +7 -0
- package/src/core/llm-service.ts +359 -0
- package/src/knowledge/store.ts +232 -7
- package/src/knowledge/types.ts +45 -1
- package/src/mcp/tools.ts +415 -0
|
@@ -568,6 +568,127 @@ class DataContextService {
|
|
|
568
568
|
return this.metrics.getAggregatedMetrics();
|
|
569
569
|
}
|
|
570
570
|
// ============================================================
|
|
571
|
+
// Glossary (Business Terms)
|
|
572
|
+
// ============================================================
|
|
573
|
+
/**
|
|
574
|
+
* Get all business terms
|
|
575
|
+
*/
|
|
576
|
+
getBusinessTerms() {
|
|
577
|
+
return this.knowledge.getBusinessTerms();
|
|
578
|
+
}
|
|
579
|
+
/**
|
|
580
|
+
* Find terms matching a query
|
|
581
|
+
*/
|
|
582
|
+
findMatchingTerms(query) {
|
|
583
|
+
return this.knowledge.findMatchingTerms(query);
|
|
584
|
+
}
|
|
585
|
+
/**
|
|
586
|
+
* Add a business term manually
|
|
587
|
+
*/
|
|
588
|
+
async addBusinessTerm(term, definition, options = {}) {
|
|
589
|
+
return this.knowledge.addBusinessTerm(term, definition, options);
|
|
590
|
+
}
|
|
591
|
+
/**
|
|
592
|
+
* Delete a business term
|
|
593
|
+
*/
|
|
594
|
+
async deleteBusinessTerm(id) {
|
|
595
|
+
return this.knowledge.deleteBusinessTerm(id);
|
|
596
|
+
}
|
|
597
|
+
/**
|
|
598
|
+
* Enhance a natural language query using the glossary
|
|
599
|
+
*
|
|
600
|
+
* Matches terms from the glossary and suggests SQL conditions.
|
|
601
|
+
* Uses local matching first, then AI if available.
|
|
602
|
+
*
|
|
603
|
+
* @param query - Natural language query
|
|
604
|
+
* @returns Enhancement result with suggested conditions
|
|
605
|
+
*/
|
|
606
|
+
async enhanceQuery(query) {
|
|
607
|
+
// Try local matching first
|
|
608
|
+
const localMatches = this.knowledge.findMatchingTerms(query);
|
|
609
|
+
if (localMatches.length > 0) {
|
|
610
|
+
return {
|
|
611
|
+
query,
|
|
612
|
+
enhancedQuery: query,
|
|
613
|
+
usedTerms: localMatches.map(t => t.term),
|
|
614
|
+
suggestedConditions: localMatches
|
|
615
|
+
.filter(t => t.sqlExpression)
|
|
616
|
+
.map(t => t.sqlExpression),
|
|
617
|
+
method: 'local',
|
|
618
|
+
};
|
|
619
|
+
}
|
|
620
|
+
// Try AI enhancement if available
|
|
621
|
+
const { isLLMAvailable, createLLMService } = await import('./llm-service.js');
|
|
622
|
+
if (!isLLMAvailable()) {
|
|
623
|
+
return {
|
|
624
|
+
query,
|
|
625
|
+
enhancedQuery: query,
|
|
626
|
+
usedTerms: [],
|
|
627
|
+
suggestedConditions: [],
|
|
628
|
+
method: 'local',
|
|
629
|
+
};
|
|
630
|
+
}
|
|
631
|
+
const terms = this.knowledge.getActiveTerms();
|
|
632
|
+
if (terms.length === 0) {
|
|
633
|
+
return {
|
|
634
|
+
query,
|
|
635
|
+
enhancedQuery: query,
|
|
636
|
+
usedTerms: [],
|
|
637
|
+
suggestedConditions: [],
|
|
638
|
+
method: 'local',
|
|
639
|
+
};
|
|
640
|
+
}
|
|
641
|
+
const llm = createLLMService();
|
|
642
|
+
const result = await llm.enhanceQueryWithGlossary(query, terms);
|
|
643
|
+
return {
|
|
644
|
+
query,
|
|
645
|
+
enhancedQuery: result.enhancedQuery,
|
|
646
|
+
usedTerms: result.usedTerms,
|
|
647
|
+
suggestedConditions: result.suggestedConditions,
|
|
648
|
+
method: 'ai',
|
|
649
|
+
};
|
|
650
|
+
}
|
|
651
|
+
/**
|
|
652
|
+
* Generate glossary from raw terms using AI
|
|
653
|
+
*
|
|
654
|
+
* Takes natural language term definitions and uses Claude to generate
|
|
655
|
+
* structured BusinessTerm entries with SQL expressions.
|
|
656
|
+
*
|
|
657
|
+
* @param rawTerms - User's term definitions in natural language
|
|
658
|
+
* @returns Generated BusinessTerm entries
|
|
659
|
+
*
|
|
660
|
+
* @example
|
|
661
|
+
* ```typescript
|
|
662
|
+
* const terms = await service.generateGlossary(
|
|
663
|
+
* "활성 사용자 = status가 1인 사용자\n최근 주문 = 30일 이내 주문"
|
|
664
|
+
* );
|
|
665
|
+
* console.log(`Generated ${terms.length} terms`);
|
|
666
|
+
* ```
|
|
667
|
+
*/
|
|
668
|
+
async generateGlossary(rawTerms) {
|
|
669
|
+
const { isLLMAvailable, createLLMService } = await import('./llm-service.js');
|
|
670
|
+
if (!isLLMAvailable()) {
|
|
671
|
+
throw new Error('ANTHROPIC_API_KEY not configured. Set the environment variable to use AI-powered glossary generation.');
|
|
672
|
+
}
|
|
673
|
+
// Get schema context
|
|
674
|
+
const schemaInfo = await this.adapter.getSchema();
|
|
675
|
+
const schemaContext = {
|
|
676
|
+
tables: schemaInfo.tables.slice(0, 20).map(table => ({
|
|
677
|
+
name: table.name,
|
|
678
|
+
columns: table.columns.map(c => ({
|
|
679
|
+
name: c.name,
|
|
680
|
+
type: c.dataType,
|
|
681
|
+
nullable: c.isNullable,
|
|
682
|
+
})),
|
|
683
|
+
})),
|
|
684
|
+
existingTerms: this.knowledge.getBusinessTerms(),
|
|
685
|
+
};
|
|
686
|
+
const llm = createLLMService();
|
|
687
|
+
const generatedTerms = await llm.generateGlossary(rawTerms, schemaContext, this.knowledge.getSchemaHash());
|
|
688
|
+
// Add to knowledge store
|
|
689
|
+
return this.knowledge.addBusinessTerms(generatedTerms);
|
|
690
|
+
}
|
|
691
|
+
// ============================================================
|
|
571
692
|
// Lifecycle
|
|
572
693
|
// ============================================================
|
|
573
694
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context-service.js","sourceRoot":"","sources":["../../src/core/context-service.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"context-service.js","sourceRoot":"","sources":["../../src/core/context-service.ts"],"names":[],"mappings":"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"}
|
package/dist/core/index.d.ts
CHANGED
|
@@ -7,5 +7,7 @@ export { Harvester, createHarvester } from './harvester.js';
|
|
|
7
7
|
export { FeedbackManager, createFeedbackManager } from './feedback.js';
|
|
8
8
|
export { MetricsCollector, createMetricsCollector } from './metrics.js';
|
|
9
9
|
export { CostEstimator, createCostEstimator } from './cost-estimator.js';
|
|
10
|
+
export { LLMService, createLLMService, isLLMAvailable } from './llm-service.js';
|
|
10
11
|
export type { QueryResult, QueryFeedback, QueryMetrics, CostEstimation, AggregatedMetrics, ContextReference, HarvestedMetadata, DataContextConfig, } from './types.js';
|
|
12
|
+
export type { LLMServiceConfig, SchemaContext, GeneratedTerm, } from './llm-service.js';
|
|
11
13
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/core/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGpF,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAGH,OAAO,EAAE,kBAAkB,EAAE,wBAAwB,EAAE,MAAM,sBAAsB,CAAC;AAGpF,OAAO,EAAE,SAAS,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,eAAe,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACvE,OAAO,EAAE,gBAAgB,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACxE,OAAO,EAAE,aAAa,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGhF,YAAY,EACV,WAAW,EACX,aAAa,EACb,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,GAClB,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,gBAAgB,EAChB,aAAa,EACb,aAAa,GACd,MAAM,kBAAkB,CAAC"}
|
package/dist/core/index.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
* Platform-agnostic services for DataContext
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
|
-
exports.createCostEstimator = exports.CostEstimator = exports.createMetricsCollector = exports.MetricsCollector = exports.createFeedbackManager = exports.FeedbackManager = exports.createHarvester = exports.Harvester = exports.createDataContextService = exports.DataContextService = void 0;
|
|
7
|
+
exports.isLLMAvailable = exports.createLLMService = exports.LLMService = exports.createCostEstimator = exports.CostEstimator = exports.createMetricsCollector = exports.MetricsCollector = exports.createFeedbackManager = exports.FeedbackManager = exports.createHarvester = exports.Harvester = exports.createDataContextService = exports.DataContextService = void 0;
|
|
8
8
|
// Main service
|
|
9
9
|
var context_service_js_1 = require("./context-service.js");
|
|
10
10
|
Object.defineProperty(exports, "DataContextService", { enumerable: true, get: function () { return context_service_js_1.DataContextService; } });
|
|
@@ -22,4 +22,8 @@ Object.defineProperty(exports, "createMetricsCollector", { enumerable: true, get
|
|
|
22
22
|
var cost_estimator_js_1 = require("./cost-estimator.js");
|
|
23
23
|
Object.defineProperty(exports, "CostEstimator", { enumerable: true, get: function () { return cost_estimator_js_1.CostEstimator; } });
|
|
24
24
|
Object.defineProperty(exports, "createCostEstimator", { enumerable: true, get: function () { return cost_estimator_js_1.createCostEstimator; } });
|
|
25
|
+
var llm_service_js_1 = require("./llm-service.js");
|
|
26
|
+
Object.defineProperty(exports, "LLMService", { enumerable: true, get: function () { return llm_service_js_1.LLMService; } });
|
|
27
|
+
Object.defineProperty(exports, "createLLMService", { enumerable: true, get: function () { return llm_service_js_1.createLLMService; } });
|
|
28
|
+
Object.defineProperty(exports, "isLLMAvailable", { enumerable: true, get: function () { return llm_service_js_1.isLLMAvailable; } });
|
|
25
29
|
//# sourceMappingURL=index.js.map
|
package/dist/core/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,eAAe;AACf,2DAAoF;AAA3E,wHAAA,kBAAkB,OAAA;AAAE,8HAAA,wBAAwB,OAAA;AAErD,wBAAwB;AACxB,+CAA4D;AAAnD,yGAAA,SAAS,OAAA;AAAE,+GAAA,eAAe,OAAA;AACnC,6CAAuE;AAA9D,8GAAA,eAAe,OAAA;AAAE,oHAAA,qBAAqB,OAAA;AAC/C,2CAAwE;AAA/D,8GAAA,gBAAgB,OAAA;AAAE,oHAAA,sBAAsB,OAAA;AACjD,yDAAyE;AAAhE,kHAAA,aAAa,OAAA;AAAE,wHAAA,mBAAmB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":";AAAA;;;GAGG;;;AAEH,eAAe;AACf,2DAAoF;AAA3E,wHAAA,kBAAkB,OAAA;AAAE,8HAAA,wBAAwB,OAAA;AAErD,wBAAwB;AACxB,+CAA4D;AAAnD,yGAAA,SAAS,OAAA;AAAE,+GAAA,eAAe,OAAA;AACnC,6CAAuE;AAA9D,8GAAA,eAAe,OAAA;AAAE,oHAAA,qBAAqB,OAAA;AAC/C,2CAAwE;AAA/D,8GAAA,gBAAgB,OAAA;AAAE,oHAAA,sBAAsB,OAAA;AACjD,yDAAyE;AAAhE,kHAAA,aAAa,OAAA;AAAE,wHAAA,mBAAmB,OAAA;AAC3C,mDAAgF;AAAvE,4GAAA,UAAU,OAAA;AAAE,kHAAA,gBAAgB,OAAA;AAAE,gHAAA,cAAc,OAAA"}
|
|
@@ -0,0 +1,141 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* LLM Service Module
|
|
3
|
+
*
|
|
4
|
+
* Provides AI-powered features using Claude API.
|
|
5
|
+
* Used for auto-generating glossary terms, descriptions, and query suggestions.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```typescript
|
|
9
|
+
* const llm = createLLMService();
|
|
10
|
+
*
|
|
11
|
+
* // Generate glossary from user's raw terms
|
|
12
|
+
* const terms = await llm.generateGlossary(
|
|
13
|
+
* "활성 사용자, 최근 주문, VIP 고객",
|
|
14
|
+
* schemaContext
|
|
15
|
+
* );
|
|
16
|
+
*
|
|
17
|
+
* // Generate table descriptions
|
|
18
|
+
* const descriptions = await llm.generateTableDescriptions(tableInfo);
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
import type { BusinessTerm, TermCategory, TableDescription } from '../knowledge/types.js';
|
|
22
|
+
/** LLM service configuration */
|
|
23
|
+
export interface LLMServiceConfig {
|
|
24
|
+
/** Anthropic API key (defaults to ANTHROPIC_API_KEY env var) */
|
|
25
|
+
apiKey?: string;
|
|
26
|
+
/** Model to use (defaults to claude-sonnet-4-20250514) */
|
|
27
|
+
model?: string;
|
|
28
|
+
/** Maximum tokens for response */
|
|
29
|
+
maxTokens?: number;
|
|
30
|
+
}
|
|
31
|
+
/** Schema context for LLM prompts */
|
|
32
|
+
export interface SchemaContext {
|
|
33
|
+
tables: Array<{
|
|
34
|
+
name: string;
|
|
35
|
+
columns: Array<{
|
|
36
|
+
name: string;
|
|
37
|
+
type: string;
|
|
38
|
+
nullable: boolean;
|
|
39
|
+
}>;
|
|
40
|
+
}>;
|
|
41
|
+
existingTerms?: BusinessTerm[];
|
|
42
|
+
existingRules?: Array<{
|
|
43
|
+
name: string;
|
|
44
|
+
description: string;
|
|
45
|
+
}>;
|
|
46
|
+
}
|
|
47
|
+
/** Generated term from LLM */
|
|
48
|
+
export interface GeneratedTerm {
|
|
49
|
+
term: string;
|
|
50
|
+
synonyms: string[];
|
|
51
|
+
definition: string;
|
|
52
|
+
sqlExpression?: string;
|
|
53
|
+
appliesTo?: {
|
|
54
|
+
tables?: string[];
|
|
55
|
+
columns?: string[];
|
|
56
|
+
};
|
|
57
|
+
category?: TermCategory;
|
|
58
|
+
examples?: string[];
|
|
59
|
+
}
|
|
60
|
+
/** LLM Service class */
|
|
61
|
+
export declare class LLMService {
|
|
62
|
+
private client;
|
|
63
|
+
private model;
|
|
64
|
+
private maxTokens;
|
|
65
|
+
constructor(config?: LLMServiceConfig);
|
|
66
|
+
/**
|
|
67
|
+
* Generate glossary terms from user's raw input
|
|
68
|
+
*
|
|
69
|
+
* Takes natural language terms and generates structured BusinessTerm entries
|
|
70
|
+
* with SQL expressions and proper categorization.
|
|
71
|
+
*
|
|
72
|
+
* @param rawTerms - User's raw term input (comma-separated, YAML, or natural language)
|
|
73
|
+
* @param context - Database schema context
|
|
74
|
+
* @param schemaHash - Current schema hash for metadata
|
|
75
|
+
* @returns Array of generated BusinessTerm entries
|
|
76
|
+
*
|
|
77
|
+
* @example
|
|
78
|
+
* ```typescript
|
|
79
|
+
* const terms = await llm.generateGlossary(
|
|
80
|
+
* "활성 사용자 = status가 1인 사용자\n최근 주문 = 30일 이내 주문",
|
|
81
|
+
* { tables: [{ name: 'users', columns: [...] }] },
|
|
82
|
+
* "abc123"
|
|
83
|
+
* );
|
|
84
|
+
* ```
|
|
85
|
+
*/
|
|
86
|
+
generateGlossary(rawTerms: string, context: SchemaContext, schemaHash?: string): Promise<BusinessTerm[]>;
|
|
87
|
+
/**
|
|
88
|
+
* Generate table/column descriptions from schema
|
|
89
|
+
*
|
|
90
|
+
* Analyzes table and column names to generate meaningful descriptions.
|
|
91
|
+
* Useful for cold-start when no documentation exists.
|
|
92
|
+
*
|
|
93
|
+
* @param tableInfo - Table schema information
|
|
94
|
+
* @param schemaHash - Current schema hash
|
|
95
|
+
* @returns Generated TableDescription
|
|
96
|
+
*/
|
|
97
|
+
generateTableDescription(tableInfo: {
|
|
98
|
+
name: string;
|
|
99
|
+
columns: Array<{
|
|
100
|
+
name: string;
|
|
101
|
+
type: string;
|
|
102
|
+
nullable: boolean;
|
|
103
|
+
}>;
|
|
104
|
+
sampleData?: Record<string, unknown>[];
|
|
105
|
+
}, schemaHash?: string): Promise<Omit<TableDescription, keyof import('../knowledge/types.js').KnowledgeMeta | 'type'>>;
|
|
106
|
+
/**
|
|
107
|
+
* Enhance a user query with glossary context
|
|
108
|
+
*
|
|
109
|
+
* Takes a natural language query and returns an enhanced version
|
|
110
|
+
* with term definitions resolved.
|
|
111
|
+
*
|
|
112
|
+
* @param query - User's natural language query
|
|
113
|
+
* @param terms - Available business terms
|
|
114
|
+
* @returns Enhanced query with context
|
|
115
|
+
*/
|
|
116
|
+
enhanceQueryWithGlossary(query: string, terms: BusinessTerm[]): Promise<{
|
|
117
|
+
enhancedQuery: string;
|
|
118
|
+
usedTerms: string[];
|
|
119
|
+
suggestedConditions: string[];
|
|
120
|
+
}>;
|
|
121
|
+
/**
|
|
122
|
+
* Parse JSON response from Claude, handling markdown code blocks
|
|
123
|
+
*/
|
|
124
|
+
private parseJsonResponse;
|
|
125
|
+
/**
|
|
126
|
+
* Format schema context for prompts
|
|
127
|
+
*/
|
|
128
|
+
private formatSchemaContext;
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Create an LLM service instance
|
|
132
|
+
*
|
|
133
|
+
* @param config - Service configuration
|
|
134
|
+
* @returns LLMService instance
|
|
135
|
+
*/
|
|
136
|
+
export declare function createLLMService(config?: LLMServiceConfig): LLMService;
|
|
137
|
+
/**
|
|
138
|
+
* Check if LLM service is available (API key configured)
|
|
139
|
+
*/
|
|
140
|
+
export declare function isLLMAvailable(): boolean;
|
|
141
|
+
//# sourceMappingURL=llm-service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm-service.d.ts","sourceRoot":"","sources":["../../src/core/llm-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAG1F,gCAAgC;AAChC,MAAM,WAAW,gBAAgB;IAC/B,gEAAgE;IAChE,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,0DAA0D;IAC1D,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kCAAkC;IAClC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,qCAAqC;AACrC,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,KAAK,CAAC;QACZ,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,KAAK,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,IAAI,EAAE,MAAM,CAAC;YACb,QAAQ,EAAE,OAAO,CAAC;SACnB,CAAC,CAAC;KACJ,CAAC,CAAC;IACH,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC;IAC/B,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,WAAW,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9D;AAED,8BAA8B;AAC9B,MAAM,WAAW,aAAa;IAC5B,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE;QACV,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;KACpB,CAAC;IACF,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;CACrB;AAED,wBAAwB;AACxB,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAY;IAC1B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,SAAS,CAAS;gBAEd,MAAM,GAAE,gBAAqB;IAczC;;;;;;;;;;;;;;;;;;;OAmBG;IACG,gBAAgB,CACpB,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,aAAa,EACtB,UAAU,GAAE,MAAW,GACtB,OAAO,CAAC,YAAY,EAAE,CAAC;IAuE1B;;;;;;;;;OASG;IACG,wBAAwB,CAC5B,SAAS,EAAE;QACT,IAAI,EAAE,MAAM,CAAC;QACb,OAAO,EAAE,KAAK,CAAC;YAAE,IAAI,EAAE,MAAM,CAAC;YAAC,IAAI,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,OAAO,CAAA;SAAE,CAAC,CAAC;QAClE,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;KACxC,EACD,UAAU,GAAE,MAAW,GACtB,OAAO,CAAC,IAAI,CAAC,gBAAgB,EAAE,MAAM,OAAO,uBAAuB,EAAE,aAAa,GAAG,MAAM,CAAC,CAAC;IA4ChG;;;;;;;;;OASG;IACG,wBAAwB,CAC5B,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,YAAY,EAAE,GACpB,OAAO,CAAC;QACT,aAAa,EAAE,MAAM,CAAC;QACtB,SAAS,EAAE,MAAM,EAAE,CAAC;QACpB,mBAAmB,EAAE,MAAM,EAAE,CAAC;KAC/B,CAAC;IAgDF;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAoBzB;;OAEG;IACH,OAAO,CAAC,mBAAmB;CAU5B;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,GAAE,gBAAqB,GAAG,UAAU,CAE1E;AAED;;GAEG;AACH,wBAAgB,cAAc,IAAI,OAAO,CAExC"}
|
|
@@ -0,0 +1,284 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* LLM Service Module
|
|
4
|
+
*
|
|
5
|
+
* Provides AI-powered features using Claude API.
|
|
6
|
+
* Used for auto-generating glossary terms, descriptions, and query suggestions.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```typescript
|
|
10
|
+
* const llm = createLLMService();
|
|
11
|
+
*
|
|
12
|
+
* // Generate glossary from user's raw terms
|
|
13
|
+
* const terms = await llm.generateGlossary(
|
|
14
|
+
* "활성 사용자, 최근 주문, VIP 고객",
|
|
15
|
+
* schemaContext
|
|
16
|
+
* );
|
|
17
|
+
*
|
|
18
|
+
* // Generate table descriptions
|
|
19
|
+
* const descriptions = await llm.generateTableDescriptions(tableInfo);
|
|
20
|
+
* ```
|
|
21
|
+
*/
|
|
22
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
23
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
24
|
+
};
|
|
25
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
26
|
+
exports.LLMService = void 0;
|
|
27
|
+
exports.createLLMService = createLLMService;
|
|
28
|
+
exports.isLLMAvailable = isLLMAvailable;
|
|
29
|
+
const sdk_1 = __importDefault(require("@anthropic-ai/sdk"));
|
|
30
|
+
const types_js_1 = require("../knowledge/types.js");
|
|
31
|
+
/** LLM Service class */
|
|
32
|
+
class LLMService {
|
|
33
|
+
client;
|
|
34
|
+
model;
|
|
35
|
+
maxTokens;
|
|
36
|
+
constructor(config = {}) {
|
|
37
|
+
const apiKey = config.apiKey || process.env.ANTHROPIC_API_KEY;
|
|
38
|
+
if (!apiKey) {
|
|
39
|
+
throw new Error('Anthropic API key not found. Set ANTHROPIC_API_KEY environment variable or pass apiKey in config.');
|
|
40
|
+
}
|
|
41
|
+
this.client = new sdk_1.default({ apiKey });
|
|
42
|
+
this.model = config.model || process.env.ANTHROPIC_MODEL || 'claude-sonnet-4-20250514';
|
|
43
|
+
this.maxTokens = config.maxTokens || 4096;
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Generate glossary terms from user's raw input
|
|
47
|
+
*
|
|
48
|
+
* Takes natural language terms and generates structured BusinessTerm entries
|
|
49
|
+
* with SQL expressions and proper categorization.
|
|
50
|
+
*
|
|
51
|
+
* @param rawTerms - User's raw term input (comma-separated, YAML, or natural language)
|
|
52
|
+
* @param context - Database schema context
|
|
53
|
+
* @param schemaHash - Current schema hash for metadata
|
|
54
|
+
* @returns Array of generated BusinessTerm entries
|
|
55
|
+
*
|
|
56
|
+
* @example
|
|
57
|
+
* ```typescript
|
|
58
|
+
* const terms = await llm.generateGlossary(
|
|
59
|
+
* "활성 사용자 = status가 1인 사용자\n최근 주문 = 30일 이내 주문",
|
|
60
|
+
* { tables: [{ name: 'users', columns: [...] }] },
|
|
61
|
+
* "abc123"
|
|
62
|
+
* );
|
|
63
|
+
* ```
|
|
64
|
+
*/
|
|
65
|
+
async generateGlossary(rawTerms, context, schemaHash = '') {
|
|
66
|
+
const systemPrompt = `You are a database context expert. Your job is to analyze user-provided business terms and generate structured glossary entries that can be used to translate natural language queries into accurate SQL.
|
|
67
|
+
|
|
68
|
+
IMPORTANT RULES:
|
|
69
|
+
1. Generate SQL expressions that are syntactically correct for the given schema
|
|
70
|
+
2. Match terms to actual table/column names in the schema
|
|
71
|
+
3. Be precise with data types (e.g., integer status codes, date intervals)
|
|
72
|
+
4. Include synonyms in multiple languages if the term suggests it
|
|
73
|
+
5. Categorize terms appropriately: status, time, money, entity, metric, filter, custom
|
|
74
|
+
|
|
75
|
+
OUTPUT FORMAT: Return a JSON array of term objects. Each object must have:
|
|
76
|
+
- term: The primary term name
|
|
77
|
+
- synonyms: Array of alternative names (include English, Korean if applicable)
|
|
78
|
+
- definition: Clear explanation of what this term means
|
|
79
|
+
- sqlExpression: SQL condition or expression (if applicable)
|
|
80
|
+
- appliesTo: { tables?: string[], columns?: string[] }
|
|
81
|
+
- category: One of: status, time, money, entity, metric, filter, custom
|
|
82
|
+
- examples: Array of example usage in natural language queries
|
|
83
|
+
|
|
84
|
+
Return ONLY the JSON array, no other text.`;
|
|
85
|
+
const schemaInfo = this.formatSchemaContext(context);
|
|
86
|
+
const userPrompt = `DATABASE SCHEMA:
|
|
87
|
+
${schemaInfo}
|
|
88
|
+
|
|
89
|
+
${context.existingTerms?.length ? `EXISTING TERMS (avoid duplicates):
|
|
90
|
+
${context.existingTerms.map(t => `- ${t.term}: ${t.definition}`).join('\n')}
|
|
91
|
+
` : ''}
|
|
92
|
+
|
|
93
|
+
USER'S RAW TERMS TO PROCESS:
|
|
94
|
+
${rawTerms}
|
|
95
|
+
|
|
96
|
+
Generate structured glossary entries for these terms. Match them to the actual schema above.`;
|
|
97
|
+
try {
|
|
98
|
+
const response = await this.client.messages.create({
|
|
99
|
+
model: this.model,
|
|
100
|
+
max_tokens: this.maxTokens,
|
|
101
|
+
messages: [
|
|
102
|
+
{ role: 'user', content: userPrompt }
|
|
103
|
+
],
|
|
104
|
+
system: systemPrompt,
|
|
105
|
+
});
|
|
106
|
+
const content = response.content[0];
|
|
107
|
+
if (content.type !== 'text') {
|
|
108
|
+
throw new Error('Unexpected response type from Claude');
|
|
109
|
+
}
|
|
110
|
+
// Parse JSON response
|
|
111
|
+
const generated = this.parseJsonResponse(content.text);
|
|
112
|
+
// Convert to BusinessTerm with metadata
|
|
113
|
+
return generated.map(term => ({
|
|
114
|
+
...(0, types_js_1.createKnowledgeMeta)('auto', schemaHash),
|
|
115
|
+
type: 'business_term',
|
|
116
|
+
term: term.term,
|
|
117
|
+
synonyms: term.synonyms || [],
|
|
118
|
+
definition: term.definition,
|
|
119
|
+
sqlExpression: term.sqlExpression,
|
|
120
|
+
appliesTo: term.appliesTo,
|
|
121
|
+
category: term.category,
|
|
122
|
+
examples: term.examples,
|
|
123
|
+
isActive: true,
|
|
124
|
+
}));
|
|
125
|
+
}
|
|
126
|
+
catch (error) {
|
|
127
|
+
throw new Error(`Failed to generate glossary: ${error instanceof Error ? error.message : String(error)}`);
|
|
128
|
+
}
|
|
129
|
+
}
|
|
130
|
+
/**
|
|
131
|
+
* Generate table/column descriptions from schema
|
|
132
|
+
*
|
|
133
|
+
* Analyzes table and column names to generate meaningful descriptions.
|
|
134
|
+
* Useful for cold-start when no documentation exists.
|
|
135
|
+
*
|
|
136
|
+
* @param tableInfo - Table schema information
|
|
137
|
+
* @param schemaHash - Current schema hash
|
|
138
|
+
* @returns Generated TableDescription
|
|
139
|
+
*/
|
|
140
|
+
async generateTableDescription(tableInfo, schemaHash = '') {
|
|
141
|
+
const systemPrompt = `You are a database documentation expert. Analyze the table structure and generate clear, useful descriptions.
|
|
142
|
+
|
|
143
|
+
OUTPUT FORMAT: Return a JSON object with:
|
|
144
|
+
- description: One sentence describing the table's purpose
|
|
145
|
+
- purpose: Detailed explanation of the table's role
|
|
146
|
+
- columns: Array of { name: string, description: string, valueMappings?: Record<string, string> }
|
|
147
|
+
- tags: Array of relevant tags
|
|
148
|
+
|
|
149
|
+
Return ONLY the JSON object, no other text.`;
|
|
150
|
+
const sampleDataStr = tableInfo.sampleData
|
|
151
|
+
? `\n\nSAMPLE DATA:\n${JSON.stringify(tableInfo.sampleData.slice(0, 3), null, 2)}`
|
|
152
|
+
: '';
|
|
153
|
+
const userPrompt = `TABLE: ${tableInfo.name}
|
|
154
|
+
|
|
155
|
+
COLUMNS:
|
|
156
|
+
${tableInfo.columns.map(c => `- ${c.name} (${c.type}${c.nullable ? ', nullable' : ''})`).join('\n')}
|
|
157
|
+
${sampleDataStr}
|
|
158
|
+
|
|
159
|
+
Generate descriptions for this table and its columns.`;
|
|
160
|
+
try {
|
|
161
|
+
const response = await this.client.messages.create({
|
|
162
|
+
model: this.model,
|
|
163
|
+
max_tokens: this.maxTokens,
|
|
164
|
+
messages: [
|
|
165
|
+
{ role: 'user', content: userPrompt }
|
|
166
|
+
],
|
|
167
|
+
system: systemPrompt,
|
|
168
|
+
});
|
|
169
|
+
const content = response.content[0];
|
|
170
|
+
if (content.type !== 'text') {
|
|
171
|
+
throw new Error('Unexpected response type from Claude');
|
|
172
|
+
}
|
|
173
|
+
return this.parseJsonResponse(content.text);
|
|
174
|
+
}
|
|
175
|
+
catch (error) {
|
|
176
|
+
throw new Error(`Failed to generate table description: ${error instanceof Error ? error.message : String(error)}`);
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
/**
|
|
180
|
+
* Enhance a user query with glossary context
|
|
181
|
+
*
|
|
182
|
+
* Takes a natural language query and returns an enhanced version
|
|
183
|
+
* with term definitions resolved.
|
|
184
|
+
*
|
|
185
|
+
* @param query - User's natural language query
|
|
186
|
+
* @param terms - Available business terms
|
|
187
|
+
* @returns Enhanced query with context
|
|
188
|
+
*/
|
|
189
|
+
async enhanceQueryWithGlossary(query, terms) {
|
|
190
|
+
if (terms.length === 0) {
|
|
191
|
+
return { enhancedQuery: query, usedTerms: [], suggestedConditions: [] };
|
|
192
|
+
}
|
|
193
|
+
const systemPrompt = `You are a query enhancement assistant. Your job is to identify business terms in user queries and suggest SQL conditions based on the glossary.
|
|
194
|
+
|
|
195
|
+
OUTPUT FORMAT: Return a JSON object with:
|
|
196
|
+
- enhancedQuery: The query with term definitions inline
|
|
197
|
+
- usedTerms: Array of term names that were found in the query
|
|
198
|
+
- suggestedConditions: Array of SQL conditions to apply
|
|
199
|
+
|
|
200
|
+
Return ONLY the JSON object, no other text.`;
|
|
201
|
+
const glossaryStr = terms
|
|
202
|
+
.filter(t => t.isActive)
|
|
203
|
+
.map(t => `- "${t.term}" (${t.synonyms.join(', ')}): ${t.definition}${t.sqlExpression ? ` → SQL: ${t.sqlExpression}` : ''}`)
|
|
204
|
+
.join('\n');
|
|
205
|
+
const userPrompt = `GLOSSARY:
|
|
206
|
+
${glossaryStr}
|
|
207
|
+
|
|
208
|
+
USER QUERY:
|
|
209
|
+
${query}
|
|
210
|
+
|
|
211
|
+
Identify any terms from the glossary used in this query and suggest SQL conditions.`;
|
|
212
|
+
try {
|
|
213
|
+
const response = await this.client.messages.create({
|
|
214
|
+
model: this.model,
|
|
215
|
+
max_tokens: 1024,
|
|
216
|
+
messages: [
|
|
217
|
+
{ role: 'user', content: userPrompt }
|
|
218
|
+
],
|
|
219
|
+
system: systemPrompt,
|
|
220
|
+
});
|
|
221
|
+
const content = response.content[0];
|
|
222
|
+
if (content.type !== 'text') {
|
|
223
|
+
return { enhancedQuery: query, usedTerms: [], suggestedConditions: [] };
|
|
224
|
+
}
|
|
225
|
+
return this.parseJsonResponse(content.text);
|
|
226
|
+
}
|
|
227
|
+
catch {
|
|
228
|
+
return { enhancedQuery: query, usedTerms: [], suggestedConditions: [] };
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* Parse JSON response from Claude, handling markdown code blocks
|
|
233
|
+
*/
|
|
234
|
+
parseJsonResponse(text) {
|
|
235
|
+
// Remove markdown code blocks if present
|
|
236
|
+
let cleaned = text.trim();
|
|
237
|
+
if (cleaned.startsWith('```json')) {
|
|
238
|
+
cleaned = cleaned.slice(7);
|
|
239
|
+
}
|
|
240
|
+
else if (cleaned.startsWith('```')) {
|
|
241
|
+
cleaned = cleaned.slice(3);
|
|
242
|
+
}
|
|
243
|
+
if (cleaned.endsWith('```')) {
|
|
244
|
+
cleaned = cleaned.slice(0, -3);
|
|
245
|
+
}
|
|
246
|
+
cleaned = cleaned.trim();
|
|
247
|
+
try {
|
|
248
|
+
return JSON.parse(cleaned);
|
|
249
|
+
}
|
|
250
|
+
catch {
|
|
251
|
+
throw new Error(`Failed to parse JSON response: ${text.slice(0, 200)}...`);
|
|
252
|
+
}
|
|
253
|
+
}
|
|
254
|
+
/**
|
|
255
|
+
* Format schema context for prompts
|
|
256
|
+
*/
|
|
257
|
+
formatSchemaContext(context) {
|
|
258
|
+
return context.tables
|
|
259
|
+
.map(table => {
|
|
260
|
+
const cols = table.columns
|
|
261
|
+
.map(c => ` - ${c.name} (${c.type}${c.nullable ? ', nullable' : ''})`)
|
|
262
|
+
.join('\n');
|
|
263
|
+
return `Table: ${table.name}\n${cols}`;
|
|
264
|
+
})
|
|
265
|
+
.join('\n\n');
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
exports.LLMService = LLMService;
|
|
269
|
+
/**
|
|
270
|
+
* Create an LLM service instance
|
|
271
|
+
*
|
|
272
|
+
* @param config - Service configuration
|
|
273
|
+
* @returns LLMService instance
|
|
274
|
+
*/
|
|
275
|
+
function createLLMService(config = {}) {
|
|
276
|
+
return new LLMService(config);
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Check if LLM service is available (API key configured)
|
|
280
|
+
*/
|
|
281
|
+
function isLLMAvailable() {
|
|
282
|
+
return !!process.env.ANTHROPIC_API_KEY;
|
|
283
|
+
}
|
|
284
|
+
//# sourceMappingURL=llm-service.js.map
|