こんにちは 佐々木です!
今回は、RAGを使って、HTML情報を参照できるチャットボットを開発しました!
ポイントは、WebBaseLoader()を使い、HTMLデータを直接参照できます!
今回は音楽サイトの情報を使いましたが、ニュースや株価などにも応用できます。
以下がコードです!
from langchain.prompts import PromptTemplate
from langchain_openai import ChatOpenAI,OpenAIEmbeddings
from langchain_community.document_loaders import WebBaseLoader
from langchain_community.vectorstores import FAISS
from langchain_core.runnables import RunnableParallel, RunnablePassthrough
from langchain_core.output_parsers import StrOutputParser
loader = WebBaseLoader("https://funky802.com/hot100/")
documents = loader.load()
# retrieverの作成
embeddings = OpenAIEmbeddings()
vector = FAISS.from_documents(documents, embeddings)
retriever = vector.as_retriever()
# promptの作成
template = """
質問に対して、音楽チャートのランキングを回答してください
音楽チャートはcontextを参考にしてください:{context}
質問: {question}
"""
prompt = PromptTemplate.from_template(template)
# modelの作成
model = ChatOpenAI(model_name="gpt-3.5-turbo-0125")
# chainを作成
chain = (
{"context": retriever, "question": RunnablePassthrough()}
| prompt
| model
| StrOutputParser()
)
print(chain.invoke('今週の一位は誰ですか?'))
参考