ã2026幎çãRAGã®å§ãæ¹ â LLMã«èªç€ŸããŒã¿ã掻çšãããå®å šã¬ã€ã
- RAGïŒæ€çŽ¢æ¡åŒµçæïŒã®ä»çµã¿ãšãŠãŒã¹ã±ãŒã¹
- ãã¯ãã«ããŒã¿ããŒã¹ã®åºæ¬æŠå¿µ
- LangChainãLlamaIndexã§ã®åºæ¬å®è£
- ããã³ãããšã³ãžãã¢ãªã³ã°ã®åºç€
RAGã®åºæ¬ã¢ãŒããã¯ãã£
[ããã¥ã¡ã³ã] â [ãã£ã³ã¯åå²] â [åã蟌ã¿çæ] â [ãã¯ãã«DBä¿å]
â
[ãŠãŒã¶ãŒè³ªå] â [質åã®åã蟌ã¿] â [é¡äŒŒæ€çŽ¢] â [é¢é£ãã£ã³ã¯ååŸ]
â
[LLMãžã®å
¥åïŒè³ªå + é¢é£ãã£ã³ã¯] â [åççæ]
ã»ããã¢ããæé
pip install langchain langchain-openai langchain-chroma openai
ã¯ãããŠã®RAGå®è£ ïŒLangChain + ChromaDBïŒ
from langchain_community.document_loaders import TextLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_openai import OpenAIEmbeddings, ChatOpenAI
from langchain_chroma import Chroma
from langchain.chains import create_retrieval_chain
from langchain.chains.combine_documents import create_stuff_documents_chain
from langchain_core.prompts import ChatPromptTemplate
# ããã¥ã¡ã³ãã®èªã¿èŸŒã¿ãšãã£ã³ã¯åå²
loader = TextLoader("document.txt", encoding="utf-8")
docs = loader.load()
splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=50)
chunks = splitter.split_documents(docs)
# ãã¯ãã«DBã«ä¿å
embeddings = OpenAIEmbeddings()
vectorstore = Chroma.from_documents(chunks, embeddings)
# RAGãã§ãŒã³ã®æ§ç¯ïŒLCEL圢åŒïŒ
llm = ChatOpenAI(model="gpt-4o-mini")
prompt = ChatPromptTemplate.from_template(
"以äžã®ã³ã³ããã¹ãã®ã¿ãå
ã«è³ªåã«çããŠãã ãã:\n\n{context}\n\n質å: {input}"
)
document_chain = create_stuff_documents_chain(llm, prompt)
retriever = vectorstore.as_retriever(search_kwargs={"k": 3})
qa_chain = create_retrieval_chain(retriever, document_chain)
# 質åãšåç
result = qa_chain.invoke({"input": "ããã¥ã¡ã³ãã®äž»èŠãªãã€ã³ãã¯äœã§ããïŒ"})
print(result["answer"])
ããããè©°ãŸããã€ã³ã
Q: åçã®ç²ŸåºŠãäœã
â ãã£ã³ã¯ãµã€ãºãšãªãŒããŒã©ããã調æŽããŠã¿ãŸãããã500æåã»50æåãªãŒããŒã©ãããäžè¬çãªåºçºç¹ã§ããæ€çŽ¢ä»¶æ°ïŒkã®å€ïŒãå¢ããããšãæå¹ã§ãããã³ã³ããã¹ãé·ã®äžéã«æ³šæãå¿
èŠã§ãã
Q: ç¡é¢ä¿ãªæ å ±ãæ··å ¥ããïŒãã«ã·ããŒã·ã§ã³ïŒ â ããã³ããã«ãæäŸãããã³ã³ããã¹ãã«åºã¥ããŠã®ã¿åçããã³ã³ããã¹ãã«æ å ±ããªãå Žåã¯ãããããŸããããšçããŠãã ããããšæèšããŸãããã
Q: APIã³ã¹ããé«ããªã
â gpt-4o-mini ãªã©ã®è»œéã¢ãã«ã䜿ãããããŒã«ã«LLMïŒOllamaçïŒãæ€èšããŠãã ãããåã蟌ã¿çæã«ã¯æ¯èŒçå®äŸ¡ãª text-embedding-3-small ã䜿ããŸãã