- {history.map((msg,index)=>{
+ {history.map((msg, index) => {
const isUser = msg.role === "user"
return (
-
- {!isUser &&(
+
+ {!isUser && (
@@ -41,20 +41,20 @@ export default function MessageWindow({history}:MessageWindowProps){
{part.text}))}
- {isUser && (
-
- );
- })}
-
- {/* Invisible element to help scroll to bottom */}
-
+ );
+ })}
+
+ {/* Invisible element to help scroll to bottom */}
+
+
-
);
}
\ No newline at end of file
diff --git a/app/utils/geminiHelper.ts b/app/utils/geminiHelper.ts
index 4fa619c..18987fe 100644
--- a/app/utils/geminiHelper.ts
+++ b/app/utils/geminiHelper.ts
@@ -1,42 +1,42 @@
import { GoogleGenerativeAI } from "@google/generative-ai";
-import { ChatHistory, GenerateConfig,ChatSetting } from "../exportType/types";
+import { ChatHistory, GenerateConfig, ChatSetting } from "../exportType/types";
const apiKey = process.env.GEMINI_API_KEY;
-if(!apiKey){
+if (!apiKey) {
throw new Error("api key not found");
}
const genAI = new GoogleGenerativeAI(apiKey);
export async function chatToGemini(
- userMessage:string ,
- history:ChatHistory,
- settings:ChatSetting
-):Promise
{
- const model = genAI.getGenerativeModel({
- model:settings.model || "gemini-2.5-flash",
- systemInstruction: settings.sysTemInstructions || "you are going to create a project idea, explain it in summery first before going to detail",
- });
-
- const generationConfig:GenerateConfig = {
- temperature : settings.temperature || 1,
- topP : 0.9,
- responseMimeType: "text/plain",
- maxOutputTokens: 1900, // Increased to allow for longer responses
- }
+ userMessage: string,
+ history: ChatHistory,
+ settings: ChatSetting
+): Promise {
+ const model = genAI.getGenerativeModel({
+ model: settings.model || "gemini-2.5-flash",
+ systemInstruction: settings.sysTemInstructions || "you are going to create a project idea, explain it in summery first before going to detail",
+ });
- const chatSession = model.startChat({
- generationConfig,
- history
- })
+ const generationConfig: GenerateConfig = {
+ temperature: settings.temperature || 1,
+ topP: 0.9,
+ responseMimeType: "text/plain",
+ maxOutputTokens: 1900, // Increased to allow for longer responses
+ }
- try {
- const result = await chatSession.sendMessage(userMessage);
- return result.response.text();
- }
- catch(error){
- console.error(error)
- throw error
- }
- }
\ No newline at end of file
+ const chatSession = model.startChat({
+ generationConfig,
+ history
+ })
+
+ try {
+ const result = await chatSession.sendMessage(userMessage);
+ return result.response.text();
+ }
+ catch (error) {
+ console.error(error)
+ throw error
+ }
+}
\ No newline at end of file