课程要求见RAG项目目标.md,文件职责与调用关系见项目结构.md。
| 需要做什么 | 在VS Code中打开并运行 |
|---|---|
| 自动完成30题、盲答和V3 RAG两模式共60项 | run_30.py,点击右上角运行,无需输入指令 |
| 交互提问 | search_rag_weather_fx.py,直接提问使用RAG,输入“盲答 问题”使用盲答,quit退出 |
测评入口优先复用.venv,固定项目工作目录,自动检查依赖、运行评测并导出结果。每次运行新建outputs/experiment/exp_序号/,终端显示准确率、90%目标状态及保存位置。中断后保留记录,重新运行另建一轮。
从GitHub下载并完整解压后,先双击根目录的 一键配置环境.cmd。它会检测已有Python 3,创建或复用项目.venv,自动补齐pip和缺失依赖,并运行依赖兼容性检查;窗口会保留成功或失败提示,完成后再运行run_30.py。此双击入口使用Windows自带命令处理器,无需额外安装PowerShell。安装依赖需要联网,电脑需已安装Python 3。
项目环境与全局Python隔离,可避免全局环境中humanfriendly缺少pyreadline3等无关依赖导致启动检查失败。已有.venv损坏或依赖冲突时会报错并停止,不覆盖环境。此步骤仅准备环境,不运行测评或验证模型服务是否可用。
复用已有.env和.venv。首次配置参照.env.example设置LLM_API_KEY、LLM_API_BASE、LLM_MODEL,不输出或提交密钥;额外参数通过LLM_EXTRA_BODY JSON传递。服务商自带联网必须关闭,已识别的通义千问和智谱官方接口有关闭设置,其他服务须在实际服务端核实。
需要准备环境或检查代码时,在根目录使用PowerShell 7:
.\scripts\run_project.ps1 -Task setup
.\scripts\run_project.ps1 -Task test启动器只补缺失依赖,不重复安装。执行策略阻止时,在命令前使用pwsh -NoProfile -ExecutionPolicy Bypass -File。依赖为OpenAI兼容客户端、requests、BeautifulSoup、dotenv与Pillow,绘图采用基础路径。
.\scripts\run_project.ps1 -Task demo -Version V3
.\scripts\run_project.ps1 -Task demo -Version blind
.\scripts\run_project.ps1 -Task demo -Version blind -TimeInjection off
.\scripts\run_project.ps1 -Task demo -Version blind -TimeInjection on先完成两模式各一次真实问答;时间注入前后均问“今天日期是?”,截图并用2~3句分析实际差异,不预设模型一定答错。再分别以-Version V1、V2、V3测试同四题:至少两道时效性或冷门题、一道常识题、一道已核验陷阱题。记录搜索行为、关键词合理性、答案正确性、角色风格、是否编造及核验依据,每版保留完整截图。
会话自动存入outputs/sessions/,手工提问、事实核验与截图由组员完成。V1保留教师原文;V3有拒答规则及两个明确标为虚构的完整Few-shot,模拟内容不算真实证据。时间注入只提供北京时间,不能代替实时天气或汇率。
日常直接运行run_30.py。需要调整并发或重新导出已有轮次时:
.\scripts\run_project.ps1 -Task experiment -Workers 3
.\scripts\run_project.ps1 -Task export -InputDir outputs\experiment\exp_5export只核验指定轮次并重建统计、图表和Token表,不调用模型、不重新获取标准值。八列results.csv、accuracy.png、token_comparison.csv和实验结果摘要.md用于报告,完整文件含义见项目结构.md。摘要中auto-statistics标记内由程序更新,人工分析写在标记外,重导出会保留。
评测约束:
- 教师固定15天气+15汇率全覆盖,每题现场取得标准值,两模式共享;标准值只用于评分,不进入模型上下文或检索材料。盲答与V3 RAG均注入北京时间。
- 评分沿用教师函数:天气±3℃、汇率±1.5%。标准值缺失不计分并报告有效分母;其他失败计错,全部记录保留,不跨轮拼接或只重跑错题替换答案。
- 保留ReAct和两轮搜索上限。天气首轮“城市天气”,证据不足时第二轮精确实体加引号并设置中文地区参数;每轮最多补读一个实际Bing结果中的天气网城市首页,核对城市、当天日期和当前温度栏,不用预报替代。页面日期、抓取时间不充当观测时刻。
- Bing请求固定
ensearch=1、mkt=zh-CN、setlang=zh-hans,显式指定国际检索模式与中文地区,避免www/cn跳转后使用不同默认模式;这不是VPN,也不保证网站始终可访问。支持两种域名及相对跳转链接的解码。补读链接可来自本次结果页的全部自然结果(不翻页),包括实际返回的天气网城市子域名首页,最终仍最多提供5条材料、补读1页;日志保留原始搜索词、参数、最终地址及全部自然结果的排名与来源。 - 汇率首轮“中国银行外汇牌价 币种名”,不足时第二轮将来源与币种分别加引号。只读实际结果中的中行官网当日目标行,核实100外币单位,固定以现汇买卖价均值/100计算参考值并披露口径、发布时间和来源。缺少有效证据可拒答,不根据标准值选择价格列。
- 同URL连接、超时、429或5xx故障最多请求两次,逐次记录参数和状态,不关闭TLS校验或增加隐藏搜索。模型单次请求超时60秒,SDK隐式重试关闭,外层最多尝试两次;任次usage缺失则完整累计Token未知。
- 导出核对固定题目、源码指纹、实际提示词、原始回答、教师判分和Token累计。指纹只证明档案内部一致性,不能证明服务商内部未联网。
退出码0表示流程完成,不保证准确率达标;1表示环境或文件失败;2表示已导出但有标准值缺失或失败任务;130表示中断。90%目标要求标准值30/30完整且RAG至少答对27题,独立于课程“提升5或10个百分点”的达标线。
exp_5于北京时间2026年10月22日23:56:51至23:59:47完整运行:盲答4/30(13.33%),RAG28/30(93.33%),天气和汇率各14/15,标准值30/30,60项任务正常结束。两道错题为拉萨与俄罗斯卢布的来源数值超差,仍计错;详细证据见同轮实验分析。全部对照轮次及失败记录保留。
93.33%仅代表对应轮次的归档版本。固定30题上的调优不能当作独立泛化测试,实时数据与模型输出变化也不保证未来每轮都达到90%。
2026年10月27日已针对第7轮的无关搜索结果调整Bing模式参数、跳转链接解码及来源链接选择。当前VPN环境下的公开网页对照不等于无VPN实测;修改后请关闭VPN,重新运行run_30.py取得独立新一轮成绩,不将第6、7轮成绩沿用于本版代码。搜索模式与域名不是一回事,最终地址是否含cn本身不能说明检索是否有效。
报告先保存可编辑Word到reports/,当前草稿仍基于exp_3,需按最新轮次更新实验部分。保留“一”至“七”及原小题名称,封面和真实分工在前;理论12小题各100~200字、公式规范;加入真实手工对照与截图、准确率图、至少五题Token表及分析。组号、三人姓名学号、真实分工和每人不少于200字的独立总结由本人提供。
课程最终只收PDF,补齐后另行导出并检查分页;当前不自动生成PDF。如需打包只用zip,包含报告、完整源码和同轮results.csv,排除.env、.venv与密钥,并按课程规则说明工具辅助。