趋近智
检索器和生成器组件在组装和连接后(可能使用LangChain或LlamaIndex等框架),一个基本的检索增强生成 (RAG)流程便可投入使用。该流程的目的是首先在特定的文档集中查找相关信息,然后利用这些信息生成连贯且基于上下文 (context)的回复来回答查询。
当您向RAG流程提交查询时,它会启动一系列操作,旨在借助您的外部知识库:
这个流程确保生成的答案基于您在数据准备阶段提供的具体文档。
图示:查询通过RAG流程的路径,从初始输入到最终生成的回复。
假设您已将您的RAG流程组合实例化为一个对象(为保持一致,我们称之为rag_chain,尽管实际名称取决于前面步骤中使用的框架或代码),执行查询通常很简单。
您将查询字符串传递给rag_chain对象的相应方法。LangChain等框架常为此目的使用invoke()或stream()等方法。
# 假设 'rag_chain' 是您之前配置的 RAG 流程对象
# (例如,使用 LangChain 或 LlamaIndex 创建)
# 定义您的查询
user_query = "What are the main challenges mentioned in the latest project status report?"
# 通过流程执行查询
try:
response = rag_chain.invoke(user_query)
print("流程回复:")
print(response)
except Exception as e:
print(f"发生错误: {e}")
# 带有潜在流式输出的示例(如果链/LLM支持)
# try:
# print("流式流程回复:")
# for chunk in rag_chain.stream(user_query):
# # 处理每个到达的片段(例如,打印它)
# print(chunk, end="", flush=True)
# print("\n--- 流结束 ---")
# except Exception as e:
# print(f"\n流式处理过程中发生错误: {e}")
上面代码中的response变量将包含LLM生成的最终答案。设想一个场景,我们的索引文档包含“阿尔法项目”的状态报告。
查询: "最新的阿尔法项目状态报告中提到了哪些主要挑战?"
可能的检索上下文 (context)(简化):
可能的rag_chain回复:
"根据最新的阿尔法项目状态报告,提到的主要挑战是与传统支付系统集成时的复杂性,第四季度资源分配比预期更紧张可能影响时间表,以及与贝塔团队API交付进度相关的依赖风险。"
请注意,此回复如何直接回应查询,并综合了从检索到的片段中找到的信息。它具体且基于文档内容。如果没有RAG,标准的LLM可能会提供关于项目挑战的通用答案,或者声明它无法访问具体的实时项目报告。
运行一次查询可以确认流程有效,但真正的理解来自于尝试。尝试不同类型的查询:
执行查询是RAG系统验证效果的时刻。它表明了将有针对性的信息检索与LLM的生成能力相结合的实际价值,从而根据您的具体数据来源产生相关且具备上下文感知的答案。在下一章中,我们将研究评估您的流程运行情况的方法,以及提高其效率的策略。
简洁的语法。内置调试功能。从第一天起就可投入生产。
为 ApX 背后的 AI 系统而构建
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•