OracleDocLoader 통합
OracleDocLoader 통합
LangChain JavaScript로 OracleDocLoader 문서 로더와 통합하는 방법을 안내할게요.
출처: 문서
본문
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"
설치
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`);
다음 단계
OracleVS로 검색 파이프라인 구축OracleEmbeddings로 임베딩 생성
API 레퍼런스
모든 OracleDocLoader 및 OracleTextSplitter 기능과 구성 옵션에 대한 자세한 문서는 Oracle LangChain Oracle DB 저장소를 참고하세요.
더 알아보기
- 이 문서를 MCP로 연결하면 Claude, VSCode 등에서 실시간 답변을 받을 수 있어요.
- GitHub에서 이 페이지 편집하기 또는 이슈 제출하기.