# 面试题

118 篇文章

与「面试题」相关的全部文章。

主流的 AI Agent 框架有哪些?

一、LangChain / LangGraph LangChain:LLM 应用编排,支持工具、记忆、RAG。 LangGraph:基于图的 Agent 编排,适合复杂多步任务。 生态最丰富,社区活跃。 二、AutoGen 微软出品,多 Agent 对话框架。 支持多个 Agent 协作,角色灵活。

AI Agent 的记忆机制?

一、短期记忆 当前对话上下文。 受 LLM 上下文窗口限制。 太长会丢失早期信息,浪费 token。 二、长期记忆 向量数据库存储历史交互、知识。 检索相关记忆注入上下文。 支持跨会话记忆。 三、记忆类型 情景记忆:具体的交互经历。 语义记忆:事实和知识。 程序记忆:技能和流程。 四、记忆管理 写入

AI Agent 如何调用工具?

一、Function Calling LLM 支持的函数调用能力。开发者定义工具 schema(名称、参数、描述),LLM 决定是否调用及参数,返回结构化 JSON。 二、流程 定义工具:名称、描述、参数 JSON Schema。 用户提问,LLM 判断需要调用工具。 LLM 返回工具名和参数。 应

ReAct 模式是什么?

一、定义 ReAct = Reasoning + Acting,是 Agent 的经典工作模式。交替进行推理和行动。 二、流程 Thought(思考):分析当前状态,决定下一步。 Action(行动):调用工具或执行操作。 Observation(观察):获取执行结果。 循环 1-3,直到任务完成。

什么是 AI Agent?

一、定义 AI Agent 是能感知环境、自主决策并执行动作的智能体。它能基于目标,自主规划、调用工具、执行任务,而不仅仅是回答问题。 二、核心能力 感知:理解用户输入和环境状态。 规划:把目标拆解为步骤。 记忆:短期(对话上下文)和长期(向量库)记忆。 工具调用:调用搜索、代码执行、API 等工具

RAG 系统的优化手段?

一、检索优化 分块优化:合理的块大小和重叠。 Embedding 优化:用更适合的模型,微调。 混合检索:向量 + 关键词,提升召回。 重排(Rerank):用 Cross-Encoder 对检索结果重排序,提升精度。 查询改写:用 LLM 改写用户问题,提升检索效果。 多查询:生成多个相关问题分别

如何评估 RAG 系统的效果?

一、评估维度 检索质量:检索到的文档是否相关。 生成质量:回答是否准确、完整、流畅。 端到端效果:整体回答是否满足用户。 二、检索评估指标 Recall(召回率):相关文档中被检索到的比例。 Precision(精确率):检索到的文档中相关的比例。 MRR:第一个相关文档的排名倒数。 NDCG:考虑

RAG 中的文档分块策略?

一、为什么要分块 文档太长无法直接向量化(Embedding 有 token 限制),且 LLM 上下文有限。分块后每块独立检索。 二、分块方法 1. 固定长度分块 按 token 数切分,如每块 500 token,重叠 50 token。 - 优点:简单。 - 缺点:可能切断语义。 2. 按结构

RAG 中的 Embedding 和向量数据库?

一、Embedding(嵌入) 把文本转换为高维向量(如 768/1024 维),语义相近的文本向量距离近。 二、向量数据库 专门存储和检索向量的数据库,支持相似性搜索。 Milvus:开源,高性能,分布式。 Pinecone:云服务。 Weaviate:开源,支持混合检索。 Chroma:轻量,适

什么是 RAG?

一、定义 RAG(Retrieval-Augmented Generation,检索增强生成)把外部知识检索和大语言模型生成结合起来。先从知识库检索相关文档,再让 LLM 基于检索结果生成回答。 二、解决的问题 LLM 知识截止,不知道最新信息。 LLM 幻觉,编造内容。 LLM 不知道企业私有知识

Elasticsearch 性能优化?

一、写入优化 批量写入(Bulk API),减少网络开销。 增加 refresh_interval(如 30s),减少 refresh 频率。 关闭副本,写完再开。 用 SSD 存储。 TransLog 异步刷盘。 二、查询优化 用 filter 替代 query 做过滤。 避免深度分页,用 sea

Elasticsearch 集群架构?

一、节点角色 Master:管理集群元数据,选举。 Data:存储分片数据,执行 CRUD、搜索。 Ingest:数据预处理(pipeline)。 Coordinating:路由请求,合并结果。 Machine Learning:机器学习。 Remote Cluster:跨集群搜索。 二、分片 In

Elasticsearch 常用查询类型?

一、全文查询 match:对查询词分词后匹配。 match_phrase:短语匹配,词序固定。 multi_match:多字段匹配。 query_string:支持 Lucene 查询语法。 二、精确查询 term:精确匹配不分词的值。 terms:多值精确匹配。 range:范围查询。 exist

Elasticsearch 的倒排索引原理?

一、定义 正排索引:文档 → 词列表。 倒排索引:词 → 文档列表。 二、构建过程 文档内容分词,得到词(term)。 建立 term → [doc1, doc2, ...] 的映射。 记录词频、位置等信息。 三、示例 文档1:Java 面试 文档2:Java 集合 文档3:Redis 缓存 倒排

Elasticsearch 的核心概念?

一、核心概念 Index(索引):类似数据库的表,存储文档。 Document(文档):JSON 格式的数据,类似行。 Field(字段):文档中的键值对,类似列。 Shard(分片):索引分成多个分片,分布在不同节点。 Replica(副本):分片的副本,高可用。 二、集群 多个 Node 组成

如何设计故障容错的系统?

一、冗余 多实例部署,避免单点。 数据多副本(主从、集群)。 多机房部署。 二、故障检测 心跳检测,快速发现故障。 全链路监控,告警。 三、故障转移 自动切换(哨兵、集群选主)。 手动切流(流量调度)。 四、降级 非核心功能降级,保核心。 返回兜底数据。 五、熔断 下游故障快速失败,防止雪崩。 六、

CAP 定理和 BASE 理论?

一、CAP 定理 分布式系统不可能同时满足三个特性,最多满足两个: Consistency(一致性):所有节点同一时刻看到相同数据。 Availability(可用性):每个请求都能收到响应(不一定是最新数据)。 Partition tolerance(分区容错性):网络分区时系统仍能运行。 二、C

微服务高可用设计?

一、无状态服务 服务不保存状态,状态存 Redis/DB。 多实例部署,负载均衡。 任一实例挂了不影响。 二、服务发现 注册中心(Nacos/Eureka)。 服务实例上下线自动感知。 客户端负载均衡跳过不健康节点。 三、健康检查 注册中心心跳检测,不健康实例剔除。 K8s liveness/rea

MySQL 高可用方案?

一、主从复制 Master 写,Slave 读,异步复制。 Master 挂了需手动切换。 可能数据丢失(异步复制延迟)。 二、MHA(Master High Availability) 自动监控 Master,故障时自动切换。 需额外管理节点。 三、MGR(MySQL Group Replicat

Redis 高可用方案有哪些?

一、主从复制 Master 写,Slave 异步复制数据。 读可从 Slave,分担读压力。 Master 挂了需手动切换,不能自动故障转移。 二、哨兵模式(Sentinel) Sentinel 监控 Master/Slave 健康。 Master 故障时自动选举新 Master,通知客户端。 适合