これはLangExtractの非公式Node.js SDKです。Googleとの関連や承認はありません。公式Pythonライブラリについては、 公式GitHubリポジトリ.
npmまたはyarnを使用してLangExtract Node.js SDKをインストール:
# npm
npm install langextract
# yarn
yarn add langextract
# pnpm
pnpm add langextract
このシンプルな例でNode.jsでLangExtractを始めましょう:
TypeScriptを使用してテキストから情報を抽出:
import { extract, ExampleData } from "langextract";
const examples: ExampleData[] = [
{
text: "John Smith is 30 years old and works at Google.",
extractions: [
{
extractionClass: "person",
extractionText: "John Smith",
attributes: {
age: "30",
employer: "Google"
}
}
]
}
];
async function extractPersonInfo() {
const result = await extract("Alice Johnson is 25 and works at Microsoft.", {
promptDescription: "Extract person information including name, age, and employer",
examples: examples,
modelType: "gemini",
apiKey: process.env.LANGEXTRACT_API_KEY
});
console.log(result.extractions);
}
Geminiなどのクラウドモデル用のAPIキーを設定:
# .envファイル
LANGEXTRACT_API_KEY=your-api-key-here
SDKは複数のLLMプロバイダーをサポート:
テキストから情報を抽出するメインメソッド
async function extract(
text: string,
options: {
promptDescription: string;
examples: ExampleData[];
modelType: "gemini" | "openai" | "ollama";
apiKey?: string;
modelId?: string;
}
): Promise<ExtractionResult>
抽出結果のインタラクティブHTMLビジュアライゼーションを生成
function visualize(
results: ExtractionResult[],
options?: {
theme?: "light" | "dark";
highlightColors?: string[];
}
): string
複数のドキュメントを並列処理
async function batchExtract(
documents: string[],
options: ExtractOptions & {
concurrency?: number;
onProgress?: (completed: number, total: number) => void;
}
): Promise<ExtractionResult[]>
シンプルなテキストからエンティティを抽出
const result = await extract("The product costs $99.99", {
promptDescription: "Extract product price",
examples: [{
text: "Price: $50",
extractions: [{
extractionClass: "price",
extractionText: "$50"
}]
}],
modelType: "gemini"
});
属性とカスタム抽出クラスの使用
const examples = [{
text: "Dr. Smith prescribed 500mg aspirin",
extractions: [{
extractionClass: "medication",
extractionText: "aspirin",
attributes: {
dosage: "500mg",
prescriber: "Dr. Smith"
}
}]
}];
複数のドキュメントを効率的に処理
const documents = [
"Document 1 content...",
"Document 2 content...",
"Document 3 content..."
];
const results = await batchExtract(documents, {
promptDescription: "Extract entities",
examples: examples,
modelType: "gemini",
concurrency: 3,
onProgress: (done, total) => {
console.log(`Progress: ${done}/${total}`);
}
});
インタラクティブビジュアライゼーションの生成と保存
const html = visualize(results, {
theme: "light",
highlightColors: ["#3B82F6", "#10B981", "#F59E0B"]
});
// Save to file
import { writeFileSync } from "fs";
writeFileSync("results.html", html);
型定義を含む完全なTypeScriptサポート:
適切なエラーハンドリングパターン:
APIエラーと検証失敗の処理
try {
const result = await extract(text, options);
console.log("Extraction successful:", result);
} catch (error) {
if (error.code === "INVALID_API_KEY") {
console.error("Invalid API key provided");
} else if (error.code === "RATE_LIMIT_EXCEEDED") {
console.error("Rate limit exceeded, retry after:", error.retryAfter);
} else if (error.code === "VALIDATION_ERROR") {
console.error("Validation error:", error.details);
} else {
console.error("Unexpected error:", error.message);
}
}
pipでLangExtractをインストールし、数分でテキストデータから構造化情報の抽出を開始できます。
npm install langextract