OracleDocLoader 통합

OracleDocLoader 통합

LangChain JavaScript로 OracleDocLoader 문서 로더와 통합하는 방법을 안내할게요.

출처: 문서

본문

**Compatibility**: Only available on Node.js.

Oracle Database는 단일 시스템에서 비정형 콘텐츠에 대한 의미 검색과 비즈니스 데이터에 대한 관계형 쿼리를 결합하여 문서 중심의 AI 워크플로를 지원해요. 이로 인해 여러 데이터베이스에 데이터와 벡터를 분산할 필요 없이 검색 워크플로(RAG 등)를 더 쉽게 구축할 수 있어요.

왜 데이터베이스 내 문서 처리를 하나요? Oracle Database의 기능(보안, 트랜잭션, 확장성, 고가용성)을 AI 검색과 검색을 위한 콘텐츠를 로드·청킹·저장하는 동일한 파이프라인에 적용할 수 있어요.

Oracle Database를 이제 막 시작했다면, 설정이 간단한 무료 Oracle AI Database 26ai를 살펴보는 것을 고려해 보세요. 데이터베이스로 작업할 때는 애플리케이션 워크로드에 SYSTEM 사용자를 사용하지 않는 것이 좋아요. 대신 최소한의 필수 권한을 가진 전용 사용자를 만드세요. 사용자 관리에 대한 배경 지식은 공식 Oracle Database 가이드를 참고하세요.

개요

통합 세부 정보

클래스 패키지 Compatibility Local PY 지원
OracleDocLoader @oracle/langchain-oracledb Node 전용
OracleTextSplitter @oracle/langchain-oracledb Node 전용

문서 로드

사용자는 로더 매개변수를 적절히 구성하여 Oracle Database, 파일 시스템 또는 둘 다에서 문서를 유연하게 로드할 수 있어요. 이러한 매개변수에 대한 자세한 내용은 Oracle AI Vector Search 가이드를 참고하세요.

OracleDocLoader의 중요한 장점은 150개 이상의 서로 다른 파일 형식을 처리할 수 있어, 서로 다른 문서 유형에 대해 여러 로더가 필요하지 않다는 점이에요. 지원되는 형식의 전체 목록은 Oracle Text 지원 문서 형식을 참고하세요.

설정

OracleDocLoader를 사용하려면 (@langchain/core와 함께) @oracle/langchain-oracledb 헬퍼를 설치하고 Oracle Database 드라이버 사전 요구사항을 충족했는지 확인하세요. Oracle Database 드라이버에 대한 자세한 내용은 가이드를 참고하세요.

자격 증명

소스 데이터를 소유한 Oracle 사용자에 대한 환경 변수를 설정하세요 (또는 다른 비밀 관리자를 사용하세요).

export ORACLE_USER=testuser
export ORACLE_PASSWORD=testuser
export ORACLE_DSN="localhost:1521/free"

설치

```bash npm theme={"theme":{"light":"catppuccin-latte","dark":"catppuccin-mocha"}} npm install @oracle/langchain-oracledb @langchain/core ```
yarn add @oracle/langchain-oracledb @langchain/core
pnpm add @oracle/langchain-oracledb @langchain/core

인스턴스 생성

import oracledb from "oracledb";
import { OracleDocLoader } from "@oracle/langchain-oracledb";

const connection = await oracledb.getConnection({
  user: process.env.ORACLE_USER,
  password: process.env.ORACLE_PASSWORD,
  connectionString: process.env.ORACLE_DSN,
});

const loader = new OracleDocLoader(connection, {
  owner: "TESTUSER",
  tablename: "DEMO_TAB",
  colname: "DATA",
});

// Remember to close the connection (or pool) when your application shuts down.
// await connection.close();

Oracle Database에서 로드

const docs = await loader.load();
console.log(`Loaded ${docs.length} documents`);
console.log(docs[0]?.pageContent.slice(0, 120));

파일 또는 디렉터리에서 로드

로컬 콘텐츠를 수집하도록 로더 매개변수를 전환하세요. OracleDocLoader는 150개 이상의 파일 형식을 자동으로 처리해요; 전체 목록은 Oracle Text 지원 형식을 참고하세요.

const fileLoader = new OracleDocLoader(connection, {
  file: "/path/to/sample.pdf",
});

const directoryLoader = new OracleDocLoader(connection, {
  dir: "/path/to/documents",
});

문서 청킹

문서의 크기는 작은 것부터 매우 큰 것까지 다양할 수 있어요. 사용자는 임베딩 생성을 용이하게 하기 위해 문서를 더 작은 섹션으로 청킹하는 것을 선호하는 경우가 많아요. 이 분할 과정에는 다양한 사용자 지정 옵션이 제공돼요. 이러한 매개변수에 대한 자세한 내용은 Oracle AI Vector Search 가이드를 참고하세요.

import { OracleTextSplitter } from "@oracle/langchain-oracledb";

const splitter = new OracleTextSplitter(connection, {
  split: "chars",
  max: 500,
  normalize: "all",
});

const chunks = await splitter.splitText(docs[0].pageContent);
console.log(`Generated ${chunks.length} chunks`);

다음 단계


API 레퍼런스

모든 OracleDocLoaderOracleTextSplitter 기능과 구성 옵션에 대한 자세한 문서는 Oracle LangChain Oracle DB 저장소를 참고하세요.


[Connect these docs](/use-these-docs) to Claude, VSCode, and more via MCP for real-time answers. [Edit this page on GitHub](https://github.com/langchain-ai/docs/edit/main/src/oss/javascript/integrations/document_loaders/file_loaders/oracleai.mdx) or [file an issue](https://github.com/langchain-ai/docs/issues/new/choose).

더 알아보기