From 560d6bcc019ee9af36718a7ae97ce90ffe633eff Mon Sep 17 00:00:00 2001 From: Greg Richardson Date: Mon, 9 Dec 2024 18:00:28 -0700 Subject: [PATCH] fix: claude via openrouter --- apps/web/components/chat.tsx | 29 ++--------------------------- apps/web/components/workspace.tsx | 24 +++++------------------- apps/web/lib/tools.ts | 5 ++++- 3 files changed, 11 insertions(+), 47 deletions(-) diff --git a/apps/web/components/chat.tsx b/apps/web/components/chat.tsx index 01172e0d..5da16784 100644 --- a/apps/web/components/chat.tsx +++ b/apps/web/components/chat.tsx @@ -1,9 +1,9 @@ 'use client' -import { Message, generateId } from 'ai' +import { generateId } from 'ai' import { useChat } from 'ai/react' import { AnimatePresence, m } from 'framer-motion' -import { AlertCircle, ArrowDown, ArrowUp, Flame, Paperclip, PlugIcon, Square } from 'lucide-react' +import { AlertCircle, ArrowDown, ArrowUp, Flame, Paperclip, Square } from 'lucide-react' import { FormEventHandler, useCallback, @@ -15,7 +15,6 @@ import { } from 'react' import { Button } from '~/components/ui/button' import { Skeleton } from '~/components/ui/skeleton' -import { TablesData } from '~/data/tables/tables-query' import { saveFile } from '~/lib/files' import { useAutoScroll, useDropZone } from '~/lib/hooks' import { requestFileUpload } from '~/lib/util' @@ -24,33 +23,9 @@ import { AiIconAnimation } from './ai-icon-animation' import { useApp } from './app-provider' import ByoLlmButton from './byo-llm-button' import ChatMessage from './chat-message' -import { CopyableField } from './copyable-field' import SignInButton from './sign-in-button' -import { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from './ui/accordion' -import { Tabs, TabsContent, TabsList, TabsTrigger } from './ui/tabs' import { useWorkspace } from './workspace' -export function getInitialMessages(tables: TablesData): Message[] { - return [ - // An artificial tool call containing the DB schema - // as if it was already called by the LLM - { - id: generateId(), - role: 'assistant', - content: '', - toolInvocations: [ - { - state: 'result', - toolCallId: generateId(), - toolName: 'getDatabaseSchema', - args: {}, - result: tables, - }, - ], - }, - ] -} - export default function Chat() { const { user, diff --git a/apps/web/components/workspace.tsx b/apps/web/components/workspace.tsx index 39ad7adb..23f675f7 100644 --- a/apps/web/components/workspace.tsx +++ b/apps/web/components/workspace.tsx @@ -1,15 +1,7 @@ 'use client' import { CreateMessage, Message, useChat, UseChatHelpers } from 'ai/react' -import { - createContext, - Dispatch, - SetStateAction, - useCallback, - useContext, - useMemo, - useState, -} from 'react' +import { createContext, Dispatch, SetStateAction, useCallback, useContext, useState } from 'react' import { useMessageCreateMutation } from '~/data/messages/message-create-mutation' import { useMessagesQuery } from '~/data/messages/messages-query' import { useTablesQuery } from '~/data/tables/tables-query' @@ -18,13 +10,11 @@ import { TabValue } from '~/lib/schema' import { useBreakpoint } from '~/lib/use-breakpoint' import { ensureMessageId, ensureToolResult } from '~/lib/util' import { useApp } from './app-provider' -import Chat, { getInitialMessages } from './chat' +import Chat from './chat' import IDE from './ide' -import Sidebar from './sidebar' import LiveShareOverlay from './live-share' -import Image from 'next/image' -import emptyState from '~/public/images/empty.png' import EmptyStateGraph from './schema/empty-state-graph' +import Sidebar from './sidebar' // TODO: support public/private DBs that live in the cloud export type Visibility = 'local' @@ -84,8 +74,6 @@ export default function Workspace({ }) const { data: existingMessages, isLoading: isLoadingMessages } = useMessagesQuery(databaseId) - const initialMessages = useMemo(() => (tables ? getInitialMessages(tables) : undefined), [tables]) - const { messages, setMessages, append, stop } = useChat({ id: databaseId, api: '/api/chat', @@ -95,8 +83,7 @@ export default function Workspace({ body: { databaseId, }, - initialMessages: - existingMessages && existingMessages.length > 0 ? existingMessages : initialMessages, + initialMessages: existingMessages && existingMessages.length > 0 ? existingMessages : undefined, async onFinish(message) { setModelProviderError(undefined) @@ -149,8 +136,7 @@ export default function Workspace({ const [tab, setTab] = useState('diagram') - const isConversationStarted = - initialMessages !== undefined && messages.length > initialMessages.length + const isConversationStarted = messages.length > 0 return (