需在ci/cd中自动校验gemini响应质量:建test_cases.json定义prompt及length/keywords/patterns规则;分组≤15条防限流;用generate_content_batch(≤10)或asyncio+semaphore(3)并发调用,必带request_id;执行结构、长度、关键词、禁忌词四维校验;生成含request_id、prompt_hash、status_code等字段的report.csv。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

你需要在CI/CD流水线中自动运行一批提示词,对比Gemini模型每次返回的响应是否符合预设质量标准,避免人工逐条检查耗时且漏判。
准备测试用例集与断言规则
新建一个JSON文件(如test_cases.json),每条记录包含prompt、expected_length_min、required_keywords、forbidden_patterns四个字段。不要用CSV——Gemini输出含换行或引号时CSV解析极易出错。
在required_keywords中填入必须出现的术语,例如["JSON格式","状态码200","幂等性"];forbidden_patterns填入绝对不能出现的词,例如["可能","也许","建议你"]。这一步漏填任何一项,后续校验将完全失效。
把所有测试用例按业务模块分组,每组不超过15条。超过15条后Gemini批量调用容易触发限流,且单次失败难以定位具体哪条case异常。
构造带上下文约束的批量请求
方法一:用generateContentBatch一次性提交多条prompt
调用genai.GenerativeModel.generate_content_batch(),传入list[dict],每项含parts=[{"text": prompt}]和generation_config(指定max_output_tokens=512)。注意:batch size不能超过10,否则Google Cloud会直接拒绝请求并返回429。
方法二:并发调用+限速控制
用asyncio.Semaphore(3)限制并发数为3,配合aiohttp异步发送单条请求。比batch更稳定,尤其当部分prompt触发模型重试逻辑时不会拖垮整批。
【必须设置request_id字段】在每个请求的metadata里注入唯一request_id,用于后续日志追踪和失败回溯。不加这个字段,CI失败时你根本无法判断是第几条prompt导致超时。
执行四维响应质量校验
第一步:结构合规性检查→提取响应文本→用json.loads()尝试解析→捕获JSONDecodeError则标记“结构错误”
第二步:长度阈值验证→计算实际字符数→低于expected_length_min即判定“信息不全”
第三步:关键词命中检测→对required_keywords逐个执行text.find(keyword) != -1→任一未命中即标为“语义缺失”
第四步:禁忌词拦截→遍历forbidden_patterns→text.count(pattern) > 0立即中断并标记“风险表述”
校验过程禁止使用正则模糊匹配forbidden_patterns——Gemini有时会把“也许”拆成“也 许”绕过基础检测,必须用字符串精确匹配。
生成可读性测试报告
用Python内置csv.writer写入report.csv,字段顺序为:request_id, prompt_hash, status_code, error_type, response_length。
status_code填数字:200=全部通过,400=结构错误,401=信息不全,403=语义缺失,406=风险表述。
error_type只写最严重的一项,不堆砌多个。比如同时存在结构错误和风险表述,只记“结构错误”。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











