@flutchai/flutch-sdk 0.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 +287 -0
- package/dist/api/callback-token.guard.d.ts +17 -0
- package/dist/api/callback-token.guard.js +80 -0
- package/dist/api/callback-token.guard.js.map +1 -0
- package/dist/api/callback.controller.d.ts +7 -0
- package/dist/api/callback.controller.js +44 -0
- package/dist/api/callback.controller.js.map +1 -0
- package/dist/api/graph.controller.d.ts +32 -0
- package/dist/api/graph.controller.js +187 -0
- package/dist/api/graph.controller.js.map +1 -0
- package/dist/api/ui-dispatch.controller.d.ts +34 -0
- package/dist/api/ui-dispatch.controller.js +178 -0
- package/dist/api/ui-dispatch.controller.js.map +1 -0
- package/dist/bootstrap.d.ts +4 -0
- package/dist/bootstrap.js +177 -0
- package/dist/bootstrap.js.map +1 -0
- package/dist/callbacks/callback-acl.service.d.ts +24 -0
- package/dist/callbacks/callback-acl.service.js +144 -0
- package/dist/callbacks/callback-acl.service.js.map +1 -0
- package/dist/callbacks/callback-auditor.service.d.ts +47 -0
- package/dist/callbacks/callback-auditor.service.js +286 -0
- package/dist/callbacks/callback-auditor.service.js.map +1 -0
- package/dist/callbacks/callback-metrics.service.d.ts +34 -0
- package/dist/callbacks/callback-metrics.service.js +216 -0
- package/dist/callbacks/callback-metrics.service.js.map +1 -0
- package/dist/callbacks/callback-patch.service.d.ts +13 -0
- package/dist/callbacks/callback-patch.service.js +51 -0
- package/dist/callbacks/callback-patch.service.js.map +1 -0
- package/dist/callbacks/callback-rate-limiter.d.ts +27 -0
- package/dist/callbacks/callback-rate-limiter.js +129 -0
- package/dist/callbacks/callback-rate-limiter.js.map +1 -0
- package/dist/callbacks/callback-registry.d.ts +7 -0
- package/dist/callbacks/callback-registry.js +29 -0
- package/dist/callbacks/callback-registry.js.map +1 -0
- package/dist/callbacks/callback-store.d.ts +19 -0
- package/dist/callbacks/callback-store.js +145 -0
- package/dist/callbacks/callback-store.js.map +1 -0
- package/dist/callbacks/example.callback.d.ts +2 -0
- package/dist/callbacks/example.callback.js +10 -0
- package/dist/callbacks/example.callback.js.map +1 -0
- package/dist/callbacks/idempotency-manager.d.ts +54 -0
- package/dist/callbacks/idempotency-manager.js +230 -0
- package/dist/callbacks/idempotency-manager.js.map +1 -0
- package/dist/callbacks/index.d.ts +13 -0
- package/dist/callbacks/index.js +30 -0
- package/dist/callbacks/index.js.map +1 -0
- package/dist/callbacks/smart-callback.router.d.ts +52 -0
- package/dist/callbacks/smart-callback.router.js +213 -0
- package/dist/callbacks/smart-callback.router.js.map +1 -0
- package/dist/callbacks/telegram-patch.handler.d.ts +6 -0
- package/dist/callbacks/telegram-patch.handler.js +24 -0
- package/dist/callbacks/telegram-patch.handler.js.map +1 -0
- package/dist/callbacks/universal-callback.service.d.ts +14 -0
- package/dist/callbacks/universal-callback.service.js +20 -0
- package/dist/callbacks/universal-callback.service.js.map +1 -0
- package/dist/callbacks/web-patch.handler.d.ts +6 -0
- package/dist/callbacks/web-patch.handler.js +24 -0
- package/dist/callbacks/web-patch.handler.js.map +1 -0
- package/dist/core/abstract-graph.builder.d.ts +128 -0
- package/dist/core/abstract-graph.builder.js +488 -0
- package/dist/core/abstract-graph.builder.js.map +1 -0
- package/dist/core/builder-registry.service.d.ts +6 -0
- package/dist/core/builder-registry.service.js +29 -0
- package/dist/core/builder-registry.service.js.map +1 -0
- package/dist/core/universal-graph.module.d.ts +10 -0
- package/dist/core/universal-graph.module.js +294 -0
- package/dist/core/universal-graph.module.js.map +1 -0
- package/dist/decorators/callback.decorators.d.ts +21 -0
- package/dist/decorators/callback.decorators.js +73 -0
- package/dist/decorators/callback.decorators.js.map +1 -0
- package/dist/endpoint-registry/endpoint.decorators.d.ts +35 -0
- package/dist/endpoint-registry/endpoint.decorators.js +115 -0
- package/dist/endpoint-registry/endpoint.decorators.js.map +1 -0
- package/dist/endpoint-registry/endpoint.registry.d.ts +44 -0
- package/dist/endpoint-registry/endpoint.registry.js +90 -0
- package/dist/endpoint-registry/endpoint.registry.js.map +1 -0
- package/dist/endpoint-registry/index.d.ts +3 -0
- package/dist/endpoint-registry/index.js +20 -0
- package/dist/endpoint-registry/index.js.map +1 -0
- package/dist/endpoint-registry/ui-endpoints.discovery.d.ts +11 -0
- package/dist/endpoint-registry/ui-endpoints.discovery.js +72 -0
- package/dist/endpoint-registry/ui-endpoints.discovery.js.map +1 -0
- package/dist/engine/api-call-tracer.utils.d.ts +8 -0
- package/dist/engine/api-call-tracer.utils.js +184 -0
- package/dist/engine/api-call-tracer.utils.js.map +1 -0
- package/dist/engine/event-processor.utils.d.ts +49 -0
- package/dist/engine/event-processor.utils.js +314 -0
- package/dist/engine/event-processor.utils.js.map +1 -0
- package/dist/engine/graph-engine.factory.d.ts +12 -0
- package/dist/engine/graph-engine.factory.js +43 -0
- package/dist/engine/graph-engine.factory.js.map +1 -0
- package/dist/engine/langgraph-engine.d.ts +14 -0
- package/dist/engine/langgraph-engine.js +261 -0
- package/dist/engine/langgraph-engine.js.map +1 -0
- package/dist/index.d.ts +27 -0
- package/dist/index.js +48 -0
- package/dist/index.js.map +1 -0
- package/dist/interfaces/callback.interface.d.ts +46 -0
- package/dist/interfaces/callback.interface.js +3 -0
- package/dist/interfaces/callback.interface.js.map +1 -0
- package/dist/interfaces/graph-registry.interface.d.ts +8 -0
- package/dist/interfaces/graph-registry.interface.js +3 -0
- package/dist/interfaces/graph-registry.interface.js.map +1 -0
- package/dist/interfaces/graph-service.interface.d.ts +43 -0
- package/dist/interfaces/graph-service.interface.js +9 -0
- package/dist/interfaces/graph-service.interface.js.map +1 -0
- package/dist/interfaces/index.d.ts +3 -0
- package/dist/interfaces/index.js +20 -0
- package/dist/interfaces/index.js.map +1 -0
- package/dist/llm/index.d.ts +6 -0
- package/dist/llm/index.js +23 -0
- package/dist/llm/index.js.map +1 -0
- package/dist/llm/llm.initializer.d.ts +14 -0
- package/dist/llm/llm.initializer.js +167 -0
- package/dist/llm/llm.initializer.js.map +1 -0
- package/dist/llm/llm.interface.d.ts +6 -0
- package/dist/llm/llm.interface.js +3 -0
- package/dist/llm/llm.interface.js.map +1 -0
- package/dist/llm/llm.types.d.ts +32 -0
- package/dist/llm/llm.types.js +3 -0
- package/dist/llm/llm.types.js.map +1 -0
- package/dist/llm/model.initializer.d.ts +45 -0
- package/dist/llm/model.initializer.js +630 -0
- package/dist/llm/model.initializer.js.map +1 -0
- package/dist/llm/model.interface.d.ts +38 -0
- package/dist/llm/model.interface.js +4 -0
- package/dist/llm/model.interface.js.map +1 -0
- package/dist/llm/rerankers/voyageai-rerank.d.ts +17 -0
- package/dist/llm/rerankers/voyageai-rerank.js +56 -0
- package/dist/llm/rerankers/voyageai-rerank.js.map +1 -0
- package/dist/retriever/database-factory.d.ts +15 -0
- package/dist/retriever/database-factory.js +83 -0
- package/dist/retriever/database-factory.js.map +1 -0
- package/dist/retriever/index.d.ts +2 -0
- package/dist/retriever/index.js +19 -0
- package/dist/retriever/index.js.map +1 -0
- package/dist/retriever/retriever.client.d.ts +28 -0
- package/dist/retriever/retriever.client.js +97 -0
- package/dist/retriever/retriever.client.js.map +1 -0
- package/dist/retriever/retriever.service.d.ts +25 -0
- package/dist/retriever/retriever.service.js +265 -0
- package/dist/retriever/retriever.service.js.map +1 -0
- package/dist/retriever/types.d.ts +22 -0
- package/dist/retriever/types.js +3 -0
- package/dist/retriever/types.js.map +1 -0
- package/dist/schemas/graph-manifest.schema.d.ts +134 -0
- package/dist/schemas/graph-manifest.schema.js +180 -0
- package/dist/schemas/graph-manifest.schema.js.map +1 -0
- package/dist/schemas/index.d.ts +1 -0
- package/dist/schemas/index.js +18 -0
- package/dist/schemas/index.js.map +1 -0
- package/dist/shared-types/index.d.ts +199 -0
- package/dist/shared-types/index.js +58 -0
- package/dist/shared-types/index.js.map +1 -0
- package/dist/tools/index.d.ts +3 -0
- package/dist/tools/index.js +20 -0
- package/dist/tools/index.js.map +1 -0
- package/dist/tools/mcp-converter.d.ts +15 -0
- package/dist/tools/mcp-converter.js +133 -0
- package/dist/tools/mcp-converter.js.map +1 -0
- package/dist/tools/mcp-tool-filter.d.ts +11 -0
- package/dist/tools/mcp-tool-filter.js +123 -0
- package/dist/tools/mcp-tool-filter.js.map +1 -0
- package/dist/tools/mcp.interfaces.d.ts +19 -0
- package/dist/tools/mcp.interfaces.js +3 -0
- package/dist/tools/mcp.interfaces.js.map +1 -0
- package/dist/types/graph-types.d.ts +82 -0
- package/dist/types/graph-types.js +6 -0
- package/dist/types/graph-types.js.map +1 -0
- package/dist/utils/error.utils.d.ts +18 -0
- package/dist/utils/error.utils.js +78 -0
- package/dist/utils/error.utils.js.map +1 -0
- package/dist/utils/graph-type.utils.d.ts +14 -0
- package/dist/utils/graph-type.utils.js +71 -0
- package/dist/utils/graph-type.utils.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.js +18 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/usage-recorder.d.ts +23 -0
- package/dist/utils/usage-recorder.js +29 -0
- package/dist/utils/usage-recorder.js.map +1 -0
- package/dist/versioning/index.d.ts +2 -0
- package/dist/versioning/index.js +19 -0
- package/dist/versioning/index.js.map +1 -0
- package/dist/versioning/versioned-graph.service.d.ts +16 -0
- package/dist/versioning/versioned-graph.service.js +132 -0
- package/dist/versioning/versioned-graph.service.js.map +1 -0
- package/dist/versioning/versioning.types.d.ts +21 -0
- package/dist/versioning/versioning.types.js +3 -0
- package/dist/versioning/versioning.types.js.map +1 -0
- package/package.json +70 -0
|
@@ -0,0 +1,167 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.LLMInitializer = void 0;
|
|
4
|
+
const openai_1 = require("@langchain/openai");
|
|
5
|
+
const anthropic_1 = require("@langchain/anthropic");
|
|
6
|
+
const cohere_1 = require("@langchain/cohere");
|
|
7
|
+
const shared_types_1 = require("../shared-types");
|
|
8
|
+
const mistralai_1 = require("@langchain/mistralai");
|
|
9
|
+
const common_1 = require("@nestjs/common");
|
|
10
|
+
class LLMInitializer {
|
|
11
|
+
constructor(configFetcher) {
|
|
12
|
+
this.configFetcher = configFetcher;
|
|
13
|
+
this.logger = new common_1.Logger(LLMInitializer.name);
|
|
14
|
+
this.modelProviders = {
|
|
15
|
+
[shared_types_1.ModelProvider.OPENAI]: ({ name, temperature, maxTokens, customApiToken, }) => {
|
|
16
|
+
const config = {
|
|
17
|
+
modelName: name,
|
|
18
|
+
temperature,
|
|
19
|
+
streaming: true,
|
|
20
|
+
openAIApiKey: customApiToken || process.env.OPENAI_API_KEY,
|
|
21
|
+
};
|
|
22
|
+
if (this.requiresMaxCompletionTokens(name)) {
|
|
23
|
+
config.maxCompletionTokens = maxTokens;
|
|
24
|
+
this.logger.log(`Using maxCompletionTokens for ${name}: ${maxTokens}`);
|
|
25
|
+
}
|
|
26
|
+
else {
|
|
27
|
+
config.maxTokens = maxTokens;
|
|
28
|
+
}
|
|
29
|
+
return new openai_1.ChatOpenAI(config);
|
|
30
|
+
},
|
|
31
|
+
[shared_types_1.ModelProvider.ANTHROPIC]: ({ name, temperature, maxTokens, customApiToken, }) => new anthropic_1.ChatAnthropic({
|
|
32
|
+
modelName: name,
|
|
33
|
+
temperature,
|
|
34
|
+
maxTokens,
|
|
35
|
+
anthropicApiKey: customApiToken || process.env.ANTHROPIC_API_KEY,
|
|
36
|
+
}),
|
|
37
|
+
[shared_types_1.ModelProvider.FLUTCH_ANTHROPIC]: ({ name, temperature, maxTokens, customApiToken, }) => new anthropic_1.ChatAnthropic({
|
|
38
|
+
modelName: name,
|
|
39
|
+
temperature,
|
|
40
|
+
maxTokens,
|
|
41
|
+
anthropicApiKey: customApiToken || process.env.ANTHROPIC_API_KEY,
|
|
42
|
+
}),
|
|
43
|
+
[shared_types_1.ModelProvider.MISTRAL]: ({ name, temperature, maxTokens, customApiToken, }) => new mistralai_1.ChatMistralAI({
|
|
44
|
+
model: name,
|
|
45
|
+
temperature,
|
|
46
|
+
maxTokens,
|
|
47
|
+
apiKey: customApiToken || process.env.MISTRAL_API_KEY,
|
|
48
|
+
}),
|
|
49
|
+
[shared_types_1.ModelProvider.FLUTCH_MISTRAL]: ({ name, temperature, maxTokens, customApiToken, }) => new mistralai_1.ChatMistralAI({
|
|
50
|
+
model: name,
|
|
51
|
+
temperature,
|
|
52
|
+
maxTokens,
|
|
53
|
+
apiKey: customApiToken || process.env.MISTRAL_API_KEY,
|
|
54
|
+
}),
|
|
55
|
+
[shared_types_1.ModelProvider.FLUTCH_OPENAI]: ({ name, temperature, maxTokens, customApiToken, }) => {
|
|
56
|
+
var _a;
|
|
57
|
+
const config = {
|
|
58
|
+
modelName: name,
|
|
59
|
+
temperature,
|
|
60
|
+
streaming: true,
|
|
61
|
+
openAIApiKey: customApiToken || process.env.OPENAI_API_KEY,
|
|
62
|
+
};
|
|
63
|
+
if (this.requiresMaxCompletionTokens(name)) {
|
|
64
|
+
config.maxCompletionTokens = maxTokens;
|
|
65
|
+
(_a = this.logger) === null || _a === void 0 ? void 0 : _a.log(`Using maxCompletionTokens for FLUTCH ${name}: ${maxTokens}`);
|
|
66
|
+
}
|
|
67
|
+
else {
|
|
68
|
+
config.maxTokens = maxTokens;
|
|
69
|
+
}
|
|
70
|
+
return new openai_1.ChatOpenAI(config);
|
|
71
|
+
},
|
|
72
|
+
[shared_types_1.ModelProvider.COHERE]: ({ name, temperature, maxTokens, customApiToken, }) => new cohere_1.ChatCohere({
|
|
73
|
+
model: name,
|
|
74
|
+
temperature,
|
|
75
|
+
apiKey: customApiToken || process.env.COHERE_API_KEY,
|
|
76
|
+
}),
|
|
77
|
+
[shared_types_1.ModelProvider.FLUTCH]: () => {
|
|
78
|
+
throw new Error("Пока не сделали");
|
|
79
|
+
},
|
|
80
|
+
[shared_types_1.ModelProvider.VOYAGEAI]: () => {
|
|
81
|
+
throw new Error("VoyageAI используется только для reranking, не для чат моделей");
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
}
|
|
85
|
+
requiresMaxCompletionTokens(modelName) {
|
|
86
|
+
return (modelName.includes("gpt-5") ||
|
|
87
|
+
modelName.includes("gpt-o1") ||
|
|
88
|
+
modelName.includes("gpt-o2") ||
|
|
89
|
+
modelName.includes("gpt-o3") ||
|
|
90
|
+
modelName.includes("gpt-o4") ||
|
|
91
|
+
/^gpt-(5|6|7|8|9)/.test(modelName) ||
|
|
92
|
+
/^gpt-o[1-4]/.test(modelName));
|
|
93
|
+
}
|
|
94
|
+
initializeModel(config) {
|
|
95
|
+
this.logger.log(`LLMInitializer init model: ${config.modelProvider} - ${config.name}`);
|
|
96
|
+
const provider = this.modelProviders[config.modelProvider];
|
|
97
|
+
if (!provider) {
|
|
98
|
+
throw new Error(`Неподдерживаемый провайдер ${config.modelProvider}`);
|
|
99
|
+
}
|
|
100
|
+
return provider(config);
|
|
101
|
+
}
|
|
102
|
+
async initializeModelById(config) {
|
|
103
|
+
var _a, _b;
|
|
104
|
+
this.logger.log(`Initializing model by ID: ${config.modelId}`);
|
|
105
|
+
try {
|
|
106
|
+
const modelConfig = this.configFetcher
|
|
107
|
+
? await this.configFetcher(config.modelId)
|
|
108
|
+
: await this.fetchFromApi(config.modelId);
|
|
109
|
+
this.logger.log(`Retrieved model config for ${config.modelId}`, {
|
|
110
|
+
modelName: modelConfig.modelName,
|
|
111
|
+
provider: modelConfig.provider,
|
|
112
|
+
hasApiToken: !!modelConfig.apiToken,
|
|
113
|
+
requiresApiKey: modelConfig.requiresApiKey,
|
|
114
|
+
});
|
|
115
|
+
const initConfig = {
|
|
116
|
+
name: modelConfig.modelName,
|
|
117
|
+
modelProvider: modelConfig.provider,
|
|
118
|
+
temperature: Number((_a = config.temperature) !== null && _a !== void 0 ? _a : modelConfig.defaultTemperature),
|
|
119
|
+
maxTokens: Number((_b = config.maxTokens) !== null && _b !== void 0 ? _b : modelConfig.defaultMaxTokens),
|
|
120
|
+
customApiToken: modelConfig.apiToken,
|
|
121
|
+
};
|
|
122
|
+
return this.initializeModelWithCustomToken(initConfig);
|
|
123
|
+
}
|
|
124
|
+
catch (error) {
|
|
125
|
+
this.logger.error(`Failed to initialize model ${config.modelId}: ${error instanceof Error ? error.message : String(error)}`);
|
|
126
|
+
throw error;
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
async fetchFromApi(modelId) {
|
|
130
|
+
const apiUrl = process.env.API_URL || "http://amelie-service";
|
|
131
|
+
const token = process.env.INTERNAL_API_TOKEN;
|
|
132
|
+
if (!token) {
|
|
133
|
+
throw new Error("INTERNAL_API_TOKEN required for API mode");
|
|
134
|
+
}
|
|
135
|
+
const url = `${apiUrl}/internal/model-catalog/models/${modelId}/config`;
|
|
136
|
+
const response = await fetch(url, {
|
|
137
|
+
method: "GET",
|
|
138
|
+
headers: {
|
|
139
|
+
"x-internal-token": token,
|
|
140
|
+
"Content-Type": "application/json",
|
|
141
|
+
},
|
|
142
|
+
});
|
|
143
|
+
if (!response.ok) {
|
|
144
|
+
throw new Error(`Failed to fetch model config: ${response.status} ${response.statusText}`);
|
|
145
|
+
}
|
|
146
|
+
return response.json();
|
|
147
|
+
}
|
|
148
|
+
initializeModelWithCustomToken(config) {
|
|
149
|
+
const provider = this.modelProviders[config.modelProvider];
|
|
150
|
+
if (!provider) {
|
|
151
|
+
throw new Error(`Неподдерживаемый провайдер ${config.modelProvider}`);
|
|
152
|
+
}
|
|
153
|
+
const providerConfig = {
|
|
154
|
+
name: config.name,
|
|
155
|
+
modelProvider: config.modelProvider,
|
|
156
|
+
temperature: Number(config.temperature),
|
|
157
|
+
maxTokens: Number(config.maxTokens),
|
|
158
|
+
customApiToken: config.customApiToken,
|
|
159
|
+
};
|
|
160
|
+
return provider(providerConfig);
|
|
161
|
+
}
|
|
162
|
+
check() {
|
|
163
|
+
return "LLMInitializer check";
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
exports.LLMInitializer = LLMInitializer;
|
|
167
|
+
//# sourceMappingURL=llm.initializer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm.initializer.js","sourceRoot":"","sources":["../../src/llm/llm.initializer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm.interface.js","sourceRoot":"","sources":["../../src/llm/llm.interface.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ModelProvider } from "../shared-types";
|
|
2
|
+
import { ChatAnthropic } from "@langchain/anthropic";
|
|
3
|
+
import { ChatCohere } from "@langchain/cohere";
|
|
4
|
+
import { ChatMistralAI } from "@langchain/mistralai";
|
|
5
|
+
import { ChatOpenAI } from "@langchain/openai";
|
|
6
|
+
import { BaseChatModel } from "@langchain/core/language_models/chat_models";
|
|
7
|
+
export interface ModelConfig {
|
|
8
|
+
name: string;
|
|
9
|
+
modelProvider: ModelProvider;
|
|
10
|
+
temperature?: number;
|
|
11
|
+
maxTokens?: number;
|
|
12
|
+
}
|
|
13
|
+
export interface ModelByIdConfig {
|
|
14
|
+
modelId: string;
|
|
15
|
+
temperature?: number;
|
|
16
|
+
maxTokens?: number;
|
|
17
|
+
}
|
|
18
|
+
export type ModelConfigFetcher = (modelId: string) => Promise<ModelConfigWithToken>;
|
|
19
|
+
export interface ModelConfigWithToken {
|
|
20
|
+
modelId: string;
|
|
21
|
+
modelName: string;
|
|
22
|
+
provider: ModelProvider;
|
|
23
|
+
defaultTemperature: number;
|
|
24
|
+
defaultMaxTokens: number;
|
|
25
|
+
apiToken?: string;
|
|
26
|
+
requiresApiKey: boolean;
|
|
27
|
+
}
|
|
28
|
+
export type LLModel = BaseChatModel;
|
|
29
|
+
export type ConcreteModels = ChatOpenAI | ChatAnthropic | ChatCohere | ChatMistralAI;
|
|
30
|
+
export type ModelCreator = (config: ModelConfig & {
|
|
31
|
+
customApiToken?: string;
|
|
32
|
+
}) => LLModel;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llm.types.js","sourceRoot":"","sources":["../../src/llm/llm.types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { BaseChatModel } from "@langchain/core/language_models/chat_models";
|
|
2
|
+
import { BaseDocumentCompressor } from "@langchain/core/retrievers/document_compressors";
|
|
3
|
+
import { Embeddings } from "@langchain/core/embeddings";
|
|
4
|
+
import { Logger } from "@nestjs/common";
|
|
5
|
+
import { StructuredTool } from "@langchain/core/tools";
|
|
6
|
+
import { ModelType } from "../shared-types";
|
|
7
|
+
import { IModelInitializer, Model, ModelByIdWithTypeConfig, ModelConfigWithTokenAndType } from "./model.interface";
|
|
8
|
+
import { ModelByIdConfig, ModelConfigFetcher } from "./llm.types";
|
|
9
|
+
export declare class ModelInitializer implements IModelInitializer {
|
|
10
|
+
private configFetcher?;
|
|
11
|
+
private logger;
|
|
12
|
+
private modelConfigCache;
|
|
13
|
+
private modelInstanceCache;
|
|
14
|
+
constructor(configFetcher?: ModelConfigFetcher, logger?: Logger);
|
|
15
|
+
private generateModelCacheKey;
|
|
16
|
+
private requiresMaxCompletionTokens;
|
|
17
|
+
private readonly chatModelCreators;
|
|
18
|
+
private readonly rerankModelCreators;
|
|
19
|
+
private readonly embeddingModelCreators;
|
|
20
|
+
initializeChatModel(config: ModelByIdConfig): Promise<BaseChatModel>;
|
|
21
|
+
initializeRerankModel(config: ModelByIdConfig): Promise<BaseDocumentCompressor>;
|
|
22
|
+
initializeEmbeddingModel(config: ModelByIdConfig): Promise<Embeddings>;
|
|
23
|
+
createChatModelById(modelId: string): Promise<BaseChatModel>;
|
|
24
|
+
createRerankModelById(modelId: string): Promise<BaseDocumentCompressor>;
|
|
25
|
+
createEmbeddingModelById(modelId: string): Promise<Embeddings>;
|
|
26
|
+
createModelById(modelId: string, expectedType?: ModelType): Promise<Model>;
|
|
27
|
+
initializeModelByType(config: ModelByIdWithTypeConfig): Promise<Model>;
|
|
28
|
+
getModelConfigWithType(modelId: string): Promise<ModelConfigWithTokenAndType>;
|
|
29
|
+
isModelTypeSupported(modelType: ModelType): boolean;
|
|
30
|
+
getSupportedModelTypes(): ModelType[];
|
|
31
|
+
clearCache(): void;
|
|
32
|
+
clearModelCache(modelId: string): void;
|
|
33
|
+
getCacheStats(): {
|
|
34
|
+
configCacheSize: number;
|
|
35
|
+
instanceCacheSize: number;
|
|
36
|
+
configCacheKeys: string[];
|
|
37
|
+
instanceCacheKeys: string[];
|
|
38
|
+
};
|
|
39
|
+
private fetchFromApi;
|
|
40
|
+
}
|
|
41
|
+
export declare function prepareModelWithTools(model: BaseChatModel, tools: StructuredTool[], baseConfig?: any): {
|
|
42
|
+
modelWithTools: any;
|
|
43
|
+
finalConfig: any;
|
|
44
|
+
toolsMethod: "bindTools" | "manual" | "none";
|
|
45
|
+
};
|