一、打开Google AI Studio
https://makersuite.google.com/app/apikey
二、在国外服务器上部署一个接口用于真正的请求
const sdAxiosOnAzure = async (req, res) => {let {config = {url: 'https://sinkin.ai/api/inference',method: 'post',data: {},timeout: 30 * 60 * 1000,},apiKey = '',} = req.bodyif (apiKey === 'XXX') {if (config.headers &&config.headers['Content-Type'] &&config.headers['Content-Type'].includes('multipart/form-data')) {const data = new FormData()let tempData = config.datafor (let key in tempData) {data.append(key, tempData[key])}config.data = dataconfig.headers['Content-Type'] ='multipart/form-data; boundary=' + data.getBoundary()}axios({...config,}).then((response) => {res.send({code: 200,data: {response: response.data,},message: '成功',})}).catch((err) => {res.send({code: 400,data: {err,},message: '失败',})})} else {res.send({code: 400,message: '失败:参数apiKey',})}
}
三、在postman上发起请求
请求:
{"config": {"url": "https://generativelanguage.googleapis.com/v1beta/models/gemini-pro:generateContent?key=xxx","data": {"contents": [{"role": "user","parts": [{"text": "北京有多少人?"}]}]},"method": "post"},"apiKey": "XXX"
}
响应:
{"code": 200,"data": {"response": {"candidates": [{"content": {"parts": [{"text": "截至 2023 年 3 月,北京的人口总数约为 2,154 万。然而,这一数字可能因人口流动和其他因素而变化。因此,您最好查阅更接近实时的数据源,例如北京市政府或国家统计局网站,以获取最准确的北京人口信息。"}],"role": "model"},"finishReason": "STOP","index": 0,"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}],"promptFeedback": {"safetyRatings": [{"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HATE_SPEECH","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_HARASSMENT","probability": "NEGLIGIBLE"},{"category": "HARM_CATEGORY_DANGEROUS_CONTENT","probability": "NEGLIGIBLE"}]}}},"message": "成功"
}
四、在node里发起请求
const { GoogleGenerativeAI } = require('@google/generative-ai')const genAI = new GoogleGenerativeAI('你的key')const chatVertexaiOnAzure = async (req, res) => {let { prompt = 'Write a story about a magic backpack.', apiKey = 'sk-xxx' } =req.bodyif (apiKey === apiKeyOnServer) {const model = genAI.getGenerativeModel({ model: 'gemini-pro' })const result = await model.generateContent(prompt)const response = await result.responseconst text = response.text()res.send({code: 200,data: {text,},message: '成功',})} else {res.send({code: 400,message: '失败:参数apiKey',})}
}
参考链接:
https://chat.xutongbao.top/