@ixo/common 1.1.2 → 1.1.3

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.
Files changed (59) hide show
  1. package/.turbo/turbo-build.log +1 -1
  2. package/dist/ai/nodes/index.d.ts +0 -1
  3. package/dist/ai/nodes/index.d.ts.map +1 -1
  4. package/dist/ai/nodes/index.js +0 -1
  5. package/dist/ai/nodes/index.js.map +1 -1
  6. package/dist/ai/tools/index.d.ts +0 -1
  7. package/dist/ai/tools/index.d.ts.map +1 -1
  8. package/dist/ai/tools/index.js +0 -1
  9. package/dist/ai/tools/index.js.map +1 -1
  10. package/dist/ai/utils/verify-matrix-openId-token.js +2 -2
  11. package/dist/ai/utils/verify-matrix-openId-token.js.map +1 -1
  12. package/dist/services/memory-engine/memory-engine.service.d.ts +10 -6
  13. package/dist/services/memory-engine/memory-engine.service.d.ts.map +1 -1
  14. package/dist/services/memory-engine/memory-engine.service.js +44 -46
  15. package/dist/services/memory-engine/memory-engine.service.js.map +1 -1
  16. package/dist/services/session-manager/dto.d.ts +4 -0
  17. package/dist/services/session-manager/dto.d.ts.map +1 -1
  18. package/dist/services/session-manager/dto.js +24 -0
  19. package/dist/services/session-manager/dto.js.map +1 -1
  20. package/dist/services/session-manager/session-manager.service.d.ts.map +1 -1
  21. package/dist/services/session-manager/session-manager.service.js +7 -2
  22. package/dist/services/session-manager/session-manager.service.js.map +1 -1
  23. package/dist/utils/get-user-subscription.js +2 -2
  24. package/dist/utils/get-user-subscription.js.map +1 -1
  25. package/package.json +3 -4
  26. package/src/ai/nodes/index.ts +0 -1
  27. package/src/ai/tools/index.ts +0 -1
  28. package/src/ai/utils/verify-matrix-openId-token.ts +2 -2
  29. package/src/services/memory-engine/memory-engine.service.ts +70 -56
  30. package/src/services/session-manager/dto.ts +16 -0
  31. package/src/services/session-manager/session-manager.service.ts +9 -2
  32. package/src/utils/get-user-subscription.ts +2 -2
  33. package/tsconfig.tsbuildinfo +1 -1
  34. package/dist/ai/nodes/find-docs/find-docs.prompt.d.ts +0 -3
  35. package/dist/ai/nodes/find-docs/find-docs.prompt.d.ts.map +0 -1
  36. package/dist/ai/nodes/find-docs/find-docs.prompt.js +0 -61
  37. package/dist/ai/nodes/find-docs/find-docs.prompt.js.map +0 -1
  38. package/dist/ai/nodes/find-docs/index.d.ts +0 -3
  39. package/dist/ai/nodes/find-docs/index.d.ts.map +0 -1
  40. package/dist/ai/nodes/find-docs/index.js +0 -3
  41. package/dist/ai/nodes/find-docs/index.js.map +0 -1
  42. package/dist/ai/nodes/find-docs/node.d.ts +0 -17
  43. package/dist/ai/nodes/find-docs/node.d.ts.map +0 -1
  44. package/dist/ai/nodes/find-docs/node.js +0 -46
  45. package/dist/ai/nodes/find-docs/node.js.map +0 -1
  46. package/dist/ai/tools/retriever-tool/index.d.ts +0 -2
  47. package/dist/ai/tools/retriever-tool/index.d.ts.map +0 -1
  48. package/dist/ai/tools/retriever-tool/index.js +0 -2
  49. package/dist/ai/tools/retriever-tool/index.js.map +0 -1
  50. package/dist/ai/tools/retriever-tool/retriever-tool.d.ts +0 -18
  51. package/dist/ai/tools/retriever-tool/retriever-tool.d.ts.map +0 -1
  52. package/dist/ai/tools/retriever-tool/retriever-tool.js +0 -62
  53. package/dist/ai/tools/retriever-tool/retriever-tool.js.map +0 -1
  54. package/src/ai/nodes/find-docs/find-docs.prompt.ts +0 -61
  55. package/src/ai/nodes/find-docs/index.ts +0 -2
  56. package/src/ai/nodes/find-docs/node.ts +0 -83
  57. package/src/ai/tools/retriever-tool/index.ts +0 -1
  58. package/src/ai/tools/retriever-tool/retriever-tool.test.ts +0 -163
  59. 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
- );