File tree Expand file tree Collapse file tree 2 files changed +36
-31
lines changed
Expand file tree Collapse file tree 2 files changed +36
-31
lines changed Original file line number Diff line number Diff line change 1+ 'use server' ;
2+
3+ import { GoogleGenerativeAI } from "@google/generative-ai" ;
4+
5+ interface FormState {
6+ response : string ;
7+ error : string | null ;
8+ }
9+
10+ const genAI = new GoogleGenerativeAI ( process . env . API_KEY ! ) ;
11+
12+ export async function askAI (
13+ prevState : FormState ,
14+ formData : FormData
15+ ) : Promise < FormState > {
16+ const message = formData . get ( 'message' ) ;
17+
18+ if ( ! message || typeof message !== 'string' || message . trim ( ) === '' ) {
19+ return { response : '' , error : 'メッセージを入力してください。' } ;
20+ }
21+
22+ try {
23+ const model = genAI . getGenerativeModel ( { model : "gemini-1.5-flash" } ) ;
24+ const result = await model . generateContent ( message ) ;
25+ const response = result . response ;
26+ const text = response . text ( ) ;
27+ return { response : text , error : null } ;
28+ } catch ( error : unknown ) {
29+ console . error ( "Error calling Generative AI:" , error ) ;
30+ if ( error instanceof Error ) {
31+ return { response : '' , error : `AIへのリクエスト中にエラーが発生しました: ${ error . message } ` } ;
32+ }
33+ return { response : '' , error : '予期せぬエラーが発生しました。' } ;
34+ }
35+ }
36+
Load Diff This file was deleted.
You can’t perform that action at this time.
0 commit comments