見出し画像

LangChain と戯れる日々

よし、いっちょ RAG 作ろうかと思って、いまはこの "LangChain完全入門" で写経しながら学習しています。

なんですが、この本が出た直後にさまざまなライブラリアップデートがあって、langchain ライブラリが depreceated になるから、新しいライブラリにしろよって言う warnings や、ものによってはエラーが出るような状況になっています。

という事で、対処しながらちまちまと試しています。
今は P107 の prepare_3.py を試していて、Chroma にベクトルデータを埋め込むところまで来ました。ソースコードはこんな感じ。

# dotenv 追加
from dotenv import load_dotenv
import os
load_dotenv()
openai_api_key = os.environ['OPENAI_API_KEY']

# langchain → langchain_community
# from langchain.document_loaders import PyMuPDFLoader
from langchain_community.document_loaders import PyMuPDFLoader
# from langchain.embeddings import OpenAIEmbeddings
from langchain_openai import OpenAIEmbeddings
from langchain.text_splitter import SpacyTextSplitter
# from langchain.vectorstores import Chroma
from langchain_community.vectorstores import Chroma

loader = PyMuPDFLoader("xxxxxxxxxxxxxx.pdf")
documents = loader.load()

text_splitter = SpacyTextSplitter(
  chunk_size = 300,
  pipeline = "ja_core_news_sm"
)
splitted_documents = text_splitter.split_documents(documents)

embeddings = OpenAIEmbeddings(
  model="text-embedding-ada-002"
)
database = Chroma(
  persist_directory = "./.data",
  embedding_function = embeddings
)

database.add_documents(splitted_documents)
print(f"finished adding documents to the database")

尚、この書籍の元では、バージョン固定して試してねという対応方法となっています。そうよね、ソースコードに手を入れるの大変だものね。
いやーこういう日々変わりまくるライブラリに依存している書籍は大変だ。

とりあえず、わたしは毎日ちまちまとなんかしらのプログラムを書いて遊んでいる日々です。遊んでるだけだから、今のところはまだ気楽です。まだね。

この記事が参加している募集

AIとやってみた

貴方がサポートしてくれると、私が幸せ。 私が幸せになると、貴方も幸せ。 新しいガジェット・ソフトウェアのレビューに、貴方の力が必要です。