如何使用curl从Gemini 1.5 API获取JSON格式的数据?下面的代码可以正常工作:
curl -H 'Content-Type: application/json' -H "x-goog-api-key: ${API_KEY}" -d '{"contents":[ {"role": "user", "parts":[{"text": "Give me five subcategories of jazz?"}]}]}' "https://generativelanguage.googleapis.com/v1/models/gemini-pro:generateContent"
但是当我尝试添加以下内容时:
,"generation_config": {"response_mime_type": "application/json"}}
结果如下:
curl -H 'Content-Type: application/json' -H "x-goog-api-key: ${API_KEY}" -d '{"contents":[ {"role": "user", "parts":[{"text": "Give me five subcategories of jazz?"}]},"generation_config": {"response_mime_type": "application/json"},]' "https://generativelanguage.googleapis.com/v1/models/gemini-1.5-flash:generateContent"
我收到了以下错误响应:
"error": { "code": 400, "message": "Invalid JSON payload received. Unknown name \"response_mime_type\" at 'generation_config': Cannot find field.", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "field": "generation_config", "description": "Invalid JSON payload received. Unknown name \"response_mime_type\" at 'generation_config': Cannot find field." } ] } ] }
我尝试了几个不同的模型(例如gemini-1.5-pro-latest
),结果总是相同。
回答:
试试这个。
curl https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=$GOOGLE_API_KEY \ -H 'Content-Type: application/json' \ -X POST \ -d '{ "contents": [{ "parts":[ {"text": "Write a story about a magic backpack."} ] }], "safetySettings": [ { "category": "HARM_CATEGORY_DANGEROUS_CONTENT", "threshold": "BLOCK_ONLY_HIGH" } ], "generationConfig": { "stopSequences": [ "Title" ], "temperature": 1.0, "maxOutputTokens": 800, "topP": 0.8, "topK": 10, "responseMimeType": "application/json" } }' 2> /dev/null | grep "text"