JavaScript: API искусственного интеллекта
Отправьте вопрос в Gemini через fetch и прочитайте ответ из объекта. Ключ остаётся секретом.
Все уроки · Уроки JavaScript: учимся с нуля
API и ключ
Модель с нуля не пишешь. API — мост между твоим кодом и готовой моделью. Код отправляет вопрос, сервер возвращает ответ. Для начала Gemini даёт бесплатный ключ и не просит карту. На aistudio.google.com выбери Get API key, затем Create API key. Ключ как пароль: не делись им и не клади на открытый GitHub.
Запрос — это объект
Вопрос уходит внутри объекта. Текст ответа лежит в candidates[0].content.parts[0].text. candidates — массив, поэтому пишется [0]. Если забыть [0], результат будет undefined.
const sorguMelumati = {
contents: [
{
parts: [{ text: "JavaScript-də dəyişən nədir?" }]
}
]
};Отправь через fetch
POST отправляет вопрос. JSON.stringify превращает объект в текст, чтобы он ушёл. cavab.json() снова делает из ответа объект. В начале и в конце ключа не должно быть пробела. Не клади ключ внутрь страницы: кто увидит, тот сможет его забрать.
const apiKey = "BURAYA_OZ_API_ACARINIZI_YAZIN";
const url = `https://generativelanguage.googleapis.com/v1beta/models/gemini-2.5-flash:generateContent?key=${apiKey}`;
fetch(url, {
method: "POST",
headers: { "Content-Type": "application/json" },
body: JSON.stringify(sorguMelumati)
})
.then(cavab => cavab.json())
.then(melumat => {
const aiMetni = melumat.candidates[0].content.parts[0].text;
console.log(aiMetni);
});Вопросы
Почему приходит 400 или 403? Ключ неверный или вокруг него пробел. В кавычках должен быть только сам ключ.
Почему body не уходит? Объект нельзя писать напрямую. Нужен JSON.stringify(sorguMelumati).
Почему ответ undefined? candidates — массив. Нужно написать [0]. candidates.content неправильно.
Откуда читается текст? melumat.candidates[0].content.parts[0].text