ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

Linux 命令行下用 jq 处理 LLM 返回的 JSON 流:5 个实战技巧jq

Linux 命令行下用 jq 处理 LLM 返回的 JSON 流:5 个实战技巧jq 为什么 AI 应用开发者要掌握 jq在开发 LLM 应用时你经常需要处理 API 返回的 JSON 数据——无论是提取choices[0].message.content还是解析流式响应中的增量内容。虽然 Python 脚本能搞定但在快速调试、日志分析或管道处理时jq是效率最高的命令行工具。下面这些技巧能让你少写几十行 Python。技巧一用-r输出纯文本去掉 JSON 引号原因默认jq输出 JSON 格式字符串会带引号不方便直接保存或重定向。示例echo {content:Hello, AI} | jq -r .content # 输出Hello, AI技巧二用--stream处理流式 JSON如 SSE 数据原因OpenAI 的流式响应是多个 JSON 对象连续输出jq默认只能解析单个 JSON。用--stream可以逐条解析。示例curl -N https://api.openai.com/v1/chat/completions \ -H Authorization: Bearer $OPENAI_API_KEY \ -H Content-Type: application/json \ -d {model:gpt-4,stream:true,messages:[{role:user,content:Hi}]} \ | jq --stream select(length2 and .[0][0]choices) | .[1][0].delta.content // empty这段命令会逐行输出增量文本方便实时查看。技巧三用slurp合并多个 JSON 对象原因当你需要把多行 JSON 合并成一个数组时比如从日志文件分析slurp可以一次性读取所有输入。示例cat responses.jsonl | jq -s . combined.json这样就把每行一个 JSON 变成了一个 JSON 数组。技巧四用map和select批量提取字段原因在处理批量结果时你可能只想提取特定字段或过滤条件。示例cat results.json | jq [.[] | select(.score 0.8) | {id, text: .message.content}]这会输出所有分数大于 0.8 的记录并只保留id和message.content字段。技巧五用json或tsv格式化输出原因当你想把 JSON 转换成其他格式如 CSV 或 TSV用于表格处理时json和tsv非常有用。示例cat data.json | jq -r [.id, .content] | tsv data.tsv这样就能用 Excel 或awk直接处理了。小结掌握这些 jq 技巧后你可以直接在命令行中快速解析、过滤和转换 LLM 返回的数据提高调试效率。建议把常用命令写成 shell 别名比如alias jqstreamjq --stream ...。
返回列表