langchain-rag は何をしますか?
検索拡張生成(RAG)システムを構築する際は、このスキルを呼び出してください。ドキュメントローダー、RecursiveCharacterTextSplitter、埋め込み(OpenAI)、ベクトルストア(Chroma、FAISS、Pinecone)をカバーします。
概要
このスキルは、LangChainフレームワークを使用したRAGシステムの構築を支援します。以下のコンポーネントを扱います:
- ドキュメントローダー: 様々なソースからドキュメントを読み込みます
- テキスト分割:
RecursiveCharacterTextSplitterを使用した効率的な分割 - 埋め込み: OpenAIの埋め込みモデルを使用
- ベクトルストア: Chroma、FAISS、Pineconeへの保存と検索
使用方法
- スキルを呼び出してRAGシステムの構築を開始します
- ドキュメントローダーを設定します(例:
TextLoader,PDFLoader) - テキストを分割します(
RecursiveCharacterTextSplitter) - 埋め込みを生成します(
OpenAIEmbeddings) - ベクトルストアに保存します(
Chroma,FAISS,Pinecone)
コード例
from langchain_community.document_loaders import TextLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_openai import OpenAIEmbeddings
from langchain_community.vectorstores import Chroma
# ドキュメントの読み込み
loader = TextLoader("example.txt")
documents = loader.load()
# テキスト分割
text_splitter = RecursiveCharacterTextSplitter(
chunk_size=1000,
chunk_overlap=200
)
splits = text_splitter.split_documents(documents)
# 埋め込みとベクトルストア
embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_documents(
documents=splits,
embedding=embeddings
)
サポート対象
- ドキュメントローダー: テキスト、PDF、HTML、Markdownなど
- テキスト分割:
RecursiveCharacterTextSplitter - 埋め込みモデル:
text-embedding-ada-002(OpenAI) - ベクトルストア: Chroma(ローカル)、FAISS(ローカル)、Pinecone(クラウド)