khoj-ai / khoj

Your AI second brain. Get answers to your questions, whether they be online or in your own notes. Use online AI models (e.g gpt4) or private, local LLMs (e.g llama3). Self-host locally or use our cloud instance. Access from Obsidian, Emacs, Desktop app, Web or Whatsapp.
https://khoj.dev
GNU Affero General Public License v3.0
12.35k stars 620 forks source link

[FIX] notion import not working #637

Closed danrthompson closed 6 months ago

danrthompson commented 6 months ago

Describe the bug

A clear and concise description of what the bug is. Please include what you were expecting to happen vs. what actually happened.

when i try to setup notion by adding my token, adding the connection to a page (i tried a demo page with basically no contents and no databases), then hitting reinitialize, the loading of the notion contents fails

the demo page has title "Test" and contents "Testing!"

To Reproduce

Steps to reproduce the behavior: install the server on a mac with docker compose (using the 1.5.0, 1.4.0, or 1.1.0 backend version), then create notion integration, add notion connection to a page, save token to backend, and reinitialize

Screenshots

If applicable, add screenshots to help explain your problem.

Platform

If self-hosted

Additional context

Add any other context about the problem here.

stack trace: khoj-server-1 | [20:59:13] INFO ๐Ÿ“ฌ Initializing content index... configure.py:236 khoj-server-1 | DEBUG ๐Ÿšจ No Content configuration available. indexer.py:338 khoj-server-1 | INFO ๐ŸŒ– Khoj is ready to use main.py:157 khoj-server-1 | INFO Started server process [1] server.py:75 khoj-server-1 | INFO Waiting for application startup. on.py:45 khoj-server-1 | INFO Application startup complete. on.py:59 khoj-server-1 | INFO Uvicorn running on http://0.0.0.0:42110 (Press server.py:206 khoj-server-1 | CTRL+C to quit) khoj-server-1 | [21:00:27] INFO 192.168.65.1:49632 - "GET h11_impl.py:431 khoj-server-1 | /config/content-source/notion HTTP/1.1" 200 khoj-server-1 | INFO 192.168.65.1:49632 - "GET h11_impl.py:431 khoj-server-1 | /static/assets/pico.min.css HTTP/1.1" 200 khoj-server-1 | INFO 192.168.65.1:49633 - "GET h11_impl.py:431 khoj-server-1 | /static/assets/khoj.css HTTP/1.1" 200 khoj-server-1 | INFO 192.168.65.1:49634 - "GET h11_impl.py:431 khoj-server-1 | /static/assets/utils.js HTTP/1.1" 200 khoj-server-1 | INFO 192.168.65.1:49636 - "GET h11_impl.py:431 khoj-server-1 | /static/assets/icons/khoj-logo-sideways-500. khoj-server-1 | png HTTP/1.1" 200 khoj-server-1 | INFO 192.168.65.1:49635 - "GET h11_impl.py:431 khoj-server-1 | /static/assets/icons/notion.svg HTTP/1.1" khoj-server-1 | 200 khoj-server-1 | INFO 192.168.65.1:49635 - "GET h11_impl.py:431 khoj-server-1 | /static/assets/icons/favicon-128x128.png khoj-server-1 | HTTP/1.1" 200 khoj-server-1 | [21:00:30] INFO 192.168.65.1:49635 - "POST h11_impl.py:431 khoj-server-1 | /api/config/data/content-source/notion khoj-server-1 | HTTP/1.1" 200 khoj-server-1 | [21:00:31] INFO ๐Ÿ“ฌ Updating content index... configure.py:239 khoj-server-1 | INFO ๐Ÿ”Œ Setting up search for notion indexer.py:311 khoj-server-1 | [21:00:34] DEBUG Getting all pages via search endpoint: 2.821 helpers.py:156 khoj-server-1 | seconds khoj-server-1 | [21:00:36] DEBUG Processing page helpers.py:156 khoj-server-1 | ae4b8b05-af30-4efb-9dfd-72723fc3ea9e: 1.668 khoj-server-1 | seconds khoj-server-1 | DEBUG Processing response: 1.671 seconds helpers.py:156 Hashing Entries: 100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 1/1 [00:00<00:00, 11618.57it/s] khoj-server-1 | DEBUG Constructed current entry hashes in: 0.006 helpers.py:156 khoj-server-1 | seconds Identify new entries: 100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 1/1 [00:00<00:00, 63.05it/s] khoj-server-1 | DEBUG Identified entries to add to database in: helpers.py:156 khoj-server-1 | 0.016 seconds Batches: 100%|โ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆโ–ˆ| 1/1 [00:00<00:00, 2.06it/s] khoj-server-1 | DEBUG Generated embeddings for entries to add to helpers.py:156 khoj-server-1 | database in: 0.503 seconds Add entries to database: 0it [00:00, ?it/s] khoj-server-1 | DEBUG Added entries to database in: 0.001 seconds helpers.py:156 khoj-server-1 | DEBUG Identify new or updated entries: 0.533 helpers.py:156 khoj-server-1 | seconds khoj-server-1 | ERROR ๐Ÿšจ Failed to setup Notion: ['โ€œNoneโ€ is not a indexer.py:322 khoj-server-1 | valid UUID.'] khoj-server-1 | โ•ญโ”€โ”€โ”€โ”€ Traceback (most recent call last) โ”€โ”€โ”€โ”€โ•ฎ khoj-server-1 | โ”‚ /usr/local/lib/python3.10/dist-packages/d โ”‚ khoj-server-1 | โ”‚ jango/db/models/fields/init.py:2688 โ”‚ khoj-server-1 | โ”‚ in to_python โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ 2685 โ”‚ โ”‚ if value is not None and n โ”‚ khoj-server-1 | โ”‚ 2686 โ”‚ โ”‚ โ”‚ input_form = "int" if โ”‚ khoj-server-1 | โ”‚ 2687 โ”‚ โ”‚ โ”‚ try: โ”‚ khoj-server-1 | โ”‚ โฑ 2688 โ”‚ โ”‚ โ”‚ โ”‚ return uuid.UUID(* โ”‚ khoj-server-1 | โ”‚ 2689 โ”‚ โ”‚ โ”‚ except (AttributeError โ”‚ khoj-server-1 | โ”‚ 2690 โ”‚ โ”‚ โ”‚ โ”‚ raise exceptions.V โ”‚ khoj-server-1 | โ”‚ 2691 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ self.errormes โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ /usr/lib/python3.10/uuid.py:177 in โ”‚ khoj-server-1 | โ”‚ init โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ 174 โ”‚ โ”‚ โ”‚ hex = hex.replace('urn: โ”‚ khoj-server-1 | โ”‚ 175 โ”‚ โ”‚ โ”‚ hex = hex.strip('{}').r โ”‚ khoj-server-1 | โ”‚ 176 โ”‚ โ”‚ โ”‚ if len(hex) != 32: โ”‚ khoj-server-1 | โ”‚ โฑ 177 โ”‚ โ”‚ โ”‚ โ”‚ raise ValueError('b โ”‚ khoj-server-1 | โ”‚ 178 โ”‚ โ”‚ โ”‚ int = int(hex, 16) โ”‚ khoj-server-1 | โ”‚ 179 โ”‚ โ”‚ if bytes_le is not None: โ”‚ khoj-server-1 | โ”‚ 180 โ”‚ โ”‚ โ”‚ if len(bytes_le) != 16: โ”‚ khoj-server-1 | โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ khoj-server-1 | ValueError: badly formed hexadecimal UUID khoj-server-1 | string khoj-server-1 | khoj-server-1 | During handling of the above exception, khoj-server-1 | another exception occurred: khoj-server-1 | khoj-server-1 | โ•ญโ”€โ”€โ”€โ”€ Traceback (most recent call last) โ”€โ”€โ”€โ”€โ•ฎ khoj-server-1 | โ”‚ /app/src/khoj/routers/indexer.py:312 in โ”‚ khoj-server-1 | โ”‚ configure_content โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ 309 โ”‚ โ”‚ โ”‚ search_type == state.Se โ”‚ khoj-server-1 | โ”‚ state.SearchType.Notion.value โ”‚ khoj-server-1 | โ”‚ 310 โ”‚ โ”‚ ) and notion_config: โ”‚ khoj-server-1 | โ”‚ 311 โ”‚ โ”‚ โ”‚ logger.info("๐Ÿ”Œ Setting โ”‚ khoj-server-1 | โ”‚ โฑ 312 โ”‚ โ”‚ โ”‚ text_search.setup( โ”‚ khoj-server-1 | โ”‚ 313 โ”‚ โ”‚ โ”‚ โ”‚ NotionToEntries, โ”‚ khoj-server-1 | โ”‚ 314 โ”‚ โ”‚ โ”‚ โ”‚ None, โ”‚ khoj-server-1 | โ”‚ 315 โ”‚ โ”‚ โ”‚ โ”‚ regenerate=regenera โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ /app/src/khoj/search_type/text_search.py: โ”‚ khoj-server-1 | โ”‚ 202 in setup โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ 199 โ”‚ config=None, โ”‚ khoj-server-1 | โ”‚ 200 ) -> None: โ”‚ khoj-server-1 | โ”‚ 201 โ”‚ if config: โ”‚ khoj-server-1 | โ”‚ โฑ 202 โ”‚ โ”‚ num_new_embeddings, num_del โ”‚ khoj-server-1 | โ”‚ 203 โ”‚ โ”‚ โ”‚ files=files, full_corpu โ”‚ khoj-server-1 | โ”‚ 204 โ”‚ โ”‚ ) โ”‚ khoj-server-1 | โ”‚ 205 โ”‚ else: โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ /app/src/khoj/processor/content/notion/no โ”‚ khoj-server-1 | โ”‚ tion_to_entries.py:115 in process โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ 112 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ page_en โ”‚ khoj-server-1 | โ”‚ 113 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ current โ”‚ khoj-server-1 | โ”‚ 114 โ”‚ โ”‚ โ”‚ khoj-server-1 | โ”‚ โฑ 115 โ”‚ โ”‚ return self.updateentries โ”‚ khoj-server-1 | โ”‚ 116 โ”‚ โ”‚ khoj-server-1 | โ”‚ 117 โ”‚ def process_page(self, page): โ”‚ khoj-server-1 | โ”‚ 118 โ”‚ โ”‚ page_id = page["id"] โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ /app/src/khoj/processor/content/notion/no โ”‚ khoj-server-1 | โ”‚ tion_to_entries.py:247 in โ”‚ khoj-server-1 | โ”‚ update_entries_with_ids โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ 244 โ”‚ def update_entries_with_ids(sel โ”‚ khoj-server-1 | โ”‚ 245 โ”‚ โ”‚ # Identify, mark and merge โ”‚ khoj-server-1 | โ”‚ 246 โ”‚ โ”‚ with timer("Identify new or โ”‚ khoj-server-1 | โ”‚ โฑ 247 โ”‚ โ”‚ โ”‚ num_new_embeddings, num โ”‚ khoj-server-1 | โ”‚ 248 โ”‚ โ”‚ โ”‚ โ”‚ current_entries, โ”‚ khoj-server-1 | โ”‚ 249 โ”‚ โ”‚ โ”‚ โ”‚ DbEntry.EntryType.N โ”‚ khoj-server-1 | โ”‚ 250 โ”‚ โ”‚ โ”‚ โ”‚ DbEntry.EntrySource โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ /app/src/khoj/processor/content/text_to_e โ”‚ khoj-server-1 | โ”‚ ntries.py:141 in updateembeddings โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ 138 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ corpus โ”‚ khoj-server-1 | โ”‚ 139 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ) โ”‚ khoj-server-1 | โ”‚ 140 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ ) โ”‚ khoj-server-1 | โ”‚ โฑ 141 โ”‚ โ”‚ โ”‚ โ”‚ added_entries += Db โ”‚ khoj-server-1 | โ”‚ 142 โ”‚ โ”‚ โ”‚ logger.debug(f"Added {l โ”‚ khoj-server-1 | โ”‚ 143 โ”‚ โ”‚ โ”‚ khoj-server-1 | โ”‚ 144 โ”‚ โ”‚ new_dates = [] โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ /usr/local/lib/python3.10/dist-packages/d โ”‚ khoj-server-1 | โ”‚ jango/db/models/manager.py:87 in โ”‚ khoj-server-1 | โ”‚ manager_method โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ 84 โ”‚ โ”‚ def create_method(name, met โ”‚ khoj-server-1 | โ”‚ 85 โ”‚ โ”‚ โ”‚ @wraps(method) โ”‚ khoj-server-1 | โ”‚ 86 โ”‚ โ”‚ โ”‚ def manager_method(self โ”‚ khoj-server-1 | โ”‚ โฑ 87 โ”‚ โ”‚ โ”‚ โ”‚ return getattr(self โ”‚ khoj-server-1 | โ”‚ 88 โ”‚ โ”‚ โ”‚ โ”‚ khoj-server-1 | โ”‚ 89 โ”‚ โ”‚ โ”‚ return manager_method โ”‚ khoj-server-1 | โ”‚ 90 โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ /usr/local/lib/python3.10/dist-packages/d โ”‚ khoj-server-1 | โ”‚ jango/db/models/query.py:803 in โ”‚ khoj-server-1 | โ”‚ bulk_create โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ 800 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ obj_with_pk._s โ”‚ khoj-server-1 | โ”‚ 801 โ”‚ โ”‚ โ”‚ if objs_without_pk: โ”‚ khoj-server-1 | โ”‚ 802 โ”‚ โ”‚ โ”‚ โ”‚ fields = [f for f โ”‚ khoj-server-1 | โ”‚ โฑ 803 โ”‚ โ”‚ โ”‚ โ”‚ returned_columns = โ”‚ khoj-server-1 | โ”‚ 804 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ objs_without_p โ”‚ khoj-server-1 | โ”‚ 805 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ fields, โ”‚ khoj-server-1 | โ”‚ 806 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ batch_size, โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ /usr/local/lib/python3.10/dist-packages/d โ”‚ khoj-server-1 | โ”‚ jango/db/models/query.py:1831 in โ”‚ khoj-server-1 | โ”‚ _batched_insert โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ 1828 โ”‚ โ”‚ for item in [objs[i : i + โ”‚ khoj-server-1 | โ”‚ 1829 โ”‚ โ”‚ โ”‚ if bulkreturn and on โ”‚ khoj-server-1 | โ”‚ 1830 โ”‚ โ”‚ โ”‚ โ”‚ inserted_rows.exte โ”‚ khoj-server-1 | โ”‚ โฑ 1831 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ self._insert( โ”‚ khoj-server-1 | โ”‚ 1832 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ item, โ”‚ khoj-server-1 | โ”‚ 1833 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ fields=fie โ”‚ khoj-server-1 | โ”‚ 1834 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ using=self โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ /usr/local/lib/python3.10/dist-packages/d โ”‚ khoj-server-1 | โ”‚ jango/db/models/query.py:1805 in _insert โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ 1802 โ”‚ โ”‚ โ”‚ unique_fields=unique_f โ”‚ khoj-server-1 | โ”‚ 1803 โ”‚ โ”‚ ) โ”‚ khoj-server-1 | โ”‚ 1804 โ”‚ โ”‚ query.insert_values(fields โ”‚ khoj-server-1 | โ”‚ โฑ 1805 โ”‚ โ”‚ return query.get_compiler( โ”‚ khoj-server-1 | โ”‚ 1806 โ”‚ โ”‚ khoj-server-1 | โ”‚ 1807 โ”‚ _insert.alters_data = True โ”‚ khoj-server-1 | โ”‚ 1808 โ”‚ _insert.queryset_only = False โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ /usr/local/lib/python3.10/dist-packages/d โ”‚ khoj-server-1 | โ”‚ jango/db/models/sql/compiler.py:1821 in โ”‚ khoj-server-1 | โ”‚ execute_sql โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ 1818 โ”‚ โ”‚ opts = self.query.get_meta โ”‚ khoj-server-1 | โ”‚ 1819 โ”‚ โ”‚ self.returningfields = re โ”‚ khoj-server-1 | โ”‚ 1820 โ”‚ โ”‚ with self.connection.curso โ”‚ khoj-server-1 | โ”‚ โฑ 1821 โ”‚ โ”‚ โ”‚ for sql, params in sel โ”‚ khoj-server-1 | โ”‚ 1822 โ”‚ โ”‚ โ”‚ โ”‚ cursor.execute(sql โ”‚ khoj-server-1 | โ”‚ 1823 โ”‚ โ”‚ โ”‚ if not self.returning โ”‚ khoj-server-1 | โ”‚ 1824 โ”‚ โ”‚ โ”‚ โ”‚ return [] โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ /usr/local/lib/python3.10/dist-packages/d โ”‚ khoj-server-1 | โ”‚ jango/db/models/sql/compiler.py:1745 in โ”‚ khoj-server-1 | โ”‚ as_sql โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ 1742 โ”‚ โ”‚ result.append("(%s)" % ", โ”‚ khoj-server-1 | โ”‚ 1743 โ”‚ โ”‚ โ”‚ khoj-server-1 | โ”‚ 1744 โ”‚ โ”‚ if self.query.fields: โ”‚ khoj-server-1 | โ”‚ โฑ 1745 โ”‚ โ”‚ โ”‚ value_rows = [ โ”‚ khoj-server-1 | โ”‚ 1746 โ”‚ โ”‚ โ”‚ โ”‚ [ โ”‚ khoj-server-1 | โ”‚ 1747 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ self.prepare_v โ”‚ khoj-server-1 | โ”‚ 1748 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ for field in f โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ /usr/local/lib/python3.10/dist-packages/d โ”‚ khoj-server-1 | โ”‚ jango/db/models/sql/compiler.py:1746 in โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ 1743 โ”‚ โ”‚ โ”‚ khoj-server-1 | โ”‚ 1744 โ”‚ โ”‚ if self.query.fields: โ”‚ khoj-server-1 | โ”‚ 1745 โ”‚ โ”‚ โ”‚ value_rows = [ โ”‚ khoj-server-1 | โ”‚ โฑ 1746 โ”‚ โ”‚ โ”‚ โ”‚ [ โ”‚ khoj-server-1 | โ”‚ 1747 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ self.prepare_v โ”‚ khoj-server-1 | โ”‚ 1748 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ for field in f โ”‚ khoj-server-1 | โ”‚ 1749 โ”‚ โ”‚ โ”‚ โ”‚ ] โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ /usr/local/lib/python3.10/dist-packages/d โ”‚ khoj-server-1 | โ”‚ jango/db/models/sql/compiler.py:1747 in โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ 1744 โ”‚ โ”‚ if self.query.fields: โ”‚ khoj-server-1 | โ”‚ 1745 โ”‚ โ”‚ โ”‚ value_rows = [ โ”‚ khoj-server-1 | โ”‚ 1746 โ”‚ โ”‚ โ”‚ โ”‚ [ โ”‚ khoj-server-1 | โ”‚ โฑ 1747 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ self.prepare_v โ”‚ khoj-server-1 | โ”‚ 1748 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ for field in f โ”‚ khoj-server-1 | โ”‚ 1749 โ”‚ โ”‚ โ”‚ โ”‚ ] โ”‚ khoj-server-1 | โ”‚ 1750 โ”‚ โ”‚ โ”‚ โ”‚ for obj in self.qu โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ /usr/local/lib/python3.10/dist-packages/d โ”‚ khoj-server-1 | โ”‚ jango/db/models/sql/compiler.py:1686 in โ”‚ khoj-server-1 | โ”‚ prepare_value โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ 1683 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ "Window expres โ”‚ khoj-server-1 | โ”‚ 1684 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ % (field.name, โ”‚ khoj-server-1 | โ”‚ 1685 โ”‚ โ”‚ โ”‚ โ”‚ ) โ”‚ khoj-server-1 | โ”‚ โฑ 1686 โ”‚ โ”‚ return field.get_db_prep_s โ”‚ khoj-server-1 | โ”‚ 1687 โ”‚ โ”‚ khoj-server-1 | โ”‚ 1688 โ”‚ def pre_save_val(self, field, โ”‚ khoj-server-1 | โ”‚ 1689 โ”‚ โ”‚ """ โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ /usr/local/lib/python3.10/dist-packages/d โ”‚ khoj-server-1 | โ”‚ jango/db/models/fields/init.py:954 in โ”‚ khoj-server-1 | โ”‚ get_db_prep_save โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ 951 โ”‚ โ”‚ """Return field's value pr โ”‚ khoj-server-1 | โ”‚ 952 โ”‚ โ”‚ if hasattr(value, "as_sql" โ”‚ khoj-server-1 | โ”‚ 953 โ”‚ โ”‚ โ”‚ return value โ”‚ khoj-server-1 | โ”‚ โฑ 954 โ”‚ โ”‚ return self.get_db_prep_va โ”‚ khoj-server-1 | โ”‚ 955 โ”‚ โ”‚ khoj-server-1 | โ”‚ 956 โ”‚ def has_default(self): โ”‚ khoj-server-1 | โ”‚ 957 โ”‚ โ”‚ """Return a boolean of whe โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ /usr/local/lib/python3.10/dist-packages/d โ”‚ khoj-server-1 | โ”‚ jango/db/models/fields/init.py:2678 โ”‚ khoj-server-1 | โ”‚ in get_db_prep_value โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ 2675 โ”‚ โ”‚ if value is None: โ”‚ khoj-server-1 | โ”‚ 2676 โ”‚ โ”‚ โ”‚ return None โ”‚ khoj-server-1 | โ”‚ 2677 โ”‚ โ”‚ if not isinstance(value, u โ”‚ khoj-server-1 | โ”‚ โฑ 2678 โ”‚ โ”‚ โ”‚ value = self.to_python โ”‚ khoj-server-1 | โ”‚ 2679 โ”‚ โ”‚ โ”‚ khoj-server-1 | โ”‚ 2680 โ”‚ โ”‚ if connection.features.has โ”‚ khoj-server-1 | โ”‚ 2681 โ”‚ โ”‚ โ”‚ return value โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ /usr/local/lib/python3.10/dist-packages/d โ”‚ khoj-server-1 | โ”‚ jango/db/models/fields/init.py:2690 โ”‚ khoj-server-1 | โ”‚ in to_python โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ 2687 โ”‚ โ”‚ โ”‚ try: โ”‚ khoj-server-1 | โ”‚ 2688 โ”‚ โ”‚ โ”‚ โ”‚ return uuid.UUID(* โ”‚ khoj-server-1 | โ”‚ 2689 โ”‚ โ”‚ โ”‚ except (AttributeError โ”‚ khoj-server-1 | โ”‚ โฑ 2690 โ”‚ โ”‚ โ”‚ โ”‚ raise exceptions.V โ”‚ khoj-server-1 | โ”‚ 2691 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ self.error_mes โ”‚ khoj-server-1 | โ”‚ 2692 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ code="invalid" โ”‚ khoj-server-1 | โ”‚ 2693 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ params={"value โ”‚ khoj-server-1 | โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ khoj-server-1 | ValidationError: ['โ€œNoneโ€ is not a valid khoj-server-1 | UUID.'] khoj-server-1 | [21:00:37] ERROR ๐Ÿšจ Failed to update server via API: Failed to api.py:204 khoj-server-1 | update content index khoj-server-1 | โ•ญโ”€โ”€โ”€โ”€โ”€โ”€ Traceback (most recent call last) โ”€โ”€โ”€โ”€โ”€โ”€โ•ฎ khoj-server-1 | โ”‚ /app/src/khoj/routers/api.py:201 in update โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ 198 โ”‚ โ”‚ logger.warning(error_msg) โ”‚ khoj-server-1 | โ”‚ 199 โ”‚ โ”‚ raise HTTPException(status_code โ”‚ khoj-server-1 | โ”‚ 200 โ”‚ try: โ”‚ khoj-server-1 | โ”‚ โฑ 201 โ”‚ โ”‚ configure_server(state.config, โ”‚ khoj-server-1 | โ”‚ 202 โ”‚ except Exception as e: โ”‚ khoj-server-1 | โ”‚ 203 โ”‚ โ”‚ error_msg = f"๐Ÿšจ Failed to upda โ”‚ khoj-server-1 | โ”‚ 204 โ”‚ โ”‚ logger.error(error_msg, exc_inf โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ /app/src/khoj/configure.py:228 in โ”‚ khoj-server-1 | โ”‚ configure_server โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ 225 โ”‚ โ”‚ state.search_models = configure โ”‚ khoj-server-1 | โ”‚ state.config.search_type) โ”‚ khoj-server-1 | โ”‚ 226 โ”‚ โ”‚ initialize_content(regenerate, โ”‚ khoj-server-1 | โ”‚ 227 โ”‚ except Exception as e: โ”‚ khoj-server-1 | โ”‚ โฑ 228 โ”‚ โ”‚ raise e โ”‚ khoj-server-1 | โ”‚ 229 โ”‚ khoj-server-1 | โ”‚ 230 โ”‚ khoj-server-1 | โ”‚ 231 def initialize_content(regenerate: bool โ”‚ khoj-server-1 | โ”‚ init=False, user: KhojUser = None): โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ /app/src/khoj/configure.py:226 in โ”‚ khoj-server-1 | โ”‚ configure_server โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ 223 โ”‚ โ”‚ โ”‚ khoj-server-1 | โ”‚ 224 โ”‚ โ”‚ state.SearchType = configure_se โ”‚ khoj-server-1 | โ”‚ 225 โ”‚ โ”‚ state.search_models = configure โ”‚ khoj-server-1 | โ”‚ state.config.search_type) โ”‚ khoj-server-1 | โ”‚ โฑ 226 โ”‚ โ”‚ initialize_content(regenerate, โ”‚ khoj-server-1 | โ”‚ 227 โ”‚ except Exception as e: โ”‚ khoj-server-1 | โ”‚ 228 โ”‚ โ”‚ raise e โ”‚ khoj-server-1 | โ”‚ 229 โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ /app/src/khoj/configure.py:253 in โ”‚ khoj-server-1 | โ”‚ initialize_content โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ 250 โ”‚ โ”‚ โ”‚ โ”‚ if not status: โ”‚ khoj-server-1 | โ”‚ 251 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ raise RuntimeError( โ”‚ khoj-server-1 | โ”‚ 252 โ”‚ โ”‚ except Exception as e: โ”‚ khoj-server-1 | โ”‚ โฑ 253 โ”‚ โ”‚ โ”‚ raise e โ”‚ khoj-server-1 | โ”‚ 254 โ”‚ khoj-server-1 | โ”‚ 255 โ”‚ khoj-server-1 | โ”‚ 256 def configure_routes(app): โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ /app/src/khoj/configure.py:251 in โ”‚ khoj-server-1 | โ”‚ initialize_content โ”‚ khoj-server-1 | โ”‚ โ”‚ khoj-server-1 | โ”‚ 248 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ user=user, โ”‚ khoj-server-1 | โ”‚ 249 โ”‚ โ”‚ โ”‚ โ”‚ ) โ”‚ khoj-server-1 | โ”‚ 250 โ”‚ โ”‚ โ”‚ โ”‚ if not status: โ”‚ khoj-server-1 | โ”‚ โฑ 251 โ”‚ โ”‚ โ”‚ โ”‚ โ”‚ raise RuntimeError( โ”‚ khoj-server-1 | โ”‚ 252 โ”‚ โ”‚ except Exception as e: โ”‚ khoj-server-1 | โ”‚ 253 โ”‚ โ”‚ โ”‚ raise e โ”‚ khoj-server-1 | โ”‚ 254 โ”‚ khoj-server-1 | โ•ฐโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ•ฏ khoj-server-1 | RuntimeError: Failed to update content index khoj-server-1 | [21:00:38] INFO 192.168.65.1:49636 - "GET h11_impl.py:431

danrthompson commented 6 months ago

let me know if there is any additional info i should provide

i gave the notion integration all permissions

danrthompson commented 6 months ago

added a print statement here:

    def update_entries_with_ids(self, current_entries, user: KhojUser = None):
        # Identify, mark and merge any new entries with previous entries
        print(current_entries)
        with timer("Identify new or updated entries", logger):
            num_new_embeddings, num_deleted_embeddings = self.update_embeddings(
                current_entries,
                DbEntry.EntryType.NOTION,
                DbEntry.EntrySource.NOTION,
                key="compiled",
                logger=logger,
                user=user,
            )

        return num_new_embeddings, num_deleted_embeddings

console output:

[{'raw': 'Hea\n\nTest\n', 'compiled': 'Hea\n\nTest\n', 'heading': 'Ysys', 'file': 'https://www.notion.so/Ysys-e8932da8e48b4228b069aede4b17bea5', 'corpus_id': 'None'}, {'raw': "\n<b>Hea</b>\n<a href='https://www.notion.so/a4341eac0f374c0f997302f6d0d89a03'>Untitled</a> ", 'compiled': "\n<b>Hea</b>\n<a href='https://www.notion.so/a4341eac0f374c0f997302f6d0d89a03'>Untitled</a> ", 'heading': 'Ysys', 'file': 'https://www.notion.so/Ysys-e8932da8e48b4228b069aede4b17bea5', 'corpus_id': 'None'}, {'raw': '\n<b>Hea</b>\nReminder: gauche', 'compiled': '\n<b>Hea</b>\nReminder: gauche', 'heading': 'Ysys', 'file': 'https://www.notion.so/Ysys-e8932da8e48b4228b069aede4b17bea5', 'corpus_id': 'None'}, {'raw': 'Testing!', 'compiled': 'Testing!', 'heading': 'Test', 'file': 'https://www.notion.so/Test-ae4b8b05af304efb9dfd72723fc3ea9e', 'corpus_id': 'None'}]

so the corpus id is None