@llamaindex/core
Version: 
LlamaIndex Core Module
278 lines (267 loc) • 9.05 kB
JavaScript
Object.defineProperty(exports, '__esModule', { value: true });
var env = require('@llamaindex/env');
var tokenizers = require('@llamaindex/env/tokenizers');
//#region llm
const DEFAULT_CONTEXT_WINDOW = 3900;
const DEFAULT_NUM_OUTPUTS = 256;
const DEFAULT_CHUNK_SIZE = 1024;
const DEFAULT_CHUNK_OVERLAP = 20;
const DEFAULT_CHUNK_OVERLAP_RATIO = 0.1;
const DEFAULT_PADDING = 5;
//#endregion
//#region storage
const DEFAULT_COLLECTION = "data";
const DEFAULT_PERSIST_DIR = env.path.join("./storage");
const DEFAULT_INDEX_STORE_PERSIST_FILENAME = "index_store.json";
const DEFAULT_DOC_STORE_PERSIST_FILENAME = "doc_store.json";
const DEFAULT_VECTOR_STORE_PERSIST_FILENAME = "vector_store.json";
const DEFAULT_GRAPH_STORE_PERSIST_FILENAME = "graph_store.json";
const DEFAULT_NAMESPACE = "docstore";
//#endregion
//#region llama cloud
const DEFAULT_PROJECT_NAME = "Default";
const DEFAULT_BASE_URL = "https://api.cloud.llamaindex.ai";
const DEFAULT_EU_BASE_URL = "https://api.cloud.eu.llamaindex.ai"; //#endregion
const eventReasonAsyncLocalStorage = new env.AsyncLocalStorage();
/**
 * EventCaller is used to track the caller of an event.
 */ class EventCaller {
    constructor(caller, parent){
        this.caller = caller;
        this.parent = parent;
        this.id = env.randomUUID();
        this.#computedCallers = null;
    }
    #computedCallers;
    get computedCallers() {
        if (this.#computedCallers != null) {
            return this.#computedCallers;
        }
        const callers = [
            this.caller
        ];
        let parent = this.parent;
        while(parent != null){
            callers.push(parent.caller);
            parent = parent.parent;
        }
        this.#computedCallers = callers;
        return callers;
    }
    static create(caller, parent) {
        return new EventCaller(caller, parent);
    }
}
function getEventCaller() {
    return eventReasonAsyncLocalStorage.getStore() ?? null;
}
/**
 * @param caller who is calling this function, pass in `this` if it's a class method
 * @param fn
 */ function withEventCaller(caller, fn) {
    // create a chain of event callers
    const parentCaller = getEventCaller();
    return eventReasonAsyncLocalStorage.run(EventCaller.create(caller, parentCaller), fn);
}
// eslint-disable-next-line @typescript-eslint/no-explicit-any
class LlamaIndexCustomEvent extends env.CustomEvent {
    constructor(event, options){
        super(event, options), this.reason = null;
        this.reason = options?.reason ?? null;
    }
    static fromEvent(type, detail) {
        return new LlamaIndexCustomEvent(type, {
            detail: detail,
            reason: getEventCaller()
        });
    }
}
class CallbackManager {
    // eslint-disable-next-line @typescript-eslint/no-explicit-any
    #handlers;
    on(event, handler) {
        if (!this.#handlers.has(event)) {
            this.#handlers.set(event, []);
        }
        this.#handlers.get(event).push(handler);
        return this;
    }
    off(event, handler) {
        if (!this.#handlers.has(event)) {
            return this;
        }
        const cbs = this.#handlers.get(event);
        const index = cbs.indexOf(handler);
        if (index > -1) {
            cbs.splice(index, 1);
        }
        return this;
    }
    dispatchEvent(event, detail, sync = false) {
        const cbs = this.#handlers.get(event);
        if (!cbs) {
            return;
        }
        if (typeof queueMicrotask === "undefined") {
            console.warn("queueMicrotask is not available, dispatching synchronously");
            sync = true;
        }
        if (sync) {
            cbs.forEach((handler)=>handler(LlamaIndexCustomEvent.fromEvent(event, {
                    ...detail
                })));
        } else {
            queueMicrotask(()=>{
                cbs.forEach((handler)=>handler(LlamaIndexCustomEvent.fromEvent(event, {
                        ...detail
                    })));
            });
        }
    }
    constructor(){
        this.#handlers = new Map();
    }
}
const globalCallbackManager = new CallbackManager();
const callbackManagerAsyncLocalStorage = new env.AsyncLocalStorage();
let currentCallbackManager = globalCallbackManager;
function getCallbackManager() {
    return callbackManagerAsyncLocalStorage.getStore() ?? currentCallbackManager;
}
function setCallbackManager(callbackManager) {
    currentCallbackManager = callbackManager;
}
function withCallbackManager(callbackManager, fn) {
    return callbackManagerAsyncLocalStorage.run(callbackManager, fn);
}
const chunkSizeAsyncLocalStorage$1 = new env.AsyncLocalStorage();
let globalChunkSize = 1024;
function getChunkSize() {
    return chunkSizeAsyncLocalStorage$1.getStore() ?? globalChunkSize;
}
function setChunkSize(chunkSize) {
    if (chunkSize !== undefined) {
        globalChunkSize = chunkSize;
    }
}
function withChunkSize(embeddedModel, fn) {
    return chunkSizeAsyncLocalStorage$1.run(embeddedModel, fn);
}
const embeddedModelAsyncLocalStorage = new env.AsyncLocalStorage();
let globalEmbeddedModel = null;
function getEmbeddedModel() {
    const currentEmbeddedModel = embeddedModelAsyncLocalStorage.getStore() ?? globalEmbeddedModel;
    if (!currentEmbeddedModel) {
        throw new Error("Cannot find Embedding, please set `Settings.embedModel = ...` on the top of your code");
    }
    return currentEmbeddedModel;
}
function setEmbeddedModel(embeddedModel) {
    globalEmbeddedModel = embeddedModel;
}
function withEmbeddedModel(embeddedModel, fn) {
    return embeddedModelAsyncLocalStorage.run(embeddedModel, fn);
}
const llmAsyncLocalStorage = new env.AsyncLocalStorage();
let globalLLM;
function getLLM() {
    const currentLLM = llmAsyncLocalStorage.getStore() ?? globalLLM;
    if (!currentLLM) {
        throw new Error("Cannot find LLM, please set `Settings.llm = ...` on the top of your code");
    }
    return currentLLM;
}
function setLLM(llm) {
    globalLLM = llm;
}
function withLLM(llm, fn) {
    return llmAsyncLocalStorage.run(llm, fn);
}
const chunkSizeAsyncLocalStorage = new env.AsyncLocalStorage();
let globalTokenizer = tokenizers.tokenizers.tokenizer();
function getTokenizer() {
    return chunkSizeAsyncLocalStorage.getStore() ?? globalTokenizer;
}
function setTokenizer(tokenizer) {
    if (tokenizer !== undefined) {
        globalTokenizer = tokenizer;
    }
}
function withTokenizer(tokenizer, fn) {
    return chunkSizeAsyncLocalStorage.run(tokenizer, fn);
}
const Settings = {
    get llm () {
        return getLLM();
    },
    set llm (llm){
        setLLM(llm);
    },
    withLLM (llm1, fn) {
        return withLLM(llm1, fn);
    },
    get embedModel () {
        return getEmbeddedModel();
    },
    set embedModel (embedModel){
        setEmbeddedModel(embedModel);
    },
    withEmbedModel (embedModel1, fn) {
        return withEmbeddedModel(embedModel1, fn);
    },
    get tokenizer () {
        return getTokenizer();
    },
    set tokenizer (tokenizer){
        setTokenizer(tokenizer);
    },
    withTokenizer (tokenizer1, fn) {
        return withTokenizer(tokenizer1, fn);
    },
    get chunkSize () {
        return getChunkSize();
    },
    set chunkSize (chunkSize){
        setChunkSize(chunkSize);
    },
    withChunkSize (chunkSize1, fn) {
        return withChunkSize(chunkSize1, fn);
    },
    get callbackManager () {
        return getCallbackManager();
    },
    set callbackManager (callbackManager){
        setCallbackManager(callbackManager);
    },
    withCallbackManager (callbackManager1, fn) {
        return withCallbackManager(callbackManager1, fn);
    },
    get debug () {
        let debug = env.getEnv("DEBUG");
        if (typeof window !== "undefined") {
            debug ||= window.localStorage.debug;
        }
        return Boolean(debug) && debug?.includes("llamaindex") || debug === "*" || debug === "true";
    }
};
exports.CallbackManager = CallbackManager;
exports.DEFAULT_BASE_URL = DEFAULT_BASE_URL;
exports.DEFAULT_CHUNK_OVERLAP = DEFAULT_CHUNK_OVERLAP;
exports.DEFAULT_CHUNK_OVERLAP_RATIO = DEFAULT_CHUNK_OVERLAP_RATIO;
exports.DEFAULT_CHUNK_SIZE = DEFAULT_CHUNK_SIZE;
exports.DEFAULT_COLLECTION = DEFAULT_COLLECTION;
exports.DEFAULT_CONTEXT_WINDOW = DEFAULT_CONTEXT_WINDOW;
exports.DEFAULT_DOC_STORE_PERSIST_FILENAME = DEFAULT_DOC_STORE_PERSIST_FILENAME;
exports.DEFAULT_EU_BASE_URL = DEFAULT_EU_BASE_URL;
exports.DEFAULT_GRAPH_STORE_PERSIST_FILENAME = DEFAULT_GRAPH_STORE_PERSIST_FILENAME;
exports.DEFAULT_INDEX_STORE_PERSIST_FILENAME = DEFAULT_INDEX_STORE_PERSIST_FILENAME;
exports.DEFAULT_NAMESPACE = DEFAULT_NAMESPACE;
exports.DEFAULT_NUM_OUTPUTS = DEFAULT_NUM_OUTPUTS;
exports.DEFAULT_PADDING = DEFAULT_PADDING;
exports.DEFAULT_PERSIST_DIR = DEFAULT_PERSIST_DIR;
exports.DEFAULT_PROJECT_NAME = DEFAULT_PROJECT_NAME;
exports.DEFAULT_VECTOR_STORE_PERSIST_FILENAME = DEFAULT_VECTOR_STORE_PERSIST_FILENAME;
exports.EventCaller = EventCaller;
exports.Settings = Settings;
exports.getEventCaller = getEventCaller;
exports.withEventCaller = withEventCaller;