khoj 1.30.2__py3-none-any.whl → 1.30.2.dev4__py3-none-any.whl
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- khoj/database/adapters/__init__.py +1 -1
- khoj/database/admin.py +0 -39
- khoj/interface/compiled/404/index.html +1 -1
- khoj/interface/compiled/_next/static/chunks/1210.132a7e1910006bbb.js +1 -0
- khoj/interface/compiled/_next/static/chunks/1603-859ddcf58f3ca639.js +1 -0
- khoj/interface/compiled/_next/static/chunks/1970-e1935a1d0930a7c5.js +1 -0
- khoj/interface/compiled/_next/static/chunks/216-b2e4344315b88832.js +1 -0
- khoj/interface/compiled/_next/static/chunks/3124-e8410bbd01f6f188.js +1 -0
- khoj/interface/compiled/_next/static/chunks/{3717-b46079dbe9f55694.js → 6297-55f82537bb7068dd.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/{2646-92ba433951d02d52.js → 6901-e3dc0d315e3f6033.js} +2 -2
- khoj/interface/compiled/_next/static/chunks/796-36ee2d6829448c6d.js +3 -0
- khoj/interface/compiled/_next/static/chunks/9417-06236cd650f1abcd.js +1 -0
- khoj/interface/compiled/_next/static/chunks/app/agents/{page-f5c0801b27a8e95e.js → page-5f6e0dacc34e33ad.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/automations/{page-0393501fad5f8e3d.js → page-60bc7454bc3ea881.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/chat/{page-f2539e3197d03c0d.js → page-ac366c9111374312.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/{page-5cc56a8db5d21b38.js → page-358154a4436ef316.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/search/{page-e8b578d155550386.js → page-64ea1717528979af.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/app/settings/page-612294fe08f983d8.js +1 -0
- khoj/interface/compiled/_next/static/chunks/app/share/chat/{page-635635e4fb39fe29.js → page-47641b3691fb0856.js} +1 -1
- khoj/interface/compiled/_next/static/chunks/{webpack-5dbccc5145b80b64.js → webpack-c43e527c9ca9f9f9.js} +1 -1
- khoj/interface/compiled/_next/static/css/1a4038cc4acc8ee4.css +25 -0
- khoj/interface/compiled/_next/static/css/80bd6301fc657983.css +1 -0
- khoj/interface/compiled/_next/static/css/9d45de78fba367c1.css +1 -0
- khoj/interface/compiled/agents/index.html +1 -1
- khoj/interface/compiled/agents/index.txt +2 -2
- khoj/interface/compiled/automations/index.html +1 -1
- khoj/interface/compiled/automations/index.txt +2 -2
- khoj/interface/compiled/chat/index.html +1 -1
- khoj/interface/compiled/chat/index.txt +2 -2
- khoj/interface/compiled/index.html +1 -1
- khoj/interface/compiled/index.txt +2 -2
- khoj/interface/compiled/search/index.html +1 -1
- khoj/interface/compiled/search/index.txt +2 -2
- khoj/interface/compiled/settings/index.html +1 -1
- khoj/interface/compiled/settings/index.txt +2 -2
- khoj/interface/compiled/share/chat/index.html +1 -1
- khoj/interface/compiled/share/chat/index.txt +2 -2
- khoj/main.py +0 -4
- khoj/processor/conversation/anthropic/anthropic_chat.py +2 -8
- khoj/processor/conversation/anthropic/utils.py +3 -22
- khoj/processor/conversation/google/gemini_chat.py +2 -8
- khoj/processor/conversation/google/utils.py +3 -19
- khoj/processor/conversation/offline/chat_model.py +4 -12
- khoj/processor/conversation/openai/gpt.py +2 -9
- khoj/processor/conversation/openai/utils.py +21 -39
- khoj/processor/conversation/prompts.py +21 -40
- khoj/processor/conversation/utils.py +9 -15
- khoj/processor/tools/run_code.py +25 -1
- khoj/routers/api_chat.py +16 -41
- khoj/routers/api_subscription.py +2 -9
- khoj/routers/auth.py +2 -2
- khoj/routers/helpers.py +4 -19
- khoj/routers/research.py +1 -2
- khoj/utils/cli.py +0 -2
- khoj/utils/constants.py +0 -17
- khoj/utils/helpers.py +1 -55
- khoj/utils/state.py +0 -1
- {khoj-1.30.2.dist-info → khoj-1.30.2.dev4.dist-info}/METADATA +4 -9
- {khoj-1.30.2.dist-info → khoj-1.30.2.dev4.dist-info}/RECORD +64 -62
- khoj/interface/compiled/_next/static/chunks/1210.ef7a0f9a7e43da1d.js +0 -1
- khoj/interface/compiled/_next/static/chunks/1603-ba5f9f05e92c8412.js +0 -1
- khoj/interface/compiled/_next/static/chunks/1970-1b63ac1497b03a10.js +0 -1
- khoj/interface/compiled/_next/static/chunks/3463-081c031e873b7966.js +0 -3
- khoj/interface/compiled/_next/static/chunks/4752-554a3db270186ce3.js +0 -1
- khoj/interface/compiled/_next/static/chunks/app/settings/page-b6c835050c970be7.js +0 -1
- khoj/interface/compiled/_next/static/css/592ca99f5122e75a.css +0 -1
- khoj/interface/compiled/_next/static/css/5d8d85d3f2e95bae.css +0 -25
- khoj/interface/compiled/_next/static/css/63e106a52a0ec4ca.css +0 -1
- /khoj/interface/compiled/_next/static/{UR4enQiSbkZKb3SDFX2tx → EVMfEeflKlppAzl2to9RY}/_buildManifest.js +0 -0
- /khoj/interface/compiled/_next/static/{UR4enQiSbkZKb3SDFX2tx → EVMfEeflKlppAzl2to9RY}/_ssgManifest.js +0 -0
- {khoj-1.30.2.dist-info → khoj-1.30.2.dev4.dist-info}/WHEEL +0 -0
- {khoj-1.30.2.dist-info → khoj-1.30.2.dev4.dist-info}/entry_points.txt +0 -0
- {khoj-1.30.2.dist-info → khoj-1.30.2.dev4.dist-info}/licenses/LICENSE +0 -0
@@ -1 +1 @@
|
|
1
|
-
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/5455839c73f146e7-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/0e9d53dcd7f11342.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/5d8d85d3f2e95bae.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/3cf13271869a4aeb.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/63e106a52a0ec4ca.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/1f293605f2871853.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-5dbccc5145b80b64.js"/><script src="/_next/static/chunks/fd9d1056-2e6c8140e79afc3b.js" async=""></script><script src="/_next/static/chunks/7023-e8de2bded4df6539.js" async=""></script><script src="/_next/static/chunks/main-app-6d6ee3495efe03d4.js" async=""></script><script src="/_next/static/chunks/d3ac728e-a9e3522eef9b6b28.js" async=""></script><script src="/_next/static/chunks/3072-be830e4f8412b9d2.js" async=""></script><script src="/_next/static/chunks/4752-554a3db270186ce3.js" async=""></script><script src="/_next/static/chunks/7592-a09c39a38e60634b.js" async=""></script><script src="/_next/static/chunks/3690-51312931ba1eae30.js" async=""></script><script src="/_next/static/chunks/3463-081c031e873b7966.js" async=""></script><script src="/_next/static/chunks/1603-ba5f9f05e92c8412.js" async=""></script><script src="/_next/static/chunks/8423-1dda16bc56236523.js" async=""></script><script src="/_next/static/chunks/5538-e5f3c9f4d67a64b9.js" async=""></script><script src="/_next/static/chunks/app/share/chat/page-635635e4fb39fe29.js" async=""></script><meta http-equiv="Content-Security-Policy" content="default-src 'self' https://assets.khoj.dev; media-src * blob:; script-src 'self' https://assets.khoj.dev 'unsafe-inline' 'unsafe-eval'; connect-src 'self' blob: https://ipapi.co/json ws://localhost:42110; style-src 'self' https://assets.khoj.dev 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: blob: https://*.khoj.dev https://*.googleusercontent.com https://*.google.com/ https://*.gstatic.com; font-src 'self' https://assets.khoj.dev https://fonts.gstatic.com; child-src 'none'; object-src 'none';"/><meta http-equiv="Content-Security-Policy" content="default-src 'self' https://assets.khoj.dev; script-src 'self' https://assets.khoj.dev 'unsafe-inline' 'unsafe-eval'; connect-src 'self' blob: https://ipapi.co/json ws://localhost:42110; style-src 'self' https://assets.khoj.dev 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: blob: https://*.khoj.dev https://*.googleusercontent.com https://*.google.com/ https://*.gstatic.com; font-src 'self' https://assets.khoj.dev https://fonts.gstatic.com; child-src 'none'; object-src 'none';"/><title>Khoj AI - Chat</title><meta name="description" content="Use this page to view a chat with Khoj AI."/><link rel="manifest" href="/static/khoj.webmanifest" crossorigin="use-credentials"/><meta property="og:title" content="Khoj AI"/><meta property="og:description" content="Your Second Brain."/><meta property="og:url" content="https://app.khoj.dev/"/><meta property="og:site_name" content="Khoj AI"/><meta property="og:image" content="https://assets.khoj.dev/khoj_lantern_256x256.png"/><meta property="og:image:width" content="256"/><meta property="og:image:height" content="256"/><meta property="og:image" content="https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Khoj AI"/><meta name="twitter:description" content="Your Second Brain."/><meta name="twitter:image" content="https://assets.khoj.dev/khoj_lantern_256x256.png"/><meta name="twitter:image:width" content="256"/><meta name="twitter:image:height" content="256"/><meta name="twitter:image" content="https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png"/><meta name="twitter:image:width" content="1200"/><meta name="twitter:image:height" content="630"/><link rel="icon" href="/static/assets/icons/khoj_lantern.ico"/><link rel="apple-touch-icon" href="/static/assets/icons/khoj_lantern_256x256.png"/><meta name="next-size-adjust"/><script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="__className_af6c42"><html lang="en"><body class="__className_af6c42"><div class="bg-background opacity-50 flex items-center justify-center h-screen"><div>Loading<!-- --> <span><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 256 256" class="inline animate-spin h-5 w-5"><path d="M232,128a104,104,0,0,1-208,0c0-41,23.81-78.36,60.66-95.27a8,8,0,0,1,6.68,14.54C60.15,61.59,40,93.27,40,128a88,88,0,0,0,176,0c0-34.73-20.15-66.41-51.34-80.73a8,8,0,0,1,6.68-14.54C208.19,49.64,232,87,232,128Z"></path></svg></span></div></div><script>window.EXCALIDRAW_ASSET_PATH = 'https://assets.khoj.dev/@excalidraw/excalidraw/dist/';</script><script src="/_next/static/chunks/webpack-5dbccc5145b80b64.js" async=""></script></body></html><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/5455839c73f146e7-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/css/0e9d53dcd7f11342.css\",\"style\"]\n3:HL[\"/_next/static/css/5d8d85d3f2e95bae.css\",\"style\"]\n4:HL[\"/_next/static/css/3cf13271869a4aeb.css\",\"style\"]\n5:HL[\"/_next/static/css/63e106a52a0ec4ca.css\",\"style\"]\n6:HL[\"/_next/static/css/1f293605f2871853.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"7:I[95751,[],\"\"]\n9:I[66513,[],\"ClientPageRoot\"]\na:I[5506,[\"3954\",\"static/chunks/d3ac728e-a9e3522eef9b6b28.js\",\"3072\",\"static/chunks/3072-be830e4f8412b9d2.js\",\"4752\",\"static/chunks/4752-554a3db270186ce3.js\",\"7592\",\"static/chunks/7592-a09c39a38e60634b.js\",\"3690\",\"static/chunks/3690-51312931ba1eae30.js\",\"3463\",\"static/chunks/3463-081c031e873b7966.js\",\"1603\",\"static/chunks/1603-ba5f9f05e92c8412.js\",\"8423\",\"static/chunks/8423-1dda16bc56236523.js\",\"5538\",\"static/chunks/5538-e5f3c9f4d67a64b9.js\",\"3111\",\"static/chunks/app/share/chat/page-635635e4fb39fe29.js\"],\"default\",1]\nb:I[39275,[],\"\"]\nc:I[61343,[],\"\"]\ne:I[76130,[],\"\"]\nf:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L7\",null,{\"buildId\":\"UR4enQiSbkZKb3SDFX2tx\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"share\",\"chat\",\"\"],\"initialTree\":[\"\",{\"children\":[\"share\",{\"children\":[\"chat\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"share\",{\"children\":[\"chat\",{\"children\":[\"__PAGE__\",{},[[\"$L8\",[\"$\",\"$L9\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$a\"}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/3cf13271869a4aeb.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/63e106a52a0ec4ca.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/1f293605f2871853.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]]],null],null]},[[null,[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[[\"$\",\"meta\",null,{\"httpEquiv\":\"Content-Security-Policy\",\"content\":\"default-src 'self' https://assets.khoj.dev; script-src 'self' https://assets.khoj.dev 'unsafe-inline' 'unsafe-eval'; connect-src 'self' blob: https://ipapi.co/json ws://localhost:42110; style-src 'self' https://assets.khoj.dev 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: blob: https://*.khoj.dev https://*.googleusercontent.com https://*.google.com/ https://*.gstatic.com; font-src 'self' https://assets.khoj.dev https://fonts.gstatic.com; child-src 'none'; object-src 'none';\"}],[\"$\",\"body\",null,{\"className\":\"__className_af6c42\",\"children\":[[\"$\",\"$Lb\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"share\",\"children\",\"chat\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lc\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"window.EXCALIDRAW_ASSET_PATH = 'https://assets.khoj.dev/@excalidraw/excalidraw/dist/';\"}}]]}]]}]],null],null]},[null,[\"$\",\"$Lb\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"share\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lc\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/0e9d53dcd7f11342.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/5d8d85d3f2e95bae.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[[\"$\",\"meta\",null,{\"httpEquiv\":\"Content-Security-Policy\",\"content\":\"default-src 'self' https://assets.khoj.dev; media-src * blob:; script-src 'self' https://assets.khoj.dev 'unsafe-inline' 'unsafe-eval'; connect-src 'self' blob: https://ipapi.co/json ws://localhost:42110; style-src 'self' https://assets.khoj.dev 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: blob: https://*.khoj.dev https://*.googleusercontent.com https://*.google.com/ https://*.gstatic.com; font-src 'self' https://assets.khoj.dev https://fonts.gstatic.com; child-src 'none'; object-src 'none';\"}],[\"$\",\"body\",null,{\"className\":\"__className_af6c42\",\"children\":[\"$\",\"$Lb\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lc\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$Ld\"],\"globalErrorComponent\":\"$e\",\"missingSlots\":\"$Wf\"}]\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Khoj AI - Chat\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Use this page to view a chat with Khoj AI.\"}],[\"$\",\"link\",\"4\",{\"rel\":\"manifest\",\"href\":\"/static/khoj.webmanifest\",\"crossOrigin\":\"use-credentials\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Khoj AI\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Your Second Brain.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://app.khoj.dev/\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:site_name\",\"content\":\"Khoj AI\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_256x256.png\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image:width\",\"content\":\"256\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:image:height\",\"content\":\"256\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:title\",\"content\":\"Khoj AI\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:description\",\"content\":\"Your Second Brain.\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_256x256.png\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:image:width\",\"content\":\"256\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:image:height\",\"content\":\"256\"}],[\"$\",\"meta\",\"22\",{\"name\":\"twitter:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"link\",\"25\",{\"rel\":\"icon\",\"href\":\"/static/assets/icons/khoj_lantern.ico\"}],[\"$\",\"link\",\"26\",{\"rel\":\"apple-touch-icon\",\"href\":\"/static/assets/icons/khoj_lantern_256x256.png\"}],[\"$\",\"meta\",\"27\",{\"name\":\"next-size-adjust\"}]]\n"])</script><script>self.__next_f.push([1,"8:null\n"])</script></body></html>
|
1
|
+
<!DOCTYPE html><html lang="en"><head><meta charSet="utf-8"/><meta name="viewport" content="width=device-width, initial-scale=1"/><link rel="preload" href="/_next/static/media/5455839c73f146e7-s.p.woff2" as="font" crossorigin="" type="font/woff2"/><link rel="stylesheet" href="/_next/static/css/0e9d53dcd7f11342.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/1a4038cc4acc8ee4.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/3cf13271869a4aeb.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/9d45de78fba367c1.css" data-precedence="next"/><link rel="stylesheet" href="/_next/static/css/1f293605f2871853.css" data-precedence="next"/><link rel="preload" as="script" fetchPriority="low" href="/_next/static/chunks/webpack-c43e527c9ca9f9f9.js"/><script src="/_next/static/chunks/fd9d1056-2e6c8140e79afc3b.js" async=""></script><script src="/_next/static/chunks/7023-e8de2bded4df6539.js" async=""></script><script src="/_next/static/chunks/main-app-6d6ee3495efe03d4.js" async=""></script><script src="/_next/static/chunks/d3ac728e-a9e3522eef9b6b28.js" async=""></script><script src="/_next/static/chunks/3072-be830e4f8412b9d2.js" async=""></script><script src="/_next/static/chunks/216-b2e4344315b88832.js" async=""></script><script src="/_next/static/chunks/3124-e8410bbd01f6f188.js" async=""></script><script src="/_next/static/chunks/7592-a09c39a38e60634b.js" async=""></script><script src="/_next/static/chunks/3690-51312931ba1eae30.js" async=""></script><script src="/_next/static/chunks/796-36ee2d6829448c6d.js" async=""></script><script src="/_next/static/chunks/1603-859ddcf58f3ca639.js" async=""></script><script src="/_next/static/chunks/9417-06236cd650f1abcd.js" async=""></script><script src="/_next/static/chunks/8423-1dda16bc56236523.js" async=""></script><script src="/_next/static/chunks/5538-e5f3c9f4d67a64b9.js" async=""></script><script src="/_next/static/chunks/app/share/chat/page-47641b3691fb0856.js" async=""></script><meta http-equiv="Content-Security-Policy" content="default-src 'self' https://assets.khoj.dev; media-src * blob:; script-src 'self' https://assets.khoj.dev 'unsafe-inline' 'unsafe-eval'; connect-src 'self' blob: https://ipapi.co/json ws://localhost:42110; style-src 'self' https://assets.khoj.dev 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: blob: https://*.khoj.dev https://*.googleusercontent.com https://*.google.com/ https://*.gstatic.com; font-src 'self' https://assets.khoj.dev https://fonts.gstatic.com; child-src 'none'; object-src 'none';"/><meta http-equiv="Content-Security-Policy" content="default-src 'self' https://assets.khoj.dev; script-src 'self' https://assets.khoj.dev 'unsafe-inline' 'unsafe-eval'; connect-src 'self' blob: https://ipapi.co/json ws://localhost:42110; style-src 'self' https://assets.khoj.dev 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: blob: https://*.khoj.dev https://*.googleusercontent.com https://*.google.com/ https://*.gstatic.com; font-src 'self' https://assets.khoj.dev https://fonts.gstatic.com; child-src 'none'; object-src 'none';"/><title>Khoj AI - Chat</title><meta name="description" content="Use this page to view a chat with Khoj AI."/><link rel="manifest" href="/static/khoj.webmanifest" crossorigin="use-credentials"/><meta property="og:title" content="Khoj AI"/><meta property="og:description" content="Your Second Brain."/><meta property="og:url" content="https://app.khoj.dev/"/><meta property="og:site_name" content="Khoj AI"/><meta property="og:image" content="https://assets.khoj.dev/khoj_lantern_256x256.png"/><meta property="og:image:width" content="256"/><meta property="og:image:height" content="256"/><meta property="og:image" content="https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png"/><meta property="og:image:width" content="1200"/><meta property="og:image:height" content="630"/><meta property="og:type" content="website"/><meta name="twitter:card" content="summary_large_image"/><meta name="twitter:title" content="Khoj AI"/><meta name="twitter:description" content="Your Second Brain."/><meta name="twitter:image" content="https://assets.khoj.dev/khoj_lantern_256x256.png"/><meta name="twitter:image:width" content="256"/><meta name="twitter:image:height" content="256"/><meta name="twitter:image" content="https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png"/><meta name="twitter:image:width" content="1200"/><meta name="twitter:image:height" content="630"/><link rel="icon" href="/static/assets/icons/khoj_lantern.ico"/><link rel="apple-touch-icon" href="/static/assets/icons/khoj_lantern_256x256.png"/><meta name="next-size-adjust"/><script src="/_next/static/chunks/polyfills-78c92fac7aa8fdd8.js" noModule=""></script></head><body class="__className_af6c42"><html lang="en"><body class="__className_af6c42"><div class="bg-background opacity-50 flex items-center justify-center h-screen"><div>Loading<!-- --> <span><svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" fill="currentColor" viewBox="0 0 256 256" class="inline animate-spin h-5 w-5"><path d="M232,128a104,104,0,0,1-208,0c0-41,23.81-78.36,60.66-95.27a8,8,0,0,1,6.68,14.54C60.15,61.59,40,93.27,40,128a88,88,0,0,0,176,0c0-34.73-20.15-66.41-51.34-80.73a8,8,0,0,1,6.68-14.54C208.19,49.64,232,87,232,128Z"></path></svg></span></div></div><script>window.EXCALIDRAW_ASSET_PATH = 'https://assets.khoj.dev/@excalidraw/excalidraw/dist/';</script><script src="/_next/static/chunks/webpack-c43e527c9ca9f9f9.js" async=""></script></body></html><script>(self.__next_f=self.__next_f||[]).push([0]);self.__next_f.push([2,null])</script><script>self.__next_f.push([1,"1:HL[\"/_next/static/media/5455839c73f146e7-s.p.woff2\",\"font\",{\"crossOrigin\":\"\",\"type\":\"font/woff2\"}]\n2:HL[\"/_next/static/css/0e9d53dcd7f11342.css\",\"style\"]\n3:HL[\"/_next/static/css/1a4038cc4acc8ee4.css\",\"style\"]\n4:HL[\"/_next/static/css/3cf13271869a4aeb.css\",\"style\"]\n5:HL[\"/_next/static/css/9d45de78fba367c1.css\",\"style\"]\n6:HL[\"/_next/static/css/1f293605f2871853.css\",\"style\"]\n"])</script><script>self.__next_f.push([1,"7:I[95751,[],\"\"]\n9:I[66513,[],\"ClientPageRoot\"]\na:I[5506,[\"3954\",\"static/chunks/d3ac728e-a9e3522eef9b6b28.js\",\"3072\",\"static/chunks/3072-be830e4f8412b9d2.js\",\"216\",\"static/chunks/216-b2e4344315b88832.js\",\"3124\",\"static/chunks/3124-e8410bbd01f6f188.js\",\"7592\",\"static/chunks/7592-a09c39a38e60634b.js\",\"3690\",\"static/chunks/3690-51312931ba1eae30.js\",\"796\",\"static/chunks/796-36ee2d6829448c6d.js\",\"1603\",\"static/chunks/1603-859ddcf58f3ca639.js\",\"9417\",\"static/chunks/9417-06236cd650f1abcd.js\",\"8423\",\"static/chunks/8423-1dda16bc56236523.js\",\"5538\",\"static/chunks/5538-e5f3c9f4d67a64b9.js\",\"3111\",\"static/chunks/app/share/chat/page-47641b3691fb0856.js\"],\"default\",1]\nb:I[39275,[],\"\"]\nc:I[61343,[],\"\"]\ne:I[76130,[],\"\"]\nf:[]\n"])</script><script>self.__next_f.push([1,"0:[\"$\",\"$L7\",null,{\"buildId\":\"EVMfEeflKlppAzl2to9RY\",\"assetPrefix\":\"\",\"urlParts\":[\"\",\"share\",\"chat\",\"\"],\"initialTree\":[\"\",{\"children\":[\"share\",{\"children\":[\"chat\",{\"children\":[\"__PAGE__\",{}]}]}]},\"$undefined\",\"$undefined\",true],\"initialSeedData\":[\"\",{\"children\":[\"share\",{\"children\":[\"chat\",{\"children\":[\"__PAGE__\",{},[[\"$L8\",[\"$\",\"$L9\",null,{\"props\":{\"params\":{},\"searchParams\":{}},\"Component\":\"$a\"}],[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/3cf13271869a4aeb.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/9d45de78fba367c1.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"2\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/1f293605f2871853.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]]],null],null]},[[null,[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[[\"$\",\"meta\",null,{\"httpEquiv\":\"Content-Security-Policy\",\"content\":\"default-src 'self' https://assets.khoj.dev; script-src 'self' https://assets.khoj.dev 'unsafe-inline' 'unsafe-eval'; connect-src 'self' blob: https://ipapi.co/json ws://localhost:42110; style-src 'self' https://assets.khoj.dev 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: blob: https://*.khoj.dev https://*.googleusercontent.com https://*.google.com/ https://*.gstatic.com; font-src 'self' https://assets.khoj.dev https://fonts.gstatic.com; child-src 'none'; object-src 'none';\"}],[\"$\",\"body\",null,{\"className\":\"__className_af6c42\",\"children\":[[\"$\",\"$Lb\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"share\",\"children\",\"chat\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lc\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}],[\"$\",\"script\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"window.EXCALIDRAW_ASSET_PATH = 'https://assets.khoj.dev/@excalidraw/excalidraw/dist/';\"}}]]}]]}]],null],null]},[null,[\"$\",\"$Lb\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\",\"share\",\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lc\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":\"$undefined\",\"notFoundStyles\":\"$undefined\"}]],null]},[[[[\"$\",\"link\",\"0\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/0e9d53dcd7f11342.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}],[\"$\",\"link\",\"1\",{\"rel\":\"stylesheet\",\"href\":\"/_next/static/css/1a4038cc4acc8ee4.css\",\"precedence\":\"next\",\"crossOrigin\":\"$undefined\"}]],[\"$\",\"html\",null,{\"lang\":\"en\",\"children\":[[\"$\",\"meta\",null,{\"httpEquiv\":\"Content-Security-Policy\",\"content\":\"default-src 'self' https://assets.khoj.dev; media-src * blob:; script-src 'self' https://assets.khoj.dev 'unsafe-inline' 'unsafe-eval'; connect-src 'self' blob: https://ipapi.co/json ws://localhost:42110; style-src 'self' https://assets.khoj.dev 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: blob: https://*.khoj.dev https://*.googleusercontent.com https://*.google.com/ https://*.gstatic.com; font-src 'self' https://assets.khoj.dev https://fonts.gstatic.com; child-src 'none'; object-src 'none';\"}],[\"$\",\"body\",null,{\"className\":\"__className_af6c42\",\"children\":[\"$\",\"$Lb\",null,{\"parallelRouterKey\":\"children\",\"segmentPath\":[\"children\"],\"error\":\"$undefined\",\"errorStyles\":\"$undefined\",\"errorScripts\":\"$undefined\",\"template\":[\"$\",\"$Lc\",null,{}],\"templateStyles\":\"$undefined\",\"templateScripts\":\"$undefined\",\"notFound\":[[\"$\",\"title\",null,{\"children\":\"404: This page could not be found.\"}],[\"$\",\"div\",null,{\"style\":{\"fontFamily\":\"system-ui,\\\"Segoe UI\\\",Roboto,Helvetica,Arial,sans-serif,\\\"Apple Color Emoji\\\",\\\"Segoe UI Emoji\\\"\",\"height\":\"100vh\",\"textAlign\":\"center\",\"display\":\"flex\",\"flexDirection\":\"column\",\"alignItems\":\"center\",\"justifyContent\":\"center\"},\"children\":[\"$\",\"div\",null,{\"children\":[[\"$\",\"style\",null,{\"dangerouslySetInnerHTML\":{\"__html\":\"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}\"}}],[\"$\",\"h1\",null,{\"className\":\"next-error-h1\",\"style\":{\"display\":\"inline-block\",\"margin\":\"0 20px 0 0\",\"padding\":\"0 23px 0 0\",\"fontSize\":24,\"fontWeight\":500,\"verticalAlign\":\"top\",\"lineHeight\":\"49px\"},\"children\":\"404\"}],[\"$\",\"div\",null,{\"style\":{\"display\":\"inline-block\"},\"children\":[\"$\",\"h2\",null,{\"style\":{\"fontSize\":14,\"fontWeight\":400,\"lineHeight\":\"49px\",\"margin\":0},\"children\":\"This page could not be found.\"}]}]]}]}]],\"notFoundStyles\":[]}]}]]}]],null],null],\"couldBeIntercepted\":false,\"initialHead\":[null,\"$Ld\"],\"globalErrorComponent\":\"$e\",\"missingSlots\":\"$Wf\"}]\n"])</script><script>self.__next_f.push([1,"d:[[\"$\",\"meta\",\"0\",{\"name\":\"viewport\",\"content\":\"width=device-width, initial-scale=1\"}],[\"$\",\"meta\",\"1\",{\"charSet\":\"utf-8\"}],[\"$\",\"title\",\"2\",{\"children\":\"Khoj AI - Chat\"}],[\"$\",\"meta\",\"3\",{\"name\":\"description\",\"content\":\"Use this page to view a chat with Khoj AI.\"}],[\"$\",\"link\",\"4\",{\"rel\":\"manifest\",\"href\":\"/static/khoj.webmanifest\",\"crossOrigin\":\"use-credentials\"}],[\"$\",\"meta\",\"5\",{\"property\":\"og:title\",\"content\":\"Khoj AI\"}],[\"$\",\"meta\",\"6\",{\"property\":\"og:description\",\"content\":\"Your Second Brain.\"}],[\"$\",\"meta\",\"7\",{\"property\":\"og:url\",\"content\":\"https://app.khoj.dev/\"}],[\"$\",\"meta\",\"8\",{\"property\":\"og:site_name\",\"content\":\"Khoj AI\"}],[\"$\",\"meta\",\"9\",{\"property\":\"og:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_256x256.png\"}],[\"$\",\"meta\",\"10\",{\"property\":\"og:image:width\",\"content\":\"256\"}],[\"$\",\"meta\",\"11\",{\"property\":\"og:image:height\",\"content\":\"256\"}],[\"$\",\"meta\",\"12\",{\"property\":\"og:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png\"}],[\"$\",\"meta\",\"13\",{\"property\":\"og:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"14\",{\"property\":\"og:image:height\",\"content\":\"630\"}],[\"$\",\"meta\",\"15\",{\"property\":\"og:type\",\"content\":\"website\"}],[\"$\",\"meta\",\"16\",{\"name\":\"twitter:card\",\"content\":\"summary_large_image\"}],[\"$\",\"meta\",\"17\",{\"name\":\"twitter:title\",\"content\":\"Khoj AI\"}],[\"$\",\"meta\",\"18\",{\"name\":\"twitter:description\",\"content\":\"Your Second Brain.\"}],[\"$\",\"meta\",\"19\",{\"name\":\"twitter:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_256x256.png\"}],[\"$\",\"meta\",\"20\",{\"name\":\"twitter:image:width\",\"content\":\"256\"}],[\"$\",\"meta\",\"21\",{\"name\":\"twitter:image:height\",\"content\":\"256\"}],[\"$\",\"meta\",\"22\",{\"name\":\"twitter:image\",\"content\":\"https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png\"}],[\"$\",\"meta\",\"23\",{\"name\":\"twitter:image:width\",\"content\":\"1200\"}],[\"$\",\"meta\",\"24\",{\"name\":\"twitter:image:height\",\"content\":\"630\"}],[\"$\",\"link\",\"25\",{\"rel\":\"icon\",\"href\":\"/static/assets/icons/khoj_lantern.ico\"}],[\"$\",\"link\",\"26\",{\"rel\":\"apple-touch-icon\",\"href\":\"/static/assets/icons/khoj_lantern_256x256.png\"}],[\"$\",\"meta\",\"27\",{\"name\":\"next-size-adjust\"}]]\n"])</script><script>self.__next_f.push([1,"8:null\n"])</script></body></html>
|
@@ -1,7 +1,7 @@
|
|
1
1
|
2:I[66513,[],"ClientPageRoot"]
|
2
|
-
3:I[5506,["3954","static/chunks/d3ac728e-a9e3522eef9b6b28.js","3072","static/chunks/3072-be830e4f8412b9d2.js","
|
2
|
+
3:I[5506,["3954","static/chunks/d3ac728e-a9e3522eef9b6b28.js","3072","static/chunks/3072-be830e4f8412b9d2.js","216","static/chunks/216-b2e4344315b88832.js","3124","static/chunks/3124-e8410bbd01f6f188.js","7592","static/chunks/7592-a09c39a38e60634b.js","3690","static/chunks/3690-51312931ba1eae30.js","796","static/chunks/796-36ee2d6829448c6d.js","1603","static/chunks/1603-859ddcf58f3ca639.js","9417","static/chunks/9417-06236cd650f1abcd.js","8423","static/chunks/8423-1dda16bc56236523.js","5538","static/chunks/5538-e5f3c9f4d67a64b9.js","3111","static/chunks/app/share/chat/page-47641b3691fb0856.js"],"default",1]
|
3
3
|
4:I[39275,[],""]
|
4
4
|
5:I[61343,[],""]
|
5
|
-
0:["
|
5
|
+
0:["EVMfEeflKlppAzl2to9RY",[[["",{"children":["share",{"children":["chat",{"children":["__PAGE__",{}]}]}]},"$undefined","$undefined",true],["",{"children":["share",{"children":["chat",{"children":["__PAGE__",{},[["$L1",["$","$L2",null,{"props":{"params":{},"searchParams":{}},"Component":"$3"}],[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/3cf13271869a4aeb.css","precedence":"next","crossOrigin":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/9d45de78fba367c1.css","precedence":"next","crossOrigin":"$undefined"}],["$","link","2",{"rel":"stylesheet","href":"/_next/static/css/1f293605f2871853.css","precedence":"next","crossOrigin":"$undefined"}]]],null],null]},[[null,["$","html",null,{"lang":"en","children":[["$","meta",null,{"httpEquiv":"Content-Security-Policy","content":"default-src 'self' https://assets.khoj.dev; script-src 'self' https://assets.khoj.dev 'unsafe-inline' 'unsafe-eval'; connect-src 'self' blob: https://ipapi.co/json ws://localhost:42110; style-src 'self' https://assets.khoj.dev 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: blob: https://*.khoj.dev https://*.googleusercontent.com https://*.google.com/ https://*.gstatic.com; font-src 'self' https://assets.khoj.dev https://fonts.gstatic.com; child-src 'none'; object-src 'none';"}],["$","body",null,{"className":"__className_af6c42","children":[["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","share","children","chat","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}],["$","script",null,{"dangerouslySetInnerHTML":{"__html":"window.EXCALIDRAW_ASSET_PATH = 'https://assets.khoj.dev/@excalidraw/excalidraw/dist/';"}}]]}]]}]],null],null]},[null,["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children","share","children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined"}]],null]},[[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/0e9d53dcd7f11342.css","precedence":"next","crossOrigin":"$undefined"}],["$","link","1",{"rel":"stylesheet","href":"/_next/static/css/1a4038cc4acc8ee4.css","precedence":"next","crossOrigin":"$undefined"}]],["$","html",null,{"lang":"en","children":[["$","meta",null,{"httpEquiv":"Content-Security-Policy","content":"default-src 'self' https://assets.khoj.dev; media-src * blob:; script-src 'self' https://assets.khoj.dev 'unsafe-inline' 'unsafe-eval'; connect-src 'self' blob: https://ipapi.co/json ws://localhost:42110; style-src 'self' https://assets.khoj.dev 'unsafe-inline' https://fonts.googleapis.com; img-src 'self' data: blob: https://*.khoj.dev https://*.googleusercontent.com https://*.google.com/ https://*.gstatic.com; font-src 'self' https://assets.khoj.dev https://fonts.gstatic.com; child-src 'none'; object-src 'none';"}],["$","body",null,{"className":"__className_af6c42","children":["$","$L4",null,{"parallelRouterKey":"children","segmentPath":["children"],"error":"$undefined","errorStyles":"$undefined","errorScripts":"$undefined","template":["$","$L5",null,{}],"templateStyles":"$undefined","templateScripts":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[]}]}]]}]],null],null],["$L6",null]]]]
|
6
6
|
6:[["$","meta","0",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","1",{"charSet":"utf-8"}],["$","title","2",{"children":"Khoj AI - Chat"}],["$","meta","3",{"name":"description","content":"Use this page to view a chat with Khoj AI."}],["$","link","4",{"rel":"manifest","href":"/static/khoj.webmanifest","crossOrigin":"use-credentials"}],["$","meta","5",{"property":"og:title","content":"Khoj AI"}],["$","meta","6",{"property":"og:description","content":"Your Second Brain."}],["$","meta","7",{"property":"og:url","content":"https://app.khoj.dev/"}],["$","meta","8",{"property":"og:site_name","content":"Khoj AI"}],["$","meta","9",{"property":"og:image","content":"https://assets.khoj.dev/khoj_lantern_256x256.png"}],["$","meta","10",{"property":"og:image:width","content":"256"}],["$","meta","11",{"property":"og:image:height","content":"256"}],["$","meta","12",{"property":"og:image","content":"https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png"}],["$","meta","13",{"property":"og:image:width","content":"1200"}],["$","meta","14",{"property":"og:image:height","content":"630"}],["$","meta","15",{"property":"og:type","content":"website"}],["$","meta","16",{"name":"twitter:card","content":"summary_large_image"}],["$","meta","17",{"name":"twitter:title","content":"Khoj AI"}],["$","meta","18",{"name":"twitter:description","content":"Your Second Brain."}],["$","meta","19",{"name":"twitter:image","content":"https://assets.khoj.dev/khoj_lantern_256x256.png"}],["$","meta","20",{"name":"twitter:image:width","content":"256"}],["$","meta","21",{"name":"twitter:image:height","content":"256"}],["$","meta","22",{"name":"twitter:image","content":"https://assets.khoj.dev/khoj_lantern_logomarktype_1200x630.png"}],["$","meta","23",{"name":"twitter:image:width","content":"1200"}],["$","meta","24",{"name":"twitter:image:height","content":"630"}],["$","link","25",{"rel":"icon","href":"/static/assets/icons/khoj_lantern.ico"}],["$","link","26",{"rel":"apple-touch-icon","href":"/static/assets/icons/khoj_lantern_256x256.png"}],["$","meta","27",{"name":"next-size-adjust"}]]
|
7
7
|
1:null
|
khoj/main.py
CHANGED
@@ -208,9 +208,6 @@ def set_state(args):
|
|
208
208
|
state.verbose = args.verbose
|
209
209
|
state.host = args.host
|
210
210
|
state.port = args.port
|
211
|
-
state.ssl_config = (
|
212
|
-
{"ssl_certfile": args.sslcert, "ssl_keyfile": args.sslkey} if args.sslcert and args.sslkey else None
|
213
|
-
)
|
214
211
|
state.anonymous_mode = args.anonymous_mode
|
215
212
|
state.khoj_version = version("khoj")
|
216
213
|
state.chat_on_gpu = args.chat_on_gpu
|
@@ -229,7 +226,6 @@ def start_server(app, host=None, port=None, socket=None):
|
|
229
226
|
use_colors=True,
|
230
227
|
log_config=None,
|
231
228
|
timeout_keep_alive=60,
|
232
|
-
**state.ssl_config if state.ssl_config else {},
|
233
229
|
)
|
234
230
|
logger.info("🌒 Stopping Khoj")
|
235
231
|
|
@@ -19,11 +19,7 @@ from khoj.processor.conversation.utils import (
|
|
19
19
|
generate_chatml_messages_with_context,
|
20
20
|
messages_to_print,
|
21
21
|
)
|
22
|
-
from khoj.utils.helpers import
|
23
|
-
ConversationCommand,
|
24
|
-
is_none_or_empty,
|
25
|
-
truncate_code_context,
|
26
|
-
)
|
22
|
+
from khoj.utils.helpers import ConversationCommand, is_none_or_empty
|
27
23
|
from khoj.utils.rawconfig import LocationData
|
28
24
|
from khoj.utils.yaml import yaml_dump
|
29
25
|
|
@@ -201,9 +197,7 @@ def converse_anthropic(
|
|
201
197
|
if ConversationCommand.Online in conversation_commands or ConversationCommand.Webpage in conversation_commands:
|
202
198
|
context_message += f"{prompts.online_search_conversation.format(online_results=yaml_dump(online_results))}\n\n"
|
203
199
|
if ConversationCommand.Code in conversation_commands and not is_none_or_empty(code_results):
|
204
|
-
context_message += (
|
205
|
-
f"{prompts.code_executed_context.format(code_results=truncate_code_context(code_results))}\n\n"
|
206
|
-
)
|
200
|
+
context_message += f"{prompts.code_executed_context.format(code_results=str(code_results))}\n\n"
|
207
201
|
context_message = context_message.strip()
|
208
202
|
|
209
203
|
# Setup Prompt with Primer or Conversation History
|
@@ -18,12 +18,7 @@ from khoj.processor.conversation.utils import (
|
|
18
18
|
get_image_from_url,
|
19
19
|
)
|
20
20
|
from khoj.utils import state
|
21
|
-
from khoj.utils.helpers import
|
22
|
-
get_chat_usage_metrics,
|
23
|
-
in_debug_mode,
|
24
|
-
is_none_or_empty,
|
25
|
-
is_promptrace_enabled,
|
26
|
-
)
|
21
|
+
from khoj.utils.helpers import in_debug_mode, is_none_or_empty
|
27
22
|
|
28
23
|
logger = logging.getLogger(__name__)
|
29
24
|
|
@@ -64,7 +59,6 @@ def anthropic_completion_with_backoff(
|
|
64
59
|
aggregated_response = "{" if response_type == "json_object" else ""
|
65
60
|
max_tokens = max_tokens or DEFAULT_MAX_TOKENS_ANTHROPIC
|
66
61
|
|
67
|
-
final_message = None
|
68
62
|
model_kwargs = model_kwargs or dict()
|
69
63
|
if system_prompt:
|
70
64
|
model_kwargs["system"] = system_prompt
|
@@ -79,17 +73,11 @@ def anthropic_completion_with_backoff(
|
|
79
73
|
) as stream:
|
80
74
|
for text in stream.text_stream:
|
81
75
|
aggregated_response += text
|
82
|
-
final_message = stream.get_final_message()
|
83
|
-
|
84
|
-
# Calculate cost of chat
|
85
|
-
input_tokens = final_message.usage.input_tokens
|
86
|
-
output_tokens = final_message.usage.output_tokens
|
87
|
-
tracer["usage"] = get_chat_usage_metrics(model_name, input_tokens, output_tokens, tracer.get("usage"))
|
88
76
|
|
89
77
|
# Save conversation trace
|
90
78
|
tracer["chat_model"] = model_name
|
91
79
|
tracer["temperature"] = temperature
|
92
|
-
if
|
80
|
+
if in_debug_mode() or state.verbose > 1:
|
93
81
|
commit_conversation_trace(messages, aggregated_response, tracer)
|
94
82
|
|
95
83
|
return aggregated_response
|
@@ -138,7 +126,6 @@ def anthropic_llm_thread(
|
|
138
126
|
]
|
139
127
|
|
140
128
|
aggregated_response = ""
|
141
|
-
final_message = None
|
142
129
|
with client.messages.stream(
|
143
130
|
messages=formatted_messages,
|
144
131
|
model=model_name, # type: ignore
|
@@ -151,17 +138,11 @@ def anthropic_llm_thread(
|
|
151
138
|
for text in stream.text_stream:
|
152
139
|
aggregated_response += text
|
153
140
|
g.send(text)
|
154
|
-
final_message = stream.get_final_message()
|
155
|
-
|
156
|
-
# Calculate cost of chat
|
157
|
-
input_tokens = final_message.usage.input_tokens
|
158
|
-
output_tokens = final_message.usage.output_tokens
|
159
|
-
tracer["usage"] = get_chat_usage_metrics(model_name, input_tokens, output_tokens, tracer.get("usage"))
|
160
141
|
|
161
142
|
# Save conversation trace
|
162
143
|
tracer["chat_model"] = model_name
|
163
144
|
tracer["temperature"] = temperature
|
164
|
-
if
|
145
|
+
if in_debug_mode() or state.verbose > 1:
|
165
146
|
commit_conversation_trace(messages, aggregated_response, tracer)
|
166
147
|
except Exception as e:
|
167
148
|
logger.error(f"Error in anthropic_llm_thread: {e}", exc_info=True)
|
@@ -19,11 +19,7 @@ from khoj.processor.conversation.utils import (
|
|
19
19
|
generate_chatml_messages_with_context,
|
20
20
|
messages_to_print,
|
21
21
|
)
|
22
|
-
from khoj.utils.helpers import
|
23
|
-
ConversationCommand,
|
24
|
-
is_none_or_empty,
|
25
|
-
truncate_code_context,
|
26
|
-
)
|
22
|
+
from khoj.utils.helpers import ConversationCommand, is_none_or_empty
|
27
23
|
from khoj.utils.rawconfig import LocationData
|
28
24
|
from khoj.utils.yaml import yaml_dump
|
29
25
|
|
@@ -212,9 +208,7 @@ def converse_gemini(
|
|
212
208
|
if ConversationCommand.Online in conversation_commands or ConversationCommand.Webpage in conversation_commands:
|
213
209
|
context_message += f"{prompts.online_search_conversation.format(online_results=yaml_dump(online_results))}\n\n"
|
214
210
|
if ConversationCommand.Code in conversation_commands and not is_none_or_empty(code_results):
|
215
|
-
context_message += (
|
216
|
-
f"{prompts.code_executed_context.format(code_results=truncate_code_context(code_results))}\n\n"
|
217
|
-
)
|
211
|
+
context_message += f"{prompts.code_executed_context.format(code_results=str(code_results))}\n\n"
|
218
212
|
context_message = context_message.strip()
|
219
213
|
|
220
214
|
# Setup Prompt with Primer or Conversation History
|
@@ -25,12 +25,7 @@ from khoj.processor.conversation.utils import (
|
|
25
25
|
get_image_from_url,
|
26
26
|
)
|
27
27
|
from khoj.utils import state
|
28
|
-
from khoj.utils.helpers import
|
29
|
-
get_chat_usage_metrics,
|
30
|
-
in_debug_mode,
|
31
|
-
is_none_or_empty,
|
32
|
-
is_promptrace_enabled,
|
33
|
-
)
|
28
|
+
from khoj.utils.helpers import in_debug_mode, is_none_or_empty
|
34
29
|
|
35
30
|
logger = logging.getLogger(__name__)
|
36
31
|
|
@@ -73,7 +68,6 @@ def gemini_completion_with_backoff(
|
|
73
68
|
response = chat_session.send_message(formatted_messages[-1]["parts"])
|
74
69
|
response_text = response.text
|
75
70
|
except StopCandidateException as e:
|
76
|
-
response = None
|
77
71
|
response_text, _ = handle_gemini_response(e.args)
|
78
72
|
# Respond with reason for stopping
|
79
73
|
logger.warning(
|
@@ -81,15 +75,10 @@ def gemini_completion_with_backoff(
|
|
81
75
|
+ f"Last Message by {messages[-1].role}: {messages[-1].content}"
|
82
76
|
)
|
83
77
|
|
84
|
-
# Aggregate cost of chat
|
85
|
-
input_tokens = response.usage_metadata.prompt_token_count if response else 0
|
86
|
-
output_tokens = response.usage_metadata.candidates_token_count if response else 0
|
87
|
-
tracer["usage"] = get_chat_usage_metrics(model_name, input_tokens, output_tokens, tracer.get("usage"))
|
88
|
-
|
89
78
|
# Save conversation trace
|
90
79
|
tracer["chat_model"] = model_name
|
91
80
|
tracer["temperature"] = temperature
|
92
|
-
if
|
81
|
+
if in_debug_mode() or state.verbose > 1:
|
93
82
|
commit_conversation_trace(messages, response_text, tracer)
|
94
83
|
|
95
84
|
return response_text
|
@@ -157,15 +146,10 @@ def gemini_llm_thread(
|
|
157
146
|
if stopped:
|
158
147
|
raise StopCandidateException(message)
|
159
148
|
|
160
|
-
# Calculate cost of chat
|
161
|
-
input_tokens = chunk.usage_metadata.prompt_token_count
|
162
|
-
output_tokens = chunk.usage_metadata.candidates_token_count
|
163
|
-
tracer["usage"] = get_chat_usage_metrics(model_name, input_tokens, output_tokens, tracer.get("usage"))
|
164
|
-
|
165
149
|
# Save conversation trace
|
166
150
|
tracer["chat_model"] = model_name
|
167
151
|
tracer["temperature"] = temperature
|
168
|
-
if
|
152
|
+
if in_debug_mode() or state.verbose > 1:
|
169
153
|
commit_conversation_trace(messages, aggregated_response, tracer)
|
170
154
|
except StopCandidateException as e:
|
171
155
|
logger.warning(
|
@@ -19,13 +19,7 @@ from khoj.processor.conversation.utils import (
|
|
19
19
|
)
|
20
20
|
from khoj.utils import state
|
21
21
|
from khoj.utils.constants import empty_escape_sequences
|
22
|
-
from khoj.utils.helpers import
|
23
|
-
ConversationCommand,
|
24
|
-
in_debug_mode,
|
25
|
-
is_none_or_empty,
|
26
|
-
is_promptrace_enabled,
|
27
|
-
truncate_code_context,
|
28
|
-
)
|
22
|
+
from khoj.utils.helpers import ConversationCommand, in_debug_mode, is_none_or_empty
|
29
23
|
from khoj.utils.rawconfig import LocationData
|
30
24
|
from khoj.utils.yaml import yaml_dump
|
31
25
|
|
@@ -212,9 +206,7 @@ def converse_offline(
|
|
212
206
|
|
213
207
|
context_message += f"{prompts.online_search_conversation_offline.format(online_results=yaml_dump(simplified_online_results))}\n\n"
|
214
208
|
if ConversationCommand.Code in conversation_commands and not is_none_or_empty(code_results):
|
215
|
-
context_message += (
|
216
|
-
f"{prompts.code_executed_context.format(code_results=truncate_code_context(code_results))}\n\n"
|
217
|
-
)
|
209
|
+
context_message += f"{prompts.code_executed_context.format(code_results=str(code_results))}\n\n"
|
218
210
|
context_message = context_message.strip()
|
219
211
|
|
220
212
|
# Setup Prompt with Primer or Conversation History
|
@@ -254,7 +246,7 @@ def llm_thread(g, messages: List[ChatMessage], model: Any, max_prompt_size: int
|
|
254
246
|
g.send(response_delta)
|
255
247
|
|
256
248
|
# Save conversation trace
|
257
|
-
if
|
249
|
+
if in_debug_mode() or state.verbose > 1:
|
258
250
|
commit_conversation_trace(messages, aggregated_response, tracer)
|
259
251
|
|
260
252
|
finally:
|
@@ -295,7 +287,7 @@ def send_message_to_model_offline(
|
|
295
287
|
# Streamed responses need to be saved by the calling function
|
296
288
|
tracer["chat_model"] = model
|
297
289
|
tracer["temperature"] = temperature
|
298
|
-
if
|
290
|
+
if in_debug_mode() or state.verbose > 1:
|
299
291
|
commit_conversation_trace(messages, response_text, tracer)
|
300
292
|
|
301
293
|
return response_text
|
@@ -17,11 +17,7 @@ from khoj.processor.conversation.utils import (
|
|
17
17
|
generate_chatml_messages_with_context,
|
18
18
|
messages_to_print,
|
19
19
|
)
|
20
|
-
from khoj.utils.helpers import
|
21
|
-
ConversationCommand,
|
22
|
-
is_none_or_empty,
|
23
|
-
truncate_code_context,
|
24
|
-
)
|
20
|
+
from khoj.utils.helpers import ConversationCommand, is_none_or_empty
|
25
21
|
from khoj.utils.rawconfig import LocationData
|
26
22
|
from khoj.utils.yaml import yaml_dump
|
27
23
|
|
@@ -200,10 +196,7 @@ def converse(
|
|
200
196
|
if not is_none_or_empty(online_results):
|
201
197
|
context_message += f"{prompts.online_search_conversation.format(online_results=yaml_dump(online_results))}\n\n"
|
202
198
|
if not is_none_or_empty(code_results):
|
203
|
-
context_message += (
|
204
|
-
f"{prompts.code_executed_context.format(code_results=truncate_code_context(code_results))}\n\n"
|
205
|
-
)
|
206
|
-
|
199
|
+
context_message += f"{prompts.code_executed_context.format(code_results=str(code_results))}\n\n"
|
207
200
|
context_message = context_message.strip()
|
208
201
|
|
209
202
|
# Setup Prompt with Primer or Conversation History
|
@@ -4,8 +4,6 @@ from threading import Thread
|
|
4
4
|
from typing import Dict
|
5
5
|
|
6
6
|
import openai
|
7
|
-
from openai.types.chat.chat_completion import ChatCompletion
|
8
|
-
from openai.types.chat.chat_completion_chunk import ChatCompletionChunk
|
9
7
|
from tenacity import (
|
10
8
|
before_sleep_log,
|
11
9
|
retry,
|
@@ -20,11 +18,7 @@ from khoj.processor.conversation.utils import (
|
|
20
18
|
commit_conversation_trace,
|
21
19
|
)
|
22
20
|
from khoj.utils import state
|
23
|
-
from khoj.utils.helpers import
|
24
|
-
get_chat_usage_metrics,
|
25
|
-
in_debug_mode,
|
26
|
-
is_promptrace_enabled,
|
27
|
-
)
|
21
|
+
from khoj.utils.helpers import in_debug_mode
|
28
22
|
|
29
23
|
logger = logging.getLogger(__name__)
|
30
24
|
|
@@ -62,6 +56,7 @@ def completion_with_backoff(
|
|
62
56
|
# Update request parameters for compatability with o1 model series
|
63
57
|
# Refer: https://platform.openai.com/docs/guides/reasoning/beta-limitations
|
64
58
|
if model.startswith("o1"):
|
59
|
+
stream = False
|
65
60
|
temperature = 1
|
66
61
|
model_kwargs.pop("stop", None)
|
67
62
|
model_kwargs.pop("response_format", None)
|
@@ -69,39 +64,32 @@ def completion_with_backoff(
|
|
69
64
|
if os.getenv("KHOJ_LLM_SEED"):
|
70
65
|
model_kwargs["seed"] = int(os.getenv("KHOJ_LLM_SEED"))
|
71
66
|
|
72
|
-
chat
|
67
|
+
chat = client.chat.completions.create(
|
68
|
+
stream=stream,
|
73
69
|
messages=formatted_messages, # type: ignore
|
74
70
|
model=model, # type: ignore
|
75
|
-
stream=stream,
|
76
|
-
stream_options={"include_usage": True} if stream else {},
|
77
71
|
temperature=temperature,
|
78
72
|
timeout=20,
|
79
73
|
**(model_kwargs or dict()),
|
80
74
|
)
|
81
75
|
|
82
|
-
aggregated_response = ""
|
83
76
|
if not stream:
|
84
|
-
|
85
|
-
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
# Calculate cost of chat
|
97
|
-
input_tokens = chunk.usage.prompt_tokens if hasattr(chunk, "usage") and chunk.usage else 0
|
98
|
-
output_tokens = chunk.usage.completion_tokens if hasattr(chunk, "usage") and chunk.usage else 0
|
99
|
-
tracer["usage"] = get_chat_usage_metrics(model, input_tokens, output_tokens, tracer.get("usage"))
|
77
|
+
return chat.choices[0].message.content
|
78
|
+
|
79
|
+
aggregated_response = ""
|
80
|
+
for chunk in chat:
|
81
|
+
if len(chunk.choices) == 0:
|
82
|
+
continue
|
83
|
+
delta_chunk = chunk.choices[0].delta # type: ignore
|
84
|
+
if isinstance(delta_chunk, str):
|
85
|
+
aggregated_response += delta_chunk
|
86
|
+
elif delta_chunk.content:
|
87
|
+
aggregated_response += delta_chunk.content
|
100
88
|
|
101
89
|
# Save conversation trace
|
102
90
|
tracer["chat_model"] = model
|
103
91
|
tracer["temperature"] = temperature
|
104
|
-
if
|
92
|
+
if in_debug_mode() or state.verbose > 1:
|
105
93
|
commit_conversation_trace(messages, aggregated_response, tracer)
|
106
94
|
|
107
95
|
return aggregated_response
|
@@ -168,6 +156,7 @@ def llm_thread(
|
|
168
156
|
# Update request parameters for compatability with o1 model series
|
169
157
|
# Refer: https://platform.openai.com/docs/guides/reasoning/beta-limitations
|
170
158
|
if model_name.startswith("o1"):
|
159
|
+
stream = False
|
171
160
|
temperature = 1
|
172
161
|
model_kwargs.pop("stop", None)
|
173
162
|
model_kwargs.pop("response_format", None)
|
@@ -175,11 +164,10 @@ def llm_thread(
|
|
175
164
|
if os.getenv("KHOJ_LLM_SEED"):
|
176
165
|
model_kwargs["seed"] = int(os.getenv("KHOJ_LLM_SEED"))
|
177
166
|
|
178
|
-
chat
|
167
|
+
chat = client.chat.completions.create(
|
168
|
+
stream=stream,
|
179
169
|
messages=formatted_messages,
|
180
170
|
model=model_name, # type: ignore
|
181
|
-
stream=stream,
|
182
|
-
stream_options={"include_usage": True} if stream else {},
|
183
171
|
temperature=temperature,
|
184
172
|
timeout=20,
|
185
173
|
**(model_kwargs or dict()),
|
@@ -187,8 +175,7 @@ def llm_thread(
|
|
187
175
|
|
188
176
|
aggregated_response = ""
|
189
177
|
if not stream:
|
190
|
-
|
191
|
-
aggregated_response = chunk.choices[0].message.content
|
178
|
+
aggregated_response = chat.choices[0].message.content
|
192
179
|
g.send(aggregated_response)
|
193
180
|
else:
|
194
181
|
for chunk in chat:
|
@@ -204,15 +191,10 @@ def llm_thread(
|
|
204
191
|
aggregated_response += text_chunk
|
205
192
|
g.send(text_chunk)
|
206
193
|
|
207
|
-
# Calculate cost of chat
|
208
|
-
input_tokens = chunk.usage.prompt_tokens if hasattr(chunk, "usage") and chunk.usage else 0
|
209
|
-
output_tokens = chunk.usage.completion_tokens if hasattr(chunk, "usage") and chunk.usage else 0
|
210
|
-
tracer["usage"] = get_chat_usage_metrics(model_name, input_tokens, output_tokens, tracer.get("usage"))
|
211
|
-
|
212
194
|
# Save conversation trace
|
213
195
|
tracer["chat_model"] = model_name
|
214
196
|
tracer["temperature"] = temperature
|
215
|
-
if
|
197
|
+
if in_debug_mode() or state.verbose > 1:
|
216
198
|
commit_conversation_trace(messages, aggregated_response, tracer)
|
217
199
|
except Exception as e:
|
218
200
|
logger.error(f"Error in llm_thread: {e}", exc_info=True)
|