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.
[x] Remove exposed API endpoints that should not be accessible in a cloud environment (for example, offline chat)
[x] Add clear onboarding instructions
[x] Add billing with a callback function to determine which users are subscribed
[x] Need a copy button by the API Key
[x] Remove trailing slash from the URL in the desktop application
[x] Update copy after you've saved a setting in the config page. (doesn't need to say go back to settings page)
[x] Prompt exceeded error with gpt4
[x] zoneinfo._common.ZoneInfoNotFoundError: 'tzlocal() does not support non-zoneinfo timezones like UTC. \nPlease use a timezone in the form of Continent/City'
[x] Account icon on the config page
[x] Add ability to delete indexed data from the web app settings page
[x] Remove @auth_router.post("/redirect") from generate_token API (overrides actual redirect login method)
[x] Remove demo backend code/configuration
[x] Ensure search results are same before vs after rearchitecture
Search results are deterministic for a given model and dataset
[X] Rename Embeddings to Entries
[x] Improve Sign-In UX on Web App
[x] Add unit test to prevent cross-shard access
Ensure access to DB from API controllers only via wrapper function that need user argument. Do not work directly with Django DB models
[x] Test Performance of Khoj at scale
How much users * data can be ingested. It's effects on memory utilization and search, chat latency.
[x] Starting khoj with the khoj is broken.
Need it to call run(should_start_server=True) but it's doing run(should_start_server=False) in main.py final conditional. This is required for gunicorn. Using env variable to select between the two may be the fix for this
[x] Multiple API calls landing together maybe duplicate results duplicate. Keep per user write lock in DB to prevent this
@auth_router.post("/redirect")
fromgenerate_token
API (overrides actual redirect login method)demo
backend code/configurationkhoj
is broken. Need it to callrun(should_start_server=True)
but it's doingrun(should_start_server=False)
in main.py final conditional. This is required for gunicorn. Using env variable to select between the two may be the fix for this