diff --git a/Dockerfile b/Dockerfile
index c101ba549638961cfe0c945cc5f1568dc38806b1..2b0337b223e93582fca34b480e5196bf40832e89 100644
--- a/Dockerfile
+++ b/Dockerfile
@@ -5,7 +5,7 @@ RUN corepack enable
FROM base AS deps
WORKDIR /app
-COPY package.json pnpm-lock.yaml ./
+COPY package.json pnpm-lock.yaml prisma/* ./
RUN pnpm i --frozen-lockfile
# Rebuild the source code only when needed
@@ -15,12 +15,11 @@ COPY --from=deps --link /app/node_modules ./node_modules
COPY --link . .
RUN --mount=type=secret,id=AUTH_SECRET \
---mount=type=secret,id=OPENAI_API_KEY \
-AUTH_SECRET="$(cat /run/secrets/AUTH_SECRET)" \
-OPENAI_API_KEY="$(cat /run/secrets/OPENAI_API_KEY)" \
-NEXT_SHARP_PATH="/app/node_modules/sharp" \
-USE_STANDALONE_BUILD=True \
-pnpm run build
+ --mount=type=secret,id=OPENAI_API_KEY \
+ AUTH_SECRET="$(cat /run/secrets/AUTH_SECRET)" \
+ OPENAI_API_KEY="$(cat /run/secrets/OPENAI_API_KEY)" \
+ USE_STANDALONE_BUILD=True \
+ pnpm run build
RUN mkdir -p /app/.next/cache/images
@@ -39,11 +38,9 @@ COPY --from=builder --link --chown=1000:1000 /app/.next/standalone ./
COPY --from=builder --link --chown=1000:1000 /app/.next/static ./.next/static
COPY --from=builder --link --chown=1000:1000 /app/.next/cache/images ./.next/cache/images
-USER nextjs
+EXPOSE 3000
-EXPOSE 7860
-
-ENV PORT 7860
+ENV PORT 3000
ENV HOSTNAME 0.0.0.0
CMD ["node", "server.js"]
diff --git a/README.md b/README.md
index 90c2ad15e695a5f458d8fbad6007e301a870d1d0..58cd362b2a093d6a92eba0e5d7cb8512d80d406f 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,5 @@
---
-title: Vision Agent Landing
+title: Vision Agent
emoji: ๐
colorFrom: yellow
colorTo: indigo
@@ -7,4 +7,74 @@ sdk: docker
pinned: false
---
-Check out the configuration reference at https://huggingface.co/docs/hub/spaces-config-reference
+
+
+ Next.js AI Chatbot
+
+
+
+ An open-source AI chatbot app template built with Next.js, the Vercel AI SDK, OpenAI, and Vercel KV. +
+ ++ Features ยท + Model Providers ยท + Deploy Your Own ยท + Running locally ยท + Authors +
+- Vision Agent is a library that helps you utilize agent frameworks for - your vision tasks. Vision Agent aims to provide an in-seconds - experience by allowing users to describe their problem in text and - utilizing agent frameworks to solve the task for them. -
-{example.title}
+{title ?? '(no title)'}
++ {updatedAt ? format(Number(updatedAt), 'yyyy-MM-dd') : '-'} +
+image output
+ +video output
+{title}
-- {updatedAt ? format(Number(updatedAt), 'yyyy-MM-dd') : '-'} -
-New chat
-{prompt}
+ {mediaUrl && ( + <> + {mediaUrl?.endsWith('.mp4') ? ( + + ) : ( + + )} + > + )} +โจ Coding complete
+ > + )} + {!codeResult && finalError && ( + <> +โ {finalError.name}
+{children}
- );
- },
- }}
- >
- {logs}
- {children}
- ); - } - return ( -{children}
- ); - }, - img(props) { - return ( -
- {children}
-
- );
- }
+ if (type === 'plans') return Creating instructions {durationDisplay}
; + if (type === 'tools') returnRetrieving tools {durationDisplay}
; + if (type === 'code' && status === 'started') + returnGenerating code {durationDisplay}
; + if (type === 'code' && status === 'running') + returnExecuting code {durationDisplay}
; + if (type === 'code' && status === 'completed') + returnCode execution success {durationDisplay}
; + if (type === 'code' && status === 'failed') + returnCode execution failure {durationDisplay}
; - return ( -{mediaName ?? 'unnamed_media'}
+{children}
+ ); + } + return{children}
; + }, + img(props) { + if (props.src?.endsWith('.mp4')) { + return ( + + ); + } + return ( + + ); + }, + code({ node, inline, className, children, ...props }) { + const match = /language-(\w+)/.exec(className || ''); + + return ( +Authored by
+{chatAuthor?.name ?? 'Unknown'}
++ + Sign in + {' '} + to save and revisit your chat history! +
+{name}
-{`${width} x ${height}`}
-