@ixo/common 1.1.2 → 1.1.31
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/.turbo/turbo-build.log +1 -1
- package/dist/ai/nodes/index.d.ts +0 -1
- package/dist/ai/nodes/index.d.ts.map +1 -1
- package/dist/ai/nodes/index.js +0 -1
- package/dist/ai/nodes/index.js.map +1 -1
- package/dist/ai/tools/index.d.ts +0 -1
- package/dist/ai/tools/index.d.ts.map +1 -1
- package/dist/ai/tools/index.js +0 -1
- package/dist/ai/tools/index.js.map +1 -1
- package/dist/ai/utils/load-file.d.ts +1 -0
- package/dist/ai/utils/load-file.d.ts.map +1 -1
- package/dist/ai/utils/load-file.js +8 -0
- package/dist/ai/utils/load-file.js.map +1 -1
- package/dist/ai/utils/verify-matrix-openId-token.js +2 -2
- package/dist/ai/utils/verify-matrix-openId-token.js.map +1 -1
- package/dist/services/memory-engine/memory-engine.service.d.ts +10 -6
- package/dist/services/memory-engine/memory-engine.service.d.ts.map +1 -1
- package/dist/services/memory-engine/memory-engine.service.js +44 -46
- package/dist/services/memory-engine/memory-engine.service.js.map +1 -1
- package/dist/services/session-manager/dto.d.ts +4 -0
- package/dist/services/session-manager/dto.d.ts.map +1 -1
- package/dist/services/session-manager/dto.js +24 -0
- package/dist/services/session-manager/dto.js.map +1 -1
- package/dist/services/session-manager/session-manager.service.d.ts.map +1 -1
- package/dist/services/session-manager/session-manager.service.js +7 -2
- package/dist/services/session-manager/session-manager.service.js.map +1 -1
- package/dist/utils/get-user-subscription.js +2 -2
- package/dist/utils/get-user-subscription.js.map +1 -1
- package/package.json +4 -5
- package/src/ai/nodes/index.ts +0 -1
- package/src/ai/tools/index.ts +0 -1
- package/src/ai/utils/load-file.ts +17 -0
- package/src/ai/utils/verify-matrix-openId-token.ts +2 -2
- package/src/services/memory-engine/memory-engine.service.ts +70 -56
- package/src/services/session-manager/dto.ts +16 -0
- package/src/services/session-manager/session-manager.service.ts +9 -2
- package/src/utils/get-user-subscription.ts +2 -2
- package/tsconfig.tsbuildinfo +1 -1
- package/dist/ai/nodes/find-docs/find-docs.prompt.d.ts +0 -3
- package/dist/ai/nodes/find-docs/find-docs.prompt.d.ts.map +0 -1
- package/dist/ai/nodes/find-docs/find-docs.prompt.js +0 -61
- package/dist/ai/nodes/find-docs/find-docs.prompt.js.map +0 -1
- package/dist/ai/nodes/find-docs/index.d.ts +0 -3
- package/dist/ai/nodes/find-docs/index.d.ts.map +0 -1
- package/dist/ai/nodes/find-docs/index.js +0 -3
- package/dist/ai/nodes/find-docs/index.js.map +0 -1
- package/dist/ai/nodes/find-docs/node.d.ts +0 -17
- package/dist/ai/nodes/find-docs/node.d.ts.map +0 -1
- package/dist/ai/nodes/find-docs/node.js +0 -46
- package/dist/ai/nodes/find-docs/node.js.map +0 -1
- package/dist/ai/tools/retriever-tool/index.d.ts +0 -2
- package/dist/ai/tools/retriever-tool/index.d.ts.map +0 -1
- package/dist/ai/tools/retriever-tool/index.js +0 -2
- package/dist/ai/tools/retriever-tool/index.js.map +0 -1
- package/dist/ai/tools/retriever-tool/retriever-tool.d.ts +0 -18
- package/dist/ai/tools/retriever-tool/retriever-tool.d.ts.map +0 -1
- package/dist/ai/tools/retriever-tool/retriever-tool.js +0 -62
- package/dist/ai/tools/retriever-tool/retriever-tool.js.map +0 -1
- package/src/ai/nodes/find-docs/find-docs.prompt.ts +0 -61
- package/src/ai/nodes/find-docs/index.ts +0 -2
- package/src/ai/nodes/find-docs/node.ts +0 -83
- package/src/ai/tools/retriever-tool/index.ts +0 -1
- package/src/ai/tools/retriever-tool/retriever-tool.test.ts +0 -163
- package/src/ai/tools/retriever-tool/retriever-tool.ts +0 -107
|
@@ -1,107 +0,0 @@
|
|
|
1
|
-
import { type VectorDBDataStore } from '@ixo/data-store';
|
|
2
|
-
import { Logger } from '@ixo/logger';
|
|
3
|
-
import { Document } from '@langchain/core/documents';
|
|
4
|
-
import { type BaseChatModel } from '@langchain/core/language_models/chat_models';
|
|
5
|
-
import { tool, type DynamicStructuredTool } from '@langchain/core/tools';
|
|
6
|
-
import z from 'zod';
|
|
7
|
-
import { getChatOpenAiModel } from '../../models/openai.js';
|
|
8
|
-
import checkDocRelevance from '../../utils/doc-relevance-checker.js';
|
|
9
|
-
|
|
10
|
-
type RetrieverToolFactoryArgs<
|
|
11
|
-
Filters extends Record<string, unknown> = Record<string, unknown>,
|
|
12
|
-
MapType extends Map<string, unknown> = Map<string, unknown>,
|
|
13
|
-
> = {
|
|
14
|
-
model?: BaseChatModel;
|
|
15
|
-
filters?: Filters;
|
|
16
|
-
similarThreshold?: number;
|
|
17
|
-
store: VectorDBDataStore;
|
|
18
|
-
map?: MapType;
|
|
19
|
-
requestId?: string;
|
|
20
|
-
};
|
|
21
|
-
|
|
22
|
-
const schema = z.object({
|
|
23
|
-
query: z.string(),
|
|
24
|
-
});
|
|
25
|
-
|
|
26
|
-
export const retrieverToolFactory = ({
|
|
27
|
-
model = getChatOpenAiModel(),
|
|
28
|
-
filters,
|
|
29
|
-
similarThreshold = 0.3,
|
|
30
|
-
map,
|
|
31
|
-
requestId,
|
|
32
|
-
store,
|
|
33
|
-
}: RetrieverToolFactoryArgs): DynamicStructuredTool<typeof schema> =>
|
|
34
|
-
tool(
|
|
35
|
-
async ({ query }) => {
|
|
36
|
-
const docs = await store.queryWithSimilarity(query, {
|
|
37
|
-
similarityThreshold: similarThreshold,
|
|
38
|
-
filters,
|
|
39
|
-
});
|
|
40
|
-
|
|
41
|
-
// save the results to the map if the parent class wan to access the docs used by the Agent
|
|
42
|
-
if (map) {
|
|
43
|
-
map.set(
|
|
44
|
-
requestId ?? query,
|
|
45
|
-
docs.map((doc) => doc.metadata),
|
|
46
|
-
);
|
|
47
|
-
}
|
|
48
|
-
|
|
49
|
-
if (docs.length === 0) {
|
|
50
|
-
return undefined;
|
|
51
|
-
}
|
|
52
|
-
|
|
53
|
-
if (similarThreshold >= 0.3) {
|
|
54
|
-
// Filter the docs based on relevance using the AI
|
|
55
|
-
const relevantDocs = await Promise.all(
|
|
56
|
-
docs.map(async (doc) => {
|
|
57
|
-
try {
|
|
58
|
-
return (
|
|
59
|
-
await checkDocRelevance({
|
|
60
|
-
doc: new Document({
|
|
61
|
-
pageContent: doc.content,
|
|
62
|
-
id: doc.id,
|
|
63
|
-
metadata: doc.metadata,
|
|
64
|
-
}),
|
|
65
|
-
query,
|
|
66
|
-
model,
|
|
67
|
-
})
|
|
68
|
-
).valueOf()
|
|
69
|
-
? doc
|
|
70
|
-
: null;
|
|
71
|
-
} catch (error) {
|
|
72
|
-
Logger.error(`Error checking relevance of document:`, error);
|
|
73
|
-
return null;
|
|
74
|
-
}
|
|
75
|
-
}),
|
|
76
|
-
);
|
|
77
|
-
|
|
78
|
-
return relevantDocs.reduce<Document[]>((acc, doc) => {
|
|
79
|
-
if (doc) {
|
|
80
|
-
acc.push(
|
|
81
|
-
new Document({
|
|
82
|
-
pageContent: doc.content,
|
|
83
|
-
id: doc.id,
|
|
84
|
-
metadata: doc.metadata,
|
|
85
|
-
}),
|
|
86
|
-
);
|
|
87
|
-
}
|
|
88
|
-
return acc;
|
|
89
|
-
}, []);
|
|
90
|
-
}
|
|
91
|
-
|
|
92
|
-
return docs.map(
|
|
93
|
-
(doc) =>
|
|
94
|
-
new Document({
|
|
95
|
-
pageContent: doc.content,
|
|
96
|
-
id: doc.id,
|
|
97
|
-
metadata: doc.metadata,
|
|
98
|
-
}),
|
|
99
|
-
);
|
|
100
|
-
},
|
|
101
|
-
{
|
|
102
|
-
name: 'retrieverTool',
|
|
103
|
-
description:
|
|
104
|
-
'Retrieves documents from the knowledge base based on the query',
|
|
105
|
-
schema,
|
|
106
|
-
},
|
|
107
|
-
);
|