firefly并发处理长提示词需分片、并发请求并合并结果:先按语义单元切分为≤800字符的utf-8无bom文本文件;再用curl或python并发提交,每请求含model和input字段;最后按序拼接200响应的output.text,清洗多余空行。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

Firefly并发处理提示词时,需绕过单次请求的长度限制并保持语义连贯性,否则容易触发截断或生成内容失焦。
准备提示词分片
将原始长提示词按逻辑单元切分为若干段,每段控制在800字符以内。优先在句号、换行符或语义停顿处切割,避免在名词短语中间硬拆——比如“高性能GPU加速的实时渲染管线”不能拆成“高性能GPU加速的/实时渲染管线”,否则并发提交后模型无法识别完整术语。
保存每一段为独立文本文件,命名为prompt_01.txt、prompt_02.txt……确保文件编码为UTF-8无BOM,Firefly API对含BOM的文件可能解析失败。
构造并发请求体
方法一:使用curl批量发送
逐个构建JSON请求体,每个body中必须包含model字段(如"firefly-v2")和input字段(值为对应分片内容),【缺model字段会导致400错误且无明确提示】。将全部请求体存入requests.jsonl,每行一个合法JSON对象,不加逗号,不包数组。
方法二:Python脚本调用requests库
用for循环遍历分片列表,对每个分片调用requests.post(),headers设为{"Authorization": "Bearer YOUR_TOKEN", "Content-Type": "application/json"},超时设为30秒以上——网络抖动时默认5秒会直接中断请求。
合并返回结果
第一步:接收全部响应后,检查每个response.status_code是否为200;
第二步:提取每个response.json()["output"]["text"]字段;
第三步:按原始分片顺序拼接文本,中间插入一个空行分隔;
第四步:用正则re.sub(r'\n\s*\n', '\n\n', merged_text)清洗多余空行——Firefly在段尾补全时可能多输出换行,不清理会导致段间距异常扩大。











