From f9c2dd1b3ad096f87933bee67f464889470f3f15 Mon Sep 17 00:00:00 2001 From: Alex Yang <himself65@outlook.com> Date: Tue, 23 Jan 2024 20:03:22 -0600 Subject: [PATCH] fix: abstract some node API (#426) --- packages/core/src/GlobalsHelper.ts | 2 +- packages/core/src/Node.ts | 3 ++- packages/core/src/QueryEngine.ts | 2 +- packages/core/src/engines/chat/ContextChatEngine.ts | 2 +- .../src/engines/chat/DefaultContextGenerator.ts | 2 +- packages/core/src/env/index.edge-light.ts | 13 +++++++++++++ packages/core/src/env/index.ts | 4 +++- packages/core/src/indices/BaseIndex.ts | 2 +- packages/core/src/llm/ollama.ts | 2 +- 9 files changed, 24 insertions(+), 8 deletions(-) diff --git a/packages/core/src/GlobalsHelper.ts b/packages/core/src/GlobalsHelper.ts index d9d4495b5..a6bd82500 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 cf4f66928..a588c51a5 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 0c709504b..790930d71 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 235006597..43cdd2af2 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 ea5604f2c..b5db4d27b 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 e4a6d208b..509d269e8 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 ce1ebf034..d3759e07b 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 98e60ac5d..1f0ee6757 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 96a9aba44..f1e9b3efc 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, -- GitLab