From 7cff01440d348ecd24e511eb5f3c8c1271e0b747 Mon Sep 17 00:00:00 2001 From: zaidmukaddam Date: Tue, 8 Oct 2024 00:08:01 +0530 Subject: [PATCH] chore: remove reasoning model --- app/search/page.tsx | 497 +++++++++++++------------------------------- pnpm-lock.yaml | 93 +++++---- 2 files changed, 202 insertions(+), 388 deletions(-) diff --git a/app/search/page.tsx b/app/search/page.tsx index b1a6300..7f6fac2 100644 --- a/app/search/page.tsx +++ b/app/search/page.tsx @@ -164,14 +164,6 @@ const HomeContent = () => { const fileInputRef = useRef(null); const inputRef = useRef(null); - const [isInitialQueryProcessed, setIsInitialQueryProcessed] = useState(false); - - const [o1Conversation, setO1Conversation] = useState([]); - const [o1Input, setO1Input] = useState(''); - const [isO1Loading, setIsO1Loading] = useState(false); - const [remainingRequests, setRemainingRequests] = useState(null); - const [resetTime, setResetTime] = useState(null); - const [openChangelog, setOpenChangelog] = useState(false); const { isLoading, input, messages, setInput, handleInputChange, append, handleSubmit, setMessages, reload } = useChat({ @@ -199,93 +191,6 @@ const HomeContent = () => { }, }); - const handleO1InputChange = (e: React.ChangeEvent) => { - setO1Input(e.target.value); - }; - - const handleO1Submit = useCallback(async () => { - if (o1Input.trim()) { - setIsO1Loading(true); - const newUserMessage = { role: 'user' as const, content: o1Input }; - setLastSubmittedQuery(o1Input); - setO1Input(''); - setO1Conversation(prev => [...prev, newUserMessage]); - - try { - const { messages: newMessages, remaining, reset } = await continueConversation([...o1Conversation, newUserMessage]); - setO1Conversation(newMessages); - // make suggestion questions - const { questions } = await suggestQuestions(newMessages); - setSuggestedQuestions(questions); - setRemainingRequests(remaining); - setResetTime(reset); - if (remaining !== null && remaining <= 3) { - toast.warning(`You have ${remaining} requests remaining for the next 4 hours.`); - } - } catch (error) { - console.error("Error in O1 conversation:", error); - toast.error(error instanceof Error ? error.message : "An error occurred while processing your request."); - } finally { - setIsO1Loading(false); - } - } - }, [o1Input, o1Conversation]); - - interface RateLimitInfoProps { - remainingRequests: number; - resetTime: number; - } - - const RateLimitInfo: React.FC = ({ remainingRequests, resetTime }) => { - const formatResetTime = (resetTimestamp: number) => { - const resetDate = new Date(resetTimestamp); - return resetDate.toLocaleTimeString([], { hour: '2-digit', minute: '2-digit' }); - }; - - const getBatteryColor = (remaining: number) => { - if (remaining <= 2) return "text-red-500"; - if (remaining <= 5) return "text-yellow-500"; - return "text-green-500"; - }; - - return ( - - - -
- - {remainingRequests} - -
-
- -

4-hour limit: {remainingRequests} requests remaining

-

Resets at: {formatResetTime(resetTime)}

-
-
-
- ); - }; - - const processInitialQuery = useCallback(async () => { - if (initialQuery && !isInitialQueryProcessed) { - setHasSubmitted(true); - setIsInitialQueryProcessed(true); - track('search with url params', { query: initialQuery }); - - if (selectedModel === 'openai/o1-mini') { - setO1Input(initialQuery); - handleO1Submit(); - } else { - await append({ content: initialQuery, role: 'user' }); - } - } - }, [initialQuery, isInitialQueryProcessed, selectedModel, handleO1Submit, append]); - - if (!isInitialQueryProcessed) { - processInitialQuery(); - } - const CopyButton = ({ text }: { text: string }) => { const [isCopied, setIsCopied] = useState(false); @@ -1802,63 +1707,26 @@ The o1-mini is a new OpenAI model that is optimized for reasoning tasks. Current setHasSubmitted(true); setSuggestedQuestions([]); - if (selectedModel === 'openai/o1-mini') { - setO1Input(exampleText.trim()); - setIsO1Loading(true); - const newUserMessage = { role: 'user' as const, content: exampleText.trim() }; - setO1Conversation(prev => [...prev, newUserMessage]); - setO1Input(""); - try { - const { messages: newMessages, remaining, reset } = await continueConversation([...o1Conversation, newUserMessage]); - setO1Conversation(newMessages); - // make suggestions for the next user message - const { questions } = await suggestQuestions(newMessages); - setSuggestedQuestions(questions); - setRemainingRequests(remaining); - setResetTime(reset); - } catch (error) { - console.error("Error in O1 conversation:", error); - toast.error(error instanceof Error ? error.message : "An error occurred while processing your request."); - } finally { - setIsO1Loading(false); - } - } else { - await append({ - content: exampleText.trim(), - role: 'user', - }); - } - }, [append, setLastSubmittedQuery, setHasSubmitted, setSuggestedQuestions, selectedModel, setO1Input, o1Conversation]); + + await append({ + content: exampleText.trim(), + role: 'user', + }); + + }, [append, setLastSubmittedQuery, setHasSubmitted, setSuggestedQuestions, selectedModel]); const handleSuggestedQuestionClick = useCallback(async (question: string) => { setHasSubmitted(true); setSuggestedQuestions([]); - if (selectedModel === 'openai/o1-mini') { - setO1Input(question.trim()); - setIsO1Loading(true); - const newUserMessage = { role: 'user' as const, content: question.trim() }; - setO1Conversation(prev => [...prev, newUserMessage]); - setO1Input(""); - try { - const { messages: newMessages, remaining, reset } = await continueConversation([...o1Conversation, newUserMessage]); - setO1Conversation(newMessages); - setRemainingRequests(remaining); - setResetTime(reset); - } catch (error) { - console.error("Error in O1 conversation:", error); - toast.error(error instanceof Error ? error.message : "An error occurred while processing your request."); - } finally { - setIsO1Loading(false); - } - } else { - setInput(question.trim()); - await append({ - content: question.trim(), - role: 'user' - }); - } - }, [setInput, append, selectedModel, setO1Input, o1Conversation]); + + setInput(question.trim()); + await append({ + content: question.trim(), + role: 'user' + }); + + }, [setInput, append]); const handleMessageEdit = useCallback((index: number) => { setIsEditingMessage(true); @@ -1901,13 +1769,9 @@ The o1-mini is a new OpenAI model that is optimized for reasoning tasks. Current }, ]; - interface NavbarProps { - selectedModel: string; - remainingRequests: number | null; - resetTime: number | null; - } + interface NavbarProps { } - const Navbar: React.FC = ({ selectedModel, remainingRequests, resetTime }) => { + const Navbar: React.FC = () => { return (
@@ -1923,12 +1787,6 @@ The o1-mini is a new OpenAI model that is optimized for reasoning tasks. Current
- {selectedModel === 'openai/o1-mini' && remainingRequests !== null && resetTime !== null && ( - - )} @@ -2422,20 +2277,12 @@ The o1-mini is a new OpenAI model that is optimized for reasoning tasks. Current const handleModelChange = useCallback((newModel: string) => { setSelectedModel(newModel); setSuggestedQuestions([]); - if (newModel === 'openai/o1-mini') { - setO1Conversation([]); - } else if (messages.length > 0) { - reload({ body: { model: newModel } }); - } - }, [messages, reload]); + reload({ body: { model: newModel } }); + }, [reload]); return (
- +
{!hasSubmitted && ( @@ -2466,14 +2313,14 @@ The o1-mini is a new OpenAI model that is optimized for reasoning tasks. Current transition={{ duration: 0.5 }} > @@ -2484,169 +2331,113 @@ The o1-mini is a new OpenAI model that is optimized for reasoning tasks. Current
- {selectedModel === 'openai/o1-mini' ? ( - <> - {o1Conversation.map((message, index) => ( -
- {message.role === 'user' && ( - - -
-

- {message.content} -

-
-
- )} - {message.role === 'assistant' && ( -
-
-
- -

Answer

-
- -
-
- -
-
- )} -
- ))} - {isO1Loading && ( + {messages.map((message, index) => ( +
+ {message.role === 'user' && ( - +
-
- -

Thinking...

-
-
-
-
-
-
-
- )} - - ) : ( - messages.map((message, index) => ( -
- {message.role === 'user' && ( - - -
- {isEditingMessage && editingMessageIndex === index ? ( -
- setInput(e.target.value)} - className="flex-grow" - /> - - -
- ) : ( -
-

- {message.content} -

-
- {message.experimental_attachments?.map((attachment, attachmentIndex) => ( -
- {attachment.contentType!.startsWith('image/') && ( - {attachment.name - )} -
- ))} -
-
- )} -
- - {!isEditingMessage && index === lastUserMessageIndex && ( -
+ {isEditingMessage && editingMessageIndex === index ? ( +
+ setInput(e.target.value)} + className="flex-grow" + /> + +
+ ) : ( +
+

+ {message.content} +

+
+ {message.experimental_attachments?.map((attachment, attachmentIndex) => ( +
+ {attachment.contentType!.startsWith('image/') && ( + {attachment.name + )} +
+ ))} +
)} - - )} - {message.role === 'assistant' && message.content && ( -
-
-
- -

Answer

-
-
+ + {!isEditingMessage && index === lastUserMessageIndex && ( +
+
+ +
-
- + )} + + )} + {message.role === 'assistant' && message.content && ( +
+
+
+ +

Answer

+
+
+ +
- )} - {message.toolInvocations?.map((toolInvocation: ToolInvocation, toolIndex: number) => ( -
- {renderToolInvocation(toolInvocation, toolIndex)} +
+
- ))} -
- )))} +
+ )} + {message.toolInvocations?.map((toolInvocation: ToolInvocation, toolIndex: number) => ( +
+ {renderToolInvocation(toolInvocation, toolIndex)} +
+ ))} +
+ ))} + {suggestedQuestions.length > 0 && ( {hasSubmitted && ( diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index ef8995c..28e2ccf 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -10,7 +10,7 @@ dependencies: version: 0.0.31(zod@3.23.8) '@ai-sdk/cohere': specifier: latest - version: 0.0.24(zod@3.23.8) + version: 0.0.25(zod@3.23.8) '@ai-sdk/google': specifier: ^0.0.46 version: 0.0.46(zod@3.23.8) @@ -88,7 +88,7 @@ dependencies: version: 1.4.0 ai: specifier: latest - version: 3.3.41(openai@4.56.0)(react@18.3.1)(svelte@4.2.18)(vue@3.4.35)(zod@3.23.8) + version: 3.4.9(openai@4.56.0)(react@18.3.1)(svelte@4.2.18)(vue@3.4.35)(zod@3.23.8) anthropic-vertex-ai: specifier: ^1.0.0 version: 1.0.0(zod@3.23.8) @@ -232,14 +232,14 @@ packages: zod: 3.23.8 dev: false - /@ai-sdk/cohere@0.0.24(zod@3.23.8): - resolution: {integrity: sha512-2BDe6hSp3N6lRW9qS6/knjZVAUk0oo/oGzANar0XrENrFeMiMGh0tr081otATyZLxVeFJjksI029hW9QwWZNeg==} + /@ai-sdk/cohere@0.0.25(zod@3.23.8): + resolution: {integrity: sha512-i7wraTa9/Qmozhw/E5OX+TNIYcPYE7higmCiYvknYyfGTc2XjnVaB2zyIfmbw0TgL+2m3PbVk75vEL5zG1ickQ==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 dependencies: - '@ai-sdk/provider': 0.0.23 - '@ai-sdk/provider-utils': 1.0.19(zod@3.23.8) + '@ai-sdk/provider': 0.0.24 + '@ai-sdk/provider-utils': 1.0.20(zod@3.23.8) zod: 3.23.8 dev: false @@ -352,6 +352,22 @@ packages: zod: 3.23.8 dev: false + /@ai-sdk/provider-utils@1.0.20(zod@3.23.8): + resolution: {integrity: sha512-ngg/RGpnA00eNOWEtXHenpX1MsM2QshQh4QJFjUfwcqHpM5kTfG7je7Rc3HcEDP+OkRVv2GF+X4fC1Vfcnl8Ow==} + engines: {node: '>=18'} + peerDependencies: + zod: ^3.0.0 + peerDependenciesMeta: + zod: + optional: true + dependencies: + '@ai-sdk/provider': 0.0.24 + eventsource-parser: 1.1.2 + nanoid: 3.3.6 + secure-json-parse: 2.7.0 + zod: 3.23.8 + dev: false + /@ai-sdk/provider@0.0.21: resolution: {integrity: sha512-9j95uaPRxwYkzQdkl4XO/MmWWW5c5vcVSXtqvALpD9SMB9fzH46dO3UN4VbOJR2J3Z84CZAqgZu5tNlkptT9qQ==} engines: {node: '>=18'} @@ -373,8 +389,15 @@ packages: json-schema: 0.4.0 dev: false - /@ai-sdk/react@0.0.59(react@18.3.1)(zod@3.23.8): - resolution: {integrity: sha512-1WbgO3J2/OoheMuNMxy5itJ3NVqOpqpAQxFNp7AoXgnDv4wDF4kTif61rTlKh7dCPvBHj2HXLmob+TrVFaWhYw==} + /@ai-sdk/provider@0.0.24: + resolution: {integrity: sha512-XMsNGJdGO+L0cxhhegtqZ8+T6nn4EoShS819OvCgI2kLbYTIvk0GWFGD0AXJmxkxs3DrpsJxKAFukFR7bvTkgQ==} + engines: {node: '>=18'} + dependencies: + json-schema: 0.4.0 + dev: false + + /@ai-sdk/react@0.0.62(react@18.3.1)(zod@3.23.8): + resolution: {integrity: sha512-1asDpxgmeHWL0/EZPCLENxfOHT+0jce0z/zasRhascodm2S6f6/KZn5doLG9jdmarcb+GjMjFmmwyOVXz3W1xg==} engines: {node: '>=18'} peerDependencies: react: ^18 || ^19 @@ -385,15 +408,15 @@ packages: zod: optional: true dependencies: - '@ai-sdk/provider-utils': 1.0.19(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.44(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.20(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.46(zod@3.23.8) react: 18.3.1 swr: 2.2.5(react@18.3.1) zod: 3.23.8 dev: false - /@ai-sdk/solid@0.0.47(zod@3.23.8): - resolution: {integrity: sha512-lVMxIxtuNqoo/TObSFGflEP2dUeJv7bfPQbS4jHTZGBNlyhgBRY2Xc19yNjA3QKRfvQNDVoQusqxn+18MiHJJQ==} + /@ai-sdk/solid@0.0.49(zod@3.23.8): + resolution: {integrity: sha512-KnfWTt640cS1hM2fFIba8KHSPLpOIWXtEm28pNCHTvqasVKlh2y/zMQANTwE18pF2nuXL9P9F5/dKWaPsaEzQw==} engines: {node: '>=18'} peerDependencies: solid-js: ^1.7.7 @@ -401,14 +424,14 @@ packages: solid-js: optional: true dependencies: - '@ai-sdk/provider-utils': 1.0.19(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.44(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.20(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.46(zod@3.23.8) transitivePeerDependencies: - zod dev: false - /@ai-sdk/svelte@0.0.49(svelte@4.2.18)(zod@3.23.8): - resolution: {integrity: sha512-gV0MhaWxkatjf7uJrCAHO3bWrihokNUwGhuMCgyG+y53lwJKAYhR0zCoDRM2HnTJ89fdnx/PVe3R9fOWEVY5qA==} + /@ai-sdk/svelte@0.0.51(svelte@4.2.18)(zod@3.23.8): + resolution: {integrity: sha512-aIZJaIds+KpCt19yUDCRDWebzF/17GCY7gN9KkcA2QM6IKRO5UmMcqEYja0ZmwFQPm1kBZkF2njhr8VXis2mAw==} engines: {node: '>=18'} peerDependencies: svelte: ^3.0.0 || ^4.0.0 @@ -416,16 +439,16 @@ packages: svelte: optional: true dependencies: - '@ai-sdk/provider-utils': 1.0.19(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.44(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.20(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.46(zod@3.23.8) sswr: 2.1.0(svelte@4.2.18) svelte: 4.2.18 transitivePeerDependencies: - zod dev: false - /@ai-sdk/ui-utils@0.0.44(zod@3.23.8): - resolution: {integrity: sha512-0qiyun/n5zqJzQs/WfQT86dZE5DiDhSHJc7b7ZGLYvNMztHkRQmak2zUCZP4IyGVZEicyEPQK6NEEpBgkmd3Dg==} + /@ai-sdk/ui-utils@0.0.46(zod@3.23.8): + resolution: {integrity: sha512-ZG/wneyJG+6w5Nm/hy1AKMuRgjPQToAxBsTk61c9sVPUTaxo+NNjM2MhXQMtmsja2N5evs8NmHie+ExEgpL3cA==} engines: {node: '>=18'} peerDependencies: zod: ^3.0.0 @@ -433,16 +456,16 @@ packages: zod: optional: true dependencies: - '@ai-sdk/provider': 0.0.23 - '@ai-sdk/provider-utils': 1.0.19(zod@3.23.8) + '@ai-sdk/provider': 0.0.24 + '@ai-sdk/provider-utils': 1.0.20(zod@3.23.8) json-schema: 0.4.0 secure-json-parse: 2.7.0 zod: 3.23.8 zod-to-json-schema: 3.23.2(zod@3.23.8) dev: false - /@ai-sdk/vue@0.0.50(vue@3.4.35)(zod@3.23.8): - resolution: {integrity: sha512-eIWfxqpKwRdL3rxJMg1HDJcjfugFJGg4P934Tl69S7UCot2/U4BPZoESVJQFroS1elbKHaMRgv0ZJt1ddWQPjQ==} + /@ai-sdk/vue@0.0.54(vue@3.4.35)(zod@3.23.8): + resolution: {integrity: sha512-Ltu6gbuii8Qlp3gg7zdwdnHdS4M8nqKDij2VVO1223VOtIFwORFJzKqpfx44U11FW8z2TPVBYN+FjkyVIcN2hg==} engines: {node: '>=18'} peerDependencies: vue: ^3.3.4 @@ -450,8 +473,8 @@ packages: vue: optional: true dependencies: - '@ai-sdk/provider-utils': 1.0.19(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.44(zod@3.23.8) + '@ai-sdk/provider-utils': 1.0.20(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.46(zod@3.23.8) swrv: 1.0.4(vue@3.4.35) vue: 3.4.35(typescript@5.5.4) transitivePeerDependencies: @@ -1938,8 +1961,8 @@ packages: humanize-ms: 1.2.1 dev: false - /ai@3.3.41(openai@4.56.0)(react@18.3.1)(svelte@4.2.18)(vue@3.4.35)(zod@3.23.8): - resolution: {integrity: sha512-unWUqw0hnZo0irhdedTv8ef7IEiySBCO3zjPxx1/k0kI1G0whKYq8l83k/LzqShLekc2Qg3gyyhdEO+39ptegw==} + /ai@3.4.9(openai@4.56.0)(react@18.3.1)(svelte@4.2.18)(vue@3.4.35)(zod@3.23.8): + resolution: {integrity: sha512-wmVzpIHNGjCEjIJ/3945a/DIkz+gwObjC767ZRgO8AmtIZMO5KqvqNr7n2KF+gQrCPCMC8fM1ICQFXSvBZnBlA==} engines: {node: '>=18'} peerDependencies: openai: ^4.42.0 @@ -1959,13 +1982,13 @@ packages: zod: optional: true dependencies: - '@ai-sdk/provider': 0.0.23 - '@ai-sdk/provider-utils': 1.0.19(zod@3.23.8) - '@ai-sdk/react': 0.0.59(react@18.3.1)(zod@3.23.8) - '@ai-sdk/solid': 0.0.47(zod@3.23.8) - '@ai-sdk/svelte': 0.0.49(svelte@4.2.18)(zod@3.23.8) - '@ai-sdk/ui-utils': 0.0.44(zod@3.23.8) - '@ai-sdk/vue': 0.0.50(vue@3.4.35)(zod@3.23.8) + '@ai-sdk/provider': 0.0.24 + '@ai-sdk/provider-utils': 1.0.20(zod@3.23.8) + '@ai-sdk/react': 0.0.62(react@18.3.1)(zod@3.23.8) + '@ai-sdk/solid': 0.0.49(zod@3.23.8) + '@ai-sdk/svelte': 0.0.51(svelte@4.2.18)(zod@3.23.8) + '@ai-sdk/ui-utils': 0.0.46(zod@3.23.8) + '@ai-sdk/vue': 0.0.54(vue@3.4.35)(zod@3.23.8) '@opentelemetry/api': 1.9.0 eventsource-parser: 1.1.2 json-schema: 0.4.0