🌙
交互式练习

LLM 练习 014

37 道题 · 选择题 + 填空题 + 简答题 + 代码实战 · 即时反馈 · 记录保存
← 返回主页
客观题
0/20
主观题
0/17
做题记录

做题记录

    暂无记录

    答题详情

    一、单选题(10 题)
    第 1 题单选题
    在真实项目中,使用 Python 调用大模型 API 的主要目的是什么?
    A 让学生少写代码
    B 让程序自动把问题发送给模型并处理结果
    C 替代所有数据库操作
    D 让模型自动保存 API Key
    第 2 题单选题
    api_key 的主要作用是?
    A 指定模型名称
    B 指定输出语言
    C 证明调用者有权限访问模型服务
    D 控制是否流式输出
    第 3 题单选题
    base_url 的主要作用是?
    A 指定请求发往哪个模型服务地址
    B 指定用户输入内容
    C 指定返回结果的字体
    D 指定代码文件保存路径
    第 4 题单选题
    关于批处理和流式输出,下列说法正确的是?
    A 批处理必须使用 stream=True
    B 流式输出会一次性返回完整答案
    C 批处理通常一次性返回完整结果
    D 流式输出不能用于聊天场景
    第 5 题单选题
    在 OpenAI 兼容接口中开启流式输出的常见参数是?
    A fast=True
    B stream=True
    C flow=False
    D print=True
    第 6 题单选题
    zero-shot 的含义是?
    A 给模型很多示例
    B 不给示例,直接让模型完成任务
    C 训练一个新模型
    D 删除所有提示词
    第 7 题单选题
    few-shot 更适合下列哪个场景?
    A 固定格式的文本分类
    B 关闭电脑
    C 修改 Python 解释器
    D 安装操作系统
    第 8 题单选题
    CoT 思维链最适合用于?
    A 简单问候
    B 简单翻译一个词
    C 多步骤推理问题
    D 输出当前时间
    第 9 题单选题
    ReAct 中的 Action 指什么?
    A 模型输出最终答案
    B 模型决定调用某个工具或执行某个动作
    C 程序删除提示词
    D 用户关闭浏览器
    第 10 题单选题
    提示词注入攻击的典型特征是?
    A 用户输入中包含试图覆盖原始规则的恶意指令
    B 用户正常提问天气
    C 程序正常读取环境变量
    D 模型正常返回 JSON
    二、填空题(10 题)
    第 11 题填空题
    大模型 API 调用的四个基本步骤是:导包、、发送消息、
    第 12 题填空题
    messages 是大模型接口中的列表。
    第 13 题填空题
    OpenAI 兼容接口的好处是可以用类似写法调用不同平台的
    第 14 题填空题
    流式输出通常需要使用循环逐段读取模型返回内容。
    第 15 题填空题
    end="" 的作用是让 print() 打印后不自动
    第 16 题填空题
    zero-shot 表示不给模型,直接让模型完成任务。
    第 17 题填空题
    few-shot 表示给模型少量,让模型模仿格式或判断标准。
    第 18 题填空题
    CoT 的中文名称是
    第 19 题填空题
    Self-Consistency 可以理解为多条思路生成答案后进行或比较。
    第 20 题填空题
    ReAct 的核心循环可以概括为:思考、行动、、再思考。
    三、简答题(10 题)
    第 21 题简答题
    为什么真实项目中不能只依赖网页端和大模型聊天?
    查看参考答案 ▼
    因为真实项目需要程序自动调用模型、自动处理用户输入、自动解析模型结果,并把结果展示、保存或交给后续流程处理。网页聊天适合体验模型能力,但不适合做自动化业务系统。
    第 22 题简答题
    批处理和流式输出有什么区别?
    查看参考答案 ▼
    批处理是模型生成完整答案后一次性返回,适合短回答和后台任务;流式输出是一段一段返回内容,适合聊天、长文本生成和需要改善用户等待体验的场景。
    第 23 题简答题
    如果模型返回结果取不到,应该如何排查?
    查看参考答案 ▼
    应先打印完整响应对象,查看真实返回结构,再根据字段层级取值。不要直接猜字段,也不要在换模型后继续照搬旧的解析路径。
    第 24 题简答题
    zero-shot 和 few-shot 的区别是什么?
    查看参考答案 ▼
    zero-shot 是不给示例,直接让模型完成任务;few-shot 是给模型少量示例,让模型模仿示例的格式、风格或判断标准。
    第 25 题简答题
    few-shot 为什么不是训练模型?
    查看参考答案 ▼
    few-shot 只是把示例放进提示词上下文中,让模型临时参考,不会修改模型参数,也不会让模型永久学会这些示例。
    第 26 题简答题
    CoT 适合什么任务?为什么简单任务不一定适合 CoT?
    查看参考答案 ▼
    CoT 适合数学题、逻辑题、多步骤任务、代码分析等复杂推理任务。简单任务不一定适合 CoT,因为它会增加 token 消耗和响应时间。
    第 27 题简答题
    链式提示和 CoT 有什么区别?
    查看参考答案 ▼
    CoT 多数是在一个提示词中要求模型分步推理;链式提示更偏工程实现,是把一个大任务拆成多个子任务,让前一步结果作为下一步输入。
    第 28 题简答题
    Self-Consistency 的优点和代价分别是什么?
    查看参考答案 ▼
    Self-Consistency 的优点是提高复杂推理任务的稳定性;代价是需要多次调用模型,会增加 token 成本、运行时间和代码复杂度。
    第 29 题简答题
    ReAct 中模型和程序分别负责什么?
    查看参考答案 ▼
    模型负责思考下一步、选择工具、总结工具结果;程序负责提供工具、执行工具、校验工具调用和返回结果。
    第 30 题简答题
    提示词注入攻击应该如何防御?
    查看参考答案 ▼
    可以通过分隔符隔离用户输入、明确任务边界、不把敏感信息放入提示词、限制工具调用权限、对输出进行安全检查等方式防御。
    四、代码实战(7 题)
    第 31 题代码实战
    基础练习:大模型基础调用
    使用 OpenAI 兼容接口调用云端模型,让模型回答"请用三句话说明 Python 程序员为什么要学习大模型 API 调用"。
    查看参考答案 ▼
    from openai import OpenAI client = OpenAI( base_url="https://dashscope.aliyuncs.com/compatible-mode/v1" ) response = client.chat.completions.create( model="qwen-plus", messages=[ { "role": "user", "content": "请用三句话说明 Python 程序员为什么要学习大模型 API 调用。" } ] ) answer = response.choices[0].message.content print(answer)
    第 32 题代码实战
    基础练习:流式输出
    在上一题基础上开启流式输出(stream=True),使用 for 循环逐段读取,用 end="" 和 flush=True 实现实时输出效果。
    查看参考答案 ▼
    from openai import OpenAI client = OpenAI( base_url="https://dashscope.aliyuncs.com/compatible-mode/v1" ) stream = client.chat.completions.create( model="qwen-plus", messages=[ { "role": "user", "content": "请用通俗语言解释什么是大模型流式输出。" } ], stream=True ) for chunk in stream: content = chunk.choices[0].delta.content if content: print(content, end="", flush=True)
    第 33 题代码实战
    Few-shot 翻译
    使用 few-shot 提示词,system 中提供一个英文到中文的翻译示例,user 中提供新的英文句子,让模型参考示例格式翻译。
    查看参考答案 ▼
    from openai import OpenAI client = OpenAI( base_url="https://dashscope.aliyuncs.com/compatible-mode/v1" ) system_prompt = """ 你是一个英文到中文的翻译助手。 请参考下面的示例进行翻译,只输出中文结果,不要输出多余解释。 示例: 英文:I love Python. 中文:我喜欢 Python。 """ response = client.chat.completions.create( model="qwen-plus", messages=[ {"role": "system", "content": system_prompt}, {"role": "user", "content": "Large models can call external tools."} ] ) print(response.choices[0].message.content)
    第 34 题代码实战
    Zero-shot CoT
    让模型回答年龄题(小明6岁妹妹一半,哥哥大4岁,现在70岁),要求"请一步一步思考",打印推理过程和最终答案。
    查看参考答案 ▼
    from openai import OpenAI client = OpenAI( base_url="https://dashscope.aliyuncs.com/compatible-mode/v1" ) question = """ 当小明 6 岁时,他的妹妹年龄是他的一半。他的哥哥比小明大 4 岁。 现在小明 70 岁了,请问他的妹妹和哥哥年龄加起来是多少? """ prompt = f""" 请解决下面的问题。 题目: {question} 要求: 1. 请一步一步思考。 2. 先写出推理过程。 3. 最后单独给出最终答案。 """ response = client.chat.completions.create( model="qwen-plus", messages=[ {"role": "user", "content": prompt} ] ) print(response.choices[0].message.content)
    第 35 题代码实战
    链式提示
    完成三步链式任务:从文本中抽取要点 → 根据要点写摘要 → 优化摘要语言。前一步结果作为下一步输入,每步都打印。
    查看参考答案 ▼
    from openai import OpenAI client = OpenAI( base_url="https://dashscope.aliyuncs.com/compatible-mode/v1" ) def ask_model(prompt): response = client.chat.completions.create( model="qwen-plus", messages=[{"role": "user", "content": prompt}] ) return response.choices[0].message.content article = """ 近年来,大模型在客服、教育、办公和数据分析等场景中应用越来越广。 企业在使用大模型时,通常需要通过 Prompt 工程约束模型输出格式, 并结合知识库、外部工具和安全审核来提高回答可靠性。 """ # 第一步:抽取要点 points = ask_model(f'请从下面文本中抽取 3 个关键要点。 文本: """{article}"""') print("第一步:抽取要点") print(points) # 第二步:生成摘要 summary = ask_model(f'请根据下面的要点,生成一段 100 字以内的摘要。 要点: """{points}"""') print("第二步:生成摘要") print(summary) # 第三步:优化摘要 final = ask_model(f'请优化下面这段摘要,使语言更简洁、正式。 摘要: """{summary}"""') print("第三步:优化摘要") print(final)
    第 36 题代码实战
    Self-Consistency 简化实现
    让模型针对同一个问题生成 3 个不同思路(输出 JSON 数组),再让模型从多个答案中选出最合理的结果。不使用 eval()。
    查看参考答案 ▼
    import json from openai import OpenAI client = OpenAI( base_url="https://dashscope.aliyuncs.com/compatible-mode/v1" ) def ask_model(prompt): response = client.chat.completions.create( model="qwen-plus", messages=[{"role": "user", "content": prompt}] ) return response.choices[0].message.content question = "当小明 6 岁时,妹妹 3 岁。现在小明 70 岁,妹妹多少岁?" # 第一步:生成 3 个思路 ideas_text = ask_model(f'""" 请针对下面问题,给出 3 个不同的解题思路。 问题:{question} 输出要求:只输出 JSON 数组,格式:["思路1", "思路2", "思路3"] """') ideas = json.loads(ideas_text) # 第二步:按每个思路回答 answers = [] for idea in ideas: answer = ask_model(f'请按照思路"{idea}"解决问题。问题:{question}') answers.append(answer) # 第三步:评审选出最终答案 final = ask_model(f'请从下面多个答案中选出最合理的答案。 问题:{question} 候选答案:{answers}') print("最终结果:", final)
    第 37 题代码实战
    ReAct 简化工具调用
    实现简化版 ReAct 天气查询:定义 get_weather(city) 模拟工具,让模型判断需要查询哪个城市,程序调用工具,再把结果交给模型生成自然语言回答。
    查看参考答案 ▼
    from openai import OpenAI client = OpenAI( base_url="https://dashscope.aliyuncs.com/compatible-mode/v1" ) def get_weather(city): weather_data = { "深圳": "小雨,25-29℃,湿度较高,建议带伞。", "北京": "晴,18-27℃,空气较干燥,适合出行。", "上海": "多云,22-28℃,体感舒适。" } return weather_data.get(city, "暂时没有查询到该城市的天气。") def ask_model(prompt): response = client.chat.completions.create( model="qwen-plus", messages=[{"role": "user", "content": prompt}] ) return response.choices[0].message.content user_question = "我明天去深圳上课,需要带伞吗?" # 第一步:让模型提取城市 city = ask_model(f'从问题中提取城市名,只输出城市名。 问题:{user_question}').strip() print("城市:", city) # 第二步:调用工具 weather = get_weather(city) print("天气:", weather) # 第三步:生成最终回答 answer = ask_model(f'用户问题:{user_question} 天气结果:{weather} 请用自然语言回答。') print("回答:", answer)