我在尝试在React Native中使用生成语言API(Gemini API),所以我首先尝试使用curl。有人给了我这个命令:
`
API_KEY="YOUR_API_KEY"# 在下面的generationConfig中调整安全设置。# 请参阅 https://ai.google.dev/gemini-api/docs/safety-settingscurl \ -X POST https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=${API_KEY} \ -H 'Content-Type: application/json' \ -d @<(echo '{ "contents": [ { "role": "user", "parts": [ { "text": "input: " }, { "text": "output: " } ] } ], "generationConfig": { "temperature": 1, "topK": 64, "topP": 0.95, "maxOutputTokens": 8192, "responseMimeType": "text/plain" }}')
`
但我得到了这个错误:
"error": { "code": 400, "message": "接收到无效的JSON负载。未知名称\"generationConfig\":无法找到字段。", "status": "INVALID_ARGUMENT", "details": [ { "@type": "type.googleapis.com/google.rpc.BadRequest", "fieldViolations": [ { "description": "接收到无效的JSON负载。未知名称\"generationConfig\":无法找到字段。" } ] } ] } }'
除了API密钥之外,还有什么需要调整的吗?我正在尝试在React Native中使用生成语言API(Gemini API),所以我首先尝试使用curl。我希望能得到AI的响应。
回答:
将curl转换为使用Axios或Fetch会更容易也更好:
使用Axios:
npm install axios
import axios from 'axios';const API_KEY = 'YOUR_API_KEY';const url = `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=${API_KEY}`;const requestData = { contents: [ { role: 'user', parts: [ { text: 'input: ' }, { text: 'output: ' } ] } ], generationConfig: { temperature: 1, topK: 64, topP: 0.95, maxOutputTokens: 8192, responseMimeType: 'text/plain' }};axios.post(url, requestData, { headers: { 'Content-Type': 'application/json' }}).then(response => { console.log(response.data);}).catch(error => { console.error('Error:', error);});
使用标准Fetch:
const API_KEY = 'YOUR_API_KEY';const url = `https://generativelanguage.googleapis.com/v1beta/models/gemini-1.5-flash:generateContent?key=${API_KEY}`;const requestData = { contents: [ { role: 'user', parts: [ { text: 'input: ' }, { text: 'output: ' } ] } ], generationConfig: { temperature: 1, topK: 64, topP: 0.95, maxOutputTokens: 8192, responseMimeType: 'text/plain' }};fetch(url, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify(requestData)}) .then(response => response.json()) .then(data => console.log(data)) .catch(error => console.error('Error:', error));