开始使用免费开始使用

创建一个 RAG 链

现在把 RAG 工作流中的所有组件串联起来吧!您已经准备好了文档,并将其导入到 Chroma 数据库以便检索。您还创建了一个提示模板,用于包含从学术论文中检索到的片段,并据此回答问题。

您在上一个练习中创建的提示模板可通过 prompt_template 使用,已初始化的 OpenAI 模型为 llm,而重建 retriever 的代码也已包含在脚本中。

本练习是课程的一部分

使用 LangChain 开发 LLM 应用

查看课程

练习说明

  • 使用管道运算符 (|) 创建一个 LCEL 链,按顺序连接 retrieverprompt_templatellm
  • 链中应将 retriever 映射到 "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)
编辑并运行代码