-
Notifications
You must be signed in to change notification settings - Fork 36
Expand file tree
/
Copy pathquiz.json
More file actions
37 lines (37 loc) · 2.81 KB
/
Copy pathquiz.json
File metadata and controls
37 lines (37 loc) · 2.81 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
[
{
"question": "LLM 真的能执行函数或访问外部系统吗?",
"options": ["能,LLM 可以直接调用 API", "不能——LLM 只生成文本(通常是 JSON),描述要调用哪个函数;必须由你的代码来执行它", "只有 GPT-4 能执行函数", "LLM 通过 embedding 执行函数"],
"correct": 1,
"explanation": "LLM 生成的是 token。所谓「调用函数」,是模型输出指定函数名和参数的 JSON。你的应用代码解析这个 JSON、执行真正的函数,并把结果发回给模型。",
"stage": "pre"
},
{
"question": "在 function calling 的语境下,工具 schema(tool schema)是什么?",
"options": ["模型的架构图", "描述函数名称、参数、类型和用途的 JSON,告诉模型有哪些可用工具", "数据库 schema", "API 端点 URL"],
"correct": 1,
"explanation": "工具 schema 向模型描述可用的函数:函数名、参数名和类型、每个参数的作用描述,以及函数返回什么。模型用这些来决定何时以及如何调用工具。",
"stage": "pre"
},
{
"question": "多轮 function calling 循环的标准模式是什么?",
"options": ["一次性调用所有函数", "发送消息 -> 模型请求工具调用 -> 执行函数 -> 把结果发回 -> 模型生成最终回复(需要时重复)", "模型在内部执行函数", "把整个对话作为一个批次来解析"],
"correct": 1,
"explanation": "循环为:(1) 发送用户消息 + 工具 schema,(2) 模型回复一个工具调用请求,(3) 执行函数,(4) 把结果作为工具响应发回,(5) 模型生成下一个回复或另一个工具调用。",
"stage": "post"
},
{
"question": "你如何防止无限的工具调用循环?",
"options": ["使用更快的模型", "设置工具调用迭代的最大次数并实现超时,达到上限时跳出循环", "function calling 不会发生无限循环", "首次调用后移除所有工具 schema"],
"correct": 1,
"explanation": "没有限制,模型可能反复调用工具(例如搜索它永远找不到的信息)。最大迭代次数(例如 10 轮)和总超时能防止生产环境中失控的循环。",
"stage": "post"
},
{
"question": "为什么在工具 schema 中清晰、描述性强的参数名和描述很重要?",
"options": ["它们让代码更易读", "模型用描述来决定调用哪个工具以及如何填写参数——模糊的描述会导致错误的工具选择和不正确的参数", "API 要求它们", "它们提升响应时间"],
"correct": 1,
"explanation": "模型阅读工具描述来决定调用什么以及怎么调。一个被描述成「q」的参数,与「search_query:用户要在知识库中查找的搜索词」相比,会产生天差地别的结果。",
"stage": "post"
}
]