langextract
Version:
A TypeScript library for extracting structured and grounded information from text using LLMs
60 lines • 2.28 kB
TypeScript
/**
* Copyright 2025 kmbro.
*
* This is a TypeScript translation of the original Python LangExtract library
* by Google LLC (https://github.com/google/langextract).
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
import { Document, AnnotatedDocument, FormatType } from "./types";
import { BaseLanguageModel } from "./inference";
import { PromptTemplateStructured } from "./prompting";
import { AbstractResolver } from "./resolver";
export declare class DocumentRepeatError extends Error {
constructor(message: string);
}
export interface AnnotatorOptions {
formatType?: FormatType;
attributeSuffix?: string;
fenceOutput?: boolean;
maxTokens?: number;
}
export declare class Annotator {
private languageModel;
private promptTemplate;
private formatType;
private attributeSuffix;
private fenceOutput;
private maxTokens?;
constructor(languageModel: BaseLanguageModel, promptTemplate: PromptTemplateStructured, options?: AnnotatorOptions);
annotateDocuments(documents: Document[], resolver: AbstractResolver, options?: {
maxCharBuffer?: number;
batchLength?: number;
debug?: boolean;
extractionPasses?: number;
}): Promise<AnnotatedDocument[]>;
annotateText(text: string, resolver: AbstractResolver, options?: {
maxCharBuffer?: number;
batchLength?: number;
additionalContext?: string;
debug?: boolean;
extractionPasses?: number;
}): Promise<AnnotatedDocument>;
private annotateDocumentsSinglePass;
private annotateDocumentsSequentialPasses;
private processDocumentBatch;
private processDocumentBatchSequentialPasses;
private chunkDocument;
private generatePrompt;
}
//# sourceMappingURL=annotation.d.ts.map