как указать systemInstruction при отправке запроса к API Gemini с помощью Vertex AI. Игровая площадка vertex ai показывает способ сделать это с помощью python, но не с помощью узла js.
Указанный метод Python:
def multiturn_generate_content():
vertexai.init(project = "myProjectId", location = "us-central1")
model = GenerativeModel(
"gemini-1.0-pro-002",
system_instruction=["""you are an ai assistant"""]
)
chat = model.start_chat()
#rest of the code
multiturn_generate_content()
Что я пробовал с узлом js:
Обратите внимание на ошибки: ClientError: [VertexAI.ClientError]: No content is provided for sending chat message.
const { VertexAI } = require('@google-cloud/vertexai')
let generativeModel;
const projectId = 'myProjectId';
const location = 'us-central1';
const model = 'gemini-1.0-pro-002';
function initializeGenerativeModel() {
try {
const vertex_ai = new VertexAI({ project: projectId, location: location, model: model });
generativeModel = vertex_ai.preview.getGenerativeModel({
model: model,
generationConfig: {
'maxOutputTokens': 8192,
'temperature': 1,
'topP': 0.95,
},
safetySettings: [
{
'category': 'HARM_CATEGORY_HATE_SPEECH',
'threshold': 'BLOCK_MEDIUM_AND_ABOVE'
},
{
'category': 'HARM_CATEGORY_DANGEROUS_CONTENT',
'threshold': 'BLOCK_MEDIUM_AND_ABOVE'
},
{
'category': 'HARM_CATEGORY_SEXUALLY_EXPLICIT',
'threshold': 'BLOCK_MEDIUM_AND_ABOVE'
},
{
'category': 'HARM_CATEGORY_HARASSMENT',
'threshold': 'BLOCK_MEDIUM_AND_ABOVE'
}
],
});
} catch (error) {
console.error('Error initializing VertexAI:', error);
throw error;
}
}
initializeGenerativeModel();
async function gemini_1_0_pro(query) {
try {
const chat = generativeModel.startChat();
const systemInstruction = "You are an ai assistant";
const result = await chat.sendMessageStream({
role: 'system',
content: systemInstruction
});
await chat.sendMessageStream({
role: 'user',
content: query
});
for await (const item of result.stream) {
const response = item.candidates[0].content.parts[0].text;
console.info(response)
}
const aggregatedResponse = await result.response;
console.info(aggregatedResponse)
} catch (error) {
console.error('Error in gemini_1_0_pro:', error);
}
}
module.exports = { gemini_1_0_pro };
@DazWilkin пример кода, который они предоставляют для системных инструкций, предназначен только для Python. Я пытался реализовать это для узла js (как показано выше), но не могу заставить его работать)
Нет, это не так. Ссылка, которую я вам отправил, по умолчанию должна указывать на образец Node.JS. Если это не так, под «Отправить подсказки чата» есть селектор, позволяющий выбрать предпочитаемый язык.
Код JS узла @DazWilkin предназначен только для отправки подсказок в чат. Для системных инструкций по умолчанию используется Python и нет селектора для переключения на узел js. Вот посмотрите: cloud.google.com/vertex-ai/generative-ai/docs/multimodal/…
Вы правы, мои извинения.
Хорошо, извините за мое недопонимание.
Похоже, вы можете:
const generativeModel = vertexAI.getGenerativeModel({
...
systemInstruction: {
role: "system",
parts: [{text: "You are an AI assistant"}]
}
});
Или
const chat = generativeModel.startChat({
systemInstruction: {
role: "system",
parts: [{text: "You are an AI assistant"}]
}
});
Я нашел следующее полезным:
И я наконец (!) нашел документацию по API, которая это подтверждает:
Спасибо, это работает! мб за поздний ответ, разные часовые пояса :)
Мне приятно это слышать!
это помогает?