<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>ページタイトル</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div class="container">
<header>
<h1>タイトル</h1>
</header>
<main>
<section class="input-section">
<div class="input-group">
<label for="inputText">入力フォーム</label>
<textarea id="inputText"></textarea>
</div>
<div class="button-container">
<button id="generateBtn">
実行
</button>
</div>
</section>
<section class="result-section" id="resultSection">
<div class="result-header">
<label>出力エリア</label>
</div>
<div class="result-content" id="resultText"></div>
</section>
</main>
</div>
<script src="script.js"></script>
</body>
</html>
document.addEventListener('DOMContentLoaded', () => {
const generateBtn = document.getElementById('generateBtn');
const resultText = document.getElementById('resultText');
generateBtn.addEventListener('click', async () => {
const apiKey = "※※※とりあえずここにAPIキーを入れる※※※";
const inputText = document.getElementById('inputText').value.trim();
try {
const result = await generateNovelScene(apiKey, inputText);
resultText.textContent = result;
} catch (error) {
console.error('Error:', error);
alert('生成中にエラーが発生しました: ' + error.message);
}
});
});
async function generateNovelScene(apiKey, inputText) {
const prompt = `${inputText}`;
const url = `https://generativelanguage.googleapis.com/v1beta/models/gemini-flash-latest:generateContent?key=${apiKey}`;
const response = await fetch(url, {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify({
contents: [{
parts: [{ text: prompt }]
}]
})
});
if (!response.ok) {
const errorData = await response.json();
throw new Error(errorData.error?.message || 'API通信エラー');
}
const data = await response.json();
return data.candidates[0].content.parts[0].text;
}