用通用大模型处理平面几何问题时,一个常见误区是直接贴一张几何图或只给一句“如图,求角A的度数”。模型既没有稳定的视觉解析能力,也无法从含糊描述中还原点、线、角之间的约束关系。更可行的做法是,由使用者先把几何图形整理成结构化文本,再通过精心设计的提示词让模型完成图形分析、辅助线构造和推理验证。这个过程中,提示词承担了图形信息编码、推理路径约束和输出格式控制三重任务。

一、把几何图形转成模型能读懂的文本
几何题中的图形通常以图片形式呈现,但多数大语言模型在文本接口下无法直接识别复杂示意图。设计几何推理提示词的第一步,是让图形信息结构化。推荐使用点列表、线段列表、角度列表和位置关系列表来描述图形。例如,三角形 ABC 可以写成:点 A、B、C;线段 AB、BC、CA;角 BAC 为 60 度;D 为 BC 中点。这种描述不依赖图像,模型可以直接基于文本进行推理。
结构描述应包含三类信息:基础元素、数量关系和几何性质。基础元素是点、线段、三角形、圆等;数量关系包括相等的边、已知角度、线段比例;几何性质包括平行、垂直、共线、对称等。将这些信息以编号形式列出,能降低歧义。一个常见的错误是使用“上图左边那条线”这类模糊指代,模型无法定位。更好的写法是“线段 AB 与线段 CD 平行,且 AB 长度等于 CD”。
对于复杂图形,可以按区域拆分。比如把四边形拆成两个三角形,分别描述各自的已知条件,再说明它们共享哪条边或哪个顶点。这样做相当于在提示词里完成了一次人工辅助线拆分,能显著提升后续推理质量。
二、提示词中如何引导模型进行辅助线构造
辅助线构造是平面几何的核心技巧。人类解题时会在恰当位置添加中线、垂线、高线、角平分线或平行线,从而把复杂关系转化为基本定理。要让模型具备类似能力,可以在提示词中显式要求模型先生成候选辅助线,再判断其作用。
一个有效策略是要求模型按类别枚举常见辅助线。例如:遇到中点考虑连接中位线或中线;遇到等腰三角形考虑顶角平分线;遇到直角三角形考虑斜边中线;遇到圆内条件考虑半径、弦心距或切线。提示词可以要求模型输出“辅助线候选列表”,每项包含新增元素、连接方式、预期产生的几何性质。
然后要求模型从候选中选择一条最有利于解题的辅助线,并说明选择理由。这种分步设计可以避免模型连续添加多条无关线段导致图形信息膨胀。例如,提示词可以写明:先给出至少三种辅助线方案,再选择其中一种作为主线推理,其余作为备选。这样模型会进行受控的图形分析,而不是盲目尝试。
辅助线构造的提示词还应该要求模型说明辅助线引入后生成的新关系。比如添加中线后,中点两侧线段相等;添加平行线后,内错角或同位角相等。将这些新关系显式列出,有助于后续推理链条保持清晰。
三、用思维链约束几何推理过程
单纯要求模型输出答案,往往得到一个没有过程的结果,容易出错。几何题需要逐步推导,提示词应强制模型输出思维链。可以在提示词中使用“请按以下步骤输出:1. 列出已知条件;2. 选择辅助线;3. 推导新关系;4. 得出结论”的格式。
同时,推理过程应包含定理依据。每当模型写出一条推导,都应要求它说明使用了哪个几何定理或公理,例如内角和定理、全等三角形判定、相似三角形性质、勾股定理等。这样不仅可以提高可解释性,也便于后续验证。
对于较复杂的题目,可以引入“反向推理”校验。提示词要求模型在得出答案后,从结论回推是否所有条件都被使用、有无漏洞。例如,如果结论是两条线段相等,检查是否满足全等或等腰条件;如果结论是角度关系,检查是否使用了相关的平行或圆周角定理。
四、一个可复用的提示词模板
下面给出一个通用的几何推理提示词模板,采用角色设定、输入格式、推理要求和输出格式四部分。该模板可以直接复制到对话式AI中使用,也可以嵌入Python脚本调用模型API。
import os
import openai
system_prompt = (
"你是一名几何推理助手。用户会给出结构化图形描述,"
"你需要先分析图形,再构造辅助线,最后完成证明或计算。"
)
user_prompt = """
请根据下面的结构化几何信息完成推理。
【已知条件】
1. 三角形 ABC 中,AB = AC
2. D 是 BC 的中点
3. 角 BAC = 80 度
【任务】
1. 列出所有已知条件
2. 给出至少两种辅助线方案并说明理由
3. 选择一种方案完成推理
4. 求角 B 和角 C 的度数
【输出格式】
- 图形分析:
- 辅助线方案:
- 选择依据:
- 详细推理:
- 最终答案:
"""
response = openai.ChatCompletion.create(
model="gpt-4",
messages=[
{"role": "system", "content": system_prompt},
{"role": "user", "content": user_prompt}
],
temperature=0.2
)
print(response.choices[0].message.content)
这段代码中的系统提示词定义了模型角色,用户提示词给出了结构化条件、任务和输出格式。温度参数设置较低,有助于模型输出更稳定的推理过程。实际使用时,可以将【已知条件】替换成具体题目的文字描述。
如果希望模型输出可解析的JSON,还可以在输出格式中限制字段名,例如 geometry_analysis、auxiliary_lines、reasoning_steps、final_answer。这样便于后续程序自动提取和验证。
五、评估几何推理提示词的效果
几何推理提示词的效果不能只看最终答案是否正确。要综合考察图形分析是否完整、辅助线构造是否合理、推理链是否闭合。可以准备一组标准几何题,人工标注关键步骤,然后比对模型输出。
一种简单的自动评估方法是让模型多次运行同一提示词,观察答案一致性。如果多次结果不同,说明提示词对推理路径的约束不足,需要增加更明确的步骤要求。另一种方法是让模型在输出中标记置信度,或者要求它在最后写出一条验证链。
还可以采用“对比测试”的方式:同一道题分别使用普通提示词和结构化几何推理提示词,比较正确率、推理长度和辅助线命中率。在实践中,显式列出图形信息和要求辅助线候选,通常能显著减少模型胡乱编造几何关系的现象。
需要注意,大模型在涉及精确数值计算时仍可能出错。对于角度、长度等数值推导,可以在提示词中要求模型分步写出表达式,并在最后用算数校对。如果题目涉及坐标几何,建议直接给出坐标系中的点坐标,让模型用解析方法计算,再与综合法结果互相验证。