forked from Gerome-Elassaad/CodingIT
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathprompt-box.tsx
More file actions
41 lines (35 loc) · 1.31 KB
/
Copy pathprompt-box.tsx
File metadata and controls
41 lines (35 loc) · 1.31 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import { PromptInputBox } from "@/components/ui/ai-prompt-box";
import { LLMModel, LLMModelConfig } from "@/lib/models";
import models from "@/lib/models.json";
import templates, { TemplateId } from "@/lib/templates";
import { useState } from "react";
const PromptBox = () => {
const [selectedTemplate, setSelectedTemplate] = useState<TemplateId | "auto">("auto");
const [languageModel, setLanguageModel] = useState<LLMModelConfig>({
model: models.models[0].id,
});
const handleSendMessage = (message: string, files?: File[]) => {
console.log("Message:", message);
console.log("Files:", files);
};
const handleLanguageModelChange = (modelConfig: LLMModelConfig) => {
setLanguageModel(modelConfig);
};
const filteredModels = models.models as LLMModel[];
return (
<div className="p-4 w-[500px]">
<PromptInputBox
onSend={handleSendMessage}
templates={templates}
selectedTemplate={selectedTemplate}
onSelectedTemplateChange={setSelectedTemplate}
models={filteredModels}
languageModel={languageModel}
onLanguageModelChange={handleLanguageModelChange}
apiKeyConfigurable={!process.env.NEXT_PUBLIC_NO_API_KEY_INPUT}
baseURLConfigurable={!process.env.NEXT_PUBLIC_NO_BASE_URL_INPUT}
/>
</div>
);
};
export { PromptBox };