LocalFileStore 통합

LocalFileStore 통합

LangChain JavaScript로 LocalFileStore 스토어와 통합하는 방법을 알아봅니다.

호환성(Compatibility): Node.js에서만 사용할 수 있습니다.

LocalFileStore을 시작하는 데 도움을 주는 가이드예요. 모든 LocalFileStore 기능과 구성에 대한 자세한 문서는 API reference를 참조하세요.

출처: 문서

본문

개요

LocalFileStore는 키-값 쌍으로 데이터를 저장하기 위한 fs 모듈의 래퍼입니다. 각 키-값 쌍은 .fromPath 메서드에 전달된 디렉터리 안에 중첩된 자체 파일을 갖습니다. 파일 이름이 키이고 그 안에 키의 값이 들어 있습니다.

.fromPath에 전달되는 경로는 파일이 아닌 디렉터리여야 합니다.

이 파일 스토어는 지정된 디렉터리와 모든 하위 폴더의 텍스트 파일을 변경할 수 있습니다.

스토어를 초기화할 때 지정하는 경로에 다른 파일이 없도록 하세요.

통합 세부 정보

클래스(Class) 패키지(Package) 로컬(Local) PY 지원 다운로드(Downloads) 버전(Version)
LocalFileStore langchain NPM - Downloads NPM - Version

설정

설치

LangChain LocalFileStore 통합은 langchain 패키지에 있습니다:

npm install langchain @langchain/core
yarn add langchain @langchain/core
pnpm add langchain @langchain/core

인스턴스화(Instantiation)

이제 바이트 스토어를 인스턴스화할 수 있습니다:

import { LocalFileStore } from "@langchain/classic/storage/file_system"

const kvStore = await LocalFileStore.fromPath("./messages");

데이터를 Uint8Array로 또는 그 반대로 변환하기 위한 인코더와 디코더를 정의하세요:

const encoder = new TextEncoder();
const decoder = new TextDecoder();

사용법(Usage)

mset 메서드를 사용해 키 아래에 데이터를 설정할 수 있습니다:

await kvStore.mset(
  [
    ["key1", encoder.encode("value1")],
    ["key2", encoder.encode("value2")],
  ]
)

const results = await kvStore.mget(
  [
    "key1",
    "key2",
  ]
)
console.log(results.map((v) => decoder.decode(v)));
[ 'value1', 'value2' ]

mdelete 메서드를 사용해 데이터를 삭제할 수 있습니다:

await kvStore.mdelete(
  [
    "key1",
    "key2",
  ]
)

await kvStore.mget(
  [
    "key1",
    "key2",
  ]
)
[ undefined, undefined ]

값 산출하기(Yielding values)

모든 키를 다시 얻으려면 yieldKeys 메서드를 호출할 수 있습니다. 선택적으로 키 접두사를 전달해 해당 접두사와 일치하는 키만 얻을 수도 있습니다.

import { LocalFileStore } from "@langchain/classic/storage/file_system"

const kvStoreForYield = await LocalFileStore.fromPath("./messages");

const encoderForYield = new TextEncoder();

// Add some data to the store
await kvStoreForYield.mset(
  [
    ["message:id:key1", encoderForYield.encode("value1")],
    ["message:id:key2", encoderForYield.encode("value2")],
  ]
)

const yieldedKeys = [];
for await (const key of kvStoreForYield.yieldKeys("message:id:")) {
  yieldedKeys.push(key);
}

console.log(yieldedKeys);
[ 'message:id:key1', 'message:id:key2' ]
import fs from "fs";

// Cleanup
await fs.promises.rm("./messages", { recursive: true, force: true });

API reference

모든 LocalFileStore 기능과 구성에 대한 자세한 문서는 API reference를 참조하세요.

더 알아보기 (Learn more)