Створення ланцюжка RAG
Тепер поєднаємо всі компоненти вашого робочого процесу RAG! Ви підготували документи та завантажили їх до бази даних Chroma для подальшого пошуку. Ви створили шаблон підказки, щоб включати знайдені фрагменти з наукової статті й відповідати на запитання.
Шаблон підказки з попередньої вправи доступний як prompt_template, модель OpenAI ініціалізовано як llm, а код для відтворення вашого retriever уже додано до скрипту.
Ця вправа є частиною курсу
Розроблення застосунків LLM за допомогою LangChain
Інструкції до вправи
- Створіть ланцюжок LCEL за допомогою оператора конвеєра (
|), послідовно з'єднавшиretriever,prompt_templateтаllm. - Ланцюжок має зіставляти засіб пошуку з
"context", а користувацьке введення — з"question". - Викличте ланцюжок методом
.invoke()на поданому запитанні.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
vectorstore = Chroma.from_documents(
docs,
embedding=OpenAIEmbeddings(api_key='', model='text-embedding-3-small'),
persist_directory=os.getcwd()
)
retriever = vectorstore.as_retriever(
search_type="similarity",
search_kwargs={"k": 3}
)
# Create a chain to link retriever, prompt_template, and llm
rag_chain = ({"context": ____, "question": ____}
| prompt_template
| llm)
# Invoke the chain
response = rag_chain.____("Which popular LLMs were considered in the paper?")
print(response.content)