From 491033d534642b7e115aba7995dcf2774edc85c5 Mon Sep 17 00:00:00 2001 From: Marcus Schiesser <mail@marcusschiesser.de> Date: Fri, 23 Feb 2024 14:55:45 +0700 Subject: [PATCH] fix: lint errors --- packages/core/src/Node.ts | 6 +-- packages/core/src/TextSplitter.ts | 20 +++++----- packages/core/src/embeddings/utils.ts | 36 +++++++++--------- .../core/src/extractors/MetadataExtractors.ts | 4 +- packages/core/src/extractors/types.ts | 6 +-- .../src/indices/keyword/KeywordTableIndex.ts | 4 +- .../keyword/KeywordTableIndexRetriever.ts | 4 +- packages/core/src/indices/keyword/utils.ts | 10 ++--- .../core/src/indices/summary/SummaryIndex.ts | 4 +- packages/core/src/indices/summary/utils.ts | 6 +-- .../vectorStore/VectorIndexRetriever.ts | 2 +- .../indices/vectorStore/VectorStoreIndex.ts | 2 +- packages/core/src/ingestion/IngestionCache.ts | 2 +- packages/core/src/llm/LLM.ts | 2 +- packages/core/src/llm/anthropic.ts | 2 +- packages/core/src/llm/open_ai.ts | 6 ++- packages/core/src/llm/portkey.ts | 2 +- .../MetadataReplacementPostProcessor.ts | 2 +- packages/core/src/prompts/Mixin.ts | 26 ++++++------- packages/core/src/readers/AssemblyAIReader.ts | 6 +-- packages/core/src/readers/LlamaParseReader.ts | 2 +- .../core/src/readers/SimpleDirectoryReader.ts | 2 +- .../src/storage/docStore/KVDocumentStore.ts | 38 ++++++++++--------- packages/core/src/storage/docStore/types.ts | 6 +-- packages/core/src/storage/docStore/utils.ts | 4 +- .../src/storage/indexStore/KVIndexStore.ts | 10 ++--- .../storage/indexStore/SimpleIndexStore.ts | 4 +- .../core/src/storage/kvStore/SimpleKVStore.ts | 8 ++-- .../storage/vectorStore/AstraDBVectorStore.ts | 2 +- .../src/storage/vectorStore/PGVectorStore.ts | 6 +-- .../vectorStore/PineconeVectorStore.ts | 2 +- .../storage/vectorStore/SimpleVectorStore.ts | 26 ++++++------- .../core/src/storage/vectorStore/utils.ts | 2 +- .../MultiModalResponseSynthesizer.ts | 2 +- packages/core/src/tests/Embedding.test.ts | 2 +- .../core/src/tests/GenericFileSystem.test.ts | 2 +- packages/core/src/tests/TextSplitter.test.ts | 12 +++--- packages/create-llama/e2e/utils.ts | 2 +- packages/create-llama/helpers/index.ts | 8 ++-- packages/create-llama/helpers/python.ts | 2 +- packages/create-llama/helpers/run-app.ts | 2 +- packages/create-llama/helpers/tools.ts | 2 +- packages/create-llama/questions.ts | 8 ++-- .../vectordbs/typescript/none/index.ts | 2 +- 44 files changed, 156 insertions(+), 152 deletions(-) diff --git a/packages/core/src/Node.ts b/packages/core/src/Node.ts index 538d4a020..99ae46af6 100644 --- a/packages/core/src/Node.ts +++ b/packages/core/src/Node.ts @@ -353,10 +353,10 @@ export function splitNodesByType(nodes: BaseNode[]): { imageNodes: ImageNode[]; textNodes: TextNode[]; } { - let imageNodes: ImageNode[] = []; - let textNodes: TextNode[] = []; + const imageNodes: ImageNode[] = []; + const textNodes: TextNode[] = []; - for (let node of nodes) { + for (const node of nodes) { if (node instanceof ImageNode) { imageNodes.push(node); } else if (node instanceof TextNode) { diff --git a/packages/core/src/TextSplitter.ts b/packages/core/src/TextSplitter.ts index 6f5ecf9e8..94c781676 100644 --- a/packages/core/src/TextSplitter.ts +++ b/packages/core/src/TextSplitter.ts @@ -130,7 +130,7 @@ export class SentenceSplitter { getParagraphSplits(text: string, effectiveChunkSize?: number): string[] { // get paragraph splits - let paragraphSplits: string[] = text.split(this.paragraphSeparator); + const paragraphSplits: string[] = text.split(this.paragraphSeparator); let idx = 0; if (effectiveChunkSize == undefined) { return paragraphSplits; @@ -155,9 +155,9 @@ export class SentenceSplitter { } getSentenceSplits(text: string, effectiveChunkSize?: number): string[] { - let paragraphSplits = this.getParagraphSplits(text, effectiveChunkSize); + const paragraphSplits = this.getParagraphSplits(text, effectiveChunkSize); // Next we split the text using the chunk tokenizer fn/ - let splits = []; + const splits = []; for (const parText of paragraphSplits) { const sentenceSplits = this.chunkingTokenizerFn(parText); @@ -194,9 +194,9 @@ export class SentenceSplitter { })); } - let newSplits: SplitRep[] = []; + const newSplits: SplitRep[] = []; for (const split of sentenceSplits) { - let splitTokens = this.tokenizer(split); + const splitTokens = this.tokenizer(split); const splitLen = splitTokens.length; if (splitLen <= effectiveChunkSize) { newSplits.push({ text: split, numTokens: splitLen }); @@ -219,7 +219,7 @@ export class SentenceSplitter { // go through sentence splits, combine to chunks that are within the chunk size // docs represents final list of text chunks - let docs: TextSplit[] = []; + const docs: TextSplit[] = []; // curChunkSentences represents the current list of sentence splits (that) // will be merged into a chunk let curChunkSentences: SplitRep[] = []; @@ -287,18 +287,18 @@ export class SentenceSplitter { return []; } - let effectiveChunkSize = this.getEffectiveChunkSize(extraInfoStr); - let sentenceSplits = this.getSentenceSplits(text, effectiveChunkSize); + const effectiveChunkSize = this.getEffectiveChunkSize(extraInfoStr); + const sentenceSplits = this.getSentenceSplits(text, effectiveChunkSize); // Check if any sentences exceed the chunk size. If they don't, // force split by tokenizer - let newSentenceSplits = this.processSentenceSplits( + const newSentenceSplits = this.processSentenceSplits( sentenceSplits, effectiveChunkSize, ); // combine sentence splits into chunks of text that can then be returned - let combinedTextSplits = this.combineTextSplits( + const combinedTextSplits = this.combineTextSplits( newSentenceSplits, effectiveChunkSize, ); diff --git a/packages/core/src/embeddings/utils.ts b/packages/core/src/embeddings/utils.ts index 803701a7b..ce1848e87 100644 --- a/packages/core/src/embeddings/utils.ts +++ b/packages/core/src/embeddings/utils.ts @@ -46,7 +46,7 @@ export function similarity( switch (mode) { case SimilarityType.EUCLIDEAN: { - let difference = embedding1.map((x, i) => x - embedding2[i]); + const difference = embedding1.map((x, i) => x - embedding2[i]); return -norm(difference); } case SimilarityType.DOT_PRODUCT: { @@ -94,7 +94,7 @@ export function getTopKEmbeddings( ); } - let similarities: { similarity: number; id: number }[] = []; + const similarities: { similarity: number; id: number }[] = []; for (let i = 0; i < embeddings.length; i++) { const sim = similarity(queryEmbedding, embeddings[i]); @@ -105,8 +105,8 @@ export function getTopKEmbeddings( similarities.sort((a, b) => b.similarity - a.similarity); // Reverse sort - let resultSimilarities: number[] = []; - let resultIds: any[] = []; + const resultSimilarities: number[] = []; + const resultIds: any[] = []; for (let i = 0; i < similarityTopK; i++) { if (i >= similarities.length) { @@ -142,21 +142,21 @@ export function getTopKMMREmbeddings( _similarityCutoff: number | null = null, mmrThreshold: number | null = null, ): [number[], any[]] { - let threshold = mmrThreshold || 0.5; + const threshold = mmrThreshold || 0.5; similarityFn = similarityFn || similarity; if (embeddingIds === null || embeddingIds.length === 0) { embeddingIds = Array.from({ length: embeddings.length }, (_, i) => i); } - let fullEmbedMap = new Map(embeddingIds.map((value, i) => [value, i])); - let embedMap = new Map(fullEmbedMap); - let embedSimilarity: Map<any, number> = new Map(); + const fullEmbedMap = new Map(embeddingIds.map((value, i) => [value, i])); + const embedMap = new Map(fullEmbedMap); + const embedSimilarity: Map<any, number> = new Map(); let score: number = Number.NEGATIVE_INFINITY; let highScoreId: any | null = null; for (let i = 0; i < embeddings.length; i++) { - let emb = embeddings[i]; - let similarity = similarityFn(queryEmbedding, emb); + const emb = embeddings[i]; + const similarity = similarityFn(queryEmbedding, emb); embedSimilarity.set(embeddingIds[i], similarity); if (similarity * threshold > score) { highScoreId = embeddingIds[i]; @@ -164,18 +164,18 @@ export function getTopKMMREmbeddings( } } - let results: [number, any][] = []; + const results: [number, any][] = []; - let embeddingLength = embeddings.length; - let similarityTopKCount = similarityTopK || embeddingLength; + const embeddingLength = embeddings.length; + const similarityTopKCount = similarityTopK || embeddingLength; while (results.length < Math.min(similarityTopKCount, embeddingLength)) { results.push([score, highScoreId]); embedMap.delete(highScoreId!); - let recentEmbeddingId = highScoreId; + const recentEmbeddingId = highScoreId; score = Number.NEGATIVE_INFINITY; - for (let embedId of Array.from(embedMap.keys())) { - let overlapWithRecent = similarityFn( + for (const embedId of Array.from(embedMap.keys())) { + const overlapWithRecent = similarityFn( embeddings[embedMap.get(embedId)!], embeddings[fullEmbedMap.get(recentEmbeddingId!)!], ); @@ -192,8 +192,8 @@ export function getTopKMMREmbeddings( } } - let resultSimilarities = results.map(([s, _]) => s); - let resultIds = results.map(([_, n]) => n); + const resultSimilarities = results.map(([s, _]) => s); + const resultIds = results.map(([_, n]) => n); return [resultSimilarities, resultIds]; } diff --git a/packages/core/src/extractors/MetadataExtractors.ts b/packages/core/src/extractors/MetadataExtractors.ts index 73173bd5e..f41e3f860 100644 --- a/packages/core/src/extractors/MetadataExtractors.ts +++ b/packages/core/src/extractors/MetadataExtractors.ts @@ -172,7 +172,7 @@ export class TitleExtractor extends BaseExtractor { if (nodesToExtractTitle.length === 0) return []; - let titlesCandidates: string[] = []; + const titlesCandidates: string[] = []; let title: string = ""; for (let i = 0; i < nodesToExtractTitle.length; i++) { @@ -411,7 +411,7 @@ export class SummaryExtractor extends BaseExtractor { nodes.map((node) => this.generateNodeSummary(node)), ); - let metadataList: any[] = nodes.map(() => ({})); + const metadataList: any[] = nodes.map(() => ({})); for (let i = 0; i < nodes.length; i++) { if (i > 0 && this._prevSummary && nodeSummaries[i - 1]) { diff --git a/packages/core/src/extractors/types.ts b/packages/core/src/extractors/types.ts index 5e31cab05..adac96be4 100644 --- a/packages/core/src/extractors/types.ts +++ b/packages/core/src/extractors/types.ts @@ -43,16 +43,16 @@ export abstract class BaseExtractor implements TransformComponent { newNodes = nodes.slice(); } - let curMetadataList = await this.extract(newNodes); + const curMetadataList = await this.extract(newNodes); - for (let idx in newNodes) { + for (const idx in newNodes) { newNodes[idx].metadata = { ...newNodes[idx].metadata, ...curMetadataList[idx], }; } - for (let idx in newNodes) { + for (const idx in newNodes) { if (excludedEmbedMetadataKeys) { newNodes[idx].excludedEmbedMetadataKeys.concat( excludedEmbedMetadataKeys, diff --git a/packages/core/src/indices/keyword/KeywordTableIndex.ts b/packages/core/src/indices/keyword/KeywordTableIndex.ts index 6964ebb2d..474805d7b 100644 --- a/packages/core/src/indices/keyword/KeywordTableIndex.ts +++ b/packages/core/src/indices/keyword/KeywordTableIndex.ts @@ -62,7 +62,7 @@ export class KeywordTableIndex extends BaseIndex<KeywordTable> { const { docStore, indexStore } = storageContext; // Setup IndexStruct from storage - let indexStructs = (await indexStore.getIndexStructs()) as KeywordTable[]; + const indexStructs = (await indexStore.getIndexStructs()) as KeywordTable[]; let indexStruct: KeywordTable | null; if (options.indexStruct && indexStructs.length > 0) { @@ -216,7 +216,7 @@ export class KeywordTableIndex extends BaseIndex<KeywordTable> { } async insertNodes(nodes: BaseNode[]) { - for (let node of nodes) { + for (const node of nodes) { const keywords = await KeywordTableIndex.extractKeywords( node.getContent(MetadataMode.LLM), this.serviceContext, diff --git a/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts b/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts index e7bf59416..b1a27f699 100644 --- a/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts +++ b/packages/core/src/indices/keyword/KeywordTableIndexRetriever.ts @@ -63,8 +63,8 @@ abstract class BaseKeywordTableRetriever implements BaseRetriever { this.indexStruct.table.has(keyword), ); - for (let keyword of filteredKeywords) { - for (let nodeId of this.indexStruct.table.get(keyword) || []) { + for (const keyword of filteredKeywords) { + for (const nodeId of this.indexStruct.table.get(keyword) || []) { chunkIndicesCount[nodeId] = (chunkIndicesCount[nodeId] ?? 0) + 1; } } diff --git a/packages/core/src/indices/keyword/utils.ts b/packages/core/src/indices/keyword/utils.ts index 6a3d1c736..b7e766f04 100644 --- a/packages/core/src/indices/keyword/utils.ts +++ b/packages/core/src/indices/keyword/utils.ts @@ -6,11 +6,11 @@ export function expandTokensWithSubtokens(tokens: Set<string>): Set<string> { const results: Set<string> = new Set(); const regex: RegExp = /\w+/g; - for (let token of tokens) { + for (const token of tokens) { results.add(token); const subTokens: RegExpMatchArray | null = token.match(regex); if (subTokens && subTokens.length > 1) { - for (let w of subTokens) { + for (const w of subTokens) { results.add(w); } } @@ -31,7 +31,7 @@ export function extractKeywordsGivenResponse( } const keywords: string[] = response.split(","); - for (let k of keywords) { + for (const k of keywords) { let rk: string = k; if (lowercase) { rk = rk.toLowerCase(); @@ -47,13 +47,13 @@ export function simpleExtractKeywords( maxKeywords?: number, ): Set<string> { const regex: RegExp = /\w+/g; - let tokens: string[] = [...textChunk.matchAll(regex)].map((token) => + const tokens: string[] = [...textChunk.matchAll(regex)].map((token) => token[0].toLowerCase().trim(), ); // Creating a frequency map const valueCounts: { [key: string]: number } = {}; - for (let token of tokens) { + for (const token of tokens) { valueCounts[token] = (valueCounts[token] || 0) + 1; } diff --git a/packages/core/src/indices/summary/SummaryIndex.ts b/packages/core/src/indices/summary/SummaryIndex.ts index adcff31de..7223f33ed 100644 --- a/packages/core/src/indices/summary/SummaryIndex.ts +++ b/packages/core/src/indices/summary/SummaryIndex.ts @@ -60,7 +60,7 @@ export class SummaryIndex extends BaseIndex<IndexList> { const { docStore, indexStore } = storageContext; // Setup IndexStruct from storage - let indexStructs = (await indexStore.getIndexStructs()) as IndexList[]; + const indexStructs = (await indexStore.getIndexStructs()) as IndexList[]; let indexStruct: IndexList | null; if (options.indexStruct && indexStructs.length > 0) { @@ -169,7 +169,7 @@ export class SummaryIndex extends BaseIndex<IndexList> { } if (!responseSynthesizer) { - let responseBuilder = new CompactAndRefine(this.serviceContext); + const responseBuilder = new CompactAndRefine(this.serviceContext); responseSynthesizer = new ResponseSynthesizer({ serviceContext: this.serviceContext, responseBuilder, diff --git a/packages/core/src/indices/summary/utils.ts b/packages/core/src/indices/summary/utils.ts index 61fa15897..af008c421 100644 --- a/packages/core/src/indices/summary/utils.ts +++ b/packages/core/src/indices/summary/utils.ts @@ -32,7 +32,7 @@ export const defaultParseChoiceSelectAnswerFn: ChoiceSelectParserFunction = ( const lineTokens: string[][] = answer .split("\n") .map((line: string) => { - let lineTokens = line.split(","); + const lineTokens = line.split(","); if (lineTokens.length !== 2) { if (raiseErr) { throw new Error( @@ -50,8 +50,8 @@ export const defaultParseChoiceSelectAnswerFn: ChoiceSelectParserFunction = ( return lineTokens.reduce( (parseResult: ChoiceSelectParseResult, lineToken: string[]) => { try { - let docNum = parseInt(lineToken[0].split(":")[1].trim()); - let answerRelevance = parseFloat(lineToken[1].split(":")[1].trim()); + const docNum = parseInt(lineToken[0].split(":")[1].trim()); + const answerRelevance = parseFloat(lineToken[1].split(":")[1].trim()); if (docNum < 1 || docNum > numChoices) { if (raiseErr) { throw new Error( diff --git a/packages/core/src/indices/vectorStore/VectorIndexRetriever.ts b/packages/core/src/indices/vectorStore/VectorIndexRetriever.ts index 04e644809..5a8e3614f 100644 --- a/packages/core/src/indices/vectorStore/VectorIndexRetriever.ts +++ b/packages/core/src/indices/vectorStore/VectorIndexRetriever.ts @@ -120,7 +120,7 @@ export class VectorIndexRetriever implements BaseRetriever { } protected buildNodeListFromQueryResult(result: VectorStoreQueryResult) { - let nodesWithScores: NodeWithScore[] = []; + const nodesWithScores: NodeWithScore[] = []; for (let i = 0; i < result.ids.length; i++) { const nodeFromResult = result.nodes?.[i]; if (!this.index.indexStruct.nodesDict[result.ids[i]] && nodeFromResult) { diff --git a/packages/core/src/indices/vectorStore/VectorStoreIndex.ts b/packages/core/src/indices/vectorStore/VectorStoreIndex.ts index 137d1073a..5b29ed6ef 100644 --- a/packages/core/src/indices/vectorStore/VectorStoreIndex.ts +++ b/packages/core/src/indices/vectorStore/VectorStoreIndex.ts @@ -130,7 +130,7 @@ export class VectorStoreIndex extends BaseIndex<IndexDict> { indexStore: BaseIndexStore, options: IndexStructOptions, ) { - let indexStructs = (await indexStore.getIndexStructs()) as IndexDict[]; + const indexStructs = (await indexStore.getIndexStructs()) as IndexDict[]; let indexStruct: IndexDict | undefined; if (options.indexStruct && indexStructs.length > 0) { diff --git a/packages/core/src/ingestion/IngestionCache.ts b/packages/core/src/ingestion/IngestionCache.ts index a98459af8..f35e3f413 100644 --- a/packages/core/src/ingestion/IngestionCache.ts +++ b/packages/core/src/ingestion/IngestionCache.ts @@ -6,7 +6,7 @@ import { BaseKVStore } from "../storage/kvStore/types"; import { TransformComponent } from "./types"; const transformToJSON = (obj: TransformComponent) => { - let seen: any[] = []; + const seen: any[] = []; const replacer = (key: string, value: any) => { if (value != null && typeof value == "object") { diff --git a/packages/core/src/llm/LLM.ts b/packages/core/src/llm/LLM.ts index 1a3a1ad41..95ddd3ee7 100644 --- a/packages/core/src/llm/LLM.ts +++ b/packages/core/src/llm/LLM.ts @@ -235,7 +235,7 @@ export class OpenAI extends BaseLLM { params: LLMChatParamsNonStreaming | LLMChatParamsStreaming, ): Promise<ChatResponse | AsyncIterable<ChatResponseChunk>> { const { messages, parentEvent, stream, tools, toolChoice } = params; - let baseRequestParams: OpenAILLM.Chat.ChatCompletionCreateParams = { + const baseRequestParams: OpenAILLM.Chat.ChatCompletionCreateParams = { model: this.model, temperature: this.temperature, max_tokens: this.maxTokens, diff --git a/packages/core/src/llm/anthropic.ts b/packages/core/src/llm/anthropic.ts index 4b8dbf027..1a3dd0b48 100644 --- a/packages/core/src/llm/anthropic.ts +++ b/packages/core/src/llm/anthropic.ts @@ -26,7 +26,7 @@ export class AnthropicSession { // I'm not 100% sure this is necessary vs. just starting a new session // every time we make a call. They say they try to reuse connections // so in theory this is more efficient, but we should test it in the future. -let defaultAnthropicSession: { +const defaultAnthropicSession: { session: AnthropicSession; options: ClientOptions; }[] = []; diff --git a/packages/core/src/llm/open_ai.ts b/packages/core/src/llm/open_ai.ts index e7a6795f5..e36f05f3a 100644 --- a/packages/core/src/llm/open_ai.ts +++ b/packages/core/src/llm/open_ai.ts @@ -35,8 +35,10 @@ export class OpenAISession { // I'm not 100% sure this is necessary vs. just starting a new session // every time we make a call. They say they try to reuse connections // so in theory this is more efficient, but we should test it in the future. -let defaultOpenAISession: { session: OpenAISession; options: ClientOptions }[] = - []; +const defaultOpenAISession: { + session: OpenAISession; + options: ClientOptions; +}[] = []; /** * Get a session for the OpenAI API. If one already exists with the same options, diff --git a/packages/core/src/llm/portkey.ts b/packages/core/src/llm/portkey.ts index 92e65b1a3..11eb401b3 100644 --- a/packages/core/src/llm/portkey.ts +++ b/packages/core/src/llm/portkey.ts @@ -40,7 +40,7 @@ export class PortkeySession { } } -let defaultPortkeySession: { +const defaultPortkeySession: { session: PortkeySession; options: PortkeyOptions; }[] = []; diff --git a/packages/core/src/postprocessors/MetadataReplacementPostProcessor.ts b/packages/core/src/postprocessors/MetadataReplacementPostProcessor.ts index e53a6e435..c15e39718 100644 --- a/packages/core/src/postprocessors/MetadataReplacementPostProcessor.ts +++ b/packages/core/src/postprocessors/MetadataReplacementPostProcessor.ts @@ -9,7 +9,7 @@ export class MetadataReplacementPostProcessor implements BaseNodePostprocessor { } async postprocessNodes(nodes: NodeWithScore[]): Promise<NodeWithScore[]> { - for (let n of nodes) { + for (const n of nodes) { n.node.setContent( n.node.metadata[this.targetMetadataKey] ?? n.node.getContent(MetadataMode.NONE), diff --git a/packages/core/src/prompts/Mixin.ts b/packages/core/src/prompts/Mixin.ts index eac847b91..b49d2db12 100644 --- a/packages/core/src/prompts/Mixin.ts +++ b/packages/core/src/prompts/Mixin.ts @@ -8,13 +8,13 @@ export class PromptMixin { * @param moduleDict */ validatePrompts(promptsDict: PromptsDict, moduleDict: ModuleDict): void { - for (let key in promptsDict) { + for (const key in promptsDict) { if (key.includes(":")) { throw new Error(`Prompt key ${key} cannot contain ':'.`); } } - for (let key in moduleDict) { + for (const key in moduleDict) { if (key.includes(":")) { throw new Error(`Module key ${key} cannot contain ':'.`); } @@ -25,16 +25,16 @@ export class PromptMixin { * Returns all prompts from the mixin and its modules */ getPrompts(): PromptsDict { - let promptsDict: PromptsDict = this._getPrompts(); + const promptsDict: PromptsDict = this._getPrompts(); - let moduleDict = this._getPromptModules(); + const moduleDict = this._getPromptModules(); this.validatePrompts(promptsDict, moduleDict); - let allPrompts: PromptsDict = { ...promptsDict }; + const allPrompts: PromptsDict = { ...promptsDict }; - for (let [module_name, prompt_module] of Object.entries(moduleDict)) { - for (let [key, prompt] of Object.entries(prompt_module.getPrompts())) { + for (const [module_name, prompt_module] of Object.entries(moduleDict)) { + for (const [key, prompt] of Object.entries(prompt_module.getPrompts())) { allPrompts[`${module_name}:${key}`] = prompt; } } @@ -46,15 +46,15 @@ export class PromptMixin { * @param promptsDict */ updatePrompts(promptsDict: PromptsDict): void { - let promptModules = this._getPromptModules(); + const promptModules = this._getPromptModules(); this._updatePrompts(promptsDict); - let subPromptDicts: Record<string, PromptsDict> = {}; + const subPromptDicts: Record<string, PromptsDict> = {}; - for (let key in promptsDict) { + for (const key in promptsDict) { if (key.includes(":")) { - let [module_name, sub_key] = key.split(":"); + const [module_name, sub_key] = key.split(":"); if (!subPromptDicts[module_name]) { subPromptDicts[module_name] = {}; @@ -63,12 +63,12 @@ export class PromptMixin { } } - for (let [module_name, subPromptDict] of Object.entries(subPromptDicts)) { + for (const [module_name, subPromptDict] of Object.entries(subPromptDicts)) { if (!promptModules[module_name]) { throw new Error(`Module ${module_name} not found.`); } - let moduleToUpdate = promptModules[module_name]; + const moduleToUpdate = promptModules[module_name]; moduleToUpdate.updatePrompts(subPromptDict); } diff --git a/packages/core/src/readers/AssemblyAIReader.ts b/packages/core/src/readers/AssemblyAIReader.ts index 44d3fa42b..4e45ba866 100644 --- a/packages/core/src/readers/AssemblyAIReader.ts +++ b/packages/core/src/readers/AssemblyAIReader.ts @@ -83,7 +83,7 @@ class AudioTranscriptParagraphsReader extends AssemblyAIReader { * @returns A promise that resolves to an array of documents, each containing a paragraph of the transcript. */ async loadData(params: TranscribeParams | string): Promise<Document[]> { - let transcriptId = await this.getTranscriptId(params); + const transcriptId = await this.getTranscriptId(params); const paragraphsResponse = await this.client.transcripts.paragraphs(transcriptId); return paragraphsResponse.paragraphs.map( @@ -102,7 +102,7 @@ class AudioTranscriptSentencesReader extends AssemblyAIReader { * @returns A promise that resolves to an array of documents, each containing a sentence of the transcript. */ async loadData(params: TranscribeParams | string): Promise<Document[]> { - let transcriptId = await this.getTranscriptId(params); + const transcriptId = await this.getTranscriptId(params); const sentencesResponse = await this.client.transcripts.sentences(transcriptId); return sentencesResponse.sentences.map( @@ -125,7 +125,7 @@ class AudioSubtitlesReader extends AssemblyAIReader { params: TranscribeParams | string, subtitleFormat: SubtitleFormat = "srt", ): Promise<Document[]> { - let transcriptId = await this.getTranscriptId(params); + const transcriptId = await this.getTranscriptId(params); const subtitles = await this.client.transcripts.subtitles( transcriptId, subtitleFormat, diff --git a/packages/core/src/readers/LlamaParseReader.ts b/packages/core/src/readers/LlamaParseReader.ts index ba9c67053..8055f555a 100644 --- a/packages/core/src/readers/LlamaParseReader.ts +++ b/packages/core/src/readers/LlamaParseReader.ts @@ -74,7 +74,7 @@ export class LlamaParseReader implements FileReader { const resultUrl = `${this.baseUrl}/job/${jobId}/result/${this.resultType}`; - let start = Date.now(); + const start = Date.now(); let tries = 0; while (true) { await new Promise((resolve) => diff --git a/packages/core/src/readers/SimpleDirectoryReader.ts b/packages/core/src/readers/SimpleDirectoryReader.ts index af6ae549c..81ab8fe79 100644 --- a/packages/core/src/readers/SimpleDirectoryReader.ts +++ b/packages/core/src/readers/SimpleDirectoryReader.ts @@ -88,7 +88,7 @@ export class SimpleDirectoryReader implements BaseReader { return []; } - let docs: Document[] = []; + const docs: Document[] = []; for await (const filePath of walk(fs, directoryPath)) { try { const fileExt = path.extname(filePath).slice(1).toLowerCase(); diff --git a/packages/core/src/storage/docStore/KVDocumentStore.ts b/packages/core/src/storage/docStore/KVDocumentStore.ts index 8dd008de1..b14ab68bf 100644 --- a/packages/core/src/storage/docStore/KVDocumentStore.ts +++ b/packages/core/src/storage/docStore/KVDocumentStore.ts @@ -22,9 +22,9 @@ export class KVDocumentStore extends BaseDocumentStore { } async docs(): Promise<Record<string, BaseNode>> { - let jsonDict = await this.kvstore.getAll(this.nodeCollection); - let docs: Record<string, BaseNode> = {}; - for (let key in jsonDict) { + const jsonDict = await this.kvstore.getAll(this.nodeCollection); + const docs: Record<string, BaseNode> = {}; + for (const key in jsonDict) { docs[key] = jsonToDoc(jsonDict[key] as Record<string, any>); } return docs; @@ -44,13 +44,15 @@ export class KVDocumentStore extends BaseDocumentStore { `doc_id ${doc.id_} already exists. Set allow_update to True to overwrite.`, ); } - let nodeKey = doc.id_; - let data = docToJson(doc); + const nodeKey = doc.id_; + const data = docToJson(doc); await this.kvstore.put(nodeKey, data, this.nodeCollection); - let metadata: DocMetaData = { docHash: doc.hash }; + const metadata: DocMetaData = { docHash: doc.hash }; if (doc.getType() === ObjectType.TEXT && doc.sourceNode !== undefined) { - let refDocInfo = (await this.getRefDocInfo(doc.sourceNode.nodeId)) || { + const refDocInfo = (await this.getRefDocInfo( + doc.sourceNode.nodeId, + )) || { nodeIds: [], extraInfo: {}, }; @@ -74,7 +76,7 @@ export class KVDocumentStore extends BaseDocumentStore { docId: string, raiseError: boolean = true, ): Promise<BaseNode | undefined> { - let json = await this.kvstore.get(docId, this.nodeCollection); + const json = await this.kvstore.get(docId, this.nodeCollection); if (_.isNil(json)) { if (raiseError) { throw new Error(`docId ${docId} not found.`); @@ -86,12 +88,12 @@ export class KVDocumentStore extends BaseDocumentStore { } async getRefDocInfo(refDocId: string): Promise<RefDocInfo | undefined> { - let refDocInfo = await this.kvstore.get(refDocId, this.refDocCollection); + const refDocInfo = await this.kvstore.get(refDocId, this.refDocCollection); return refDocInfo ? (_.clone(refDocInfo) as RefDocInfo) : undefined; } async getAllRefDocInfo(): Promise<Record<string, RefDocInfo> | undefined> { - let refDocInfos = await this.kvstore.getAll(this.refDocCollection); + const refDocInfos = await this.kvstore.getAll(this.refDocCollection); if (_.isNil(refDocInfos)) { return; } @@ -107,12 +109,12 @@ export class KVDocumentStore extends BaseDocumentStore { } private async removeRefDocNode(docId: string): Promise<void> { - let metadata = await this.kvstore.get(docId, this.metadataCollection); + const metadata = await this.kvstore.get(docId, this.metadataCollection); if (metadata === null) { return; } - let refDocId = metadata.refDocId; + const refDocId = metadata.refDocId; if (_.isNil(refDocId)) { return; } @@ -137,7 +139,7 @@ export class KVDocumentStore extends BaseDocumentStore { await this.removeRefDocNode(docId); } - let deleteSuccess = await this.kvstore.delete(docId, this.nodeCollection); + const deleteSuccess = await this.kvstore.delete(docId, this.nodeCollection); await this.kvstore.delete(docId, this.metadataCollection); if (!deleteSuccess && raiseError) { @@ -149,7 +151,7 @@ export class KVDocumentStore extends BaseDocumentStore { refDocId: string, raiseError: boolean = true, ): Promise<void> { - let refDocInfo = await this.getRefDocInfo(refDocId); + const refDocInfo = await this.getRefDocInfo(refDocId); if (_.isNil(refDocInfo)) { if (raiseError) { throw new Error(`ref_doc_id ${refDocId} not found.`); @@ -158,7 +160,7 @@ export class KVDocumentStore extends BaseDocumentStore { } } - for (let docId of refDocInfo.nodeIds) { + for (const docId of refDocInfo.nodeIds) { await this.deleteDocument(docId, false, false); } @@ -167,17 +169,17 @@ export class KVDocumentStore extends BaseDocumentStore { } async setDocumentHash(docId: string, docHash: string): Promise<void> { - let metadata = { docHash: docHash }; + const metadata = { docHash: docHash }; await this.kvstore.put(docId, metadata, this.metadataCollection); } async getDocumentHash(docId: string): Promise<string | undefined> { - let metadata = await this.kvstore.get(docId, this.metadataCollection); + const metadata = await this.kvstore.get(docId, this.metadataCollection); return _.get(metadata, "docHash"); } async getAllDocumentHashes(): Promise<Record<string, string>> { - let hashes: Record<string, string> = {}; + const hashes: Record<string, string> = {}; const metadataDocs = await this.kvstore.getAll(this.metadataCollection); for (const docId in metadataDocs) { const hash = await this.getDocumentHash(docId); diff --git a/packages/core/src/storage/docStore/types.ts b/packages/core/src/storage/docStore/types.ts index b44ebd845..3ac144ae8 100644 --- a/packages/core/src/storage/docStore/types.ts +++ b/packages/core/src/storage/docStore/types.ts @@ -57,7 +57,7 @@ export abstract class BaseDocumentStore { } async getNode(nodeId: string, raiseError: boolean = true): Promise<BaseNode> { - let doc = await this.getDocument(nodeId, raiseError); + const doc = await this.getDocument(nodeId, raiseError); if (!(doc instanceof BaseNode)) { throw new Error(`Document ${nodeId} is not a Node.`); } @@ -67,8 +67,8 @@ export abstract class BaseDocumentStore { async getNodeDict(nodeIdDict: { [index: number]: string; }): Promise<Record<number, BaseNode>> { - let result: Record<number, BaseNode> = {}; - for (let index in nodeIdDict) { + const result: Record<number, BaseNode> = {}; + for (const index in nodeIdDict) { result[index] = await this.getNode(nodeIdDict[index]); } return result; diff --git a/packages/core/src/storage/docStore/utils.ts b/packages/core/src/storage/docStore/utils.ts index 9e74734b4..e4c77f76a 100644 --- a/packages/core/src/storage/docStore/utils.ts +++ b/packages/core/src/storage/docStore/utils.ts @@ -11,8 +11,8 @@ export function docToJson(doc: BaseNode): Record<string, any> { } export function jsonToDoc(docDict: Record<string, any>): BaseNode { - let docType = docDict[TYPE_KEY]; - let dataDict = JSON.parse(docDict[DATA_KEY]); + const docType = docDict[TYPE_KEY]; + const dataDict = JSON.parse(docDict[DATA_KEY]); let doc: BaseNode; if (docType === ObjectType.DOCUMENT) { diff --git a/packages/core/src/storage/indexStore/KVIndexStore.ts b/packages/core/src/storage/indexStore/KVIndexStore.ts index c2d057700..b3744fabf 100644 --- a/packages/core/src/storage/indexStore/KVIndexStore.ts +++ b/packages/core/src/storage/indexStore/KVIndexStore.ts @@ -15,8 +15,8 @@ export class KVIndexStore extends BaseIndexStore { } async addIndexStruct(indexStruct: IndexStruct): Promise<void> { - let key = indexStruct.indexId; - let data = indexStruct.toJson(); + const key = indexStruct.indexId; + const data = indexStruct.toJson(); await this._kvStore.put(key, data, this._collection); } @@ -26,13 +26,13 @@ export class KVIndexStore extends BaseIndexStore { async getIndexStruct(structId?: string): Promise<IndexStruct | undefined> { if (_.isNil(structId)) { - let structs = await this.getIndexStructs(); + const structs = await this.getIndexStructs(); if (structs.length !== 1) { throw new Error("More than one index struct found"); } return structs[0]; } else { - let json = await this._kvStore.get(structId, this._collection); + const json = await this._kvStore.get(structId, this._collection); if (_.isNil(json)) { return; } @@ -41,7 +41,7 @@ export class KVIndexStore extends BaseIndexStore { } async getIndexStructs(): Promise<IndexStruct[]> { - let jsons = (await this._kvStore.getAll(this._collection)) as { + const jsons = (await this._kvStore.getAll(this._collection)) as { [key: string]: any; }; return _.values(jsons).map((json) => jsonToIndexStruct(json)); diff --git a/packages/core/src/storage/indexStore/SimpleIndexStore.ts b/packages/core/src/storage/indexStore/SimpleIndexStore.ts index faa68ac3f..49ab6f3cc 100644 --- a/packages/core/src/storage/indexStore/SimpleIndexStore.ts +++ b/packages/core/src/storage/indexStore/SimpleIndexStore.ts @@ -32,7 +32,7 @@ export class SimpleIndexStore extends KVIndexStore { persistPath: string, fs: GenericFileSystem = defaultFS, ): Promise<SimpleIndexStore> { - let simpleKVStore = await SimpleKVStore.fromPersistPath(persistPath, fs); + const simpleKVStore = await SimpleKVStore.fromPersistPath(persistPath, fs); return new SimpleIndexStore(simpleKVStore); } @@ -44,7 +44,7 @@ export class SimpleIndexStore extends KVIndexStore { } static fromDict(saveDict: DataType): SimpleIndexStore { - let simpleKVStore = SimpleKVStore.fromDict(saveDict); + const simpleKVStore = SimpleKVStore.fromDict(saveDict); return new SimpleIndexStore(simpleKVStore); } diff --git a/packages/core/src/storage/kvStore/SimpleKVStore.ts b/packages/core/src/storage/kvStore/SimpleKVStore.ts index 30c932deb..cefa6498f 100644 --- a/packages/core/src/storage/kvStore/SimpleKVStore.ts +++ b/packages/core/src/storage/kvStore/SimpleKVStore.ts @@ -33,7 +33,7 @@ export class SimpleKVStore extends BaseKVStore { key: string, collection: string = DEFAULT_COLLECTION, ): Promise<any> { - let collectionData = this.data[collection]; + const collectionData = this.data[collection]; if (_.isNil(collectionData)) { return null; } @@ -61,7 +61,7 @@ export class SimpleKVStore extends BaseKVStore { async persist(persistPath: string, fs?: GenericFileSystem): Promise<void> { fs = fs || defaultFS; // TODO: decide on a way to polyfill path - let dirPath = path.dirname(persistPath); + const dirPath = path.dirname(persistPath); if (!(await exists(fs, dirPath))) { await fs.mkdir(dirPath); } @@ -73,14 +73,14 @@ export class SimpleKVStore extends BaseKVStore { fs?: GenericFileSystem, ): Promise<SimpleKVStore> { fs = fs || defaultFS; - let dirPath = path.dirname(persistPath); + const dirPath = path.dirname(persistPath); if (!(await exists(fs, dirPath))) { await fs.mkdir(dirPath); } let data: DataType = {}; try { - let fileData = await fs.readFile(persistPath); + const fileData = await fs.readFile(persistPath); data = JSON.parse(fileData.toString()); } catch (e) { console.error( diff --git a/packages/core/src/storage/vectorStore/AstraDBVectorStore.ts b/packages/core/src/storage/vectorStore/AstraDBVectorStore.ts index ef9b3f02c..fd258c3b8 100644 --- a/packages/core/src/storage/vectorStore/AstraDBVectorStore.ts +++ b/packages/core/src/storage/vectorStore/AstraDBVectorStore.ts @@ -128,7 +128,7 @@ export class AstraDBVectorStore implements VectorStore { console.debug(`Adding ${dataToInsert.length} rows to table`); // Perform inserts in steps of MAX_INSERT_BATCH_SIZE - let batchData: any[] = []; + const batchData: any[] = []; for (let i = 0; i < dataToInsert.length; i += MAX_INSERT_BATCH_SIZE) { batchData.push(dataToInsert.slice(i, i + MAX_INSERT_BATCH_SIZE)); diff --git a/packages/core/src/storage/vectorStore/PGVectorStore.ts b/packages/core/src/storage/vectorStore/PGVectorStore.ts index 315568ac5..ad3b7ca9a 100644 --- a/packages/core/src/storage/vectorStore/PGVectorStore.ts +++ b/packages/core/src/storage/vectorStore/PGVectorStore.ts @@ -154,8 +154,8 @@ export class PGVectorStore implements VectorStore { for (let index = 0; index < embeddingResults.length; index++) { const row = embeddingResults[index]; - let id: any = row.id_.length ? row.id_ : null; - let meta = row.metadata || {}; + const id: any = row.id_.length ? row.id_ : null; + const meta = row.metadata || {}; meta.create_date = new Date(); const params = [ @@ -191,7 +191,7 @@ export class PGVectorStore implements VectorStore { const db = (await this.getDb()) as pg.Client; const data = this.getDataToInsert(embeddingResults); - let ret: string[] = []; + const ret: string[] = []; for (let index = 0; index < data.length; index++) { const params = data[index]; try { diff --git a/packages/core/src/storage/vectorStore/PineconeVectorStore.ts b/packages/core/src/storage/vectorStore/PineconeVectorStore.ts index 08f6384f3..42e7ffe9c 100644 --- a/packages/core/src/storage/vectorStore/PineconeVectorStore.ts +++ b/packages/core/src/storage/vectorStore/PineconeVectorStore.ts @@ -213,7 +213,7 @@ export class PineconeVectorStore implements VectorStore { } nodeToRecord(node: BaseNode<Metadata>) { - let id: any = node.id_.length ? node.id_ : null; + const id: any = node.id_.length ? node.id_ : null; return { id: id, values: node.getEmbedding(), diff --git a/packages/core/src/storage/vectorStore/SimpleVectorStore.ts b/packages/core/src/storage/vectorStore/SimpleVectorStore.ts index 3c9f64606..8b995e2c9 100644 --- a/packages/core/src/storage/vectorStore/SimpleVectorStore.ts +++ b/packages/core/src/storage/vectorStore/SimpleVectorStore.ts @@ -43,7 +43,7 @@ export class SimpleVectorStore implements VectorStore { persistDir: string = DEFAULT_PERSIST_DIR, fs: GenericFileSystem = defaultFS, ): Promise<SimpleVectorStore> { - let persistPath = `${persistDir}/vector_store.json`; + const persistPath = `${persistDir}/vector_store.json`; return await SimpleVectorStore.fromPersistPath(persistPath, fs); } @@ -56,7 +56,7 @@ export class SimpleVectorStore implements VectorStore { } async add(embeddingResults: BaseNode[]): Promise<string[]> { - for (let node of embeddingResults) { + for (const node of embeddingResults) { this.data.embeddingDict[node.id_] = node.getEmbedding(); if (!node.sourceNode) { @@ -74,10 +74,10 @@ export class SimpleVectorStore implements VectorStore { } async delete(refDocId: string): Promise<void> { - let textIdsToDelete = Object.keys(this.data.textIdToRefDocId).filter( + const textIdsToDelete = Object.keys(this.data.textIdToRefDocId).filter( (textId) => this.data.textIdToRefDocId[textId] === refDocId, ); - for (let textId of textIdsToDelete) { + for (const textId of textIdsToDelete) { delete this.data.embeddingDict[textId]; delete this.data.textIdToRefDocId[textId]; } @@ -91,11 +91,11 @@ export class SimpleVectorStore implements VectorStore { ); } - let items = Object.entries(this.data.embeddingDict); + const items = Object.entries(this.data.embeddingDict); let nodeIds: string[], embeddings: number[][]; if (query.docIds) { - let availableIds = new Set(query.docIds); + const availableIds = new Set(query.docIds); const queriedItems = items.filter((item) => availableIds.has(item[0])); nodeIds = queriedItems.map((item) => item[0]); embeddings = queriedItems.map((item) => item[1]); @@ -105,7 +105,7 @@ export class SimpleVectorStore implements VectorStore { embeddings = items.map((item) => item[1]); } - let queryEmbedding = query.queryEmbedding!; + const queryEmbedding = query.queryEmbedding!; let topSimilarities: number[], topIds: string[]; if (LEARNER_MODES.has(query.mode)) { @@ -116,7 +116,7 @@ export class SimpleVectorStore implements VectorStore { nodeIds, ); } else if (query.mode === MMR_MODE) { - let mmrThreshold = query.mmrThreshold; + const mmrThreshold = query.mmrThreshold; [topSimilarities, topIds] = getTopKMMREmbeddings( queryEmbedding, embeddings, @@ -147,7 +147,7 @@ export class SimpleVectorStore implements VectorStore { fs?: GenericFileSystem, ): Promise<void> { fs = fs || this.fs; - let dirPath = path.dirname(persistPath); + const dirPath = path.dirname(persistPath); if (!(await exists(fs, dirPath))) { await fs.mkdir(dirPath); } @@ -161,14 +161,14 @@ export class SimpleVectorStore implements VectorStore { ): Promise<SimpleVectorStore> { fs = fs || defaultFS; - let dirPath = path.dirname(persistPath); + const dirPath = path.dirname(persistPath); if (!(await exists(fs, dirPath))) { await fs.mkdir(dirPath, { recursive: true }); } let dataDict: any = {}; try { - let fileData = await fs.readFile(persistPath); + const fileData = await fs.readFile(persistPath); dataDict = JSON.parse(fileData.toString()); } catch (e) { console.error( @@ -176,7 +176,7 @@ export class SimpleVectorStore implements VectorStore { ); } - let data = new SimpleVectorStoreData(); + const data = new SimpleVectorStoreData(); data.embeddingDict = dataDict.embeddingDict ?? {}; data.textIdToRefDocId = dataDict.textIdToRefDocId ?? {}; const store = new SimpleVectorStore(data); @@ -186,7 +186,7 @@ export class SimpleVectorStore implements VectorStore { } static fromDict(saveDict: SimpleVectorStoreData): SimpleVectorStore { - let data = new SimpleVectorStoreData(); + const data = new SimpleVectorStoreData(); data.embeddingDict = saveDict.embeddingDict; data.textIdToRefDocId = saveDict.textIdToRefDocId; return new SimpleVectorStore(data); diff --git a/packages/core/src/storage/vectorStore/utils.ts b/packages/core/src/storage/vectorStore/utils.ts index f0c2a512b..0944341ac 100644 --- a/packages/core/src/storage/vectorStore/utils.ts +++ b/packages/core/src/storage/vectorStore/utils.ts @@ -3,7 +3,7 @@ import { BaseNode, jsonToNode, Metadata, ObjectType } from "../../Node"; const DEFAULT_TEXT_KEY = "text"; export function validateIsFlat(obj: { [key: string]: any }): void { - for (let key in obj) { + for (const key in obj) { if (typeof obj[key] === "object" && obj[key] !== null) { throw new Error(`Value for metadata ${key} must not be another object`); } diff --git a/packages/core/src/synthesizers/MultiModalResponseSynthesizer.ts b/packages/core/src/synthesizers/MultiModalResponseSynthesizer.ts index a6a442a9d..849b8ad27 100644 --- a/packages/core/src/synthesizers/MultiModalResponseSynthesizer.ts +++ b/packages/core/src/synthesizers/MultiModalResponseSynthesizer.ts @@ -82,7 +82,7 @@ export class MultiModalResponseSynthesizer { type: "text", text: textPrompt }, ...images, ]; - let response = await this.serviceContext.llm.complete({ + const response = await this.serviceContext.llm.complete({ prompt, parentEvent, }); diff --git a/packages/core/src/tests/Embedding.test.ts b/packages/core/src/tests/Embedding.test.ts index 4f3b4262b..5fa58a602 100644 --- a/packages/core/src/tests/Embedding.test.ts +++ b/packages/core/src/tests/Embedding.test.ts @@ -55,7 +55,7 @@ describe("[OpenAIEmbedding]", () => { let embedModel: OpenAIEmbedding; beforeAll(() => { - let openAIEmbedding = new OpenAIEmbedding(); + const openAIEmbedding = new OpenAIEmbedding(); mockEmbeddingModel(openAIEmbedding); diff --git a/packages/core/src/tests/GenericFileSystem.test.ts b/packages/core/src/tests/GenericFileSystem.test.ts index 45be8f568..1ebb9da22 100644 --- a/packages/core/src/tests/GenericFileSystem.test.ts +++ b/packages/core/src/tests/GenericFileSystem.test.ts @@ -119,7 +119,7 @@ describe("Test walk for Node.js fs", () => { ]); const actualFiles = new Set<string>(); - for await (let file of walk(nodeFS, tempDir)) { + for await (const file of walk(nodeFS, tempDir)) { expect(file).toBeTruthy(); actualFiles.add(file); } diff --git a/packages/core/src/tests/TextSplitter.test.ts b/packages/core/src/tests/TextSplitter.test.ts index 663cc1352..baa37cc99 100644 --- a/packages/core/src/tests/TextSplitter.test.ts +++ b/packages/core/src/tests/TextSplitter.test.ts @@ -11,7 +11,7 @@ describe("SentenceSplitter", () => { paragraphSeparator: "\n\n\n", }); // generate the same line as above but correct syntax errors - let splits = sentenceSplitter.getParagraphSplits( + const splits = sentenceSplitter.getParagraphSplits( "This is a paragraph.\n\n\nThis is another paragraph.", undefined, ); @@ -26,7 +26,7 @@ describe("SentenceSplitter", () => { paragraphSeparator: "\n", }); // generate the same line as above but correct syntax errors - let splits = sentenceSplitter.getParagraphSplits( + const splits = sentenceSplitter.getParagraphSplits( "This is a paragraph.\nThis is another paragraph.", 1000, ); @@ -37,7 +37,7 @@ describe("SentenceSplitter", () => { test("splits sentences", () => { const sentenceSplitter = new SentenceSplitter(); - let splits = sentenceSplitter.getSentenceSplits( + const splits = sentenceSplitter.getSentenceSplits( "This is a sentence. This is another sentence.", undefined, ); @@ -68,11 +68,11 @@ describe("SentenceSplitter", () => { }); test("doesn't split decimals", () => { - let sentenceSplitter = new SentenceSplitter({ + const sentenceSplitter = new SentenceSplitter({ chunkSize: 5, chunkOverlap: 0, }); - let splits = sentenceSplitter.splitText( + const splits = sentenceSplitter.splitText( "This is a sentence. This is another sentence. 1.0", ); @@ -84,7 +84,7 @@ describe("SentenceSplitter", () => { }); test("splits cjk", () => { - let sentenceSplitter = new SentenceSplitter({ + const sentenceSplitter = new SentenceSplitter({ chunkSize: 12, chunkOverlap: 0, chunkingTokenizerFn: cjkSentenceTokenizer, diff --git a/packages/create-llama/e2e/utils.ts b/packages/create-llama/e2e/utils.ts index 2ec35e40b..87a6df8e0 100644 --- a/packages/create-llama/e2e/utils.ts +++ b/packages/create-llama/e2e/utils.ts @@ -121,7 +121,7 @@ export async function runCreateLlama( "none", ].join(" "); console.log(`running command '${command}' in ${cwd}`); - let appProcess = exec(command, { + const appProcess = exec(command, { cwd, env: { ...process.env, diff --git a/packages/create-llama/helpers/index.ts b/packages/create-llama/helpers/index.ts index 70a112444..21d9f86a4 100644 --- a/packages/create-llama/helpers/index.ts +++ b/packages/create-llama/helpers/index.ts @@ -70,7 +70,7 @@ const createEnvLocalFile = async ( switch (opts?.dataSource?.type) { case "web": { - let webConfig = opts?.dataSource.config as WebSourceConfig; + const webConfig = opts?.dataSource.config as WebSourceConfig; content += `# web loader config\n`; content += `BASE_URL=${webConfig.baseUrl}\n`; content += `URL_PREFIX=${webConfig.baseUrl}\n`; @@ -102,7 +102,7 @@ const generateContextData = async ( if (framework === "fastapi") { if (hasOpenAiKey && !hasVectorDb && isHavingPoetryLockFile()) { console.log(`Running ${runGenerate} to generate the context data.`); - let result = tryPoetryRun("python app/engine/generate.py"); + const result = tryPoetryRun("python app/engine/generate.py"); if (!result) { console.log(`Failed to run ${runGenerate}.`); process.exit(1); @@ -134,7 +134,7 @@ const copyContextData = async ( ) => { const destPath = path.join(root, "data"); - let dataSourceConfig = dataSource?.config as FileSourceConfig; + const dataSourceConfig = dataSource?.config as FileSourceConfig; // Copy file if (dataSource?.type === "file") { @@ -154,7 +154,7 @@ const copyContextData = async ( // Copy folder if (dataSource?.type === "folder") { - let srcPath = + const srcPath = dataSourceConfig.path ?? path.join(templatesDir, "components", "data"); console.log(`\nCopying data to ${cyan(destPath)}\n`); await copy("**", destPath, { diff --git a/packages/create-llama/helpers/python.ts b/packages/create-llama/helpers/python.ts index 39be2f32e..8047d5235 100644 --- a/packages/create-llama/helpers/python.ts +++ b/packages/create-llama/helpers/python.ts @@ -244,7 +244,7 @@ export const installPythonTemplate = async ({ const dataSourceType = dataSource?.type; if (dataSourceType !== undefined && dataSourceType !== "none") { - let loaderPath = + const loaderPath = dataSourceType === "folder" ? path.join(compPath, "loaders", "python", "file") : path.join(compPath, "loaders", "python", dataSourceType); diff --git a/packages/create-llama/helpers/run-app.ts b/packages/create-llama/helpers/run-app.ts index dbadda0ba..616787a73 100644 --- a/packages/create-llama/helpers/run-app.ts +++ b/packages/create-llama/helpers/run-app.ts @@ -33,7 +33,7 @@ export async function runApp( ): Promise<any> { let backendAppProcess: ChildProcess; let frontendAppProcess: ChildProcess | undefined; - let frontendPort = port || 3000; + const frontendPort = port || 3000; let backendPort = externalPort || 8000; // Callback to kill app processes diff --git a/packages/create-llama/helpers/tools.ts b/packages/create-llama/helpers/tools.ts index f7b844cbb..495592537 100644 --- a/packages/create-llama/helpers/tools.ts +++ b/packages/create-llama/helpers/tools.ts @@ -45,7 +45,7 @@ export const getTool = (toolName: string): Tool | undefined => { }; export const getTools = (toolsName: string[]): Tool[] => { - let tools: Tool[] = []; + const tools: Tool[] = []; for (const toolName of toolsName) { const tool = getTool(toolName); if (!tool) { diff --git a/packages/create-llama/questions.ts b/packages/create-llama/questions.ts index c6bf438b0..395773cd0 100644 --- a/packages/create-llama/questions.ts +++ b/packages/create-llama/questions.ts @@ -108,7 +108,7 @@ const getVectorDbChoices = (framework: TemplateFramework) => { }; const getDataSourceChoices = (framework: TemplateFramework) => { - let choices = [ + const choices = [ { title: "No data, just a simple chat", value: "simple", @@ -159,7 +159,7 @@ const selectLocalContextData = async (type: TemplateDataSourceType) => { } selectedPath = execSync(execScript, execOpts).toString().trim(); if (type === "file") { - let fileType = path.extname(selectedPath); + const fileType = path.extname(selectedPath); if (!supportedContextFileTypes.includes(fileType)) { console.log( red( @@ -204,7 +204,7 @@ export const askQuestions = async ( if (ciInfo.isCI) { program.postInstallAction = getPrefOrDefault("postInstallAction"); } else { - let actionChoices = [ + const actionChoices = [ { title: "Just generate code (~1 sec)", value: "none", @@ -535,7 +535,7 @@ export const askQuestions = async ( if (!baseUrl.includes("://")) { baseUrl = `https://${baseUrl}`; } - let checkUrl = new URL(baseUrl); + const checkUrl = new URL(baseUrl); if (checkUrl.protocol !== "https:" && checkUrl.protocol !== "http:") { throw new Error("Invalid protocol"); } diff --git a/packages/create-llama/templates/components/vectordbs/typescript/none/index.ts b/packages/create-llama/templates/components/vectordbs/typescript/none/index.ts index c3b65ce23..e335446cf 100644 --- a/packages/create-llama/templates/components/vectordbs/typescript/none/index.ts +++ b/packages/create-llama/templates/components/vectordbs/typescript/none/index.ts @@ -14,7 +14,7 @@ async function getDataSource(llm: LLM) { chunkSize: CHUNK_SIZE, chunkOverlap: CHUNK_OVERLAP, }); - let storageContext = await storageContextFromDefaults({ + const storageContext = await storageContextFromDefaults({ persistDir: `${STORAGE_CACHE_DIR}`, }); -- GitLab