Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FIX] searx timeout error + server crash and restart when attempting a first conversation on a new docker install #1050

Open
3 of 14 tasks
Klemet opened this issue Jan 9, 2025 · 7 comments
Labels
fix Fix something that isn't working as expected

Comments

@Klemet
Copy link

Klemet commented Jan 9, 2025

Hello there 😄 ! Thanks for the project, it looks absolutly amazing ! I was excited to try it, but had two errors that prevented me from using it on a new install :

Describe the bug

On a new self-hosted install of Khoj on Windows 10 through Docker, two problems pop up :

  1. When loading search-1, a timeout error happens on several functions.
search-1    | SearXNG version 2025.1.6+6dab7fe78
search-1    | Use existing /etc/searxng/uwsgi.ini
search-1    | Use existing /etc/searxng/settings.yml
search-1    | Listen on 0.0.0.0:8080
search-1    | [uWSGI] getting INI configuration from /etc/searxng/uwsgi.ini
search-1    | [uwsgi-static] added mapping for /static => /usr/local/searxng/searx/static
search-1    | *** Starting uWSGI 2.0.25.1 (64bit) on [Wed Jan  8 23:45:56 2025] ***
search-1    | compiled with version: 13.2.1 20240309 on 17 May 2024 06:11:37
search-1    | os: Linux-5.15.153.1-microsoft-standard-WSL2 #1 SMP Fri Mar 29 23:14:13 UTC 2024
search-1    | nodename: 09a50607aee1
search-1    | machine: x86_64
search-1    | clock source: unix
search-1    | pcre jit disabled
search-1    | detected number of CPU cores: 16
search-1    | current working directory: /usr/local/searxng
search-1    | detected binary path: /usr/sbin/uwsgi
search-1    | setgid() to 977
search-1    | setuid() to 977
search-1    | chdir() to /usr/local/searxng/searx/
search-1    | your memory page size is 4096 bytes
search-1    | detected max file descriptor number: 1048576
search-1    | building mime-types dictionary from file /etc/mime.types...1390 entry found
search-1    | lock engine: pthread robust mutexes
search-1    | thunder lock: disabled (you can enable it with --thunder-lock)
search-1    | uwsgi socket 0 bound to TCP address 0.0.0.0:8080 fd 3
search-1    | Python version: 3.12.8 (main, Dec  7 2024, 00:01:15) [GCC 13.2.1 20240309]
search-1    | Python main interpreter initialized at 0x7fbce82f1c30
search-1    | python threads support enabled
search-1    | your server socket listen backlog is limited to 100 connections
search-1    | your mercy for graceful operations on workers is 60 seconds
search-1    | mapped 2051424 bytes (2003 KB) for 64 cores
search-1    | *** Operational MODE: preforking+threaded ***
search-1    | added /usr/local/searxng/ to pythonpath.
search-1    | spawned uWSGI master process (pid: 7)
search-1    | spawned uWSGI worker 1 (pid: 10, cores: 4)
search-1    | spawned uWSGI worker 2 (pid: 12, cores: 4)
search-1    | spawned 4 offload threads for uWSGI worker 1
search-1    | spawned uWSGI worker 3 (pid: 17, cores: 4)
search-1    | spawned 4 offload threads for uWSGI worker 2
search-1    | spawned uWSGI worker 4 (pid: 22, cores: 4)
search-1    | spawned 4 offload threads for uWSGI worker 3
search-1    | spawned uWSGI worker 5 (pid: 26, cores: 4)
search-1    | spawned uWSGI worker 6 (pid: 29, cores: 4)
search-1    | spawned 4 offload threads for uWSGI worker 5
search-1    | spawned uWSGI worker 7 (pid: 34, cores: 4)
search-1    | spawned 4 offload threads for uWSGI worker 6
search-1    | spawned uWSGI worker 8 (pid: 39, cores: 4)
search-1    | spawned 4 offload threads for uWSGI worker 7
search-1    | spawned 4 offload threads for uWSGI worker 8
search-1    | spawned uWSGI worker 9 (pid: 46, cores: 4)
search-1    | spawned uWSGI worker 10 (pid: 50, cores: 4)
search-1    | spawned 4 offload threads for uWSGI worker 9
search-1    | spawned 4 offload threads for uWSGI worker 10
search-1    | spawned uWSGI worker 11 (pid: 58, cores: 4)
search-1    | spawned 4 offload threads for uWSGI worker 11
search-1    | spawned uWSGI worker 12 (pid: 64, cores: 4)
search-1    | spawned uWSGI worker 13 (pid: 65, cores: 4)
search-1    | spawned 4 offload threads for uWSGI worker 12
search-1    | spawned 4 offload threads for uWSGI worker 4
search-1    | spawned 4 offload threads for uWSGI worker 13
search-1    | spawned uWSGI worker 14 (pid: 75, cores: 4)
search-1    | spawned 4 offload threads for uWSGI worker 14
search-1    | spawned uWSGI worker 15 (pid: 80, cores: 4)
search-1    | spawned uWSGI worker 16 (pid: 81, cores: 4)
search-1    | spawned 4 offload threads for uWSGI worker 15
search-1    | spawned 4 offload threads for uWSGI worker 16
search-1    | 2025-01-08 23:45:58,412 WARNING:searx.botdetection.config: missing config file: /etc/searxng/limiter.toml
search-1    | 2025-01-08 23:45:58,413 WARNING:searx.botdetection.config: missing config file: /etc/searxng/limiter.toml
search-1    | WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x7fbce82f1c30 pid: 65 (default app)
search-1    | 2025-01-08 23:45:58,421 WARNING:searx.botdetection.config: missing config file: /etc/searxng/limiter.toml
search-1    | WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x7fbce82f1c30 pid: 81 (default app)
search-1    | WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x7fbce82f1c30 pid: 29 (default app)
search-1    | 2025-01-08 23:45:58,427 WARNING:searx.botdetection.config: missing config file: /etc/searxng/limiter.toml
search-1    | 2025-01-08 23:45:58,429 WARNING:searx.botdetection.config: missing config file: /etc/searxng/limiter.toml
search-1    | WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x7fbce82f1c30 pid: 75 (default app)
search-1    | WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x7fbce82f1c30 pid: 22 (default app)
search-1    | 2025-01-08 23:45:58,434 WARNING:searx.botdetection.config: missing config file: /etc/searxng/limiter.toml
search-1    | WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x7fbce82f1c30 pid: 58 (default app)
search-1    | 2025-01-08 23:45:58,445 WARNING:searx.botdetection.config: missing config file: /etc/searxng/limiter.toml
search-1    | WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x7fbce82f1c30 pid: 26 (default app)
search-1    | 2025-01-08 23:45:58,460 WARNING:searx.botdetection.config: missing config file: /etc/searxng/limiter.toml
search-1    | WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x7fbce82f1c30 pid: 80 (default app)
search-1    | 2025-01-08 23:45:58,470 WARNING:searx.botdetection.config: missing config file: /etc/searxng/limiter.toml
search-1    | WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x7fbce82f1c30 pid: 34 (default app)
search-1    | 2025-01-08 23:45:58,538 WARNING:searx.botdetection.config: missing config file: /etc/searxng/limiter.toml
search-1    | WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x7fbce82f1c30 pid: 64 (default app)
search-1    | 2025-01-08 23:45:58,555 WARNING:searx.botdetection.config: missing config file: /etc/searxng/limiter.toml
search-1    | WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x7fbce82f1c30 pid: 50 (default app)
search-1    | 2025-01-08 23:45:58,559 WARNING:searx.botdetection.config: missing config file: /etc/searxng/limiter.toml
search-1    | WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x7fbce82f1c30 pid: 17 (default app)
search-1    | 2025-01-08 23:45:58,564 WARNING:searx.botdetection.config: missing config file: /etc/searxng/limiter.toml
search-1    | WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x7fbce82f1c30 pid: 46 (default app)
search-1    | 2025-01-08 23:45:58,597 WARNING:searx.botdetection.config: missing config file: /etc/searxng/limiter.toml
search-1    | WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x7fbce82f1c30 pid: 39 (default app)
search-1    | 2025-01-08 23:45:58,630 WARNING:searx.botdetection.config: missing config file: /etc/searxng/limiter.toml
search-1    | WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x7fbce82f1c30 pid: 12 (default app)
search-1    | 2025-01-08 23:45:58,679 WARNING:searx.botdetection.config: missing config file: /etc/searxng/limiter.toml
search-1    | WSGI app 0 (mountpoint='') ready in 2 seconds on interpreter 0x7fbce82f1c30 pid: 10 (default app)
sandbox-1   | Preparing Pyodide environment
sandbox-1   | Server is running on port 8080
sandbox-1   | Loading Pyodide environment
sandbox-1   | Loading numpy, matplotlib, cycler, six, fonttools, kiwisolver, packaging, pillow, pyparsing, python-dateutil, pytz, matplotlib-pyodide, pandas
search-1    | 2025-01-08 23:46:01,602 ERROR:searx.engines.soundcloud: Fail to initialize
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 95, in request
search-1    |     return future.result(timeout)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/lib/python3.12/concurrent/futures/_base.py", line 458, in result
search-1    |     raise TimeoutError()
search-1    | TimeoutError
search-1    |
search-1    | The above exception was the direct cause of the following exception:
search-1    |
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/search/processors/abstract.py", line 73, in initialize
search-1    |     self.engine.init(get_engine_from_settings(self.engine_name))
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 69, in init
search-1    |     guest_client_id = get_client_id()
search-1    |                       ^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 57, in get_client_id
search-1    |     resp = http_get(app_js_url)
search-1    |            ^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 164, in get
search-1    |     return request('get', url, **kwargs)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 97, in request
search-1    |     raise httpx.TimeoutException('Timeout', request=None) from e
search-1    | httpx.TimeoutException: Timeout
search-1    | 2025-01-08 23:46:01,603 ERROR:searx.engines.soundcloud: Fail to initialize
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 95, in request
search-1    |     return future.result(timeout)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/lib/python3.12/concurrent/futures/_base.py", line 458, in result
search-1    |     raise TimeoutError()
search-1    | TimeoutError
search-1    |
search-1    | The above exception was the direct cause of the following exception:
search-1    |
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/search/processors/abstract.py", line 73, in initialize
search-1    |     self.engine.init(get_engine_from_settings(self.engine_name))
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 69, in init
search-1    |     guest_client_id = get_client_id()
search-1    |                       ^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 57, in get_client_id
search-1    |     resp = http_get(app_js_url)
search-1    |            ^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 164, in get
search-1    |     return request('get', url, **kwargs)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 97, in request
search-1    |     raise httpx.TimeoutException('Timeout', request=None) from e
search-1    | httpx.TimeoutException: Timeout
search-1    | 2025-01-08 23:46:01,604 ERROR:searx.engines.soundcloud: Fail to initialize
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 95, in request
search-1    |     return future.result(timeout)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/lib/python3.12/concurrent/futures/_base.py", line 458, in result
search-1    |     raise TimeoutError()
search-1    | TimeoutError
search-1    |
search-1    | The above exception was the direct cause of the following exception:
search-1    |
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/search/processors/abstract.py", line 73, in initialize
search-1    |     self.engine.init(get_engine_from_settings(self.engine_name))
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 69, in init
search-1    |     guest_client_id = get_client_id()
search-1    |                       ^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 57, in get_client_id
search-1    |     resp = http_get(app_js_url)
search-1    |            ^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 164, in get
search-1    |     return request('get', url, **kwargs)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 97, in request
search-1    |     raise httpx.TimeoutException('Timeout', request=None) from e
search-1    | httpx.TimeoutException: Timeout
search-1    | 2025-01-08 23:46:01,612 ERROR:searx.engines.soundcloud: Fail to initialize
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 95, in request
search-1    |     return future.result(timeout)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/lib/python3.12/concurrent/futures/_base.py", line 458, in result
search-1    |     raise TimeoutError()
search-1    | TimeoutError
search-1    |
search-1    | The above exception was the direct cause of the following exception:
search-1    |
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/search/processors/abstract.py", line 73, in initialize
search-1    |     self.engine.init(get_engine_from_settings(self.engine_name))
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 69, in init
search-1    |     guest_client_id = get_client_id()
search-1    |                       ^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 57, in get_client_id
search-1    |     resp = http_get(app_js_url)
search-1    |            ^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 164, in get
search-1    |     return request('get', url, **kwargs)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 97, in request
search-1    |     raise httpx.TimeoutException('Timeout', request=None) from e
search-1    | httpx.TimeoutException: Timeout
search-1    | 2025-01-08 23:46:01,612 ERROR:searx.engines.soundcloud: Fail to initialize
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 95, in request
search-1    |     return future.result(timeout)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/lib/python3.12/concurrent/futures/_base.py", line 458, in result
search-1    |     raise TimeoutError()
search-1    | TimeoutError
search-1    |
search-1    | The above exception was the direct cause of the following exception:
search-1    |
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/search/processors/abstract.py", line 73, in initialize
search-1    |     self.engine.init(get_engine_from_settings(self.engine_name))
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 69, in init
search-1    |     guest_client_id = get_client_id()
search-1    |                       ^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 57, in get_client_id
search-1    |     resp = http_get(app_js_url)
search-1    |            ^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 164, in get
search-1    |     return request('get', url, **kwargs)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 97, in request
search-1    |     raise httpx.TimeoutException('Timeout', request=None) from e
search-1    | httpx.TimeoutException: Timeout
search-1    | 2025-01-08 23:46:01,628 ERROR:searx.engines.soundcloud: Fail to initialize
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 95, in request
search-1    |     return future.result(timeout)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/lib/python3.12/concurrent/futures/_base.py", line 458, in result
search-1    |     raise TimeoutError()
search-1    | TimeoutError
search-1    |
search-1    | The above exception was the direct cause of the following exception:
search-1    |
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/search/processors/abstract.py", line 73, in initialize
search-1    |     self.engine.init(get_engine_from_settings(self.engine_name))
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 69, in init
search-1    |     guest_client_id = get_client_id()
search-1    |                       ^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 57, in get_client_id
search-1    |     resp = http_get(app_js_url)
search-1    |            ^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 164, in get
search-1    |     return request('get', url, **kwargs)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 97, in request
search-1    |     raise httpx.TimeoutException('Timeout', request=None) from e
search-1    | httpx.TimeoutException: Timeout
search-1    | 2025-01-08 23:46:01,641 ERROR:searx.engines.soundcloud: Fail to initialize
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 95, in request
search-1    |     return future.result(timeout)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/lib/python3.12/concurrent/futures/_base.py", line 458, in result
search-1    |     raise TimeoutError()
search-1    | TimeoutError
search-1    |
search-1    | The above exception was the direct cause of the following exception:
search-1    |
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/search/processors/abstract.py", line 73, in initialize
search-1    |     self.engine.init(get_engine_from_settings(self.engine_name))
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 69, in init
search-1    |     guest_client_id = get_client_id()
search-1    |                       ^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 57, in get_client_id
search-1    |     resp = http_get(app_js_url)
search-1    |            ^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 164, in get
search-1    |     return request('get', url, **kwargs)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 97, in request
search-1    |     raise httpx.TimeoutException('Timeout', request=None) from e
search-1    | httpx.TimeoutException: Timeout
search-1    | 2025-01-08 23:46:01,653 ERROR:searx.engines.soundcloud: Fail to initialize
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 95, in request
search-1    |     return future.result(timeout)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/lib/python3.12/concurrent/futures/_base.py", line 458, in result
search-1    |     raise TimeoutError()
search-1    | TimeoutError
search-1    |
search-1    | The above exception was the direct cause of the following exception:
search-1    |
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/search/processors/abstract.py", line 73, in initialize
search-1    |     self.engine.init(get_engine_from_settings(self.engine_name))
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 69, in init
search-1    |     guest_client_id = get_client_id()
search-1    |                       ^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 57, in get_client_id
search-1    |     resp = http_get(app_js_url)
search-1    |            ^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 164, in get
search-1    |     return request('get', url, **kwargs)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 97, in request
search-1    |     raise httpx.TimeoutException('Timeout', request=None) from e
search-1    | httpx.TimeoutException: Timeout
search-1    | 2025-01-08 23:46:01,667 ERROR:searx.engines.soundcloud: Fail to initialize
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 95, in request
search-1    |     return future.result(timeout)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/lib/python3.12/concurrent/futures/_base.py", line 458, in result
search-1    |     raise TimeoutError()
search-1    | TimeoutError
search-1    |
search-1    | The above exception was the direct cause of the following exception:
search-1    |
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/search/processors/abstract.py", line 73, in initialize
search-1    |     self.engine.init(get_engine_from_settings(self.engine_name))
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 69, in init
search-1    |     guest_client_id = get_client_id()
search-1    |                       ^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 57, in get_client_id
search-1    |     resp = http_get(app_js_url)
search-1    |            ^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 164, in get
search-1    |     return request('get', url, **kwargs)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 97, in request
search-1    |     raise httpx.TimeoutException('Timeout', request=None) from e
search-1    | httpx.TimeoutException: Timeout
search-1    | 2025-01-08 23:46:01,734 ERROR:searx.engines.soundcloud: Fail to initialize
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 95, in request
search-1    |     return future.result(timeout)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/lib/python3.12/concurrent/futures/_base.py", line 458, in result
search-1    |     raise TimeoutError()
search-1    | TimeoutError
search-1    |
search-1    | The above exception was the direct cause of the following exception:
search-1    |
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/search/processors/abstract.py", line 73, in initialize
search-1    |     self.engine.init(get_engine_from_settings(self.engine_name))
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 69, in init
search-1    |     guest_client_id = get_client_id()
search-1    |                       ^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 57, in get_client_id
search-1    |     resp = http_get(app_js_url)
search-1    |            ^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 164, in get
search-1    |     return request('get', url, **kwargs)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 97, in request
search-1    |     raise httpx.TimeoutException('Timeout', request=None) from e
search-1    | httpx.TimeoutException: Timeout
search-1    | 2025-01-08 23:46:01,739 ERROR:searx.engines.soundcloud: Fail to initialize
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 95, in request
search-1    |     return future.result(timeout)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/lib/python3.12/concurrent/futures/_base.py", line 458, in result
search-1    |     raise TimeoutError()
search-1    | TimeoutError
search-1    |
search-1    | The above exception was the direct cause of the following exception:
search-1    |
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/search/processors/abstract.py", line 73, in initialize
search-1    |     self.engine.init(get_engine_from_settings(self.engine_name))
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 69, in init
search-1    |     guest_client_id = get_client_id()
search-1    |                       ^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 57, in get_client_id
search-1    |     resp = http_get(app_js_url)
search-1    |            ^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 164, in get
search-1    |     return request('get', url, **kwargs)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 97, in request
search-1    |     raise httpx.TimeoutException('Timeout', request=None) from e
search-1    | httpx.TimeoutException: Timeout
search-1    | 2025-01-08 23:46:01,745 ERROR:searx.engines.soundcloud: Fail to initialize
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 95, in request
search-1    |     return future.result(timeout)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/lib/python3.12/concurrent/futures/_base.py", line 458, in result
search-1    |     raise TimeoutError()
search-1    | TimeoutError
search-1    |
search-1    | The above exception was the direct cause of the following exception:
search-1    |
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/search/processors/abstract.py", line 73, in initialize
search-1    |     self.engine.init(get_engine_from_settings(self.engine_name))
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 69, in init
search-1    |     guest_client_id = get_client_id()
search-1    |                       ^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 57, in get_client_id
search-1    |     resp = http_get(app_js_url)
search-1    |            ^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 164, in get
search-1    |     return request('get', url, **kwargs)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 97, in request
search-1    |     raise httpx.TimeoutException('Timeout', request=None) from e
search-1    | httpx.TimeoutException: Timeout
search-1    | 2025-01-08 23:46:01,748 ERROR:searx.engines.soundcloud: Fail to initialize
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 95, in request
search-1    |     return future.result(timeout)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/lib/python3.12/concurrent/futures/_base.py", line 458, in result
search-1    |     raise TimeoutError()
search-1    | TimeoutError
search-1    |
search-1    | The above exception was the direct cause of the following exception:
search-1    |
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/search/processors/abstract.py", line 73, in initialize
search-1    |     self.engine.init(get_engine_from_settings(self.engine_name))
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 69, in init
search-1    |     guest_client_id = get_client_id()
search-1    |                       ^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 57, in get_client_id
search-1    |     resp = http_get(app_js_url)
search-1    |            ^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 164, in get
search-1    |     return request('get', url, **kwargs)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 97, in request
search-1    |     raise httpx.TimeoutException('Timeout', request=None) from e
search-1    | httpx.TimeoutException: Timeout
search-1    | 2025-01-08 23:46:01,794 ERROR:searx.engines.soundcloud: Fail to initialize
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 95, in request
search-1    |     return future.result(timeout)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/lib/python3.12/concurrent/futures/_base.py", line 458, in result
search-1    |     raise TimeoutError()
search-1    | TimeoutError
search-1    |
search-1    | The above exception was the direct cause of the following exception:
search-1    |
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/search/processors/abstract.py", line 73, in initialize
search-1    |     self.engine.init(get_engine_from_settings(self.engine_name))
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 69, in init
search-1    |     guest_client_id = get_client_id()
search-1    |                       ^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 57, in get_client_id
search-1    |     resp = http_get(app_js_url)
search-1    |            ^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 164, in get
search-1    |     return request('get', url, **kwargs)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 97, in request
search-1    |     raise httpx.TimeoutException('Timeout', request=None) from e
search-1    | httpx.TimeoutException: Timeout
search-1    | 2025-01-08 23:46:01,827 ERROR:searx.engines.soundcloud: Fail to initialize
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 95, in request
search-1    |     return future.result(timeout)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/lib/python3.12/concurrent/futures/_base.py", line 458, in result
search-1    |     raise TimeoutError()
search-1    | TimeoutError
search-1    |
search-1    | The above exception was the direct cause of the following exception:
search-1    |
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/search/processors/abstract.py", line 73, in initialize
search-1    |     self.engine.init(get_engine_from_settings(self.engine_name))
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 69, in init
search-1    |     guest_client_id = get_client_id()
search-1    |                       ^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 57, in get_client_id
search-1    |     resp = http_get(app_js_url)
search-1    |            ^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 164, in get
search-1    |     return request('get', url, **kwargs)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 97, in request
search-1    |     raise httpx.TimeoutException('Timeout', request=None) from e
search-1    | httpx.TimeoutException: Timeout
search-1    | 2025-01-08 23:46:01,876 ERROR:searx.engines.soundcloud: Fail to initialize
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 95, in request
search-1    |     return future.result(timeout)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/lib/python3.12/concurrent/futures/_base.py", line 458, in result
search-1    |     raise TimeoutError()
search-1    | TimeoutError
search-1    |
search-1    | The above exception was the direct cause of the following exception:
search-1    |
search-1    | Traceback (most recent call last):
search-1    |   File "/usr/local/searxng/searx/search/processors/abstract.py", line 73, in initialize
search-1    |     self.engine.init(get_engine_from_settings(self.engine_name))
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 69, in init
search-1    |     guest_client_id = get_client_id()
search-1    |                       ^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/engines/soundcloud.py", line 57, in get_client_id
search-1    |     resp = http_get(app_js_url)
search-1    |            ^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 164, in get
search-1    |     return request('get', url, **kwargs)
search-1    |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
search-1    |   File "/usr/local/searxng/searx/network/__init__.py", line 97, in request
search-1    |     raise httpx.TimeoutException('Timeout', request=None) from e
search-1    | httpx.TimeoutException: Timeout
  1. When attempting a conversation for the first time, the server loads the offline chat model for a while, and then crashes and restarts. This happens through repeated attempts with the same containers.
server-1    | [23:46:55.819593] INFO     khoj.routers.helpers: Loading Offline  helpers.py:156
server-1    |                            Chat Model...
database-1  | 2025-01-08 23:50:56.510 UTC [27] LOG:  checkpoint starting: time
database-1  | 2025-01-08 23:50:57.623 UTC [27] LOG:  checkpoint complete: wrote 14 buffers (0.1%); 0 WAL file(s) added, 0 removed, 0 recycled; write=1.105 s, sync=0.004 s, total=1.114 s; sync files=9, longest=0.002 s, average=0.001 s; distance=8 kB, estimate=8 kB
server-1 exited with code 0
server-1    | [00:07:33.091427] WARNING  khoj.routers.email: RESEND_API_KEY not    email.py:22
server-1    |                            set - email sending disabled
server-1    | [00:07:33.147278] INFO     khoj: 🚒 Initializing Khoj v1.33.2        main.py:133
server-1    | [00:07:33.149516] INFO     khoj: 📦 Initializing DB:                 main.py:134
server-1    |                            Operations to perform:
server-1    |                              Apply all migrations: admin, auth,
server-1    |                            contenttypes, database,
server-1    |                            django_apscheduler, sessions
server-1    |                            Running migrations:
server-1    |                              No migrations to apply.
server-1    | [00:07:33.152753] DEBUG    khoj: 🌍 Initializing Web Client:         main.py:135
server-1    |                            Found another file with the destination
server-1    |                            path 'admin/js/inlines.js'. It will be
server-1    |                            ignored since only the first encountered
server-1    |                            file is collected. If this is not what
server-1    |                            you want, make sure every static file has
server-1    |                            a unique path.
server-1    |                            Found another file with the destination
server-1    |                            path
server-1    |                            'admin/js/admin/RelatedObjectLookups.js'.
server-1    |                            It will be ignored since only the first
server-1    |                            encountered file is collected. If this is
server-1    |                            not what you want, make sure every static
server-1    |                            file has a unique path.
server-1    |
server-1    |                            0 static files copied to
server-1    |                            '/app/src/khoj/static', 335 unmodified.
server-1    | [00:07:33.163432] INFO     khoj.utils.initialization: 🗣️    initialization.py:301
server-1    |                            Chat model configuration
server-1    |                            updated
server-1    | [00:07:33.164993] INFO     khoj: 🌘 Starting Khoj                    main.py:147
server-1    | [00:07:33.167964] INFO     khoj: 🔒 Schedule Leader is already       main.py:168
server-1    |                            running
server-1    | [00:07:33.169331] INFO     khoj: Started Background Scheduler        main.py:181
server-1    | [00:07:33.329240] INFO     khoj.configure: 🚨 Khoj is not       configure.py:231
server-1    |                            configured.
server-1    |                            Initializing it with a default
server-1    |                            config.
server-1    | [00:07:34.494098] DEBUG    khoj.processor.embeddings: Loaded      helpers.py:193
server-1    |                            embedding model thenlper/gte-small:
server-1    |                            1.161 seconds
server-1    | [00:07:35.212363] DEBUG    khoj.processor.embeddings: Loaded      helpers.py:193
server-1    |                            cross-encoder model
server-1    |                            mixedbread-ai/mxbai-rerank-xsmall-v1:
server-1    |                            0.716 seconds
server-1    | [00:07:35.221611] INFO     khoj.configure: 📡 Telemetry enabled configure.py:278
server-1    | [00:07:35.222730] INFO     khoj: 🌖 Khoj is ready to use

To Reproduce

  • Install Docker Desktop on Windows 10
  • Copy docker-compose.yml in a folder
  • Add a KHOJ_DJANGO_SECRET_KEY, KHOJ_ADMIN_EMAIL and KHOJ_ADMIN_PASSWORD to docker-compose.yml
  • run docker-compose up

Platform

  • Server:
    • Cloud-Hosted (https://app.khoj.dev)
    • Self-Hosted Docker
    • Self-Hosted Python package
    • Self-Hosted source code
  • Client:
    • Obsidian
    • Emacs
    • Desktop app
    • Web browser
    • WhatsApp
  • OS:
    • Windows
    • macOS
    • Linux
    • Android
    • iOS

If self-hosted

  • Server Version [e.g. 1.0.1]: Khoj v1.33.2
@Klemet Klemet added the fix Fix something that isn't working as expected label Jan 9, 2025
@sabaimran
Copy link
Member

Thank you for the detailed debug logs!

  1. How long ago did you download the docker-compose file? Just wanted to check whether it's using the new yml file we merged earlier today (from 7 hours ago). Do you have the service just running locally, or is it on remote server? Is the TimeOut error happening immediately when you run docker compose up, or after some query is made?
  2. Can you setup and configure Ollama. We've been meaning to update our docs, but the best way to get started with chatting with Khoj offline on Docker is through Ollama :-). Here are the instructions -- Setup with Ollama.

@Klemet
Copy link
Author

Klemet commented Jan 9, 2025

Hey @sabaimran 😄 ! Thank you for the response.

  • I definitly downloaded the docker-compose file less than 7 hour ago.
  • I'm running the service locally, on my Windows 10 desktop computer.
  • The timeout error happens just after launching docker compose up, without even opening a browser window to Khoj.
  • I'll try Ollama right now and will write an update !

@Klemet
Copy link
Author

Klemet commented Jan 9, 2025

So, quick update :

  • I was able to install Ollama with llama 3.2 without any issues.
  • I had to completely wipe the previous containers of Khoj to make the change
  • The log is still chock-full of errors for searx, but I also noticed that there are an enormous amount of errors from sandbox-1 about python packages.
  • After several re-launch of docker compose up, I was finally able to get a conversation with llama 3.2 (3B); the answers take around 10-20 seconds to be generated with my GPU (GTX 3060 with 12GB of VRAM). Having little experience so far with offline LLMs, I cannot say if this is a good performance.
  • [EDIT]: Responses are actually written really fast, but as long as there is no internet search involved. It seems to be what's slowing things down.
  • Logout brings me to an empty JSON file simply saying "Not Found"; It seems like I'm not able to log in as an admin account

@debanjum
Copy link
Member

debanjum commented Jan 9, 2025

Good to know it's working for you.

The log is still chock-full of errors for searx, but I also noticed that there are an enormous amount of errors from sandbox-1 about python packages.

That doesn't sound great. What kind of errors are these? Do you see them on chat or on startup or continuously?

After several re-launch of docker compose up, I was finally able to get a conversation with llama 3.2 (3B); the answers take around 10-20 seconds to be generated with my GPU (GTX 3060 with 12GB of VRAM). Having little experience so far with offline LLMs, I cannot say if this is a good performance.
[EDIT]: Responses are actually written really fast, but as long as there is no internet search involved. It seems to be what's slowing things down.

This is in expected latency range for the VRAM and model size. The internet searches, as you noticed, do take longer as the model is having to read online search results and at least 1 webpage. Some ways to deal with this if this if you want faster responses are:

  • Use /general or /notes in queries where you don't want Khoj to try online searches
  • Create an agent which doesn't have access to online search and use that when you don't want to do online search
  • Use a faster web scraper like Firecrawl or Olostep and/or online search API like Serper.dev
  • Set the max prompt size of the llama3.2:3b Chat Model to something smaller (10000) via the Khoj admin panel but this may reduce the model response quality

Logout brings me to an empty JSON file simply saying "Not Found";

Can you share the URL you see? Never mind, I was able to reproduce this. The logout button shouldn't be shown when Khoj is running in anonymous mode (default for self-hosted). As there isn't anyway to actually login/logout. Let me fix that

It seems like I'm not able to log in as an admin account

Can you share more details? What are you seeing?

@Klemet
Copy link
Author

Klemet commented Jan 9, 2025

Thanks for taking a look at this, debanjum !

That doesn't sound great. What kind of errors are these? Do you see them on chat or on startup or continuously?

I'm away from my main computer right now; but I'll post a full log of what's going on when launching docker-compose. I've tried on my laptop computer with an older version of the docker-compose (this one), and I'm not seeing any error with searx or python so far. Might be because of the different computer, though !

Thank you for the info on the latency of responses; it makes a lot of sense, and I'll learn to play with this : ) !

Can you share the URL you see? Never mind, I was able to reproduce this. The logout button shouldn't be shown when Khoj is running in anonymous mode (default for self-hosted). As there isn't anyway to actually login/logout. Let me fix that

Aaaah, I think I better understand how the anonymous mode functions ! I was also missing the URL of the tutorial to log in as an admin; I thought I had to log out of the default account to log in as an admin. My bad, and sorry for the waste of time. Admin login seems to work fine on my work laptop.

Thank you again for the tips; will update things this evening with a full log containing the searx and python errors.

@debanjum
Copy link
Member

debanjum commented Jan 9, 2025

Some notes based on looking at Khoj docker logs locally:

  • If you saw logs lines about package loading errors/warning in the sandbox like below, then those are benign. The sandbox loads the packages from the web on first run. It shouldn't happen after
    sandbox-1   | Didn't find package numpy-1.25.2-cp311-cp311-emscripten_3_1_45_wasm32.whl locally, attempting to load from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/
    
  • It could be that the recent update to docker-compose.yml made in Improve docker-compose.yml #1029 may have started the searxng, python sandbox issues, if it's working for you with the older docker-compose.yml. In my testing:
    • I sometimes saw Searxng errors around httpx.TimeoutException for "send_wikidata_query", "sparql_endpoint_url". This seem to randomly occur (only on startup?). Khoj still seems to be able to search online.
    • Code sandbox errors maybe due to the small models having trouble using the code tool. You can improve their success by making them use /research mode but that comes at the cost of increased latency

@Hello-World-Traveler
Copy link

Inside khoj_sandbox_1

Preparing Pyodide environment

Server is running on port 8080

Loading Pyodide environment

Loading numpy, matplotlib, cycler, six, fonttools, kiwisolver, packaging, pillow, pyparsing, python-dateutil, pytz, matplotlib-pyodide, pandas

Didn't find package numpy-1.25.2-cp311-cp311-emscripten_3_1_45_wasm32.whl locally, attempting to load from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/

Didn't find package kiwisolver-1.4.4-cp311-cp311-emscripten_3_1_45_wasm32.whl locally, attempting to load from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/

Didn't find package matplotlib-3.5.2-cp311-cp311-emscripten_3_1_45_wasm32.whl locally, attempting to load from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/

Didn't find package fonttools-4.42.1-py3-none-any.whl locally, attempting to load from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/

Didn't find package Pillow-10.0.0-cp311-cp311-emscripten_3_1_45_wasm32.whl locally, attempting to load from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/

Didn't find package pyparsing-3.1.1-py3-none-any.whl locally, attempting to load from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/

Didn't find package pytz-2023.3-py2.py3-none-any.whl locally, attempting to load from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/

Didn't find package python_dateutil-2.8.2-py2.py3-none-any.whl locally, attempting to load from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/

Didn't find package packaging-23.1-py3-none-any.whl locally, attempting to load from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/

Didn't find package matplotlib_pyodide-0.2.0-py3-none-any.whl locally, attempting to load from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/

Didn't find package six-1.16.0-py2.py3-none-any.whl locally, attempting to load from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/

Didn't find package pandas-1.5.3-cp311-cp311-emscripten_3_1_45_wasm32.whl locally, attempting to load from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/

Didn't find package cycler-0.11.0-py3-none-any.whl locally, attempting to load from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/

Package cycler-0.11.0-py3-none-any.whl loaded from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/, caching the wheel in node_modules for future use.

Package matplotlib_pyodide-0.2.0-py3-none-any.whl loaded from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/, caching the wheel in node_modules for future use.

Package six-1.16.0-py2.py3-none-any.whl loaded from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/, caching the wheel in node_modules for future use.

Package packaging-23.1-py3-none-any.whl loaded from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/, caching the wheel in node_modules for future use.

Package kiwisolver-1.4.4-cp311-cp311-emscripten_3_1_45_wasm32.whl loaded from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/, caching the wheel in node_modules for future use.

Package pyparsing-3.1.1-py3-none-any.whl loaded from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/, caching the wheel in node_modules for future use.

Package pytz-2023.3-py2.py3-none-any.whl loaded from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/, caching the wheel in node_modules for future use.

Package python_dateutil-2.8.2-py2.py3-none-any.whl loaded from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/, caching the wheel in node_modules for future use.

Package Pillow-10.0.0-cp311-cp311-emscripten_3_1_45_wasm32.whl loaded from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/, caching the wheel in node_modules for future use.

Package fonttools-4.42.1-py3-none-any.whl loaded from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/, caching the wheel in node_modules for future use.

Package numpy-1.25.2-cp311-cp311-emscripten_3_1_45_wasm32.whl loaded from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/, caching the wheel in node_modules for future use.

Package matplotlib-3.5.2-cp311-cp311-emscripten_3_1_45_wasm32.whl loaded from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/, caching the wheel in node_modules for future use.

Package pandas-1.5.3-cp311-cp311-emscripten_3_1_45_wasm32.whl loaded from https://cdn.jsdelivr.net/pyodide/v0.24.1/full/, caching the wheel in node_modules for future use.

Loaded matplotlib-pyodide, six, cycler, packaging, kiwisolver, pyparsing, pytz, python-dateutil, pillow, fonttools, numpy, matplotlib, pandas

Pyodide is loaded with packages imported

I used docker compose from a few days ago. So far it's only half setup with LLM and agents.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
fix Fix something that isn't working as expected
Projects
None yet
Development

No branches or pull requests

4 participants