我正在尝试获取对 betav1 版本一部分的文件上传端点的支持。尚未添加到 generative ai js 库中。
我可以加载发现文档并调用文件端点
require('dotenv').config();
const API_KEY = process.env.API_KEY; // Get the api key from env
const MODEL_NAME = process.env.TEXT_MODEL_NAME_LATEST; // Get the model name from env
// Importing the GoogleGenerativeAI class from the "@google/generative-ai" package
const { GoogleGenerativeAI } = require("@google/generative-ai");
// Access your API key as an environment variable (see "Set up your API key" above)
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
async function run() {
// For text-only input, use the gemini-pro model
const model = genAI.getGenerativeModel({ model: MODEL_NAME},{apiVersion: 'v1beta',});
const prompt = "Write a story about a magic backpack."
const result = await model.generateContent(prompt);
const response = await result.response;
const text = response.text();
console.log(text);
}
run();
它会导致错误,因为它没有添加 api 密钥。
errors: [
{
message: "Method doesn't allow unregistered callers (callers without established identity). Please use API Key or other form of API consumer identity to call this API.",
domain: 'global',
reason: 'forbidden'
}
],
有人知道如何添加 api 密钥吗?
经过多次来回接缝后,您可以将钥匙直接加载到服务中
const service = google.discoverAPI(discoveryUrl, { auth : apiKey});
const { google } = require('googleapis');
require('dotenv').config();
const API_KEY = process.env.API_KEY; // Get the api key from env
async function createService(apiKey) {
const discoveryUrl = `https://generativelanguage.googleapis.com/$discovery/rest?version=v1beta&key=${apiKey}`;
try {
const service = google.discoverAPI(discoveryUrl, { auth : apiKey});
return service;
} catch (error) {
console.error('Error fetching discovery document:', error);
throw error;
}
}
// Usage
createService(API_KEY)
.then(async service => {
// You can use the service object here
const res = await service.files.list({
pageSize: 100,
});
console.log(res)
const files = res.data.files;
if (files.length === 0) {
console.log('No files found.');
return;
}
console.log('Files:');
files.map((file) => {
console.log(`${file.name} (${file.id})`);
});
//console.log('Service created:', service);
})
.catch(error => {
console.error('Error creating service:', error);
});