跳转至

OpenAI API 面试题

涵盖 Responses API、流式响应、函数调用、Embedding API、微调。共 130 题:基础 52、进阶 46、高级 32。

基础题(难度:⭐)

1. OpenAI API 的核心认证方式是什么?

参考答案: Bearer Token 认证,请求头 Authorization: Bearer sk-xxx。密钥从平台生成,分 Project Key 与 Org Key。建议用环境变量存储,禁止硬编码与提交到代码库。

2. OpenAI Python SDK 的基本安装与初始化?

参考答案: pip install openai;初始化 from openai import OpenAI; client = OpenAI(api_key=...)(>=1.0)。也可用 AsyncOpenAI 异步客户端。密钥可省略自动读 OPENAI_API_KEY 环境变量。

3. Chat Completions API 的基本调用?

参考答案: client.chat.completions.create(model="gpt-4o", messages=[{"role":"user","content":"Hi"}])。messages 含 system/user/assistant/tool 角色,返回 choices[0].message.content。

4. messages 中支持哪些角色?

参考答案: system(系统指令)、user(用户)、assistant(模型回复)、tool(工具返回结果)、developer(开发者指令,新角色)。按顺序组成对话历史。

5. Responses API 与 Chat Completions API 的区别?

参考答案: Responses API 是新一代统一接口(2025 推出),整合对话、工具、文件、内置工具(搜索/代码解释器)与状态管理;Chat Completions 是经典对话接口。新功能优先在 Responses 提供,推荐迁移。

6. 如何获取模型生成的文本内容?

参考答案: 同步:resp.choices[0].message.content;流式:累积 chunk.choices[0].delta.content。Responses API 用 resp.output_text 或遍历 output 结构。

7. model 参数如何选择?

参考答案: 按任务与成本选:gpt-4o(旗舰多模态)、gpt-4o-mini(便宜快速)、o1/o3(推理系列适合复杂推理)、gpt-4.1(长上下文)。简单任务用 mini 降本,复杂用旗舰。

8. temperature 参数的取值范围与作用?

参考答案: 0-2,默认 1。0 几乎确定性,适合代码/JSON/Agent;0.7 平衡创作;>1 更随机。Agent 与结构化输出建议 0-0.3。

9. max_tokens 参数的作用?

参考答案: 限制模型单次生成的最大 Token 数(含推理 Token,o 系列含 thinking)。超出会被截断。需结合上下文窗口预留空间,避免输出不完整。

10. 什么是流式响应(Streaming)?

参考答案: 设 stream=True,模型逐 Token 返回 SSE 事件,前端实时显示,降低首字节延迟。需累积 delta 拼接完整内容,注意错误处理与连接中断。

11. 如何用 Python SDK 处理流式响应?

参考答案: stream = client.chat.completions.create(..., stream=True); for chunk in stream: print(chunk.choices[0].delta.content or "")。异步用 async for chunk in await ...。

12. SSE(Server-Sent Events)是什么?

参考答案: 基于 HTTP 的服务器单向推送协议,Content-Type: text/event-stream,data: ...\n\n 格式。OpenAI 流式响应用 SSE,浏览器原生 EventSource 接收,适合 LLM 流式输出。

13. 什么是 Function Calling(函数调用)?

参考答案: 定义工具 schema,模型根据用户意图输出 tool_calls(函数名+JSON 参数),由应用执行后回传结果继续对话。是 Agent 调用工具的标准机制。

14. 如何定义一个工具(tool)?

参考答案: tools=[{"type":"function","function":{"name":"get_weather","description":"...","parameters":{"type":"object","properties":{...},"required":[...]}}}]。JSON Schema 描述参数。

15. 模型返回 tool_calls 后如何处理?

参考答案: 解析 tool_calls 列表,按 name 与 arguments 调用对应函数,将结果以 role="tool" 消息(含 tool_call_id)回传,再次调用模型生成最终回复。

16. tool_choice 参数的作用?

参考答案: 控制工具调用行为:"auto"(默认自动决定)、"none"(不调用)、"required"(必须调用)、指定 {"type":"function","function":{"name":"xxx"}}(强制调指定工具)。

17. 什么是 parallel_tool_calls?

参考答案: 设为 true 时模型可一次返回多个 tool_calls 并行执行,提升效率。需应用支持并发执行与按 tool_call_id 对应结果。默认开启(部分模型)。

18. Embedding API 的作用是什么?

参考答案: 将文本转为向量(如 text-embedding-3-large 输出 3072 维),用于语义搜索、聚类、分类、RAG。调用 client.embeddings.create(model=..., input=...)。

19. 常用 Embedding 模型有哪些?

参考答案: text-embedding-3-small(1536 维,便宜)、text-embedding-3-large(3072 维,精度高)、text-embedding-ada-002(旧版 1536 维)。新 3 系列支持降维。

20. Embedding 的 input 参数支持什么?

参考答案: 单个字符串或字符串数组(批量)。批量更高效,但有总长度限制(如 8192 Token/输入,总量有限制)。建议批量嵌入降低请求开销。

21. Embedding 维度(dimensions)参数的作用?

参考答案: text-embedding-3 系列支持指定 dimensions 降维(如 256/512/1024),用 MRL 技术,降低存储与检索成本但精度略降。需查询与索引维度一致。

22. 如何计算两个文本的语义相似度?

参考答案: 分别 Embedding 后计算 Cosine 相似度:dot(a,b)/(|a||b|)。值越接近 1 越相似。OpenAI Embedding 已归一化,可直接用点积。

23. 什么是 Fine-tuning(微调)API?

参考答案: 上传训练数据(instruction/completion 对),OpenAI 在基础模型上训练定制模型,改变风格或提升特定任务能力。调用 client.fine_tuning.jobs.create(...)。

24. 微调适合解决什么问题?

参考答案: 固定输出风格/格式、提升特定领域准确率、减少 Prompt 长度降本、教模型新技能。不适合注入新知识(用 RAG)、修复事实错误。

25. 微调支持哪些基础模型?

参考答案: gpt-4o、gpt-4o-mini、gpt-3.5-turbo 等。具体可用模型随时间更新,参考官方文档。新模型优先支持 gpt-4o 系列。

26. 微调训练数据的格式是什么?

参考答案: JSONL 文件,每行一个示例:{"messages":[{"role":"system",...},{"role":"user",...},{"role":"assistant",...}]}。与 ChatML 格式一致,可含 tool 消息。

27. 微调需要多少训练数据?

参考答案: 至少 10 条起,建议 50-500 条见效,高质量数据越多越好但边际递减。重在质量与多样性而非数量,错误数据会损害效果。

28. 如何上传微调训练文件?

参考答案: client.files.create(file=open("train.jsonl","rb"), purpose="fine-tune"),返回 file_id。再用于创建微调任务。文件需符合格式与大小限制。

29. 微调任务的状态有哪些?

参考答案: created → pending → running → succeeded/failed/cancelled。可轮询查询或用 webhook 通知。完成后返回 fine_tuned_model 名称用于调用。

30. 如何使用微调后的模型?

参考答案: 微调成功后用返回的模型名(如 ft:gpt-4o:xxx:xxx)作为 model 参数调用 chat completions,与基础模型用法一致。计费按微调模型价格。

31. Assistants API 是什么?

参考答案: 旧版有状态助手 API,封装指令、模型、工具、文件、线程(Thread)管理。新项目推荐用 Responses API 或 Agents SDK,Assistants 逐步被替代。

32. 什么是 Token 计费?输入输出如何计费?

参考答案: 按 Token 数计费,输入与输出分别计价,输出通常贵 3-4 倍。微调模型有训练费与推理加价。缓存命中输入降本。见官方定价页。

33. 什么是 Prompt Caching(提示缓存)?

参考答案: 相同前缀(如长 system prompt、文档)自动缓存,后续请求命中缓存按更低价格计费(约 1/10),降低重复上下文成本。要求前缀完全一致。

34. 如何启用 Prompt Caching?

参考答案: 自动启用无需配置。将稳定内容(system prompt、工具定义、长文档)放在 messages 前部,变化内容放后部,确保前缀一致以命中缓存。

35. OpenAI API 的速率限制(Rate Limit)是什么?

参考答案: 按 Tier(层级)限制每分钟请求数(RPM)与 Token 数(TPM),层级随充值提升。超限返回 429 错误。需重试退避与限流控制。

36. 遇到 429 错误如何处理?

参考答案: 指数退避重试(Retry-After 头或自动);降低请求频率;升级 Tier;分流到多账号/多 key;本地排队限流;缓存复用结果。SDK 内置自动重试(max_retries)。

37. 遇到 5xx 错误如何处理?

参考答案: 服务端临时错误,指数退避重试;切换备用区域/模型;降级响应;告知用户稍后重试;监控告警。SDK 默认重试 2 次,可调 max_retries。

38. OpenAI SDK 的超时如何设置?

参考答案: OpenAI(timeout=60.0) 或 httpx.Timeout(...)。可分别设连接/读取/写入超时。流式响应需设较大读取超时或禁用,用 idle 超时控制。

39. 如何获取 Token 使用量(usage)?

参考答案: 响应的 usage 字段含 prompt_tokens、completion_tokens、total_tokens,微调还含推理 token。用于计费统计与成本监控。流式需设 stream_options include_usage 在最后 chunk 获取。

40. structured outputs(结构化输出)是什么?

参考答案: 强制模型输出符合给定 JSON Schema 的 JSON,通过 response_format={"type":"json_schema","json_schema":{...}} 启用。保证格式可靠,便于程序解析。

41. response_format 的常见取值?

参考答案: {"type":"text"}(默认文本)、{"type":"json_object"}(输出 JSON 但不强制 schema)、{"type":"json_schema","json_schema":{...}}(强制 schema,最严格)。

42. json_object 与 json_schema 的区别?

参考答案: json_object 只保证返回合法 JSON,结构与字段名靠 prompt 引导,可能不一致;json_schema 强制符合 schema,字段名类型约束严格,可靠性高。

43. 如何让模型输出 JSON?

参考答案: 用 response_format json_schema(最可靠);或在 system prompt 明确"只输出 JSON"+示例;旧版用 json_object。务必提示模型输出 JSON 否则可能拒答。

44. OpenAI API 的 base_url 能修改吗?

参考答案: 可以,OpenAI(base_url="https://...")。用于接入兼容 OpenAI 协议的服务(Azure、第三方代理、本地 vLLM/Ollama 等),实现多后端切换。

45. Azure OpenAI 与 OpenAI API 的区别?

参考答案: Azure 版部署在企业租户,需 resource 与 deployment name,认证用 api-key 或 AAD;提供数据驻留、合规、区域选择;API 路径与参数略不同,SDK 用 AzureOpenAI 客户端。

46. 如何在 SDK 中实现自动重试?

参考答案: OpenAI(max_retries=5) 配置最大重试次数,SDK 自动对 429/5xx 指数退避重试。也可用 tenacity 自定义更细粒度策略(区分错误、回调)。

47. OpenAI API 是否支持多模态输入?

参考答案: 支持。gpt-4o 等模型可在 messages 中传图片(URL 或 base64):{"type":"image_url","image_url":{"url":"data:...;base64,..."}}。也支持音频输入。

48. 如何在对话中传入图片?

参考答案: user message 的 content 用数组:[{"type":"text","text":"..."},{"type":"image_url","image_url":{"url":"...","detail":"high"}}]。图片按 Token 计费,detail 控制分辨率。

49. 什么是 Batch API?

参考答案: 批量异步处理大量请求,提交 JSONL 文件,24 小时内返回结果,价格减半(50% 折扣)。适合非实时批处理任务如离线评测、数据标注。

50. Batch API 的使用流程?

参考答案: 准备 JSONL 请求文件上传 → client.batches.create(input_file_id=..., endpoint="/v1/chat/completions", completion_window="24h") → 轮询状态 → 完成后下载结果文件解析。

51. OpenAI 的内置工具有哪些?

参考答案: web_search(联网搜索)、code_interpreter(代码执行)、file_search(向量检索文件)、computer_use(操作电脑)。Responses API 直接启用,无需自己实现。

参考答案: Responses API 中 tools=[{"type":"web_search"}] 或 {"type":"web_search_preview"}。模型自动决定搜索并整合结果,引用来源。适合需要实时信息的场景。

进阶题(难度:⭐⭐)

1. Responses API 的状态管理(state)机制?

参考答案: 通过 previous_response_id 串联对话,服务端自动维护历史与上下文,无需客户端重传 messages。简化多轮对话与工具调用编排,降低 Token 与复杂度。

2. Responses API 的 input 与 input_text 区别?

参考答案: input 接受完整消息结构(含角色、工具结果等);input_text 是简写仅传字符串作为 user 消息。简单对话用 input_text,复杂场景用 input 数组。

3. Responses API 如何处理工具调用结果?

参考答案: 工具调用后,将结果作为 {"type":"function_call_output","call_id":"...","output":"..."} 加入 input 再次调用,或用 previous_response_id 续接。框架(Agents SDK)自动处理循环。

4. 流式响应中如何区分内容与工具调用?

参考答案: 流式 chunk 的 delta 含不同字段:content(文本)、tool_calls(工具调用增量)、reasoning(o 系列思考)。需分别累积拼装。Responses API 用事件类型(response.output_text.delta 等)区分。

5. 流式响应中工具调用的参数如何拼接?

参考答案: tool_calls 分块返回,arguments 是 JSON 字符串的片段,需按 index 累积拼接完整 JSON 后再解析。注意同一 index 多片段与多工具并发的情况。

6. 如何实现流式响应的中断与取消?

参考答案: 客户端关闭 SSE 连接即取消;后端用请求取消信号停止后续生成;前端提供停止按钮。注意取消后已生成内容可保留。SDK 流式迭代可用 break 退出。

7. o1/o3 推理模型的 API 调用注意点?

参考答案: 支持 system/developer 消息受限;temperature 固定 1;部分参数(top_p/logprobs 等)不支持;reasoning_effort 控制思考深度(low/medium/high);输出含 reasoning token 计费但有最大额度。

8. reasoning_effort 参数如何选择?

参考答案: low 快速低成本适合简单任务;medium 平衡(默认);high 深度推理适合复杂数学/代码/规划。思考越多延迟与成本越高但准确率提升。按任务难度动态选择。

9. 如何在 o 系列中查看推理过程?

参考答案: 默认隐藏,可设 reasoning={"summary":"auto"} 获取推理摘要(非完整思考)。完整 reasoning content 受限。用于调试与可解释性,但不应依赖其做逻辑判断。

10. Function Calling 的 strict 模式是什么?

参考答案: strict:true 强制模型输出严格符合 schema 的 JSON(guaranteed schema adherence),禁止额外字段、所有字段必填或 optional。靠受限解码实现,100% 格式正确。需 schema 符合规范。

11. strict 模式对 schema 有什么限制?

参考答案: 所有字段需 type;optional 字段须在 required 中但允许 null;不支持任意 oneOf 嵌套;additionalProperties:false;递归深度受限;需符合官方规范。设计 schema 时注意。

12. 如何让 Function Calling 更准确?

参考答案: 工具描述清晰具体(何时用/不用/参数含义);参数加 description 与 enum 约束;Few-shot 示例;限制工具数量(<10-20);按场景动态筛选工具;strict 模式保证格式。

13. parallel_tool_calls 的处理陷阱?

参考答案: 多个 tool_calls 需按 tool_call_id 对应结果回传;并发执行需注意依赖与顺序;部分失败需决定整体策略;模型可能假设并行但实际需串行的工具需在描述说明。

14. 如何用 Embedding 做语义搜索?

参考答案: 离线:文档分块→Embedding→存向量库。在线:query Embedding→向量库 ANN 检索 top-k→返回相关文档。可加 rerank 提升精度。是 RAG 的核心检索环节。

15. Embedding 批量请求的最佳实践?

参考答案: 批量嵌入(input 数组)减少请求数;控制单批 Token 总量不超限;并发受限流控制;失败重试整批或单条;缓存避免重复嵌入;离线批量用 Batch API 降本。

16. 如何选择 Embedding 维度?

参考答案: 大规模数据用低维(256/512)省存储与提速;高精度场景用高维(3072);可先用高维评测,再测试降维后召回率损失,选性价比最高维度。MRL 支持灵活降维。

17. 微调前应做哪些准备?

参考答案: 先用 prompt+few-shot 验证任务可行;准备高质量多样数据(>50 条);分析失败案例补充数据;设计统一 system prompt;评估 ROI(成本 vs 收益);了解是否真的需要微调。

18. 微调数据应如何准备?

参考答案: 覆盖典型场景与边界;风格统一;assistant 回复高质量(人工校对);多样长度与复杂度;去除敏感信息;平衡类别分布;可从 GPT-4 生成数据蒸馏到 4o-mini。

19. 微调的 hyperparameters 如何设置?

参考答案: epochs 默认 3,简单任务 1-2,复杂 3-4,过多过拟合;batch_size 自动;learning_rate 默认乘子 1,可调 0.5-2。用验证集监控 loss 选最佳 checkpoint。

20. 如何评估微调效果?

参考答案: 留出验证集监控 loss 与准确率;对比基础模型在测试集上的任务指标(格式正确率、准确率、人工评分);A/B 在线测试;检查过拟合(训练好验证差)。不要只看训练 loss。

21. 微调过拟合如何处理?

参考答案: 减少 epochs;增加多样数据;降低学习率;数据增强;early stopping(如有关闭);正则化。观察训练/验证 loss 曲线,验证上升即过拟合。

22. 微调后模型能力下降怎么办?

参考答案: 检查数据质量与分布;混合通用数据避免灾难性遗忘;降低 epochs/学习率;重新审视是否需要微调;改用 RAG/Prompt 解决;联系支持。微调不是万能。

23. Prompt Caching 的最佳实践?

参考答案: 稳定前缀(system prompt、工具定义、长文档)放最前;变化内容(用户消息)放后;前缀需完全一致(含空格);同一组织内有效;监控 cache_hit_tokens 评估命中率。

24. 如何降低 OpenAI API 成本?

参考答案: 小模型路由简单任务;Prompt Caching 复用;精简 prompt 与上下文;Batch API 批处理;限制 max_tokens;微调小模型替代大模型;缓存响应;监控用量;降维 Embedding。

25. 如何监控 OpenAI API 用量与成本?

参考答案: 记录每次 usage(prompt/completion/cached tokens);按用户/功能分摊;设预算告警;平台 Usage 页查看;导出账单分析;Prometheus/Grafana 仪表盘;异常激增告警。

26. 多账号/多 key 分流策略?

参考答案: 负载均衡按速率限制分发;按租户/项目隔离 key;故障转移;密钥池轮换;监控各 key 用量;注意合规与 ToS。需统一日志与计费归集。

27. 如何处理长文本超出上下文窗口?

参考答案: 分块+RAG 检索相关片段;摘要压缩;Map-Reduce 分段处理再汇总;长上下文模型(gpt-4.1 1M);分段续写保持连贯;优先用 RAG 而非全塞入。

28. vision 模型的图片 Token 如何计算?

参考答案: 按图片分辨率与 detail 计算:low 固定 85 tokens;high 按瓦片数(每 512x512 约 170 tokens)+85 基础。大图耗 Token 多,按需选 detail 级别。

29. 如何在对话中引用文件?

参考答案: 上传文件 file_id,在 message 用 {"type":"file","file_id":"..."};或用 file_search 工具检索;或先解析文本入 prompt。Responses API 支持直接传文件输入。

30. code_interpreter 工具的使用场景与限制?

参考答案: 场景:数据分析、计算、生成图表、处理文件。限制:沙箱环境、无网络(部分)、执行时间与内存限制、文件持久化有限。适合需要精确计算的任务。

参考答案: 上传文件自动分块+Embedding 存入向量库;模型决定搜索时检索相关片段注入上下文。封装了 RAG 流程,开箱即用但可控性低,企业级常自建 RAG。

32. 如何调试 Function Calling 失败?

参考答案: 检查工具描述是否清晰;参数 schema 是否正确;模型是否支持;打印 tool_calls 原始内容;尝试 strict 模式;调整 temperature;提供 few-shot;换更强模型;检查参数 JSON 解析错误。

33. 模型不调用工具怎么办?

参考答案: 检查工具描述与任务相关性;tool_choice 设 required 或指定工具;在 system prompt 强调何时用工具;换支持工具更强的模型;提供 few-shot 示例;检查参数 schema。

34. 模型调用错误工具怎么办?

参考答案: 优化工具描述区分边界;减少相似工具;合并功能;提供选择理由输出;按场景筛选可用工具子集;增加 few-shot 对比;用更强模型。

35. 如何处理工具调用参数缺失或错误?

参考答案: 参数校验失败时回传错误信息让模型修正;schema 用 enum/required 约束;strict 模式;提供参数示例;缺参时模型可主动询问用户。不要静默忽略错误。

36. Responses API 与 Agents SDK 的关系?

参考答案: Agents SDK 是基于 Responses API 的高层框架,封装 Agent 循环、工具编排、handoff、guardrail、session 管理,简化多步 Agent 开发。底层调用 Responses API。

37. Responses API 的 max_output_tokens 与 max_tokens 区别?

参考答案: 新接口用 max_output_tokens 仅限输出 Token(不含输入);旧 Chat Completions 的 max_tokens 含义类似但命名不同。o 系列需注意含 reasoning token。

38. 如何在流式响应中获取 usage?

参考答案: 设 stream_options={"include_usage": true},最后一个 chunk 含 usage 字段(不含内容)。Responses API 流式也有 usage 事件。用于成本统计与监控。

39. OpenAI API 的 idempotency 如何保证?

参考答案: 可用 Idempotency-Key 请求头(部分接口支持),相同 key 重试返回相同结果避免重复扣费。无该机制时需业务层幂等(如任务 ID 去重)。

40. 如何安全地代理 OpenAI API 给前端?

参考答案: 后端代理转发,不暴露 API key;前端请求自家后端;按用户限流与鉴权;记录用量;过滤敏感内容;可换 key 池。禁止前端直接调 OpenAI 暴露 key。

41. 如何处理 API 响应缓慢?

参考答案: 用流式降低首字节延迟;检查 prompt 长度;减少 max_tokens;换更快模型(mini);排查网络;并发请求分摊;缓存热结果;监控 P99 延迟;设超时降级。

42. 如何在异步框架中调用 OpenAI API?

参考答案: 用 AsyncOpenAI 客户端,await client.chat.completions.create(...);并发用 asyncio.gather 配合 Semaphore 限流;注意超时与重试;流式用 async for。

43. 如何对比不同模型的输出质量?

参考答案: 准备测试集;同输入调多模型;人工盲评或 LLM-as-Judge;统计准确率/格式正确率/满意度;记录延迟与成本;A/B 在线测试。综合质量、成本、延迟选型。

44. 微调与 RAG 何时组合使用?

参考答案: 微调改风格/格式/能力,RAG 增知识/时效性。需定制输出风格且引用私有知识时组合:微调模型 + RAG 注入知识。先 RAG 后微调,避免微调学死知识。

45. 如何实现多语言 LLM 应用?

参考答案: GPT 系列多语言能力强,直接用;system prompt 指定输出语言;Embedding 用多语言模型(text-embedding-3);翻译中间层;按语言路由;评测覆盖多语言。

46. OpenAI API 的合规与数据隐私注意点?

参考答案: 默认数据可能用于训练(可申请退出);企业版/零保留 API 不训练;敏感数据脱敏;遵守 GDPR/当地法规;数据驻留需求用 Azure OpenAI;审计日志;用户告知。

高级题(难度:⭐⭐⭐)

1. 设计一个高可用的 OpenAI API 调用层。

参考答案: 多 key/多账号池负载均衡;自动重试退避(429/5xx);熔断降级(切换模型/区域);限流(TPM/RPM);缓存复用;超时控制;指标监控;密钥轮换;故障转移 Azure/第三方兼容服务。

2. 如何实现 OpenAI API 的智能模型路由?

参考答案: 意图分类器(小模型/规则)判难度;简单→mini,复杂→4o,推理→o3;按 token 长度路由;按工具需求路由;按成本预算动态选;级联:mini 先答置信低再升级;持续优化路由策略。

3. 分析 Prompt Caching 的命中条件与优化。

参考答案: 命中需前缀完全相同(字节级),含 system/tools/messages 前部;缓存有 TTL(5-10 分钟)与组织隔离;优化:稳定内容前置、参数固定、避免动态前缀、批量同 prompt 请求、监控 cached_tokens。

4. 如何设计支持百万级并发的 OpenAI API 网关?

参考答案: 多级限流(用户/租户/全局);请求队列削峰;多 key 池动态分配;异步非阻塞 IO;连接复用;熔断保护;降级策略;水平扩展无状态网关;监控与自动扩缩容;预留 Tier 配额。

5. 设计一个生产级流式响应中间件。

参考答案: SSE 协议封装;事件类型区分(token/tool/error/done);背压控制(客户端慢则缓冲/断开);断线重连与续传(last-event-id);超时心跳保活;错误统一格式;指标采集;多消费者广播。

6. 如何实现 Agent 的工具调用编排引擎?

参考答案: 工具注册表;调用计划(串行/并行/依赖图);执行器(同步/异步/超时);结果校验与转换;错误处理与重试;上下文管理;可观测追踪;权限校验;回滚机制。支持声明式编排。

7. 分析 strict mode 的实现原理与限制。

参考答案: 原理:基于 schema 生成受限文法,在解码时只允许符合 schema 的 Token,保证 100% 合规。限制:schema 需符合规范(无复杂 oneOf、字段必填、additionalProperties:false);灵活性低;不支持任意自由结构。

8. 如何评估与优化 Function Calling 的准确率?

参考答案: 构建测试集(用户意图→期望工具+参数);统计工具选择准确率、参数正确率、漏调/误调率;分析失败案例优化描述与 schema;Few-shot;工具数量控制;按场景筛选工具;A/B 对比迭代。

9. 设计微调数据集的自动生成流水线。

参考答案: 用 GPT-4 生成种子数据;多样化输入(模板/真实日志);人工/模型校验质量;去重与平衡;敏感信息脱敏;格式校验;自动评测过滤低质;数据增强(改写/扰动);版本管理;持续迭代。

10. 分析微调的成本效益与替代方案决策。

参考答案: 成本:训练费+推理加价+数据准备+运维。效益:降本(小模型替大)、提质量、固定风格。决策:先试 prompt+few-shot;再试 RAG;都不行且数据充足才微调。算 ROI,避免过度工程。

11. 如何实现跨模型的统一调用与降级?

参考答案: 抽象 LLM 接口;适配器封装各厂商;统一消息/工具/响应格式;特性检测与降级(无工具则改 prompt);主备模型配置;健康检查自动切换;成本与延迟统计。LiteLLM/Portkey 等参考。

12. 设计一个 RAG + Function Calling 的混合 Agent。

参考答案: 工具含知识检索(file_search/自建 RAG)、计算、API;模型按需选工具;检索结果注入上下文继续推理;多轮工具调用;引用溯源;缓存检索结果;监控检索与调用准确率。

13. 如何处理 OpenAI API 的版本兼容与升级?

参考答案: 关注 changelog 与废弃通知;SDK 锁版本(requirements 锁定);新版本灰度测试;抽象接口隔离变化;旧模型有废弃时间表及时迁移;保留回滚能力;自动化测试覆盖核心场景。

14. 分析 o 系列推理模型的工程应用策略。

参考答案: 适合复杂推理(数学/代码/规划/科学);延迟高成本高,仅用于难任务;reasoning_effort 按难度动态调;缓存推理结果复用;与其他模型分工(mini 分类→o 推理);监控推理 token 消耗。

15. 设计一个支持工具调用断点续传的会话系统。

参考答案: 持久化对话历史与 tool_calls 状态;中断时保存待执行工具列表;恢复时从 checkpoint 续跑;幂等工具可重放;tool_call_id 关联结果;前端可查看进度与续接。Responses API 的 state 简化实现。

16. 如何实现 LLM 输出的实时后处理与校验?

参考答案: 流式解析增量 JSON;schema 实时校验;敏感词过滤;PII 脱敏;格式修复;引用校验;安全分类;不合规时中断或重生成。需低延迟,可用小模型/规则并行处理。

17. 分析多模态 Agent 的工程挑战。

参考答案: 图片/音频 Token 成本高;不同模态对齐与融合;工具返回多模态结果处理;长视频上下文爆炸;延迟与带宽;评测困难;隐私(人脸/声音)。需按需选模态、压缩、分块、异步处理。

18. 设计一个 LLM 应用的全链路可观测体系。

参考答案: Trace 每次请求跨工具调用;Span 记录 LLM/检索/工具耗时;日志含 input/output/usage;指标(QPS/延迟/成本/错误率/缓存命中);分布式追踪传播;LangSmith/Langfuse/OTel 集成;告警与看板。

19. 如何实现 OpenAI API 的细粒度成本归因?

参考答案: 每次调用记录 user/tenant/feature/model/usage;按 token 单价计费;分摊缓存折扣与微调加价;聚合到维度报表;预算与配额;异常告警;账单对账;展示给业务方。需精确的 token 计数与单价表。

20. 分析 Agent 中 LLM 调用的死循环与资源耗尽风险。

参考答案: 风险:模型反复调用工具不收敛、上下文膨胀、token 与成本飙升、无限等待。防御:最大步数/Token/成本预算;重复动作检测;工具调用频率限制;超时与取消;监控告警;人工干预阈值。

21. 设计一个支持多租户的 LLM 网关。

参考答案: 租户隔离(key/配额/模型权限);按租户限流与计费;数据隔离与审计;自定义 prompt/工具配置;密钥按租户管理;租户级缓存;监控与告警;资源配额与公平调度。

22. 如何实现 LLM 调用的语义缓存?

参考答案: query Embedding→向量检索相似历史请求→相似度阈值判断→命中则返回缓存回复(可校验时效性)。适合 FAQ 类高频查询。需处理缓存失效、个性化、时效敏感内容。省成本但需评估准确率。

23. 分析 OpenAI API 的故障域与容灾策略。

参考答案: 故障域:单区域服务中断、模型废弃、限流、网络。容灾:多区域 Azure 部署;第三方兼容服务兜底(Anthropic/本地模型);降级模型;缓存兜底;熔断快速失败;客户端重试;告知用户。分级 SLA。

24. 设计一个支持长任务的 Agent 任务编排平台。

参考答案: 任务队列+状态机;Agent worker 池;checkpoint 持久化;断点续传;并发任务调度;资源配额;优先级;超时与重试;结果存储与检索;监控面板;人工干预接口;webhook 通知。

25. 如何评估与保障 LLM 应用的安全性?

参考答案: 红队测试越狱/注入;输入输出安全分类;敏感信息脱敏;工具权限最小化;审计日志;速率限制防滥用;内容政策过滤;漏洞扫描;合规审查;应急响应预案;模型行为监控。

26. 分析 Embedding 模型升级的影响与迁移。

参考答案: 新模型精度高但向量不兼容,需重建全部索引;迁移:双写新旧索引→切流量→下线旧;或离线重建后切换。评估新模型召回率提升是否值得迁移成本;保留旧模型一段时间过渡。

27. 设计一个 LLM 应用的灰度发布机制。

参考答案: 按用户/租户/流量百分比分流;新旧版本并行;对比核心指标(质量/延迟/成本/错误);自动回滚条件;渐进放量(1%→5%→50%→100%);可观测对比看板;一键回滚;隔离实验避免污染。

28. 如何实现 OpenAI API 调用的全链路压测?

参考答案: 用真实流量回放或合成负载;分梯度施压找瓶颈;mock OpenAI 避免真实成本与限流(或用 staging key);监控网关/队列/缓存/下游;测限流与降级;测长尾延迟;容量规划;制定扩缩容策略。

29. 分析 Agent 中多模型协作的成本优化。

参考答案: 任务分解后简单子任务用 mini、难子任务用 4o/o3;共享中间结果避免重复;缓存工具结果与检索;限制每模型调用次数;预算控制;监控各模型成本占比;动态调整模型分配。

30. 设计一个支持工具市场化的 Agent 平台。

参考答案: 工具注册中心(schema/版本/权限);发现与订阅机制;运行时沙箱隔离;计费与配额;质量评分与审核;版本兼容;安全审查;开发者 SDK;示例与文档;监控与下线机制。

31. 如何实现 LLM 输出的实时审核与干预?

参考答案: 流式输出实时分类(安全/合规/PII);命中规则时中断生成;替换敏感内容;记录审计;高危转人工;小模型并行审核低延迟;规则+模型双重保障;可配置策略与阈值。

32. 分析 OpenAI 生态演进对架构设计的影响。

参考答案: Responses API 统一接口简化编排;内置工具减少自建;Agents SDK 标准化框架;模型迭代快需抽象隔离;多模态融合需扩展架构;成本与能力动态变化需灵活路由;保持架构松耦合便于跟进演进。