diff --git a/packages/core/src/GlobalsHelper.ts b/packages/core/src/GlobalsHelper.ts index d9d4495b545fc922ade2f108e75af64b2b7d0a6e..a6bd825002a9ff02994345a10ad75eec1272cdca 100644 --- a/packages/core/src/GlobalsHelper.ts +++ b/packages/core/src/GlobalsHelper.ts @@ -1,7 +1,7 @@ import { encodingForModel } from "js-tiktoken"; -import { randomUUID } from "node:crypto"; import { Event, EventTag, EventType } from "./callbacks/CallbackManager"; +import { randomUUID } from "./env"; export enum Tokenizers { CL100K_BASE = "cl100k_base", diff --git a/packages/core/src/Node.ts b/packages/core/src/Node.ts index cf4f66928aba1c2b578f7a978875d5461c620e1d..a588c51a5e58a774913fb6e07cc5d807b7768d95 100644 --- a/packages/core/src/Node.ts +++ b/packages/core/src/Node.ts @@ -1,6 +1,7 @@ import _ from "lodash"; -import { createHash, randomUUID } from "node:crypto"; +import { createHash } from "node:crypto"; import path from "node:path"; +import { randomUUID } from "./env"; export enum NodeRelationship { SOURCE = "SOURCE", diff --git a/packages/core/src/QueryEngine.ts b/packages/core/src/QueryEngine.ts index 0c709504baf1d2a6d0e43b219e9c9fde3c9cb15c..790930d712025e8d5ffda32d8b0fb99b147ad088 100644 --- a/packages/core/src/QueryEngine.ts +++ b/packages/core/src/QueryEngine.ts @@ -1,4 +1,3 @@ -import { randomUUID } from "node:crypto"; import { NodeWithScore, TextNode } from "./Node"; import { BaseQuestionGenerator, @@ -10,6 +9,7 @@ import { BaseRetriever } from "./Retriever"; import { ServiceContext, serviceContextFromDefaults } from "./ServiceContext"; import { QueryEngineTool, ToolMetadata } from "./Tool"; import { Event } from "./callbacks/CallbackManager"; +import { randomUUID } from "./env"; import { BaseNodePostprocessor } from "./postprocessors"; import { BaseSynthesizer, diff --git a/packages/core/src/engines/chat/ContextChatEngine.ts b/packages/core/src/engines/chat/ContextChatEngine.ts index 23500659715bd4572b36bda5fdc58a5b8e62703c..43cdd2af257e5e7d92fef98e3f20e86f16cc8ff1 100644 --- a/packages/core/src/engines/chat/ContextChatEngine.ts +++ b/packages/core/src/engines/chat/ContextChatEngine.ts @@ -1,9 +1,9 @@ -import { randomUUID } from "node:crypto"; import { ChatHistory, getHistory } from "../../ChatHistory"; import { ContextSystemPrompt } from "../../Prompt"; import { Response } from "../../Response"; import { BaseRetriever } from "../../Retriever"; import { Event } from "../../callbacks/CallbackManager"; +import { randomUUID } from "../../env"; import { ChatMessage, ChatResponseChunk, LLM, OpenAI } from "../../llm"; import { MessageContent } from "../../llm/types"; import { extractText, streamConverter, streamReducer } from "../../llm/utils"; diff --git a/packages/core/src/engines/chat/DefaultContextGenerator.ts b/packages/core/src/engines/chat/DefaultContextGenerator.ts index ea5604f2cf74076c349ce63ada7429d17f750d5a..b5db4d27b64696cff91faf65c79d0cba64fd468c 100644 --- a/packages/core/src/engines/chat/DefaultContextGenerator.ts +++ b/packages/core/src/engines/chat/DefaultContextGenerator.ts @@ -1,8 +1,8 @@ -import { randomUUID } from "node:crypto"; import { NodeWithScore, TextNode } from "../../Node"; import { ContextSystemPrompt, defaultContextSystemPrompt } from "../../Prompt"; import { BaseRetriever } from "../../Retriever"; import { Event } from "../../callbacks/CallbackManager"; +import { randomUUID } from "../../env"; import { BaseNodePostprocessor } from "../../postprocessors"; import { Context, ContextGenerator } from "./types"; diff --git a/packages/core/src/env/index.edge-light.ts b/packages/core/src/env/index.edge-light.ts index e4a6d208b34c01b3f3d5816fb4a9fd53dc154c4e..509d269e82886d40e2fa3ce96517a6a7458ff11a 100644 --- a/packages/core/src/env/index.edge-light.ts +++ b/packages/core/src/env/index.edge-light.ts @@ -1 +1,14 @@ export const EOL = "\n"; + +export function ok(value: unknown, message?: string): asserts value { + if (!value) { + const error = Error(message); + error.name = "AssertionError"; + error.message = message ?? "The expression evaluated to a falsy value."; + throw error; + } +} + +export function randomUUID(): string { + return crypto.randomUUID(); +} diff --git a/packages/core/src/env/index.ts b/packages/core/src/env/index.ts index ce1ebf0346b0160da0a8a3a6956322a036e0821a..d3759e07bfff0a0fae8ee565fe84b1df245bd057 100644 --- a/packages/core/src/env/index.ts +++ b/packages/core/src/env/index.ts @@ -1,3 +1,5 @@ +import { ok } from "node:assert"; +import { randomUUID } from "node:crypto"; import { EOL } from "node:os"; -export { EOL }; +export { EOL, ok, randomUUID }; diff --git a/packages/core/src/indices/BaseIndex.ts b/packages/core/src/indices/BaseIndex.ts index 98e60ac5d037a779908b4df0374cef1fedf18942..1f0ee6757dd325ac02ad35deca327e5e88f69017 100644 --- a/packages/core/src/indices/BaseIndex.ts +++ b/packages/core/src/indices/BaseIndex.ts @@ -1,8 +1,8 @@ -import { randomUUID } from "node:crypto"; import { BaseNode, Document, jsonToNode } from "../Node"; import { BaseQueryEngine } from "../QueryEngine"; import { BaseRetriever } from "../Retriever"; import { ServiceContext } from "../ServiceContext"; +import { randomUUID } from "../env"; import { StorageContext } from "../storage/StorageContext"; import { BaseDocumentStore } from "../storage/docStore/types"; import { BaseIndexStore } from "../storage/indexStore/types"; diff --git a/packages/core/src/llm/ollama.ts b/packages/core/src/llm/ollama.ts index 96a9aba4401a0cf4a7ca981925920a22b52ba328..f1e9b3efcd7894e4ea65fe77fd7d59701577fc59 100644 --- a/packages/core/src/llm/ollama.ts +++ b/packages/core/src/llm/ollama.ts @@ -1,6 +1,6 @@ -import { ok } from "node:assert"; import { CallbackManager, Event } from "../callbacks/CallbackManager"; import { BaseEmbedding } from "../embeddings"; +import { ok } from "../env"; import { ChatMessage, ChatResponse,