diff --git a/README.md b/README.md index 5e26ae56..c5919688 100644 --- a/README.md +++ b/README.md @@ -35,6 +35,8 @@ Also check our sibling project, [OllamaHub](https://ollamahub.com/), where you c - ๐Ÿค– **Multiple Model Support**: Seamlessly switch between different chat models for diverse interactions. +- ๐Ÿ”„ **Multi-Modal Support**: Seamlessly engage with models that support multimodal interactions, including images (e.g., LLava). + - ๐Ÿงฉ **Modelfile Builder**: Easily create Ollama modelfiles via the web UI. Create and add characters/agents, customize chat elements, and import modelfiles effortlessly through [OllamaHub](https://ollamahub.com/) integration. - โš™๏ธ **Many Models Conversations**: Effortlessly engage with various models simultaneously, harnessing their unique strengths for optimal responses. Enhance your experience by leveraging a diverse set of models in parallel. @@ -234,7 +236,6 @@ See [TROUBLESHOOTING.md](/TROUBLESHOOTING.md) for information on how to troubles Here are some exciting tasks on our roadmap: -- ๐Ÿ”„ **Multi-Modal Support**: Seamlessly engage with models that support multimodal interactions, including images (e.g., LLava). - ๐Ÿ“š **RAG Integration**: Experience first-class retrieval augmented generation support, enabling chat with your documents. - ๐Ÿ” **Access Control**: Securely manage requests to Ollama by utilizing the backend as a reverse proxy gateway, ensuring only authenticated users can send specific requests. - ๐Ÿงช **Research-Centric Features**: Empower researchers in the fields of LLM and HCI with a comprehensive web UI for conducting user studies. Stay tuned for ongoing feature enhancements (e.g., surveys, analytics, and participant tracking) to facilitate their research. diff --git a/demo.gif b/demo.gif index 510e041a..9f4cc6e2 100644 Binary files a/demo.gif and b/demo.gif differ diff --git a/src/lib/components/chat/MessageInput.svelte b/src/lib/components/chat/MessageInput.svelte index 015e6e3a..bc3a6a9d 100644 --- a/src/lib/components/chat/MessageInput.svelte +++ b/src/lib/components/chat/MessageInput.svelte @@ -14,7 +14,7 @@ export let files = []; - export let fileUploadEnabled = false; + export let fileUploadEnabled = true; export let speechRecognitionEnabled = true; export let speechRecognitionListening = false; @@ -84,40 +84,40 @@ }; -
-
-
- {#if messages.length == 0 && suggestionPrompts.length !== 0} +
+
+ {#if messages.length == 0 && suggestionPrompts.length !== 0} +
- {/if} +
+ {/if} - {#if autoScroll === false && messages.length > 0} -
- -
- {/if} -
+ + + +
+ {/if}
-
+
{ + await tick(); + window.scrollTo({ top: document.body.scrollHeight, behavior: 'smooth' }); + })(); + } + const speakMessage = (message) => { const speak = new SpeechSynthesisUtterance(message); speechSynthesis.speak(speak); @@ -184,7 +192,8 @@ parentId: history.messages[messageId].parentId, childrenIds: [], role: 'user', - content: userPrompt + content: userPrompt, + ...(history.messages[messageId].files && { files: history.messages[messageId].files }) }; let messageParentId = history.messages[messageId].parentId; @@ -425,6 +434,18 @@ class="prose chat-{message.role} w-full max-w-full dark:prose-invert prose-headings:my-0 prose-p:my-0 prose-p:-mb-4 prose-pre:my-0 prose-table:my-0 prose-blockquote:my-0 prose-img:my-0 prose-ul:-my-4 prose-ol:-my-4 prose-li:-my-3 prose-ul:-mb-6 prose-ol:-mb-6 prose-li:-mb-4 whitespace-pre-line" > {#if message.role == 'user'} + {#if message.files} +
+ {#each message.files as file} +
+ {#if file.type === 'image'} + input + {/if} +
+ {/each} +
+ {/if} + {#if message?.edit === true}