Skip to content

Commit 7fd6956

Browse files
authored
Merge pull request #2 from ut-code/feature/backend
簡単なチャットAPIを実装
2 parents 3b85908 + 2a2445b commit 7fd6956

File tree

3 files changed

+46
-0
lines changed

3 files changed

+46
-0
lines changed

app/chat/route.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
import { NextResponse } from 'next/server';
2+
import { GoogleGenerativeAI } from '@google/generative-ai';
3+
4+
5+
const genAI = new GoogleGenerativeAI(process.env.API_KEY);
6+
7+
export async function POST(request) {
8+
const { message } = await request.json();
9+
10+
11+
if (!message) {
12+
return NextResponse.json(
13+
{ error: "メッセージがありません。" },
14+
{ status: 400 }
15+
);
16+
}
17+
18+
try {
19+
const model = genAI.getGenerativeModel({ model: "gemini-1.5-flash" });
20+
21+
const result = await model.generateContent(message);
22+
const response = result.response;
23+
const text = response.text();
24+
25+
return NextResponse.json({ response: text });
26+
27+
} catch (e) {
28+
29+
console.error("Error:", e);
30+
return NextResponse.json(
31+
{ response: "エラーが発生しました。" },
32+
{ status: 500 }
33+
);
34+
}
35+
}

package-lock.json

Lines changed: 10 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
"format": "prettier --write app/"
1111
},
1212
"dependencies": {
13+
"@google/generative-ai": "^0.24.1",
1314
"next": "15.4.5",
1415
"react": "19.1.0",
1516
"react-dom": "19.1.0",

0 commit comments

Comments
 (0)