НачатьНачать бесплатно

Создание RAG-цепочки

Теперь соберём все компоненты RAG-процесса вместе! Вы подготовили документы и загрузили их в базу данных Chroma для последующего извлечения. Также вы создали шаблон подсказки, который использует извлечённые фрагменты научной статьи для ответа на вопросы.

Шаблон подсказки из предыдущего упражнения доступен как prompt_template, модель OpenAI инициализирована как llm, а код для воссоздания retriever уже включён в скрипт.

Это упражнение является частью курса

Разработка LLM-приложений с помощью LangChain

Посмотреть курс

Инструкции к упражнению

  • Создайте LCEL-цепочку с помощью оператора pipe (|), последовательно соединив 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)
Редактировать и запускать код