Разреженный поиск с BM25
Попробуем реализовать разреженный поиск на практике! Вы создадите ретривер BM25, чтобы задавать вопросы по научной статье о RAG. Статья уже разбита на фрагменты и сохранена в переменной chunks. Языковая модель OpenAI и шаблон промпта определены как llm и prompt соответственно. Вы можете просмотреть содержимое prompt, выведя его в консоль.
Это упражнение является частью курса
Retrieval Augmented Generation (RAG) с LangChain
Инструкции к упражнению
- Создайте разреженный ретривер BM25 на основе документов из
chunks; настройте его на возврат5документов при поиске. - Создайте цепочку LCEL для интеграции ретривера BM25 с предоставленными
llmиprompt.
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Create a BM25 retriever from chunks
retriever = ____
# Create the LCEL retrieval chain
chain = ({"context": ____, "question": ____}
| ____
| ____
| StrOutputParser()
)
print(chain.invoke("What are knowledge-intensive tasks?"))