JS 런타임 환경에서 TypeScript 지원으로 대형 언어 모델 (LLM, OpenAi Chatgpt 및 기타)과 함께 자신의 데이터를 사용하십시오.
문서 : https://ts.llamaindex.ai/
온라인으로 예제 :
llamaindex.ts는 가볍고 사용하기 쉬운 라이브러리 세트가되어 대형 언어 모델을 자신의 데이터와 함께 애플리케이션에 통합하는 데 도움이됩니다.
llamaindex.ts는 다음을 포함하여 여러 JS 환경을 지원합니다.
현재 Asynclocalstorage-Like API에 대한 지원 부족으로 인해 브라우저 지원이 제한됩니다.
npm install llamaindex
pnpm install llamaindex
yarn add llamaindex공식 문서를 참조하십시오 : https://ts.llamaindex.ai/docs/llamaindex/setup/getting-started
Non-Node.js 환경 (예 : Vercel Edge, CloudFlare Workers 등)에서 llamaindex 가져 오는 경우 일부 클래스는 최상위 항목 파일에서 내보내지 않습니다.
그 이유는 일부 클래스가 Node.js fs child_process 예 : PDFReader )과 만 호환되기 때문 crypto .
해당 클래스가 필요한 경우 패키지의 파일 경로를 통해 직접 가져와야합니다. 다음은 PineconeVectorStore 클래스를 가져 오는 예입니다.
import { PineconeVectorStore } from "llamaindex/storage/vectorStore/PineconeVectorStore" ; PDFReader Edge 런타임으로 작동하지 않기 때문에 LlamaParseReader 와 함께 SimpleDirectoryReader 사용하여 PDFS를로드하는 방법은 다음과 같습니다.
import { SimpleDirectoryReader } from "llamaindex/readers/SimpleDirectoryReader" ;
import { LlamaParseReader } from "llamaindex/readers/LlamaParseReader" ;
export const DATA_DIR = "./data" ;
export async function getDocuments ( ) {
const reader = new SimpleDirectoryReader ( ) ;
// Load PDFs using LlamaParseReader
return await reader . loadData ( {
directoryPath : DATA_DIR ,
fileExtToReader : {
pdf : new LlamaParseReader ( { resultType : "markdown" } ) ,
} ,
} ) ;
}참고 : 독자 클래스는
SimpleDirectoryReader의 Edge 버전의fileExtToReader맵에 명시 적으로 추가되어야합니다.
llamaindexts와 함께 완전한 예를 찾을 수 있습니다 : https://github.com/run-llama/create_llama_projects/tree/main/nextjs-edge-llamaparse
https://llama-playground.vercel.app/에서 다음 Js Playground를 확인하십시오. 이 소스는 https://github.com/run-llama/ts-playground에서 제공됩니다
문서 : 문서는 텍스트 파일, PDF 파일 또는 기타 연속 데이터를 나타냅니다.
노드 : 기본 데이터 빌딩 블록. 가장 일반적으로, 이것들은 문서의 일부가 임베딩 모델과 LLM에 공급 될 정도로 작은 관리 가능한 조각으로 분할됩니다.
임베딩 : 임베딩은 노드의 데이터를 나타내는 부동 소수점 번호 세트입니다. 임베딩의 유사성을 비교함으로써 두 가지 데이터의 유사성에 대한 이해를 도출 할 수 있습니다. 하나의 사용 사례는 질문의 임베딩을 노드의 임베딩과 비교하여 해당 질문에 대답하는 데 필요한 데이터를 포함 할 수있는 노드를 확인하는 것입니다. 기본 서비스 컨텍스트가 OpenAI이므로 기본 임베딩은 OpenAIEmbedding 입니다. 다른 모델을 사용하는 경우 Ollama를 통해 말하면이 임베딩을 사용하십시오 (여기 모두 참조).
지수 : 지수는 해당 노드의 노드와 임베딩을 저장합니다. 쿼리 엔진은 임베딩 유사성을 사용하여 이러한 지수에서 노드를 검색합니다.
QueryEngine : 쿼리 엔진은 입력 한 쿼리를 생성하고 결과를 돌려줍니다. 쿼리 엔진은 일반적으로 사전 구축 된 프롬프트를 인덱스에서 선택한 노드와 결합하여 LLM에 쿼리에 응답 해야하는 컨텍스트를 제공합니다. 인덱스에서 쿼리 엔진을 구축하려면 (권장) 인덱스에서 asQueryEngine 메소드를 사용하십시오. 여기에서 모든 쿼리 엔진을 참조하십시오.
chatEngine : chatEngine은 지수와 상호 작용할 챗봇을 구축하는 데 도움이됩니다. 여기에서 모든 채팅 엔진을 참조하십시오.
SimplePrompt : 입력을 가져 와서 템플릿 리터럴로 형식화하는 간단한 표준화 된 기능 통화 정의. SimplePrompts는 카레링을 사용하여 전문화되고 다른 SimplePrompt 기능을 사용하여 결합 할 수 있습니다.
자세한 내용은 기고 안내서를 참조하십시오. llamaindex.ts에 기여하는 것이 좋습니다!
우리의 불화에 가입하십시오! https://discord.com/invite/en6d2hq4ax