diff --git a/CHANGELOG.md b/CHANGELOG.md index 7b150de2..3c976a7a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,19 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [0.1.106] - 2024-02-27 + +### Added + +- **🎯 Auto-focus Feature**: The input area now automatically focuses when initiating or opening a chat conversation. + +### Fixed + +- Corrected typo from "HuggingFace" to "Hugging Face" (Issue #924). +- Resolved bug causing errors in chat completion API calls to OpenAI due to missing "num_ctx" parameter (Issue #927). +- Fixed issues preventing text editing, selection, and cursor retention in the input field (Issue #940). +- Fixed a bug where defining an OpenAI-compatible API server using 'OPENAI_API_BASE_URL' containing 'openai' string resulted in hiding models not containing 'gpt' string from the model menu. (Issue #930) + ## [0.1.105] - 2024-02-25 ### Added diff --git a/README.md b/README.md index 7c40239c..0b346853 100644 --- a/README.md +++ b/README.md @@ -160,6 +160,16 @@ This project is licensed under the [MIT License](LICENSE) - see the [LICENSE](LI If you have any questions, suggestions, or need assistance, please open an issue or join our [Open WebUI Discord community](https://discord.gg/5rJgQTnV4s) to connect with us! 🤝 +## Star History + + + + + --- Created by [Timothy J. Baek](https://github.com/tjbck) - Let's make Open Web UI even more amazing together! 💪 diff --git a/backend/apps/openai/main.py b/backend/apps/openai/main.py index 36326430..8d6fdb50 100644 --- a/backend/apps/openai/main.py +++ b/backend/apps/openai/main.py @@ -146,6 +146,13 @@ async def proxy(path: str, request: Request, user=Depends(get_verified_user)): body["max_tokens"] = 4000 print("Modified body_dict:", body) + # Fix for ChatGPT calls failing because the num_ctx key is in body + if "num_ctx" in body: + # If 'num_ctx' is in the dictionary, delete it + # Leaving it there generates an error with the + # OpenAI API (Feb 2024) + del body["num_ctx"] + # Convert the modified body back to JSON body = json.dumps(body) except json.JSONDecodeError as e: @@ -184,7 +191,7 @@ async def proxy(path: str, request: Request, user=Depends(get_verified_user)): response_data = r.json() - if "openai" in app.state.OPENAI_API_BASE_URL and path == "models": + if "api.openai.com" in app.state.OPENAI_API_BASE_URL and path == "models": response_data["data"] = list( filter(lambda model: "gpt" in model["id"], response_data["data"]) ) diff --git a/package.json b/package.json index dd212e7d..2ce66e78 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "open-webui", - "version": "0.1.105", + "version": "0.1.106", "private": true, "scripts": { "dev": "vite dev --host", diff --git a/src/lib/components/chat/MessageInput.svelte b/src/lib/components/chat/MessageInput.svelte index 67bb3d88..f9ff8fc3 100644 --- a/src/lib/components/chat/MessageInput.svelte +++ b/src/lib/components/chat/MessageInput.svelte @@ -293,6 +293,9 @@ }; onMount(() => { + const chatInput = document.getElementById('chat-textarea'); + window.setTimeout(() => chatInput?.focus(), 0); + const dropZone = document.querySelector('body'); const onDragOver = (e) => { diff --git a/src/lib/components/chat/Settings/Models.svelte b/src/lib/components/chat/Settings/Models.svelte index 455927df..92e6b7dd 100644 --- a/src/lib/components/chat/Settings/Models.svelte +++ b/src/lib/components/chat/Settings/Models.svelte @@ -580,7 +580,7 @@ type="url" required bind:value={modelFileUrl} - placeholder="Type HuggingFace Resolve (Download) URL" + placeholder="Type Hugging Face Resolve (Download) URL" /> {/if} diff --git a/src/lib/components/layout/Sidebar.svelte b/src/lib/components/layout/Sidebar.svelte index e0965b08..75e05bbd 100644 --- a/src/lib/components/layout/Sidebar.svelte +++ b/src/lib/components/layout/Sidebar.svelte @@ -31,6 +31,7 @@ let chatTitle = ''; let showDropdown = false; + let isEditing = false; onMount(async () => { if (window.innerWidth > 1280) { @@ -101,17 +102,16 @@ : 'invisible'}" >