上下文工程面试题库:大模型岗位高频考点深度解析

B站影视 韩国电影 2025-10-05 16:30 1

摘要:答案: 智能体的上下文指的是智能体在执行任务时,所能感知和利用的所有相关信息的总和。这包括:对话历史: 用户与智能体之间的多轮对话记录。工具调用结果: 智能体执行函数或调用API后返回的数据。系统提示词: 预先设定的角色、目标、约束和行为规范。外部知识: 从向

答案: 智能体的上下文指的是智能体在执行任务时,所能感知和利用的所有相关信息的总和。这包括:对话历史: 用户与智能体之间的多轮对话记录。工具调用结果: 智能体执行函数或调用API后返回的数据。系统提示词: 预先设定的角色、目标、约束和行为规范。外部知识: 从向量数据库或知识库中检索到的相关信息。环境状态: 在具身智能体中,还包括传感器数据、环境信息等。重要性: 上下文是智能体的“工作记忆”。没有有效的上下文,智能体就无法进行连贯的多轮对话、无法根据历史结果调整策略、也无法完成复杂的多步骤任务。它直接决定了智能体的可靠性、准确性和智能水平。

AI大模型全套面试题+入门到进阶学习包已准备好了,【有需要的朋友可以见文末跳转后自取~ 】

答案上下文窗口是大型语言模型一次性能处理的最大Token数(如4K, 16K, 128K, 200K等)。它是一个硬性限制。超长上下文处理策略:

1.滑动窗口: 只保留最近的一段对话历史,丢弃更早的内容。优点是简单高效,缺点是可能丢失关键的长程依赖信息。

2.摘要压缩

动态摘要: 在对话过程中,定期将较旧的对话内容总结成一段简洁的摘要,并将其作为新的上下文的一部分。递归摘要: 对于非常长的文档,可以将其分块,然后递归地对块进行摘要,最后再对摘要进行摘要。

3.选择性上下文: 这是最核心的策略。通过信息检索技术,只从外部知识库中加载与当前用户问题最相关的片段到上下文窗口中。

4.结构化提示: 使用特殊标记(如, )来清晰地组织上下文,帮助模型更好地理解不同部分的信息。

答案: 系统提示词用于设定智能体的基本运行规则,通常包含:角色定义: “你是一个专业的旅行助手。”核心目标: “你的目标是帮助用户规划详细且可行的旅行路线。”约束与边界: “不要推荐超出用户预算的选项。如果无法确认信息,必须明确告知用户。”工作流程: “首先确认用户的出行日期、预算和兴趣点。然后分步提供建议。”输出格式: “请以Markdown列表形式输出,包含日期、活动、预计开销。”工具使用规范: “在查询天气或航班信息时,你必须使用search_weather或search_flight工具。”

例子

你是一个高效的代码助手,名叫CodePal。你的职责是帮助开发者解决技术问题。回答必须准确、简洁。如果用户的问题需要调用API或查询文档,你必须使用search_official_docs工具。你的代码回复必须包含注释。

答案: 这是处理外部知识的核心架构。工作流程如下:

1.索引阶段

将外部文档(如公司内部文档、产品手册)进行分块。使用文本嵌入模型将每个文本块转换为向量(一组数字)。将这些向量及其对应的原始文本存储到向量数据库中。

2.检索阶段

用户提出一个问题。使用相同的嵌入模型将用户问题转换为查询向量。在向量数据库中进行相似性搜索(如余弦相似度),找出与查询向量最相似的几个文本块。

3.增强阶段

将检索到的相关文本块作为上下文,与用户原始问题一起拼接成一个新的、增强后的提示。例如: “请基于以下信息回答问题:[检索到的相关文本片段]。问题:[用户原始问题]”

4.生成阶段

将增强后的提示发送给大语言模型,让模型生成基于所提供上下文的答案。

架构图

答案: 检索失败是RAG系统的主要瓶颈,表现为检索到的内容不相关。应对策略:多路检索: 同时使用多种检索方式(如基于关键词的BM25和基于向量的相似度搜索),然后对结果进行重排序。查询重写: 在检索前,先用LLM对用户原始问题进行优化、扩展或重写,使其更符合知识库中的表述方式。小模型重排序: 使用专门的、轻量级的重排序模型对初步检索到的大量文档进行精细排序,选出Top-K最相关的。元数据过滤: 为文档块添加元数据(如来源、日期、章节),检索时结合语义和元数据进行过滤。递归检索: 先检索大的文档块定位范围,再在该大块内部进行更细粒度的检索。答案思维链是引导模型通过一系列中间推理步骤来解决问题的方法,而不是直接给出最终答案。在智能体中的应用:规划: 让智能体先输出一个计划(“要解决这个问题,我需要分三步:1. … 2. … 3. …”)。工具选择: 让智能体在调用工具前说明理由(“要获取天气信息,我需要调用get_weather工具,因为…”)。批判性反思: 如果工具调用结果不理想或任务失败,让智能体分析原因(“上一步失败是因为API参数错误,我应该重试并修正参数为…”),然后基于反思再次尝试。

例子:

用户请求: “帮我比较一下特斯拉和比亚迪最新款电动汽车的续航和价格。”智能体CoT:1. 思考: 这是一个复杂的比较任务。我需要先分别找出两个品牌的最新款车型。2. 行动: 调用工具 `search_car_models(brand=’Tesla’)` 和 `search_car_models(brand=’BYD’)`。3. 观察: 工具返回了车型列表。特斯拉是Model S Plaid,比亚迪是海豹。4. 思考: 现在我需要获取这两个具体车型的续航和价格信息。5. 行动: 调用工具 `get_car_specs(model=’Model S Plaid’)` 和 `get_car_specs(model=’海豹’)`。6. 观察: 工具返回了详细规格。7. 思考: 现在我已经拥有了所有必要信息,可以制作一个对比表格。8. 最终回答: 生成一个包含车型、续航、价格的Markdown对比表格。

这个“思考-行动-观察”的循环,就是智能体执行CoT的核心。

答案: 清晰的结构设计至关重要。推荐使用结构化格式,如JSON或XML,来区分不同部分。

示例结构:

你是一个数据分析助手。你可以使用以下工具:- query_database: 执行SQL查询。- plot_chart: 生成图表。请严格按照“思考->行动->观察”的流程工作。 请展示上个月销售额最高的三个产品。 {"thoughts": "用户需要上个月的销售Top 3。我需要先查询数据库。","action": {"name": "query_database","parameters": {"sql": "SELECT product_name, SUM(amount) AS total_sales FROM sales WHERE date >= ... GROUP BY ... ORDER BY total_sales DESC LIMIT 3;"}}}{"result": [{"product_name": "Product A", "total_sales": 50000},{"product_name": "Product B", "total_sales": 45000},{"product_name": "Product C", "total_sales": 40000}]}请为这个结果生成一个柱状图。

这种结构让模型能清晰地识别出系统指令、历史对话(包括自己的思考、行动和工具返回的结果)以及当前问题。

答案: 评估需要综合考量,可分为自动化指标人工评估自动化指标任务完成率: 智能体在测试集上成功完成任务的百分比。步骤效率: 完成一个任务平均需要调用工具的次数。越少越好(在保证正确的前提下)。hallucination 率: 智能体生成与提供上下文相悖或虚构信息的频率。检索精度: 在RAG中,检索到的文档与问题相关的比例。人工评估连贯性: 多轮对话是否自然流畅?准确性: 答案是否基于上下文且正确无误?有用性: 最终结果是否真正解决了用户的问题?答案: 除了基础部分提到的摘要,还有更精细的技术:

令牌级压缩: 在模型内部层面进行压缩,例如:

AutoCompressors: 训练模型将长上下文先压缩成一个短的“概要向量”,再基于这个向量生成回答。Landmark Attention: 让模型学会关注上下文中的关键“地标”令牌,忽略不重要的部分。

智能体自我压缩: 让智能体自己决定上下文中哪些部分最重要,并主动丢弃或摘要冗余信息。例如,在对话中,智能体可以问:“关于您刚才提到的预算问题,我是否已经理解正确?” 从而确认并压缩信息。

10. 编程题:请用伪代码或Python(使用LangChain/LlamaIndex等框架)实现一个最简单的RAG智能体,包含文档加载、向量索引和问答循环。答案(基于LangChain的伪代码风格):# 1. 导入和文档加载from langchain.document_loaders import TextLoaderfrom langchain.text_splitter import CharacterTextSplitterfrom langchain.embeddings import OpenAIEmbeddingsfrom langchain.vectorstores import Chromafrom langchain.llms import OpenAIfrom langchain.chains import RetrievalQAloader = TextLoader(‘my_document.txt’)documents = loader.load# 2. 文档分块text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)texts = text_splitter.split_documents(documents)# 3. 创建向量数据库embeddings = OpenAIEmbeddingsvectorstore = Chroma.from_documents(texts, embeddings)# 4. 创建RAG智能体(这里是一个QA链)qa_chain = RetrievalQA.from_chain_type(llm=OpenAI,chain_type=“stuff", # 简单地将检索到的文档“堆叠”到提示中retriever=vectorstore.as_retriever)# 5. 问答循环while True:query = input(“请输入你的问题: ")if query.lower == ‘quit’:breakanswer = qa_chain.run(query)print(f“答案: {answer}”)答案

上下文组成

系统提示: 定义客服角色、礼貌用语、公司政策(如退货期限)。用户档案: 当前用户的身份信息、会员等级等。会话历史: 本次对话的完整记录。相关数据订单数据库: 根据用户ID实时检索到的历史订单和当前订单。产品知识库: 根据用户咨询的产品ID,从RAG系统中检索到的产品详情、保修信息。政策文档: 检索相关的退货、保修政策原文。

工作流程

用户发起对话。智能体通过用户ID,从订单数据库拉取该用户的相关订单(如最近3个月的),作为上下文。用户表达意图(如“我想退货”)。智能体判断需要访问政策文档,通过RAG检索“退货流程”相关内容。智能体在上下文中结合用户具体订单(判断是否在退货期内)、检索到的政策会话历史,生成个性化回复(如“您的订单XXX符合退货条件,请按以下步骤操作…”)。

随着AI大模型技术的迅速发展,相关岗位的需求也日益增加。大模型产业链催生了一批高薪新职业:

人工智能大潮已来,不加入就可能被淘汰。如果你是技术人,尤其是互联网从业者,现在就开始学习AI大模型技术,真的是给你的人生一个重要建议!

只要你真心想学习AI大模型技术,这份精心整理的学习资料我愿意无偿分享给你,但是想学技术去乱搞的人别来找我!

在当前这个人工智能高速发展的时代,AI大模型正在深刻改变各行各业。我国对高水平AI人才的需求也日益增长,真正懂技术、能落地的人才依旧紧缺。我也希望通过这份资料,能够帮助更多有志于AI领域的朋友入门并深入学习。

自我们与MoPaaS魔泊云合作以来,我们不断打磨课程体系与技术内容,在细节上精益求精,同时在技术层面也新增了许多前沿且实用的内容,力求为大家带来更系统、更实战、更落地的大模型学习体验。

希望这份系统、实用的大模型学习路径,能够帮助你从零入门,进阶到实战,真正掌握AI时代的核心技能!

01 教学内容从零到精通完整闭环:【基础理论 →RAG开发 → Agent设计 → 模型微调与私有化部署调→热门技术】5大模块,内容比传统教材更贴近企业实战!大量真实项目案例: 带你亲自上手搞数据清洗、模型调优这些硬核操作,把课本知识变成真本事!02适学人群

应届毕业生: 无工作经验但想要系统学习AI大模型技术,期待通过实战项目掌握核心技术。

零基础转型: 非技术背景但关注AI应用场景,计划通过低代码工具实现“AI+行业”跨界。

业务赋能突破瓶颈: 传统开发者(Java/前端等)学习Transformer架构与LangChain框架,向AI全栈工程师转型。

来源:AI大模型知识库一点号

相关推荐