常见问题与避坑指南🔗
关键词: FAQ, 常见误区, 幻觉 (Hallucination), 踩坑记录, 故障排查, Prompt 优化
难度: ⭐
预计阅读时间: 30 分钟
最后更新: 2026-04-09
本章导读🔗
使用 AI 工具的过程并不总是一帆风顺。本章系统汇总了组内同学在日常使用中遇到的常见误区、技术问题、效率瓶颈以及对应的解决方案。无论你是刚开始接触 AI 工具的新同学,还是已经使用一段时间但偶尔踩坑的"老手",都可以在此找到实用的参考。
读完本章,你将:
- 认清 6 个最常见的 AI 使用误区,避免"信息茧房"效应
- 掌握常见技术问题(API、网络、Token、编码等)的排查与解决方法
- 学会高效组织对话、构建个人 Prompt 库
- 了解组内同学的真实踩坑案例,少走弯路
- 拥有一套系统的 AI 工具故障排查流程
1. 常见误区🔗
核心观点: 正确认识 AI 的能力边界,是高效使用 AI 的前提。
1.1 误区一:"AI 说的都对"——幻觉问题🔗
现象描述: AI 生成的内容看起来非常流畅、自信,甚至附带引用文献和数据,但细查之下可能仍有错。
为什么会这样? 大语言模型(LLM)的本质是下一个 Token 预测器,它总是倾向于给出"看起来最合理"的输出,而非"经过验证的事实"。这种现象被称为幻觉(Hallucination)。
高危场景:
| 场景 | 典型幻觉表现 | 危险等级 |
|---|---|---|
| 不联网直接列文献 | 编造不存在的论文,作者名、期刊名、DOI 全部虚构 | 🔴 极高 |
| 联网后引用文献 | 来源通常真实,但可能张冠李戴、断章取义 | 🟡 中等 |
| 数据与数字 | 生成看似合理但完全错误的实验数据或统计数字 | 🔴 极高 |
| 代码生成 | 调用不存在的函数或 API,版本混淆 | 🟡 中等 |
| 事实陈述 | 混淆相似概念,张冠李戴 | 🟡 中等 |
| 格式与翻译 | 格式基本正确但细节有错(如单位转换错误) | 🟢 较低 |
正确做法:
- ✅ 永远验证关键事实:AI 给出的文献必须用 Google Scholar / PubMed 交叉核实
- ✅ 让 AI 标注信息来源:在 Prompt 中要求"请标注每条信息的来源,若不确定请明确说明"
- ✅ 对数字保持怀疑:涉及具体数值(IC50、Kd、分子量等)务必查原始文献
- ❌ 不要直接将 AI 生成的文献列表粘贴到论文中
- ❌ 不要因为 AI 的语气"很肯定"就放松警惕
组内惨痛教训: 曾有同学直接让聊天模型“列 3 篇 Nature 论文”来写背景介绍。组会汇报时被老师当场指出:3 篇论文一篇都查不到,全部是 AI 凭记忆补出来的。
1.2 误区二:"越长越详细的 Prompt 越好"——提示词冗余🔗
现象描述: 有同学写了一页纸的 Prompt,结果模型的回复反而更差了。
为什么会这样? LLM 对超长 Prompt 中的信息优先级判断并不完美。过多的冗余信息会:
- 稀释真正重要的指令(关键要求被"淹没")
- 引入自相矛盾的约束
- 浪费 Token 配额,减少可用的输出空间
好 Prompt vs 坏 Prompt 对比:
❌ 坏示例(冗余、含糊):
"你好,我是一名生物学专业的研究生,我正在研究蛋白质折叠方面的课题,
我的导师要求我写一篇综述,关于蛋白质折叠的最新进展,
请你帮我写一下好吗?要写得详细一点,最好有参考文献,
中英文都可以,长一点没关系,谢谢你!"
✅ 好示例(结构化、明确):
"请用中文撰写蛋白质折叠领域(2023-2026)的研究进展摘要,要求:
1. 聚焦 AI 预测方法(AlphaFold 系列、ESMFold、RoseTTAFold)
2. 按方法分类,每类 200 字左右
3. 每个方法需注明原始论文的第一作者和发表年份
4. 不确定的信息请标注 [待验证]
目标读者:分子生物学方向研究生"
Prompt 精简原则:
| 原则 | 说明 | 示例 |
|---|---|---|
| 明确角色 | 用一句话定义 AI 的身份 | "你是分子生物学领域的学术写作助手" |
| 具体任务 | 清晰说明要做什么 | "翻译以下摘要为学术英文" |
| 输出约束 | 规定格式、长度、语言 | "以 Markdown 表格形式输出,不超过 500 字" |
| 质量标准 | 说明什么算"好" | "不确定的内容标注 [待验证]" |
| 去除废话 | 删掉客气话和重复内容 | 不需要"你好"、"谢谢"、"请帮我" |
1.3 误区三:"一个模型打天下"——工具选择错误🔗
现象描述: 所有任务都只用 ChatGPT(或只用某一个模型),遇到效果不好就认为"AI 不行"。
事实是: 不同模型在不同任务上表现差异巨大:
| 任务类型 | 推荐首选 | 备选 | 不推荐 |
|---|---|---|---|
| 长文档理解/总结 | Claude Sonnet 4.6、Gemini 3 Pro | Kimi | 免费轻量模型 |
| 代码生成与调试 | Claude Sonnet 4.6、Claude Code、ChatGPT、Copilot | Cursor / DeepSeek / Codex CLI | 纯聊天轻量模型 |
| 中文学术写作 | ChatGPT、Kimi | Claude | Gemini |
| 文献检索辅助 | Consensus、Perplexity | Elicit | 让通用聊天模型脱离搜索直接“背文献” |
| 数据可视化代码 | ChatGPT(代码执行) | Claude Artifacts | 纯文字对话 |
| 蛋白质相关任务 | 专用模型(ESMFold 等) | ChatGPT 辅助脚本 | 通用 LLM 直接预测 |
| 日常翻译 | DeepL、ChatGPT | Claude | Google 翻译(学术场景) |
| OCR 与文档处理 | Mathpix、ChatGPT 视觉 | 参见第五章 | 免费在线 OCR |
选择策略:
- 核心原则:对精度要求高的任务用当前最强模型(如 Claude Sonnet 4.6 / ChatGPT 推理模型),日常简单任务用免费或轻量模型
- 多模型交叉验证:重要任务至少用两个模型互相验证
- 善用专用工具:文献检索用 Consensus/Perplexity,而非通用 LLM
1.4 误区四:"AI 会替代我"——能力边界认知🔗
现象描述: 一部分同学过度焦虑"AI 是否会让我失业",另一部分同学过度依赖 AI、丧失独立思考能力。两种极端都有问题。
AI 目前做不好或不能做的事:
- ❌ 原创性科学假说生成:AI 可以帮你整理已有文献,但"提出新问题"仍是人类的核心竞争力
- ❌ 实验操作:AI 可以帮你设计实验方案,但不能替你做实验
- ❌ 深层因果推理:AI 善于发现相关性,但因果关系判断需要领域知识
- ❌ 确保正确性:AI 无法对自己的输出"负责",最终责任在使用者
- ❌ 理解隐含上下文:你的课题背景、导师偏好、实验室条件,AI 不了解
正确的心态:
务实的定位:
| AI 擅长(放心用) | AI 辅助(需人工审核) | AI 不能做(别指望) |
|---|---|---|
| 代码模板生成 | 文献综述初稿 | 提出原创研究问题 |
| 格式转换 | 数据分析脚本 | 实验操作 |
| 翻译润色 | 实验方案设计 | 评审论文质量 |
| 信息检索汇总 | 图表美化建议 | 保证数据正确性 |
| 语法纠错 | 学术写作改写 | 替代你的科学判断 |
1.5 误区五:"AI 生成的代码不需要测试"🔗
现象描述: AI 生成了一段看起来很完美的 Python 脚本,直接拿来跑,结果出了 Bug 还找不到原因。
为什么 AI 代码也需要测试?
- AI 可能使用了已弃用的 API(如 pandas 旧版语法)
- AI 可能忽略边界条件(空文件、缺失值、极端数据)
- AI 可能混淆不同库的版本(如 scikit-learn 0.x vs 1.x)
- AI 生成的代码逻辑局部正确但整体错误(单个函数对,但组合使用有隐患)
正确做法:
# ✅ AI 生成代码后,至少做这些检查:
# 1. 用小数据集测试
test_df = pd.DataFrame({"col1": [1, 2, None], "col2": ["a", "b", "c"]})
result = ai_generated_function(test_df)
print(result) # 看输出是否符合预期
# 2. 检查边界条件
empty_df = pd.DataFrame()
try:
ai_generated_function(empty_df)
except Exception as e:
print(f"空数据异常: {e}") # 确认有合理的错误处理
# 3. 对比已知结果
assert abs(result - expected_value) < 1e-6, "数值偏差超出容忍范围"
代码验证 Checklist:
- 用小数据集跑通一遍
- 检查 import 的库是否都已安装,版本是否兼容
- 检查有无硬编码路径(如
C:\Users\xxx\) - 检查边界条件处理(空输入、极大极小值、缺失值)
- 关键数值结果与手动计算或已知答案对比
- 如果涉及文件读写,检查编码和路径
1.6 误区六:"直接复制 AI 输出就行"——学术诚信风险🔗
现象描述: 直接复制 AI 生成的文本用于论文、报告、甚至课题申请书。
为什么这样做有风险?
- 学术诚信问题:越来越多的期刊和学校明确要求声明 AI 使用情况1。未声明使用 AI 辅助写作可能被视为学术不端
- AI 检测工具:如 Turnitin AI Detection、GPTZero 等工具正在普及,直接复制的 AI 文本很容易被识别
- 质量问题:AI 生成的文本往往存在"正确的废话"——句子通顺但缺乏深度
- 同质化:同一个 Prompt 生成的内容高度相似,多人使用极易"撞车"
正确的使用方式:
| ❌ 不当用法 | ✅ 合理用法 |
|---|---|
| 让 AI 写完整段落直接粘贴 | 让 AI 生成提纲/初稿,自己大幅改写 |
| 用 AI 写论文 Introduction 直接提交 | 用 AI 翻译/润色自己写的中文初稿 |
| 把 AI 回复当作自己的观点 | 用 AI 帮忙整理思路,自己消化后重新表述 |
| 不声明使用了 AI | 在论文中明确说明 AI 辅助的部分和工具 |
组内规范: 使用 AI 辅助撰写任何对外提交的文档(论文、申请书、报告)时,必须在文档中声明 AI 使用情况,并对所有内容进行人工审核和事实验证。
2. 常见技术问题🔗
2.1 API Key 配置问题🔗
问题描述: 调用 OpenAI、Claude 等模型的 API 时,遇到认证失败、Key 无效等错误。
常见报错与解决方案:
| 报错信息 | 原因 | 解决方案 |
|---|---|---|
AuthenticationError: Invalid API key | API Key 错误或过期 | 检查 Key 是否完整复制(无多余空格),到控制台确认 Key 状态 |
RateLimitError: You exceeded your current quota | 额度用完 | 到 Billing 页面充值或检查用量 |
Error: OPENAI_API_KEY not set | 环境变量未配置 | 参见下方配置方法 |
SSLError / ProxyError | 网络/代理问题 | 参见 2.2 节 |
PermissionError: ... API key does not have access to model | Key 没有对应模型的权限 | 检查账号所属 Tier、区域权限和模型是否已下线或仅限特定套餐 |
API Key 配置方法(以 OpenAI 为例):
# 方法 1: 临时设置(当前终端有效)
export OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxx"
# 方法 2: 永久设置(写入 shell 配置文件)
# macOS / Linux (zsh)
echo 'export OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxx"' >> ~/.zshrc
source ~/.zshrc
# macOS / Linux (bash)
echo 'export OPENAI_API_KEY="sk-xxxxxxxxxxxxxxxxxxxxxxxx"' >> ~/.bashrc
source ~/.bashrc
# 方法 3: 在 Python 代码中设置(不推荐,Key 会泄露到代码仓库)
import openai
openai.api_key = "sk-xxxxxxxxxxxxxxxxxxxxxxxx" # ⚠️ 切勿提交到 Git!
# 方法 4: 使用 .env 文件(推荐用于项目)
# 创建 .env 文件(必须加入 .gitignore!)
# .env 文件内容:
# OPENAI_API_KEY=sk-xxxxxxxxxxxxxxxxxxxxxxxx
# Python 中读取:
from dotenv import load_dotenv
import os
load_dotenv()
api_key = os.getenv("OPENAI_API_KEY")
安全提醒: - 🔴 绝对不要将 API Key 提交到 GitHub 等公开仓库 - 🔴 绝对不要将 API Key 通过微信等即时通讯工具发送 - ✅ 始终使用环境变量或
.env文件管理 Key - ✅ 将.env加入.gitignore
2.2 网络与 VPN 问题🔗
问题描述: 国内网络环境下访问 OpenAI、Anthropic(Claude)、Google(Gemini)等国际模型服务时,经常遇到连接超时或被拒绝。
问题排查步骤:
# Step 1: 测试基本网络连通性
curl -I https://api.openai.com
# 如果超时 → 需要代理
# Step 2: 检查代理是否生效
echo $http_proxy
echo $https_proxy
# 如果为空 → 设置代理
# Step 3: 设置终端代理
export http_proxy="http://127.0.0.1:7890"
export https_proxy="http://127.0.0.1:7890"
# 端口号取决于你的代理软件配置(常见:7890, 1087, 8080)
# Step 4: 测试 API 连通性
curl https://api.openai.com/v1/models \
-H "Authorization: Bearer $OPENAI_API_KEY"
Python 中配置代理:
import openai
import httpx
# 方法 1: 通过 httpx client 设置代理
client = openai.OpenAI(
api_key="sk-xxx",
http_client=httpx.Client(proxy="http://127.0.0.1:7890")
)
# 方法 2: 通过环境变量(推荐,无需改代码)
import os
os.environ["HTTP_PROXY"] = "http://127.0.0.1:7890"
os.environ["HTTPS_PROXY"] = "http://127.0.0.1:7890"
国内可直接访问的替代方案:
| 服务 | 说明 | 网络要求 |
|---|---|---|
| DeepSeek API | 国产模型,免翻墙,性价比高 | 🟢 直连 |
| 通义千问 API | 阿里巴巴,直连 | 🟢 直连 |
| 智谱 ChatGLM API | 清华系,直连 | 🟢 直连 |
| 硅基流动 (SiliconFlow) | 集合多个开源模型,直连 | 🟢 直连 |
| OpenAI API 中转服务 | 第三方中转,需注意安全性 | 🟡 直连但有风险 |
| OpenAI / Claude 官方 | 必须翻墙 | 🔴 需代理 |
2.3 Token 超限问题🔗
问题描述: 对话过长或文档过大,超出模型的上下文窗口限制,导致报错或"遗忘"早期内容。
常见报错:
openai.BadRequestError: This model's maximum context length is 128000 tokens.
However, your messages resulted in 135672 tokens. Please reduce the length of the messages.
解决方案矩阵:
| 方案 | 适用场景 | 操作方法 |
|---|---|---|
| 分段处理 | 长文档分析 | 将文档拆分为多个片段,逐段让 AI 分析,最后汇总 |
| 摘要压缩 | 长对话持续 | 定期让 AI 总结之前的对话要点,用摘要替代完整历史 |
| 精简 Prompt | Prompt 过长 | 去掉冗余描述,只保留关键指令和必要上下文 |
| 切换大窗口模型 | 确实需要长上下文 | 使用 Gemini 3 Pro(1M)或 Claude Opus 4.6(1M) |
| RAG 方案 | 知识库检索 | 使用向量数据库存储文档,按需检索相关片段 |
| 开新对话 | 话题已转换 | 另起对话,避免无关历史占用 Token |
实用估算公式:
中文文本:1 个汉字 ≈ 1.5 Token(粗略估算)
英文文本:1 个单词 ≈ 1.3 Token
混合文本:1000 字中文 ≈ 1500 Token
所以 128K Token ≈ 8.5 万字中文 ≈ 200 页 A4 文档
2.4 输出格式不稳定🔗
问题描述: 要求 AI 以 JSON / Markdown 表格 / CSV 等特定格式输出,但模型时而遵守时而不遵守,或者输出的格式有微小差异导致后续解析失败。
解决策略:
策略一:明确格式约束 + 示例
请以严格的 JSON 格式返回结果,不要包含任何其他文字说明。格式如下:
{
"protein_name": "字符串",
"organism": "字符串",
"function": "字符串",
"pdb_id": "字符串或 null"
}
仅返回 JSON,不要返回 ```json 标记或其他任何文字。
策略二:使用 Structured Output(API 调用)
# OpenAI 的 JSON Mode
response = client.chat.completions.create(
model="gpt-4o",
response_format={"type": "json_object"},
messages=[
{"role": "system", "content": "你是一个数据提取助手,始终以 JSON 格式返回结果。"},
{"role": "user", "content": prompt}
]
)
策略三:后处理容错
import json
import re
def parse_ai_response(response_text: str) -> dict:
"""从 AI 回复中提取 JSON,容忍 Markdown 代码块包裹。"""
# 尝试直接解析
try:
return json.loads(response_text)
except json.JSONDecodeError:
pass
# 尝试从 Markdown 代码块中提取
json_match = re.search(r'```(?:json)?\s*([\s\S]*?)```', response_text)
if json_match:
try:
return json.loads(json_match.group(1))
except json.JSONDecodeError:
pass
raise ValueError(f"无法从 AI 回复中解析 JSON:{response_text[:200]}...")
2.5 API 速率限制(Rate Limiting)🔗
问题描述: 短时间内发送过多 API 请求,被服务商限流。
常见报错:
openai.RateLimitError: Rate limit reached for gpt-4o in organization xxx
on requests per min (RPM): Limit 500, Used 500, Requested 1.
Please try again in 120ms.
解决方案:
import time
from tenacity import retry, wait_exponential, stop_after_attempt
# 方案 1: 简单重试 + 延时
def call_api_with_retry(prompt, max_retries=3):
for attempt in range(max_retries):
try:
response = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}]
)
return response
except openai.RateLimitError:
wait_time = 2 ** attempt # 指数退避:1s, 2s, 4s
print(f"速率限制,等待 {wait_time} 秒后重试...")
time.sleep(wait_time)
raise Exception("多次重试后仍然失败")
# 方案 2: 使用 tenacity 库(推荐)
@retry(wait=wait_exponential(min=1, max=60), stop=stop_after_attempt(5))
def call_api(prompt):
return client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}]
)
各平台速率限制参考:
| 平台 | 免费 Tier | 付费 Tier | 提升方法 |
|---|---|---|---|
| OpenAI | 3 RPM / 200 RPD | 500+ RPM | 充值提升 Tier |
| Anthropic | 5 RPM | 1000+ RPM | 充值提升 Tier |
| DeepSeek | 较宽松 | 更宽松 | - |
| Google Gemini | 15 RPM(免费) | 1000+ RPM | - |
RPM = Requests Per Minute,RPD = Requests Per Day
2.6 模型超时与响应中断🔗
问题描述: 模型响应时间过长,或者输出到一半突然中断。
原因与应对:
| 原因 | 症状 | 解决方案 |
|---|---|---|
| 输出过长 | 回复到一半突然停止 | 在 Prompt 中限制输出长度,或追问"请继续" |
| 服务器负载高 | 等待很久没有响应 | 稍后重试,或换用其他模型 |
| 网络不稳定 | 连接中断 | 检查网络/代理,使用 stream 模式 |
| max_tokens 设置过小 | 输出被截断 | 增大 max_tokens 参数 |
# 使用 stream 模式降低超时风险
stream = client.chat.completions.create(
model="gpt-4o",
messages=[{"role": "user", "content": prompt}],
stream=True,
timeout=120 # 设置合理的超时时间(秒)
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="")
2.7 文件上传失败🔗
问题描述: 向 ChatGPT、Claude 等工具上传文件时失败。
常见原因与解决:
| 问题 | 解决方案 |
|---|---|
| 文件过大 | ChatGPT 限制单文件 512 MB;Claude 限制约 30 MB。压缩或拆分文件 |
| 格式不支持 | 检查支持的格式列表。PDF、DOCX、TXT、CSV、代码文件一般都支持 |
| 文件名含特殊字符 | 重命名文件,避免中文、空格、特殊符号 |
| 图片上传模糊 | 确保图片分辨率足够(建议 >300 DPI),不要截图文字后上传(用 OCR 或直接粘贴文字) |
| PDF 是扫描版 | 先用 OCR 工具转为可搜索的 PDF 或文本,再上传 |
2.8 编码问题(UTF-8 / GBK)🔗
问题描述: 处理中文文件时出现乱码,或者 AI 代码生成的脚本在读写中文数据时崩溃。
理解根源:
- UTF-8:国际通用编码,能表示世界上几乎所有文字,推荐始终使用
- GBK / GB2312:中文专用编码,在部分 Windows 程序中仍是默认编码
- 问题根源:编码不匹配——用 UTF-8 去读 GBK 文件(或反过来)就会乱码
最佳实践:
# ✅ 读取文件时显式指定编码
with open("data.csv", "r", encoding="utf-8") as f:
content = f.read()
# ✅ 如果不确定编码,用 chardet 自动检测
import chardet
with open("unknown_encoding.csv", "rb") as f:
raw_data = f.read()
detected = chardet.detect(raw_data)
print(f"检测到编码: {detected['encoding']} (置信度: {detected['confidence']:.2%})")
content = raw_data.decode(detected["encoding"])
# ✅ pandas 读取时指定编码
import pandas as pd
df = pd.read_csv("data.csv", encoding="utf-8")
# 如果报错,尝试:
df = pd.read_csv("data.csv", encoding="gbk")
# 或使用 encoding_errors 参数容错:
df = pd.read_csv("data.csv", encoding="utf-8", encoding_errors="replace")
VS Code 中的编码设置:
- 右下角状态栏可以看到当前文件编码
- 点击编码名称 → "Reopen with Encoding" 可以用正确编码重新打开
- 建议在 VS Code 设置中默认使用 UTF-8:
3. 使用效率优化🔗
3.1 VS Code 与 Copilot 快捷键速查🔗
GitHub Copilot 核心快捷键(macOS / Windows):
| 功能 | macOS | Windows |
|---|---|---|
| 接受 Copilot 建议 | Tab | Tab |
| 拒绝建议 | Esc | Esc |
| 查看下一条建议 | Option + ] | Alt + ] |
| 查看上一条建议 | Option + [ | Alt + [ |
| 打开 Copilot Chat 面板 | Cmd + Shift + I | Ctrl + Shift + I |
| 内联聊天(Inline Chat) | Cmd + I | Ctrl + I |
| 在编辑器中接受聊天代码 | Cmd + Enter | Ctrl + Enter |
VS Code 通用高效快捷键:
| 功能 | macOS | Windows |
|---|---|---|
| 命令面板 | Cmd + Shift + P | Ctrl + Shift + P |
| 快速打开文件 | Cmd + P | Ctrl + P |
| 终端切换 | Ctrl + ` | Ctrl + ` |
| 多行编辑 | Option + Click | Alt + Click |
| 整行移动 | Option + ↑/↓ | Alt + ↑/↓ |
| 格式化文档 | Shift + Option + F | Shift + Alt + F |
3.2 如何组织对话以便复用🔗
原则:一个话题一个对话
将不同主题的讨论放在不同对话中,好处是:
- 避免上下文污染:不同任务的上下文不会互相干扰
- 方便回溯:以后需要时可以快速找到特定对话
- 节省 Token:每个对话只包含相关内容
对话的结构化组织建议:
# 推荐的对话组织方式
## 对话 1: "蛋白质-配体对接 Python 脚本"
- 聚焦代码问题
- 持续在这个对话中迭代代码
## 对话 2: "论文 Introduction 润色"
- 聚焦写作任务
- 所有修改历史都在这一个对话中
## 对话 3: "MD 模拟 GROMACS 参数"
- 聚焦特定技术问题
什么时候开新对话 vs 继续当前对话?
| 情况 | 建议 | 原因 |
|---|---|---|
| 换了一个完全不同的话题 | 🆕 开新对话 | 避免无关上下文干扰 |
| 对话长度已经很长(>50 轮) | 🆕 开新对话,带上关键上下文摘要 | 避免模型"遗忘"和 Token 浪费 |
| 在同一个代码项目上继续迭代 | 🔄 继续当前对话 | 保持代码上下文连贯 |
| 发现模型开始"犯迷糊" | 🆕 开新对话 | 长对话后半段质量常下降 |
| 需要模型参考之前的讨论 | 🔄 继续当前对话 | 利用对话历史 |
3.3 构建个人 Prompt 库🔗
建议将常用的高质量 Prompt 保存下来,形成自己的"工具箱"。
推荐的存储结构:
my_prompts/
├── academic_writing/
│ ├── abstract_polish.md # 摘要润色
│ ├── introduction_draft.md # Introduction 初稿
│ └── reviewer_response.md # 审稿人回复
├── coding/
│ ├── python_debug.md # Python 调试
│ ├── data_viz_template.md # 数据可视化模板
│ └── batch_processing.md # 批处理脚本
├── literature/
│ ├── paper_summary.md # 论文总结
│ └── literature_comparison.md # 文献对比
└── daily/
├── email_draft.md # 邮件起草
└── ppt_outline.md # PPT 大纲
Prompt 模板示例——论文摘要润色:
## 论文摘要润色 Prompt
### 使用方法
将下方 Prompt 复制到 ChatGPT / Claude,替换 [待润色摘要] 部分即可。
### Prompt
你是一位经验丰富的科技论文编辑,擅长生物学和化学领域的学术英文写作。
请润色以下论文摘要,要求:
1. 语言精炼、符合学术规范
2. 保留原文所有技术细节和数据
3. 修正语法错误,提升可读性
4. 以逐句对照的方式展示修改(原文 → 修改后)
5. 在末尾总结主要修改要点
[待润色摘要]
管理建议:
- 📁 用 Markdown 文件保存,放在云盘同步(OneDrive / 坚果云)
- 🏷️ 在每个 Prompt 文件顶部注明:适用场景、使用模型、最后更新日期
- 🔄 定期回顾和优化:每月花 30 分钟整理和改进常用 Prompt
- 🤝 组内共享:在组内共享文件夹中维护公共 Prompt 库
4. 组内经验汇总🔗
本节持续更新。 欢迎所有组员按格式记录自己的踩坑经验,帮助后来的同学少走弯路。
4.1 经验记录模板🔗
每条记录请按以下格式填写:
填写说明:
- 日期:遇到问题的日期,格式
YYYY-MM-DD - 问题描述:简洁、准确地描述遇到的问题(一两句话)
- 解决方案:如何解决的,越具体越好(包含关键命令、设置项、Prompt 等)
- 使用工具:涉及哪个 AI 工具(ChatGPT / Claude / Copilot / DeepSeek 等)
- 贡献者:记录者姓名或昵称
4.2 经验记录汇总🔗
| 日期 | 问题描述 | 解决方案 | 使用工具 | 贡献者 |
|---|---|---|---|---|
| 2026-04-05 | ChatGPT 给出的 Biopython 代码引用了 Bio.Alphabet 模块,该模块在 Biopython 1.78+ 已被移除 | 在 Prompt 中明确指定 Biopython 版本:"请使用 Biopython 1.83 的 API,注意 Bio.Alphabet 模块已在 1.78 中被移除" | ChatGPT | 张三 |
| 2026-03-28 | 让 Claude 分析一篇 PDF 论文,上传后提示"文件过大" | 将 PDF 拆分为每 10 页一个文件后分次上传;或者用 pymupdf 提取文本后直接粘贴 | Claude | 李四 |
| 2026-03-20 | 用 ChatGPT 生成的 matplotlib 绘图代码,中文标签显示为方块 | 在代码中添加字体设置:plt.rcParams['font.sans-serif'] = ['SimHei'](Windows)或 ['Arial Unicode MS'](macOS),并设置 plt.rcParams['axes.unicode_minus'] = False | ChatGPT | 王五 |
| 2026-03-15 | Python 脚本通过 OpenAI API 批量处理数据,运行到一半报 RateLimitError | 添加了指数退避重试逻辑(tenacity 库),并将请求间隔设为 1 秒。详见本章 2.5 节 | OpenAI API | 张三 |
| 2026-03-10 | Copilot 在暑期服务器上一直提示 "Unable to connect",其他网站正常 | 实验室服务器的代理配置没有覆盖 VS Code。在 VS Code 设置中手动配置了 http.proxy 项 | GitHub Copilot | 赵六 |
| 2026-03-02 | 用 AI 生成的 GROMACS mdp 参数文件中 nsteps 值计算错误,本应模拟 100 ns 但实际只有 10 ns | AI 把 dt=0.002 ps 误算为 0.02 ps。教训:涉及数值计算一定要自己手动验证 | ChatGPT | 李四 |
| 2026-02-25 | DeepSeek 生成的 R 代码使用了 ggplot2 的旧语法 aes_string()(已弃用) | Prompt 中添加"请使用 ggplot2 3.5+ 的最新语法,使用 aes() 配合 .data 代词" | DeepSeek | 王五 |
| 2026-02-18 | 在 ChatGPT 中粘贴 CSV 数据让它分析,结果列对齐错误导致整个分析都是错的 | 改为上传 CSV 文件而非粘贴文本;或者用 Markdown 表格格式粘贴。教训:粘贴表格数据前先检查对齐 | ChatGPT | 赵六 |
| 2026-02-10 | 让 AI 写的 PDB 文件解析脚本无法正确解析某些 PDB 文件的 ATOM 行 | PDB 格式是固定列宽格式,AI 用 split() 按空格分隔导致错误。改为按列位置切片:atom_name = line[12:16].strip() | Claude | 张三 |
| 2026-02-01 | 论文写作时 AI 推荐的参考文献完全是虚构的(4 篇中 3 篇查不到) | 所有 AI 推荐的文献必须在 Google Scholar 或 PubMed 中逐一验证。现在改为只让 AI 帮忙润色,文献完全手动查找 | ChatGPT | 李四 |
4.3 高频问题 Top 5🔗
根据组内记录统计,最常遇到的问题类型是:
- 🥇 AI 生成的代码使用了过时的 API / 库版本(占比约 30%)
- 预防:在 Prompt 中明确要求使用的库版本号
- 🥈 AI 编造虚假文献引用(占比约 20%)
- 预防:所有文献手动验证,决不直接引用
- 🥉 数值计算错误(单位、数量级)(占比约 15%)
- 预防:涉及数字必须手动复核
- 网络/代理配置问题(占比约 15%)
- 预防:参见本章 2.2 节统一配置
- 中文编码/显示问题(占比约 10%)
- 预防:参见本章 2.8 节
5. AI 工具故障排查流程🔗
当你使用 AI 工具遇到问题时,请按以下流程逐步排查:
5.1 总体排查流程🔗
┌─────────────────────┐
│ AI 工具出了问题? │
└─────────┬───────────┘
│
┌─────────▼───────────┐
│ 问题分类是什么? │
└─────────┬───────────┘
│
┌───────────────────┼───────────────────┐
│ │ │
┌───────▼──────┐ ┌───────▼──────┐ ┌───────▼──────┐
│ A. 无法连接 │ │ B. 返回报错 │ │ C. 结果不对 │
│ /超时 │ │ │ │ /质量差 │
└───────┬──────┘ └───────┬──────┘ └───────┬──────┘
│ │ │
▼ ▼ ▼
见 5.2 见 5.3 见 5.4
5.2 路径 A:无法连接 / 超时🔗
无法连接/超时
│
├─→ 检查网络连通性(能否打开百度?)
│ ├─ 不能 → 检查 WiFi / 网线连接
│ └─ 能
│ │
│ ├─→ 访问的是国际服务(OpenAI/Claude/Gemini)?
│ │ ├─ 是 → 检查 VPN/代理是否开启(见 2.2 节)
│ │ │ ├─ 已开启 → 检查代理端口是否正确
│ │ │ │ 检查 终端 / VS Code 代理设置
│ │ │ └─ 未开启 → 开启代理,或改用国内模型
│ │ └─ 否(国内服务)→ 检查服务是否宕机(看官网状态页)
│ │
│ └─→ 是否服务器端问题?
│ ├─ 查看 status.openai.com / status.anthropic.com
│ └─ 如果服务正常 → 检查防火墙/安全软件是否拦截
│
└─→ 仍无法解决 → 尝试换一个模型/服务暂时替代
5.3 路径 B:返回报错🔗
返回报错
│
├─→ 报错信息包含什么关键词?
│
├─ "AuthenticationError" / "Invalid API key"
│ └─→ 检查 API Key 是否正确配置(见 2.1 节)
│
├─ "RateLimitError" / "Too Many Requests" / "429"
│ └─→ 等待后重试,或添加重试逻辑(见 2.5 节)
│
├─ "context_length_exceeded" / "maximum context length"
│ └─→ 压缩输入(见 2.3 节)
│
├─ "timeout" / "connection reset"
│ └─→ 网络问题(回到路径 A)或使用 stream 模式
│
├─ "model_not_found" / "does not exist"
│ └─→ 检查模型名称拼写,确认是否有访问权限
│
├─ "content_policy_violation"
│ └─→ 输入触发了内容审核,修改措辞后重试
│
└─ 其他报错
└─→ 复制完整报错信息 → 搜索官方文档 / Stack Overflow
→ 或将报错信息丢给另一个 AI 帮忙解读
5.4 路径 C:结果不对 / 质量差🔗
结果不对/质量差
│
├─→ 是什么类型的"不对"?
│
├─ 事实性错误(编造文献、数据错误)
│ └─→ 这是幻觉(见 1.1 节)
│ ├─ 要求 AI 标注信息来源
│ ├─ 用多个模型交叉验证
│ └─ 关键信息手动查证
│
├─ 格式不符合要求
│ └─→ 优化 Prompt,提供明确格式示例(见 2.4 节)
│ ├─ 使用 JSON Mode / Structured Output
│ └─ 添加后处理容错代码
│
├─ 输出不完整 / 被截断
│ └─→ Token 限制问题(见 2.3 节)
│ ├─ 增大 max_tokens
│ ├─ 追问"请继续"
│ └─ 拆分任务
│
├─ 代码有 Bug
│ └─→ 代码测试问题(见 1.5 节)
│ ├─ 检查库版本
│ ├─ 在 Prompt 中指定版本号
│ └─ 用小数据集先测试
│
├─ 回答偏离主题
│ └─→ Prompt 不够具体(见 1.2 节)
│ ├─ 精简并聚焦 Prompt
│ ├─ 添加角色定义和输出约束
│ └─ 提供几个示例(Few-shot)
│
└─ 中文输出质量不佳
└─→ 尝试换用中文友好的模型(DeepSeek、Qwen、ChatGPT)
或先让 AI 用英文输出,再翻译为中文
5.5 快速排查 Checklist🔗
遇到任何 AI 工具问题时,先过一遍这个清单:
- 网络正常? 能否正常打开网页?代理/VPN 是否开启?
- API Key 有效? Key 是否正确配置?额度是否充足?
- 模型名称正确? 拼写是否正确?是否有该模型的访问权限?
- 输入长度合理? 是否超过模型的上下文窗口限制?
- Prompt 清晰? 角色、任务、格式是否明确?
- 输出经过验证? 事实、数据、文献是否手动核实?
- 代码经过测试? 是否用小数据集跑过?边界条件是否考虑?
- 编码正确? 文件编码是否为 UTF-8?
- 版本兼容? Prompt 中是否指定了依赖库版本?
- 已查看官方状态页? 服务是否正在维护或故障?
本章小结🔗
- ✅ AI 输出必须验证——幻觉是 LLM 的固有特性,不是偶发 Bug
- ✅ Prompt 贵在精炼明确——不是越长越好,结构化比堆砌信息更有效
- ✅ 选择合适的工具——不同模型各有所长,重要任务交叉验证
- ✅ AI 是副驾驶——方向盘和刹车必须在自己手里
- ✅ 代码先测再用——AI 生成的代码同样需要测试和 Code Review
- ✅ 尊重学术诚信——声明 AI 使用,不直接复制粘贴
- ✅ 技术问题系统排查——按流程图逐步定位,不盲目乱试
- ✅ 团队共享经验——你踩过的坑可以帮别人省下几个小时
延伸阅读🔗
- OpenAI 官方使用指南(2026-04 访问)
- Anthropic Claude 文档(2026-04 访问)
- Prompt Engineering Guide(2026-04 访问)
- 相关章节:大模型基础认知
- 相关章节:ChatGPT 使用指南
- 相关章节:VSCode Vibe Coding
- 相关章节:本地部署与隐私安全
参考文献🔗
-
多数主流学术期刊(如 Nature、Science、Cell)已在 2024 年后明确要求作者声明是否使用 AI 辅助工具。详见各期刊的 Author Guidelines。 ↩