Browse Source

Merge pull request #2453 from AlyMobarak/main

[fix] for issue #2447 (OpenAI-like API fails when a redundant, empty assistant message is sent over)
Timothy Jaeryang Baek 11 months ago
parent
commit
b3de61247b
2 changed files with 32 additions and 31 deletions
  1. 16 16
      src/routes/(app)/+page.svelte
  2. 16 15
      src/routes/(app)/c/[id]/+page.svelte

+ 16 - 16
src/routes/(app)/+page.svelte

@@ -1,26 +1,25 @@
 <script lang="ts">
 <script lang="ts">
-	import { v4 as uuidv4 } from 'uuid';
 	import { toast } from 'svelte-sonner';
 	import { toast } from 'svelte-sonner';
+	import { v4 as uuidv4 } from 'uuid';
 
 
-	import { onMount, tick, getContext } from 'svelte';
 	import { goto } from '$app/navigation';
 	import { goto } from '$app/navigation';
 	import { page } from '$app/stores';
 	import { page } from '$app/stores';
+	import { getContext, onMount, tick } from 'svelte';
 
 
 	import {
 	import {
-		models,
-		modelfiles,
-		user,
-		settings,
-		chats,
-		chatId,
-		config,
 		WEBUI_NAME,
 		WEBUI_NAME,
 		tags as _tags,
 		tags as _tags,
-		showSidebar
+		chatId,
+		chats,
+		config,
+		modelfiles,
+		models,
+		settings,
+		showSidebar,
+		user
 	} from '$lib/stores';
 	} from '$lib/stores';
 	import { copyToClipboard, splitStream } from '$lib/utils';
 	import { copyToClipboard, splitStream } from '$lib/utils';
 
 
-	import { generateChatCompletion, cancelOllamaRequest } from '$lib/apis/ollama';
 	import {
 	import {
 		addTagById,
 		addTagById,
 		createNewChat,
 		createNewChat,
@@ -30,18 +29,18 @@
 		getTagsById,
 		getTagsById,
 		updateChatById
 		updateChatById
 	} from '$lib/apis/chats';
 	} from '$lib/apis/chats';
-	import { queryCollection, queryDoc } from '$lib/apis/rag';
+	import { cancelOllamaRequest, generateChatCompletion } from '$lib/apis/ollama';
 	import { generateOpenAIChatCompletion, generateTitle } from '$lib/apis/openai';
 	import { generateOpenAIChatCompletion, generateTitle } from '$lib/apis/openai';
+	import { queryCollection, queryDoc } from '$lib/apis/rag';
 
 
+	import { queryMemory } from '$lib/apis/memories';
+	import { createOpenAITextStream } from '$lib/apis/streaming';
 	import MessageInput from '$lib/components/chat/MessageInput.svelte';
 	import MessageInput from '$lib/components/chat/MessageInput.svelte';
 	import Messages from '$lib/components/chat/Messages.svelte';
 	import Messages from '$lib/components/chat/Messages.svelte';
 	import ModelSelector from '$lib/components/chat/ModelSelector.svelte';
 	import ModelSelector from '$lib/components/chat/ModelSelector.svelte';
 	import Navbar from '$lib/components/layout/Navbar.svelte';
 	import Navbar from '$lib/components/layout/Navbar.svelte';
+	import { LITELLM_API_BASE_URL, OLLAMA_API_BASE_URL, OPENAI_API_BASE_URL, WEBUI_BASE_URL } from '$lib/constants';
 	import { RAGTemplate } from '$lib/utils/rag';
 	import { RAGTemplate } from '$lib/utils/rag';
-	import { LITELLM_API_BASE_URL, OLLAMA_API_BASE_URL, OPENAI_API_BASE_URL } from '$lib/constants';
-	import { WEBUI_BASE_URL } from '$lib/constants';
-	import { createOpenAITextStream } from '$lib/apis/streaming';
-	import { queryMemory } from '$lib/apis/memories';
 
 
 	const i18n = getContext('i18n');
 	const i18n = getContext('i18n');
 
 
@@ -614,6 +613,7 @@
 						...messages
 						...messages
 					]
 					]
 						.filter((message) => message)
 						.filter((message) => message)
+						.filter((message) => message.content != "")
 						.map((message, idx, arr) => ({
 						.map((message, idx, arr) => ({
 							role: message.role,
 							role: message.role,
 							...((message.files?.filter((file) => file.type === 'image').length > 0 ?? false) &&
 							...((message.files?.filter((file) => file.type === 'image').length > 0 ?? false) &&

+ 16 - 15
src/routes/(app)/c/[id]/+page.svelte

@@ -1,25 +1,24 @@
 <script lang="ts">
 <script lang="ts">
-	import { v4 as uuidv4 } from 'uuid';
 	import { toast } from 'svelte-sonner';
 	import { toast } from 'svelte-sonner';
+	import { v4 as uuidv4 } from 'uuid';
 
 
-	import { onMount, tick, getContext } from 'svelte';
 	import { goto } from '$app/navigation';
 	import { goto } from '$app/navigation';
 	import { page } from '$app/stores';
 	import { page } from '$app/stores';
 	import {
 	import {
-		models,
-		modelfiles,
-		user,
-		settings,
-		chats,
-		chatId,
-		config,
 		WEBUI_NAME,
 		WEBUI_NAME,
 		tags as _tags,
 		tags as _tags,
-		showSidebar
+		chatId,
+		chats,
+		config,
+		modelfiles,
+		models,
+		settings,
+		showSidebar,
+		user
 	} from '$lib/stores';
 	} from '$lib/stores';
-	import { copyToClipboard, splitStream, convertMessagesToHistory } from '$lib/utils';
+	import { convertMessagesToHistory, copyToClipboard, splitStream } from '$lib/utils';
+	import { getContext, onMount, tick } from 'svelte';
 
 
-	import { generateChatCompletion, cancelOllamaRequest } from '$lib/apis/ollama';
 	import {
 	import {
 		addTagById,
 		addTagById,
 		createNewChat,
 		createNewChat,
@@ -30,20 +29,21 @@
 		getTagsById,
 		getTagsById,
 		updateChatById
 		updateChatById
 	} from '$lib/apis/chats';
 	} from '$lib/apis/chats';
+	import { cancelOllamaRequest, generateChatCompletion } from '$lib/apis/ollama';
 	import { generateOpenAIChatCompletion, generateTitle } from '$lib/apis/openai';
 	import { generateOpenAIChatCompletion, generateTitle } from '$lib/apis/openai';
 
 
 	import MessageInput from '$lib/components/chat/MessageInput.svelte';
 	import MessageInput from '$lib/components/chat/MessageInput.svelte';
 	import Messages from '$lib/components/chat/Messages.svelte';
 	import Messages from '$lib/components/chat/Messages.svelte';
 	import Navbar from '$lib/components/layout/Navbar.svelte';
 	import Navbar from '$lib/components/layout/Navbar.svelte';
 
 
+	import { queryMemory } from '$lib/apis/memories';
+	import { createOpenAITextStream } from '$lib/apis/streaming';
 	import {
 	import {
 		LITELLM_API_BASE_URL,
 		LITELLM_API_BASE_URL,
-		OPENAI_API_BASE_URL,
 		OLLAMA_API_BASE_URL,
 		OLLAMA_API_BASE_URL,
+		OPENAI_API_BASE_URL,
 		WEBUI_BASE_URL
 		WEBUI_BASE_URL
 	} from '$lib/constants';
 	} from '$lib/constants';
-	import { createOpenAITextStream } from '$lib/apis/streaming';
-	import { queryMemory } from '$lib/apis/memories';
 
 
 	const i18n = getContext('i18n');
 	const i18n = getContext('i18n');
 
 
@@ -620,6 +620,7 @@
 						...messages
 						...messages
 					]
 					]
 						.filter((message) => message)
 						.filter((message) => message)
+						.filter((message) => message.content != "")
 						.map((message, idx, arr) => ({
 						.map((message, idx, arr) => ({
 							role: message.role,
 							role: message.role,
 							...((message.files?.filter((file) => file.type === 'image').length > 0 ?? false) &&
 							...((message.files?.filter((file) => file.type === 'image').length > 0 ?? false) &&