@getzep/zep-cloud 1.0.4 → 1.0.5
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/api/resources/document/client/Client.js +13 -13
- package/api/resources/memory/client/Client.d.ts +18 -0
- package/api/resources/memory/client/Client.js +104 -17
- package/api/resources/memory/client/requests/ExtractDataRequest.d.ts +23 -0
- package/api/resources/memory/client/requests/ExtractDataRequest.js +5 -0
- package/api/resources/memory/client/requests/index.d.ts +1 -0
- package/api/resources/user/client/Client.js +6 -6
- package/api/types/Fact.d.ts +8 -0
- package/api/types/Fact.js +5 -0
- package/api/types/SearchScope.d.ts +2 -1
- package/api/types/SearchScope.js +1 -0
- package/api/types/Session.d.ts +1 -0
- package/api/types/SessionSearchResult.d.ts +1 -0
- package/api/types/index.d.ts +1 -0
- package/api/types/index.js +1 -0
- package/dist/api/resources/document/client/Client.js +13 -13
- package/dist/api/resources/memory/client/Client.d.ts +18 -0
- package/dist/api/resources/memory/client/Client.js +104 -17
- package/dist/api/resources/memory/client/requests/ExtractDataRequest.d.ts +23 -0
- package/dist/api/resources/memory/client/requests/ExtractDataRequest.js +5 -0
- package/dist/api/resources/memory/client/requests/index.d.ts +1 -0
- package/dist/api/resources/user/client/Client.js +6 -6
- package/dist/api/types/Fact.d.ts +8 -0
- package/dist/api/types/Fact.js +5 -0
- package/dist/api/types/SearchScope.d.ts +2 -1
- package/dist/api/types/SearchScope.js +1 -0
- package/dist/api/types/Session.d.ts +1 -0
- package/dist/api/types/SessionSearchResult.d.ts +1 -0
- package/dist/api/types/index.d.ts +1 -0
- package/dist/api/types/index.js +1 -0
- package/dist/extractor/base.d.ts +22 -0
- package/dist/extractor/base.js +20 -0
- package/dist/extractor/date.d.ts +24 -0
- package/dist/extractor/date.js +29 -0
- package/dist/extractor/index.d.ts +281 -0
- package/dist/extractor/index.js +31 -0
- package/dist/extractor/number.d.ts +27 -0
- package/dist/extractor/number.js +37 -0
- package/dist/extractor/regex.d.ts +30 -0
- package/dist/extractor/regex.js +29 -0
- package/dist/extractor/text.d.ts +29 -0
- package/dist/extractor/text.js +43 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +3 -1
- package/dist/serialization/resources/memory/client/extractData.d.ts +9 -0
- package/dist/serialization/resources/memory/client/extractData.js +31 -0
- package/dist/serialization/resources/memory/client/index.d.ts +1 -0
- package/dist/serialization/resources/memory/client/index.js +2 -1
- package/dist/serialization/resources/memory/client/requests/ExtractDataRequest.d.ts +15 -0
- package/dist/serialization/resources/memory/client/requests/ExtractDataRequest.js +36 -0
- package/dist/serialization/resources/memory/client/requests/index.d.ts +1 -0
- package/dist/serialization/resources/memory/client/requests/index.js +3 -1
- package/dist/serialization/types/Fact.d.ts +14 -0
- package/dist/serialization/types/Fact.js +35 -0
- package/dist/serialization/types/SearchScope.d.ts +1 -1
- package/dist/serialization/types/SearchScope.js +1 -1
- package/dist/serialization/types/Session.d.ts +1 -0
- package/dist/serialization/types/Session.js +1 -0
- package/dist/serialization/types/SessionSearchResult.d.ts +2 -0
- package/dist/serialization/types/SessionSearchResult.js +2 -0
- package/dist/serialization/types/index.d.ts +1 -0
- package/dist/serialization/types/index.js +1 -0
- package/dist/wrapper/index.d.ts +2 -0
- package/dist/wrapper/index.js +4 -0
- package/dist/wrapper/memory.d.ts +35 -0
- package/dist/wrapper/memory.js +59 -0
- package/examples/memory/memory_example.ts +27 -8
- package/examples/memory/structured_data_extraction_example.ts +34 -0
- package/extractor/base.d.ts +22 -0
- package/extractor/base.js +20 -0
- package/extractor/date.d.ts +24 -0
- package/extractor/date.js +29 -0
- package/extractor/index.d.ts +281 -0
- package/extractor/index.js +31 -0
- package/extractor/number.d.ts +27 -0
- package/extractor/number.js +37 -0
- package/extractor/regex.d.ts +30 -0
- package/extractor/regex.js +29 -0
- package/extractor/text.d.ts +29 -0
- package/extractor/text.js +43 -0
- package/index.d.ts +1 -0
- package/index.js +3 -1
- package/package.json +11 -5
- package/serialization/resources/memory/client/extractData.d.ts +9 -0
- package/serialization/resources/memory/client/extractData.js +31 -0
- package/serialization/resources/memory/client/index.d.ts +1 -0
- package/serialization/resources/memory/client/index.js +2 -1
- package/serialization/resources/memory/client/requests/ExtractDataRequest.d.ts +15 -0
- package/serialization/resources/memory/client/requests/ExtractDataRequest.js +36 -0
- package/serialization/resources/memory/client/requests/index.d.ts +1 -0
- package/serialization/resources/memory/client/requests/index.js +3 -1
- package/serialization/types/Fact.d.ts +14 -0
- package/serialization/types/Fact.js +35 -0
- package/serialization/types/SearchScope.d.ts +1 -1
- package/serialization/types/SearchScope.js +1 -1
- package/serialization/types/Session.d.ts +1 -0
- package/serialization/types/Session.js +1 -0
- package/serialization/types/SessionSearchResult.d.ts +2 -0
- package/serialization/types/SessionSearchResult.js +2 -0
- package/serialization/types/index.d.ts +1 -0
- package/serialization/types/index.js +1 -0
- package/wrapper/index.d.ts +2 -0
- package/wrapper/index.js +4 -0
- package/wrapper/memory.d.ts +35 -0
- package/wrapper/memory.js +59 -0
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* This file was auto-generated by Fern from our API Definition.
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
|
+
if (mod && mod.__esModule) return mod;
|
|
23
|
+
var result = {};
|
|
24
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
25
|
+
__setModuleDefault(result, mod);
|
|
26
|
+
return result;
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.ExtractDataRequest = void 0;
|
|
30
|
+
const core = __importStar(require("../../../../../core"));
|
|
31
|
+
exports.ExtractDataRequest = core.serialization.object({
|
|
32
|
+
currentDateTime: core.serialization.property("current_date_time", core.serialization.string().optional()),
|
|
33
|
+
lastN: core.serialization.property("last_n", core.serialization.number()),
|
|
34
|
+
modelSchema: core.serialization.property("model_schema", core.serialization.string()),
|
|
35
|
+
validate: core.serialization.boolean().optional(),
|
|
36
|
+
});
|
|
@@ -3,6 +3,7 @@ export { EndSessionsRequest } from "./EndSessionsRequest";
|
|
|
3
3
|
export { SessionSearchQuery } from "./SessionSearchQuery";
|
|
4
4
|
export { UpdateSessionRequest } from "./UpdateSessionRequest";
|
|
5
5
|
export { EndSessionRequest } from "./EndSessionRequest";
|
|
6
|
+
export { ExtractDataRequest } from "./ExtractDataRequest";
|
|
6
7
|
export { AddMemoryRequest } from "./AddMemoryRequest";
|
|
7
8
|
export { ModelsMessageMetadataUpdate } from "./ModelsMessageMetadataUpdate";
|
|
8
9
|
export { MemorySearchPayload } from "./MemorySearchPayload";
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.MemorySearchPayload = exports.ModelsMessageMetadataUpdate = exports.AddMemoryRequest = exports.EndSessionRequest = exports.UpdateSessionRequest = exports.SessionSearchQuery = exports.EndSessionsRequest = exports.CreateSessionRequest = void 0;
|
|
3
|
+
exports.MemorySearchPayload = exports.ModelsMessageMetadataUpdate = exports.AddMemoryRequest = exports.ExtractDataRequest = exports.EndSessionRequest = exports.UpdateSessionRequest = exports.SessionSearchQuery = exports.EndSessionsRequest = exports.CreateSessionRequest = void 0;
|
|
4
4
|
var CreateSessionRequest_1 = require("./CreateSessionRequest");
|
|
5
5
|
Object.defineProperty(exports, "CreateSessionRequest", { enumerable: true, get: function () { return CreateSessionRequest_1.CreateSessionRequest; } });
|
|
6
6
|
var EndSessionsRequest_1 = require("./EndSessionsRequest");
|
|
@@ -11,6 +11,8 @@ var UpdateSessionRequest_1 = require("./UpdateSessionRequest");
|
|
|
11
11
|
Object.defineProperty(exports, "UpdateSessionRequest", { enumerable: true, get: function () { return UpdateSessionRequest_1.UpdateSessionRequest; } });
|
|
12
12
|
var EndSessionRequest_1 = require("./EndSessionRequest");
|
|
13
13
|
Object.defineProperty(exports, "EndSessionRequest", { enumerable: true, get: function () { return EndSessionRequest_1.EndSessionRequest; } });
|
|
14
|
+
var ExtractDataRequest_1 = require("./ExtractDataRequest");
|
|
15
|
+
Object.defineProperty(exports, "ExtractDataRequest", { enumerable: true, get: function () { return ExtractDataRequest_1.ExtractDataRequest; } });
|
|
14
16
|
var AddMemoryRequest_1 = require("./AddMemoryRequest");
|
|
15
17
|
Object.defineProperty(exports, "AddMemoryRequest", { enumerable: true, get: function () { return AddMemoryRequest_1.AddMemoryRequest; } });
|
|
16
18
|
var ModelsMessageMetadataUpdate_1 = require("./ModelsMessageMetadataUpdate");
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This file was auto-generated by Fern from our API Definition.
|
|
3
|
+
*/
|
|
4
|
+
import * as serializers from "../index";
|
|
5
|
+
import * as Zep from "../../api/index";
|
|
6
|
+
import * as core from "../../core";
|
|
7
|
+
export declare const Fact: core.serialization.ObjectSchema<serializers.Fact.Raw, Zep.Fact>;
|
|
8
|
+
export declare namespace Fact {
|
|
9
|
+
interface Raw {
|
|
10
|
+
created_at?: string | null;
|
|
11
|
+
fact?: string | null;
|
|
12
|
+
uuid?: string | null;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* This file was auto-generated by Fern from our API Definition.
|
|
4
|
+
*/
|
|
5
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
6
|
+
if (k2 === undefined) k2 = k;
|
|
7
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
8
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
9
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
10
|
+
}
|
|
11
|
+
Object.defineProperty(o, k2, desc);
|
|
12
|
+
}) : (function(o, m, k, k2) {
|
|
13
|
+
if (k2 === undefined) k2 = k;
|
|
14
|
+
o[k2] = m[k];
|
|
15
|
+
}));
|
|
16
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
17
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
18
|
+
}) : function(o, v) {
|
|
19
|
+
o["default"] = v;
|
|
20
|
+
});
|
|
21
|
+
var __importStar = (this && this.__importStar) || function (mod) {
|
|
22
|
+
if (mod && mod.__esModule) return mod;
|
|
23
|
+
var result = {};
|
|
24
|
+
if (mod != null) for (var k in mod) if (k !== "default" && Object.prototype.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);
|
|
25
|
+
__setModuleDefault(result, mod);
|
|
26
|
+
return result;
|
|
27
|
+
};
|
|
28
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
|
+
exports.Fact = void 0;
|
|
30
|
+
const core = __importStar(require("../../core"));
|
|
31
|
+
exports.Fact = core.serialization.object({
|
|
32
|
+
createdAt: core.serialization.property("created_at", core.serialization.string().optional()),
|
|
33
|
+
fact: core.serialization.string().optional(),
|
|
34
|
+
uuid: core.serialization.string().optional(),
|
|
35
|
+
});
|
|
@@ -6,5 +6,5 @@ import * as Zep from "../../api/index";
|
|
|
6
6
|
import * as core from "../../core";
|
|
7
7
|
export declare const SearchScope: core.serialization.Schema<serializers.SearchScope.Raw, Zep.SearchScope>;
|
|
8
8
|
export declare namespace SearchScope {
|
|
9
|
-
type Raw = "messages" | "summary";
|
|
9
|
+
type Raw = "messages" | "summary" | "facts";
|
|
10
10
|
}
|
|
@@ -28,4 +28,4 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
exports.SearchScope = void 0;
|
|
30
30
|
const core = __importStar(require("../../core"));
|
|
31
|
-
exports.SearchScope = core.serialization.enum_(["messages", "summary"]);
|
|
31
|
+
exports.SearchScope = core.serialization.enum_(["messages", "summary", "facts"]);
|
|
@@ -33,6 +33,7 @@ exports.Session = core.serialization.object({
|
|
|
33
33
|
createdAt: core.serialization.property("created_at", core.serialization.string().optional()),
|
|
34
34
|
deletedAt: core.serialization.property("deleted_at", core.serialization.string().optional()),
|
|
35
35
|
endedAt: core.serialization.property("ended_at", core.serialization.string().optional()),
|
|
36
|
+
factVersionUuid: core.serialization.property("fact_version_uuid", core.serialization.string().optional()),
|
|
36
37
|
facts: core.serialization.list(core.serialization.string()).optional(),
|
|
37
38
|
id: core.serialization.number().optional(),
|
|
38
39
|
metadata: core.serialization.record(core.serialization.string(), core.serialization.unknown()).optional(),
|
|
@@ -4,11 +4,13 @@
|
|
|
4
4
|
import * as serializers from "../index";
|
|
5
5
|
import * as Zep from "../../api/index";
|
|
6
6
|
import * as core from "../../core";
|
|
7
|
+
import { Fact } from "./Fact";
|
|
7
8
|
import { Message } from "./Message";
|
|
8
9
|
import { Summary } from "./Summary";
|
|
9
10
|
export declare const SessionSearchResult: core.serialization.ObjectSchema<serializers.SessionSearchResult.Raw, Zep.SessionSearchResult>;
|
|
10
11
|
export declare namespace SessionSearchResult {
|
|
11
12
|
interface Raw {
|
|
13
|
+
fact?: Fact.Raw | null;
|
|
12
14
|
message?: Message.Raw | null;
|
|
13
15
|
score?: number | null;
|
|
14
16
|
session_id?: string | null;
|
|
@@ -28,9 +28,11 @@ var __importStar = (this && this.__importStar) || function (mod) {
|
|
|
28
28
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
29
29
|
exports.SessionSearchResult = void 0;
|
|
30
30
|
const core = __importStar(require("../../core"));
|
|
31
|
+
const Fact_1 = require("./Fact");
|
|
31
32
|
const Message_1 = require("./Message");
|
|
32
33
|
const Summary_1 = require("./Summary");
|
|
33
34
|
exports.SessionSearchResult = core.serialization.object({
|
|
35
|
+
fact: Fact_1.Fact.optional(),
|
|
34
36
|
message: Message_1.Message.optional(),
|
|
35
37
|
score: core.serialization.number().optional(),
|
|
36
38
|
sessionId: core.serialization.property("session_id", core.serialization.string().optional()),
|
|
@@ -8,6 +8,7 @@ export * from "./DocumentSearchResult";
|
|
|
8
8
|
export * from "./DocumentSearchResultPage";
|
|
9
9
|
export * from "./EndSessionResponse";
|
|
10
10
|
export * from "./EndSessionsResponse";
|
|
11
|
+
export * from "./Fact";
|
|
11
12
|
export * from "./Memory";
|
|
12
13
|
export * from "./MemorySearchResult";
|
|
13
14
|
export * from "./Message";
|
|
@@ -24,6 +24,7 @@ __exportStar(require("./DocumentSearchResult"), exports);
|
|
|
24
24
|
__exportStar(require("./DocumentSearchResultPage"), exports);
|
|
25
25
|
__exportStar(require("./EndSessionResponse"), exports);
|
|
26
26
|
__exportStar(require("./EndSessionsResponse"), exports);
|
|
27
|
+
__exportStar(require("./Fact"), exports);
|
|
27
28
|
__exportStar(require("./Memory"), exports);
|
|
28
29
|
__exportStar(require("./MemorySearchResult"), exports);
|
|
29
30
|
__exportStar(require("./Message"), exports);
|
package/wrapper/index.d.ts
CHANGED
package/wrapper/index.js
CHANGED
|
@@ -2,6 +2,10 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.ZepClient = void 0;
|
|
4
4
|
const Client_1 = require("../Client");
|
|
5
|
+
const memory_1 = require("./memory");
|
|
5
6
|
class ZepClient extends Client_1.ZepClient {
|
|
7
|
+
get memory() {
|
|
8
|
+
return new memory_1.Memory(this._options);
|
|
9
|
+
}
|
|
6
10
|
}
|
|
7
11
|
exports.ZepClient = ZepClient;
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { Memory as BaseMemory } from "../api/resources/memory/client/Client";
|
|
2
|
+
import { ExtractDataRequest } from "../api";
|
|
3
|
+
import { schemas, SupportedZepField } from "../extractor";
|
|
4
|
+
export declare class Memory extends BaseMemory {
|
|
5
|
+
/**
|
|
6
|
+
* Extracts data based on a given schema and session details, transforms it according to the defined Zod schemas, and returns the transformed results.
|
|
7
|
+
*
|
|
8
|
+
* This method parses the provided schema against defined Zod validation rules, sends a request to extract data, and then transforms
|
|
9
|
+
* the extracted data according to the schema's specified ZepDataType.
|
|
10
|
+
*
|
|
11
|
+
* @template T - A record type where each key corresponds to a field name and its value is an object specifying `zep_type` and `description`.
|
|
12
|
+
* @param {string} sessionId - The session identifier for which data needs to be extracted.
|
|
13
|
+
* @param {T} schema - An object mapping each field to its corresponding ZepDataType and description. Each field should use one of the predefined methods from `zepFields` to ensure it conforms to the expected data type and structure.
|
|
14
|
+
* @param {Omit<ExtractDataRequest, "modelSchema">} params - Additional parameters for the extraction request excluding the model schema.
|
|
15
|
+
* @param {BaseMemory.RequestOptions} [requestOptions] - Optional additional request options.
|
|
16
|
+
* @returns {Promise<Record<string, any>>} A promise that resolves to an object where each key corresponds to the original schema's keys and their parsed values from the extraction.
|
|
17
|
+
*
|
|
18
|
+
* @example
|
|
19
|
+
* const result = await client.memory.extract(
|
|
20
|
+
* session_id,
|
|
21
|
+
* {
|
|
22
|
+
* shoeSize: zepFields.number("The Customer's shoe size"),
|
|
23
|
+
* budget: zepFields.number("The Customer's budget for shoe purchase"),
|
|
24
|
+
* favoriteBrand: zepFields.text("The Customer's favorite shoe brand. Just one brand, please!"),
|
|
25
|
+
* conversationDate: zepFields.date("The date of the conversation. Use current date if not present"),
|
|
26
|
+
* conversationDateTime: zepFields.dateTime("The date time of the conversation."),
|
|
27
|
+
* formattedPrice: zepFields.regex("The formatted price of the shoe", /\$\d+\.\d{2}/),
|
|
28
|
+
* },
|
|
29
|
+
* { lastN: 20, validate: false, currentDateTime: new Date().toISOString() }
|
|
30
|
+
* );
|
|
31
|
+
*/
|
|
32
|
+
extract<T extends Record<string, SupportedZepField>>(sessionId: string, schema: T, params: Omit<ExtractDataRequest, "modelSchema">, requestOptions?: BaseMemory.RequestOptions): Promise<{
|
|
33
|
+
[K in keyof T]: ReturnType<typeof schemas[T[K]["zep_type"]]["parse"]>["value"];
|
|
34
|
+
}>;
|
|
35
|
+
}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
+
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
+
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
+
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
+
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
+
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
+
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
+
});
|
|
10
|
+
};
|
|
11
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
+
exports.Memory = void 0;
|
|
13
|
+
const Client_1 = require("../api/resources/memory/client/Client");
|
|
14
|
+
const extractor_1 = require("../extractor");
|
|
15
|
+
class Memory extends Client_1.Memory {
|
|
16
|
+
/**
|
|
17
|
+
* Extracts data based on a given schema and session details, transforms it according to the defined Zod schemas, and returns the transformed results.
|
|
18
|
+
*
|
|
19
|
+
* This method parses the provided schema against defined Zod validation rules, sends a request to extract data, and then transforms
|
|
20
|
+
* the extracted data according to the schema's specified ZepDataType.
|
|
21
|
+
*
|
|
22
|
+
* @template T - A record type where each key corresponds to a field name and its value is an object specifying `zep_type` and `description`.
|
|
23
|
+
* @param {string} sessionId - The session identifier for which data needs to be extracted.
|
|
24
|
+
* @param {T} schema - An object mapping each field to its corresponding ZepDataType and description. Each field should use one of the predefined methods from `zepFields` to ensure it conforms to the expected data type and structure.
|
|
25
|
+
* @param {Omit<ExtractDataRequest, "modelSchema">} params - Additional parameters for the extraction request excluding the model schema.
|
|
26
|
+
* @param {BaseMemory.RequestOptions} [requestOptions] - Optional additional request options.
|
|
27
|
+
* @returns {Promise<Record<string, any>>} A promise that resolves to an object where each key corresponds to the original schema's keys and their parsed values from the extraction.
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* const result = await client.memory.extract(
|
|
31
|
+
* session_id,
|
|
32
|
+
* {
|
|
33
|
+
* shoeSize: zepFields.number("The Customer's shoe size"),
|
|
34
|
+
* budget: zepFields.number("The Customer's budget for shoe purchase"),
|
|
35
|
+
* favoriteBrand: zepFields.text("The Customer's favorite shoe brand. Just one brand, please!"),
|
|
36
|
+
* conversationDate: zepFields.date("The date of the conversation. Use current date if not present"),
|
|
37
|
+
* conversationDateTime: zepFields.dateTime("The date time of the conversation."),
|
|
38
|
+
* formattedPrice: zepFields.regex("The formatted price of the shoe", /\$\d+\.\d{2}/),
|
|
39
|
+
* },
|
|
40
|
+
* { lastN: 20, validate: false, currentDateTime: new Date().toISOString() }
|
|
41
|
+
* );
|
|
42
|
+
*/
|
|
43
|
+
extract(sessionId, schema, params, requestOptions) {
|
|
44
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
45
|
+
const validatedData = extractor_1.DataExtractorFields.parse(schema);
|
|
46
|
+
const result = yield this.extractData(sessionId, Object.assign(Object.assign({}, params), { modelSchema: JSON.stringify({ properties: validatedData }) }), requestOptions);
|
|
47
|
+
const transformedResult = {};
|
|
48
|
+
for (const key in schema) {
|
|
49
|
+
const schemaItem = extractor_1.schemas[schema[key].zep_type];
|
|
50
|
+
if (!schemaItem) {
|
|
51
|
+
throw new Error(`Unsupported zep_type: ${schema[key].zep_type}`);
|
|
52
|
+
}
|
|
53
|
+
transformedResult[key] = schemaItem.parse(Object.assign(Object.assign({}, schema[key]), { value: result[key] })).value;
|
|
54
|
+
}
|
|
55
|
+
return transformedResult;
|
|
56
|
+
});
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
exports.Memory = Memory;
|