我对编程还比较新手,所以如果我的问题显得愚蠢,请原谅我。
我正在编写一个bash脚本,使用xclip和openai来翻译复制的文本。我试图将openai的响应(不包括提示)通过管道传输。
这是脚本的相关部分:
xdotool key ctrl+axdotool key ctrl+cexport OPENAI_API_KEY='XXXXXXXXXXXXXXXXXXXXXX' trans=$(openai api completions.create -m text-davinci-003 -p 'Translate '"$(xclip -o -sel c)"' into English.' | jq -r '.choices[0].text')
echo “$trans” 总是返回以下错误:“parse error: Invalid numeric literal at line 1, column 10”
我稍微研究了一下jq,似乎问题可能出在单引号和双引号的使用上,或者openai的json输出导致了问题,但我不知道如何测试这一点。
回答:
你可以问问ChapGPT 🙂
我认为你可以通过在API请求中指定”Content-Type”头为”application/json”来获得JSON响应。
例如,如果你使用的是OpenAI GPT-3 API:
curl https://api.openai.com/v1/engines/davinci-codex/completions \-H "Content-Type: application/json" \-H "Authorization: Bearer API_KEY" \-d '{"prompt": "Hello, World!", "max_tokens": 5}'