From d31adbb78c0fe9119a654b8ca8262a40bcac9258 Mon Sep 17 00:00:00 2001 From: Tadashi Date: Sat, 4 Jan 2025 16:22:12 +0700 Subject: [PATCH] fix: highlight on long PDF load --- docs/about.md | 2 +- flowsettings.py | 24 +++++++++++++++--------- libs/ktem/ktem/assets/js/pdf_viewer.js | 7 +++++++ 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/docs/about.md b/docs/about.md index b001818a..afc0a907 100644 --- a/docs/about.md +++ b/docs/about.md @@ -6,6 +6,6 @@ developers in mind. [Source Code](https://github.com/Cinnamon/kotaemon) | [HF Space](https://huggingface.co/spaces/cin-model/kotaemon-demo) -[User Guide](https://cinnamon.github.io/kotaemon/) | +[Installation Guide](https://cinnamon.github.io/kotaemon/) | [Developer Guide](https://cinnamon.github.io/kotaemon/development/) | [Feedback](https://github.com/Cinnamon/kotaemon/issues) diff --git a/flowsettings.py b/flowsettings.py index 35f68a2c..b489a576 100644 --- a/flowsettings.py +++ b/flowsettings.py @@ -139,31 +139,36 @@ if config("AZURE_OPENAI_API_KEY", default="") and config( "default": False, } -if config("OPENAI_API_KEY", default=""): +OPENAI_DEFAULT = "" +OPENAI_API_KEY = config("OPENAI_API_KEY", default=OPENAI_DEFAULT) +GOOGLE_API_KEY = config("GOOGLE_API_KEY", default="your-key") +IS_OPENAI_DEFAULT = len(OPENAI_API_KEY) > 0 and OPENAI_API_KEY != OPENAI_DEFAULT + +if OPENAI_API_KEY: KH_LLMS["openai"] = { "spec": { "__type__": "kotaemon.llms.ChatOpenAI", "temperature": 0, "base_url": config("OPENAI_API_BASE", default="") or "https://api.openai.com/v1", - "api_key": config("OPENAI_API_KEY", default=""), + "api_key": OPENAI_API_KEY, "model": config("OPENAI_CHAT_MODEL", default="gpt-4o-mini"), "timeout": 20, }, - "default": True, + "default": IS_OPENAI_DEFAULT, } KH_EMBEDDINGS["openai"] = { "spec": { "__type__": "kotaemon.embeddings.OpenAIEmbeddings", "base_url": config("OPENAI_API_BASE", default="https://api.openai.com/v1"), - "api_key": config("OPENAI_API_KEY", default=""), + "api_key": OPENAI_API_KEY, "model": config( "OPENAI_EMBEDDINGS_MODEL", default="text-embedding-3-large" ), "timeout": 10, "context_length": 8191, }, - "default": True, + "default": IS_OPENAI_DEFAULT, } if config("LOCAL_MODEL", default=""): @@ -207,9 +212,9 @@ KH_LLMS["google"] = { "spec": { "__type__": "kotaemon.llms.chats.LCGeminiChat", "model_name": "gemini-1.5-flash", - "api_key": config("GOOGLE_API_KEY", default="your-key"), + "api_key": GOOGLE_API_KEY, }, - "default": False, + "default": not IS_OPENAI_DEFAULT, } KH_LLMS["groq"] = { "spec": { @@ -243,8 +248,9 @@ KH_EMBEDDINGS["google"] = { "spec": { "__type__": "kotaemon.embeddings.LCGoogleEmbeddings", "model": "models/text-embedding-004", - "google_api_key": config("GOOGLE_API_KEY", default="your-key"), - } + "google_api_key": GOOGLE_API_KEY, + }, + "default": not IS_OPENAI_DEFAULT, } # KH_EMBEDDINGS["huggingface"] = { # "spec": { diff --git a/libs/ktem/ktem/assets/js/pdf_viewer.js b/libs/ktem/ktem/assets/js/pdf_viewer.js index a7f602f3..eeec7ba8 100644 --- a/libs/ktem/ktem/assets/js/pdf_viewer.js +++ b/libs/ktem/ktem/assets/js/pdf_viewer.js @@ -88,6 +88,13 @@ function onBlockLoad() { ? iframe.contentDocument : iframe.contentWindow.document; + var renderedPages = innerDoc.querySelectorAll("div#viewer div.page"); + if (renderedPages.length == 0) { + // if pages are not rendered yet, wait and try again + setTimeout(() => compareText(search_phrases, page_label), 2000); + return; + } + var query_selector = "#viewer > div[data-page-number='" + page_label +