目次
- ドキュメントのロード
- ドキュメントの分割
- ドキュメントのベクトル化
- ドキュメントの検索
ドキュメントのロード
GitLoader
を使用する例.
from langchain_community.document_loaders import GitLoader
def file_filter(file_path: str) -> bool: """拡張子txtのファイルのみを抽出するためのフィルタ""" return file_path.endswith(".txt")
loader = GitLoader( clone_url = "クローン元のURL", repo_path = "クローン先のパス", branch = "ブランチ名", file_filter = file_filter, )
|
ここで,
とするとフィルタで絞り込まれた全文書が返る.
ドキュメントの分割
from langchain_text_splitters import CharacterTextSplitter
text_splitter = CharacterTextSplitter(chunk_size = 1000, chunk_overlap = 0) split_docs = text_splitter.split_documents(docs)
|
ドキュメントのベクトル化
from langchain_openai import OpenAIEmbeddings from langchain_chroma import Chroma
embeddings = OpenAIEmbeddings(model="text-embedding-3-small") db = Chroma.from_documents(split_docs, embeddings)
|
ドキュメントの検索
retriever = db.as_retriever() context_docs = retriever.invoke("クエリ")
|
以上で,クエリのベクトルの類似度が高い文脈を掬い上げる.