mirror of
https://github.com/khoj-ai/khoj.git
synced 2024-11-27 17:35:07 +01:00
Move Web client config page to /configure from /config url path
Update docs, clients and error messages to point to /configure instead of /config
This commit is contained in:
parent
de15a7a3fc
commit
a5c16ad600
25 changed files with 39 additions and 40 deletions
|
@ -34,4 +34,4 @@ Using LiteLLM with Khoj makes it possible to turn any LLM behind an API into you
|
||||||
5. Create a new [Server Chat Setting](http://localhost:42110/server/admin/database/serverchatsettings/add/) on your Khoj admin panel
|
5. Create a new [Server Chat Setting](http://localhost:42110/server/admin/database/serverchatsettings/add/) on your Khoj admin panel
|
||||||
- Default model: `<name of chat model option you created in step 4>`
|
- Default model: `<name of chat model option you created in step 4>`
|
||||||
- Summarizer model: `<name of chat model option you created in step 4>`
|
- Summarizer model: `<name of chat model option you created in step 4>`
|
||||||
6. Go to [your config](http://localhost:42110/config) and select the model you just created in the chat model dropdown.
|
6. Go to [your config](http://localhost:42110/configure) and select the model you just created in the chat model dropdown.
|
||||||
|
|
|
@ -27,4 +27,4 @@ LM Studio can expose an [OpenAI API compatible server](https://lmstudio.ai/docs/
|
||||||
5. Create a new [Server Chat Setting](http://localhost:42110/server/admin/database/serverchatsettings/add/) on your Khoj admin panel
|
5. Create a new [Server Chat Setting](http://localhost:42110/server/admin/database/serverchatsettings/add/) on your Khoj admin panel
|
||||||
- Default model: `<name of chat model option you created in step 4>`
|
- Default model: `<name of chat model option you created in step 4>`
|
||||||
- Summarizer model: `<name of chat model option you created in step 4>`
|
- Summarizer model: `<name of chat model option you created in step 4>`
|
||||||
6. Go to [your config](http://localhost:42110/config) and select the model you just created in the chat model dropdown.
|
6. Go to [your config](http://localhost:42110/configure) and select the model you just created in the chat model dropdown.
|
||||||
|
|
|
@ -31,6 +31,6 @@ Ollama exposes a local [OpenAI API compatible server](https://github.com/ollama/
|
||||||
5. Create a new [Server Chat Setting](http://localhost:42110/server/admin/database/serverchatsettings/add/) on your Khoj admin panel
|
5. Create a new [Server Chat Setting](http://localhost:42110/server/admin/database/serverchatsettings/add/) on your Khoj admin panel
|
||||||
- Default model: `<name of chat model option you created in step 4>`
|
- Default model: `<name of chat model option you created in step 4>`
|
||||||
- Summarizer model: `<name of chat model option you created in step 4>`
|
- Summarizer model: `<name of chat model option you created in step 4>`
|
||||||
6. Go to [your config](http://localhost:42110/config) and select the model you just created in the chat model dropdown.
|
6. Go to [your config](http://localhost:42110/configure) and select the model you just created in the chat model dropdown.
|
||||||
|
|
||||||
That's it! You should now be able to chat with your Ollama model from Khoj. If you want to add additional models running on Ollama, repeat step 6 for each model.
|
That's it! You should now be able to chat with your Ollama model from Khoj. If you want to add additional models running on Ollama, repeat step 6 for each model.
|
||||||
|
|
|
@ -34,4 +34,4 @@ For specific integrations, see our [Ollama](/advanced/ollama), [LMStudio](/advan
|
||||||
5. Create a new [Server Chat Setting](http://localhost:42110/server/admin/database/serverchatsettings/add/) on your Khoj admin panel
|
5. Create a new [Server Chat Setting](http://localhost:42110/server/admin/database/serverchatsettings/add/) on your Khoj admin panel
|
||||||
- Default model: `<name of chat model option you created in step 4>`
|
- Default model: `<name of chat model option you created in step 4>`
|
||||||
- Summarizer model: `<name of chat model option you created in step 4>`
|
- Summarizer model: `<name of chat model option you created in step 4>`
|
||||||
6. Go to [your config](http://localhost:42110/config) and select the model you just created in the chat model dropdown.
|
6. Go to [your config](http://localhost:42110/configure) and select the model you just created in the chat model dropdown.
|
||||||
|
|
|
@ -23,7 +23,7 @@ Khoj will keep these files in sync to provide contextual responses when you sear
|
||||||
## Setup
|
## Setup
|
||||||
|
|
||||||
1. Install the [Khoj Desktop app](https://khoj.dev/downloads) for your OS
|
1. Install the [Khoj Desktop app](https://khoj.dev/downloads) for your OS
|
||||||
2. Generate an API key on the [Khoj Web App](https://app.khoj.dev/config#clients)
|
2. Generate an API key on the [Khoj Web App](https://app.khoj.dev/configure#clients)
|
||||||
3. Set your Khoj API Key on the *Settings* page of the Khoj Desktop app
|
3. Set your Khoj API Key on the *Settings* page of the Khoj Desktop app
|
||||||
4. [Optional] Add any files, folders you'd like Khoj to be aware of on the *Settings* page and Click *Save*
|
4. [Optional] Add any files, folders you'd like Khoj to be aware of on the *Settings* page and Click *Save*
|
||||||
These files and folders will be automatically kept in sync for you
|
These files and folders will be automatically kept in sync for you
|
||||||
|
|
|
@ -30,7 +30,7 @@ sidebar_position: 2
|
||||||
| ![khoj search on emacs](/img/khoj_search_on_emacs.png) | ![khoj chat on emacs](/img/khoj_chat_on_emacs.png) |
|
| ![khoj search on emacs](/img/khoj_search_on_emacs.png) | ![khoj chat on emacs](/img/khoj_chat_on_emacs.png) |
|
||||||
|
|
||||||
## Setup
|
## Setup
|
||||||
1. Generate an API key on the [Khoj Web App](https://app.khoj.dev/config#clients)
|
1. Generate an API key on the [Khoj Web App](https://app.khoj.dev/configure#clients)
|
||||||
2. Add below snippet to your Emacs config file, usually at `~/.emacs.d/init.el`
|
2. Add below snippet to your Emacs config file, usually at `~/.emacs.d/init.el`
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -23,7 +23,7 @@ sidebar_position: 3
|
||||||
|
|
||||||
1. Open [Khoj](https://obsidian.md/plugins?id=khoj) from the *Community plugins* tab in Obsidian settings panel
|
1. Open [Khoj](https://obsidian.md/plugins?id=khoj) from the *Community plugins* tab in Obsidian settings panel
|
||||||
2. Click *Install*, then *Enable* on the Khoj plugin page in Obsidian
|
2. Click *Install*, then *Enable* on the Khoj plugin page in Obsidian
|
||||||
3. Generate an API key on the [Khoj Web App](https://app.khoj.dev/config#clients)
|
3. Generate an API key on the [Khoj Web App](https://app.khoj.dev/configure#clients)
|
||||||
4. Set your Khoj API Key in the Khoj plugin settings in Obsidian
|
4. Set your Khoj API Key in the Khoj plugin settings in Obsidian
|
||||||
|
|
||||||
See the official [Obsidian Plugin Docs](https://help.obsidian.md/Extending+Obsidian/Community+plugins) for more details on installing Obsidian plugins.
|
See the official [Obsidian Plugin Docs](https://help.obsidian.md/Extending+Obsidian/Community+plugins) for more details on installing Obsidian plugins.
|
||||||
|
|
|
@ -10,7 +10,7 @@ Text [+1 (848) 800 4242](https://wa.me/18488004242) or scan [this QR code](https
|
||||||
|
|
||||||
Without any desktop clients, you can start chatting with Khoj on WhatsApp. Bear in mind you do need one of the desktop clients in order to share and sync your data with Khoj. The WhatsApp AI bot will work right away for answering generic queries and using Khoj in default mode.
|
Without any desktop clients, you can start chatting with Khoj on WhatsApp. Bear in mind you do need one of the desktop clients in order to share and sync your data with Khoj. The WhatsApp AI bot will work right away for answering generic queries and using Khoj in default mode.
|
||||||
|
|
||||||
In order to use Khoj on WhatsApp with your own data, you need to setup a Khoj Cloud account and connect your WhatsApp account to it. This is a one time setup and you can do it from the [Khoj Cloud config page](https://app.khoj.dev/config).
|
In order to use Khoj on WhatsApp with your own data, you need to setup a Khoj Cloud account and connect your WhatsApp account to it. This is a one time setup and you can do it from the [Khoj Cloud config page](https://app.khoj.dev/configure).
|
||||||
|
|
||||||
If you hit usage limits for the WhatsApp bot, upgrade to [a paid plan](https://khoj.dev/pricing) on Khoj Cloud.
|
If you hit usage limits for the WhatsApp bot, upgrade to [a paid plan](https://khoj.dev/pricing) on Khoj Cloud.
|
||||||
|
|
||||||
|
|
|
@ -4,11 +4,11 @@ The Github integration allows you to index as many repositories as you want. It'
|
||||||
|
|
||||||
# Configure your settings
|
# Configure your settings
|
||||||
|
|
||||||
1. Go to [https://app.khoj.dev/config](https://app.khoj.dev/config) and enter in settings for the data sources you want to index. You'll have to specify the file paths.
|
1. Go to [https://app.khoj.dev/configure](https://app.khoj.dev/configure) and enter in settings for the data sources you want to index. You'll have to specify the file paths.
|
||||||
|
|
||||||
## Use the Github plugin
|
## Use the Github plugin
|
||||||
|
|
||||||
1. Generate a [classic PAT (personal access token)](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) from [Github](https://github.com/settings/tokens) with `repo` and `admin:org` scopes at least.
|
1. Generate a [classic PAT (personal access token)](https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens) from [Github](https://github.com/settings/tokens) with `repo` and `admin:org` scopes at least.
|
||||||
2. Navigate to [https://app.khoj.dev/config/content-source/github](https://app.khoj.dev/config/content-source/github) to configure your Github settings. Enter in your PAT, along with details for each repository you want to index.
|
2. Navigate to [https://app.khoj.dev/configure/content/github](https://app.khoj.dev/configure/content/github) to configure your Github settings. Enter in your PAT, along with details for each repository you want to index.
|
||||||
3. Click `Save`. Go back to the settings page and click `Configure`.
|
3. Click `Save`. Go back to the settings page and click `Configure`.
|
||||||
4. Go to [https://app.khoj.dev/](https://app.khoj.dev/) and start searching!
|
4. Go to [https://app.khoj.dev/](https://app.khoj.dev/) and start searching!
|
||||||
|
|
|
@ -2,7 +2,7 @@
|
||||||
|
|
||||||
The Notion integration allows you to search/chat with your Notion workspaces. [Notion](https://notion.so/) is a platform people use for taking notes, especially for collaboration.
|
The Notion integration allows you to search/chat with your Notion workspaces. [Notion](https://notion.so/) is a platform people use for taking notes, especially for collaboration.
|
||||||
|
|
||||||
Go to https://app.khoj.dev/config to connect your Notion workspace(s) to Khoj.
|
Go to https://app.khoj.dev/configure to connect your Notion workspace(s) to Khoj.
|
||||||
|
|
||||||
![notion_integration](https://assets.khoj.dev/notion_integration.gif)
|
![notion_integration](https://assets.khoj.dev/notion_integration.gif)
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ Go to https://app.khoj.dev/config to connect your Notion workspace(s) to Khoj.
|
||||||
![setup_new_integration](https://github.com/khoj-ai/khoj/assets/65192171/b056e057-d4dc-47dc-aad3-57b59a22c68b)
|
![setup_new_integration](https://github.com/khoj-ai/khoj/assets/65192171/b056e057-d4dc-47dc-aad3-57b59a22c68b)
|
||||||
3. Share all the workspaces that you want to integrate with the Khoj integration you just made in the previous step
|
3. Share all the workspaces that you want to integrate with the Khoj integration you just made in the previous step
|
||||||
![enable_workspace](https://github.com/khoj-ai/khoj/assets/65192171/98290303-b5b8-4cb0-b32c-f68c6923a3d0)
|
![enable_workspace](https://github.com/khoj-ai/khoj/assets/65192171/98290303-b5b8-4cb0-b32c-f68c6923a3d0)
|
||||||
4. In the first step, you generated an API key. Use the newly generated API Key in your Khoj settings, by default at http://localhost:42110/config/content-source/notion. Click `Save`.
|
4. In the first step, you generated an API key. Use the newly generated API Key in your Khoj settings, by default at http://localhost:42110/configure/content/notion. Click `Save`.
|
||||||
5. Click `Configure` in http://localhost:42110/config to index your Notion workspace(s).
|
5. Click `Configure` in http://localhost:42110/configure to index your Notion workspace(s).
|
||||||
|
|
||||||
That's it! You should be ready to start searching and chatting. Make sure you've configured your [chat settings](/get-started/setup#2-configure).
|
That's it! You should be ready to start searching and chatting. Make sure you've configured your [chat settings](/get-started/setup#2-configure).
|
||||||
|
|
|
@ -253,7 +253,7 @@ function pushDataToKhoj (regenerate = false) {
|
||||||
console.error(error);
|
console.error(error);
|
||||||
state["completed"] = false;
|
state["completed"] = false;
|
||||||
if (error?.response?.status === 429 && (BrowserWindow.getAllWindows().find(win => win.webContents.getURL().includes('config')))) {
|
if (error?.response?.status === 429 && (BrowserWindow.getAllWindows().find(win => win.webContents.getURL().includes('config')))) {
|
||||||
state["error"] = `Looks like you're out of space to sync your files. <a href="https://app.khoj.dev/config">Upgrade your plan</a> to unlock more space.`;
|
state["error"] = `Looks like you're out of space to sync your files. <a href="https://app.khoj.dev/configure">Upgrade your plan</a> to unlock more space.`;
|
||||||
const win = BrowserWindow.getAllWindows().find(win => win.webContents.getURL().includes('config'));
|
const win = BrowserWindow.getAllWindows().find(win => win.webContents.getURL().includes('config'));
|
||||||
if (win) win.webContents.send('needsSubscription', true);
|
if (win) win.webContents.send('needsSubscription', true);
|
||||||
} else if (error?.code === 'ECONNREFUSED') {
|
} else if (error?.code === 'ECONNREFUSED') {
|
||||||
|
|
|
@ -182,7 +182,7 @@ window.updateStateAPI.onUpdateState((event, state) => {
|
||||||
window.needsSubscriptionAPI.onNeedsSubscription((event, needsSubscription) => {
|
window.needsSubscriptionAPI.onNeedsSubscription((event, needsSubscription) => {
|
||||||
console.log("needs subscription", needsSubscription);
|
console.log("needs subscription", needsSubscription);
|
||||||
if (needsSubscription) {
|
if (needsSubscription) {
|
||||||
window.alert("Looks like you're out of space to sync your files. Upgrade your plan to unlock more space here: https://app.khoj.dev/config");
|
window.alert("Looks like you're out of space to sync your files. Upgrade your plan to unlock more space here: https://app.khoj.dev/configure");
|
||||||
needsSubscriptionElement.style.display = 'block';
|
needsSubscriptionElement.style.display = 'block';
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
|
@ -99,7 +99,7 @@
|
||||||
:type 'boolean)
|
:type 'boolean)
|
||||||
|
|
||||||
(defcustom khoj-api-key nil
|
(defcustom khoj-api-key nil
|
||||||
"API Key to your Khoj. Default at https://app.khoj.dev/config#clients."
|
"API Key to your Khoj. Default at https://app.khoj.dev/configure#clients."
|
||||||
:group 'khoj
|
:group 'khoj
|
||||||
:type 'string)
|
:type 'string)
|
||||||
|
|
||||||
|
|
|
@ -201,12 +201,12 @@ export function getBackendStatusMessage(
|
||||||
): string {
|
): string {
|
||||||
// Welcome message with default settings. Khoj cloud always expects an API key.
|
// Welcome message with default settings. Khoj cloud always expects an API key.
|
||||||
if (!khojApiKey && khojUrl === 'https://app.khoj.dev')
|
if (!khojApiKey && khojUrl === 'https://app.khoj.dev')
|
||||||
return `🌈 Welcome to Khoj! Get your API key from ${khojUrl}/config#clients and set it in the Khoj plugin settings on Obsidian`;
|
return `🌈 Welcome to Khoj! Get your API key from ${khojUrl}/configure#clients and set it in the Khoj plugin settings on Obsidian`;
|
||||||
|
|
||||||
if (!connectedToServer)
|
if (!connectedToServer)
|
||||||
return `❗️Could not connect to Khoj at ${khojUrl}. Ensure your can access it`;
|
return `❗️Could not connect to Khoj at ${khojUrl}. Ensure your can access it`;
|
||||||
else if (!userEmail)
|
else if (!userEmail)
|
||||||
return `✅ Connected to Khoj. ❗️Get a valid API key from ${khojUrl}/config#clients to log in`;
|
return `✅ Connected to Khoj. ❗️Get a valid API key from ${khojUrl}/configure#clients to log in`;
|
||||||
else if (userEmail === 'default@example.com')
|
else if (userEmail === 'default@example.com')
|
||||||
// Logged in as default user in anonymous mode
|
// Logged in as default user in anonymous mode
|
||||||
return `✅ Signed in to Khoj`;
|
return `✅ Signed in to Khoj`;
|
||||||
|
|
|
@ -128,7 +128,7 @@ export default function NavMenu(props: NavMenuProps) {
|
||||||
<DropdownMenuSeparator />
|
<DropdownMenuSeparator />
|
||||||
<DropdownMenuLabel>Profile</DropdownMenuLabel>
|
<DropdownMenuLabel>Profile</DropdownMenuLabel>
|
||||||
<DropdownMenuItem>
|
<DropdownMenuItem>
|
||||||
<Link href="/config">Settings</Link>
|
<Link href="/configure">Configure</Link>
|
||||||
</DropdownMenuItem>
|
</DropdownMenuItem>
|
||||||
<DropdownMenuItem>
|
<DropdownMenuItem>
|
||||||
<Link href="https://docs.khoj.dev">Help</Link>
|
<Link href="https://docs.khoj.dev">Help</Link>
|
||||||
|
@ -172,8 +172,8 @@ export default function NavMenu(props: NavMenuProps) {
|
||||||
{userData &&
|
{userData &&
|
||||||
<>
|
<>
|
||||||
<MenubarItem>
|
<MenubarItem>
|
||||||
<Link href="/config">
|
<Link href="/configure">
|
||||||
Settings
|
Configure
|
||||||
</Link>
|
</Link>
|
||||||
</MenubarItem>
|
</MenubarItem>
|
||||||
<MenubarSeparator />
|
<MenubarSeparator />
|
||||||
|
|
|
@ -604,7 +604,7 @@ function UserProfileComponent(props: UserProfileProps) {
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<div className={styles.profile}>
|
<div className={styles.profile}>
|
||||||
<Link href="/config" target="_blank" rel="noopener noreferrer">
|
<Link href="/configure" target="_blank" rel="noopener noreferrer">
|
||||||
<Avatar>
|
<Avatar>
|
||||||
<AvatarImage src={props.userProfile.photo} alt="user profile" />
|
<AvatarImage src={props.userProfile.photo} alt="user profile" />
|
||||||
<AvatarFallback>
|
<AvatarFallback>
|
||||||
|
|
|
@ -533,7 +533,7 @@ export default function FactChecker() {
|
||||||
<Button disabled={clickedVerify} onClick={() => onClickVerify()}>Verify</Button>
|
<Button disabled={clickedVerify} onClick={() => onClickVerify()}>Verify</Button>
|
||||||
</div>
|
</div>
|
||||||
<h3 className={`mt-4 mb-4`}>
|
<h3 className={`mt-4 mb-4`}>
|
||||||
Try with a particular model. You must be <a href="/config" className="font-medium text-blue-600 dark:text-blue-500 hover:underline">subscribed</a> to configure the model.
|
Try with a particular model. You must be <a href="/configure" className="font-medium text-blue-600 dark:text-blue-500 hover:underline">subscribed</a> to configure the model.
|
||||||
</h3>
|
</h3>
|
||||||
</div>
|
</div>
|
||||||
}
|
}
|
||||||
|
|
|
@ -44,7 +44,7 @@ Hi, I am Khoj, your open, personal AI 👋🏽. I can:
|
||||||
- 📚 Understand files you drag & drop here
|
- 📚 Understand files you drag & drop here
|
||||||
- 👩🏾🚀 Be tuned to your conversation needs via [agents](./agents)
|
- 👩🏾🚀 Be tuned to your conversation needs via [agents](./agents)
|
||||||
|
|
||||||
Get the Khoj [Desktop](https://khoj.dev/downloads), [Obsidian](https://docs.khoj.dev/clients/obsidian#setup), [Emacs](https://docs.khoj.dev/clients/emacs#setup) apps to search, chat with your 🖥️ computer docs. You can manage all the files you've shared with me at any time by going to [your settings](/config/content-source/computer/).
|
Get the Khoj [Desktop](https://khoj.dev/downloads), [Obsidian](https://docs.khoj.dev/clients/obsidian#setup), [Emacs](https://docs.khoj.dev/clients/emacs#setup) apps to search, chat with your 🖥️ computer docs. You can manage all the files you've shared with me at any time by going to [your settings](/configure/content/computer/).
|
||||||
|
|
||||||
To get started, just start typing below. You can also type / to see a list of commands.
|
To get started, just start typing below. You can also type / to see a list of commands.
|
||||||
`.trim()
|
`.trim()
|
||||||
|
@ -1333,7 +1333,7 @@ To get started, just start typing below. You can also type / to see a list of co
|
||||||
- 📚 Understand files you drag & drop here
|
- 📚 Understand files you drag & drop here
|
||||||
- 👩🏾🚀 Be tuned to your conversation needs via [agents](./agents)
|
- 👩🏾🚀 Be tuned to your conversation needs via [agents](./agents)
|
||||||
|
|
||||||
Get the Khoj [Desktop](https://khoj.dev/downloads), [Obsidian](https://docs.khoj.dev/clients/obsidian#setup), or [Emacs](https://docs.khoj.dev/clients/emacs#setup) app to keep your files in sync. You can manage all the files you've shared with me at any time by going to [your settings](/config/content-source/computer/).
|
Get the Khoj [Desktop](https://khoj.dev/downloads), [Obsidian](https://docs.khoj.dev/clients/obsidian#setup), or [Emacs](https://docs.khoj.dev/clients/emacs#setup) app to keep your files in sync. You can manage all the files you've shared with me at any time by going to [your settings](/configure/content/computer/).
|
||||||
|
|
||||||
To get started, just start typing below. You can also type / to see a list of commands.
|
To get started, just start typing below. You can also type / to see a list of commands.
|
||||||
|
|
||||||
|
|
|
@ -44,7 +44,7 @@
|
||||||
<p class="card-description">Manage files from your computer</p>
|
<p class="card-description">Manage files from your computer</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-action-row">
|
<div class="card-action-row">
|
||||||
<a class="card-button" href="/config/content-source/computer">
|
<a class="card-button" href="/configure/content/computer">
|
||||||
{% if current_model_state.computer %}
|
{% if current_model_state.computer %}
|
||||||
Update
|
Update
|
||||||
{% else %}
|
{% else %}
|
||||||
|
@ -76,7 +76,7 @@
|
||||||
<p class="card-description">Set repositories to index</p>
|
<p class="card-description">Set repositories to index</p>
|
||||||
</div>
|
</div>
|
||||||
<div class="card-action-row">
|
<div class="card-action-row">
|
||||||
<a class="card-button" href="/config/content-source/github">
|
<a class="card-button" href="/configure/content/github">
|
||||||
{% if current_model_state.github %}
|
{% if current_model_state.github %}
|
||||||
Update
|
Update
|
||||||
{% else %}
|
{% else %}
|
||||||
|
@ -110,7 +110,7 @@
|
||||||
</div>
|
</div>
|
||||||
<div class="card-action-row">
|
<div class="card-action-row">
|
||||||
{% if current_model_state.notion %}
|
{% if current_model_state.notion %}
|
||||||
<a class="card-button" href="/config/content-source/notion">
|
<a class="card-button" href="/configure/content/notion">
|
||||||
Update
|
Update
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"></path></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"></path></svg>
|
||||||
</a>
|
</a>
|
||||||
|
@ -120,7 +120,7 @@
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"></path></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"></path></svg>
|
||||||
</a>
|
</a>
|
||||||
{% else %}
|
{% else %}
|
||||||
<a class="card-button" href="/config/content-source/notion">
|
<a class="card-button" href="/configure/content/notion">
|
||||||
Setup
|
Setup
|
||||||
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"></path></svg>
|
<svg xmlns="http://www.w3.org/2000/svg" width="1em" height="1em" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round"><path d="M5 12h14M12 5l7 7-7 7"></path></svg>
|
||||||
</a>
|
</a>
|
||||||
|
|
|
@ -34,7 +34,7 @@ Hi, I am Khoj, your open, personal AI 👋🏽. I can:
|
||||||
- 📚 Understand files you drag & drop here
|
- 📚 Understand files you drag & drop here
|
||||||
- 👩🏾🚀 Be tuned to your conversation needs via [agents](./agents)
|
- 👩🏾🚀 Be tuned to your conversation needs via [agents](./agents)
|
||||||
|
|
||||||
Get the Khoj [Desktop](https://khoj.dev/downloads), [Obsidian](https://docs.khoj.dev/clients/obsidian#setup), [Emacs](https://docs.khoj.dev/clients/emacs#setup) apps to search, chat with your 🖥️ computer docs. You can manage all the files you've shared with me at any time by going to [your settings](/config/content-source/computer/).
|
Get the Khoj [Desktop](https://khoj.dev/downloads), [Obsidian](https://docs.khoj.dev/clients/obsidian#setup), [Emacs](https://docs.khoj.dev/clients/emacs#setup) apps to search, chat with your 🖥️ computer docs. You can manage all the files you've shared with me at any time by going to [your settings](/configure/content/computer/).
|
||||||
|
|
||||||
To get started, just start typing below. You can also type / to see a list of commands.
|
To get started, just start typing below. You can also type / to see a list of commands.
|
||||||
`.trim()
|
`.trim()
|
||||||
|
|
|
@ -214,7 +214,7 @@
|
||||||
.then(enabled_types => {
|
.then(enabled_types => {
|
||||||
// Show warning if no content types are enabled, or just one ("all")
|
// Show warning if no content types are enabled, or just one ("all")
|
||||||
if (enabled_types[0] === "all" && enabled_types.length === 1) {
|
if (enabled_types[0] === "all" && enabled_types.length === 1) {
|
||||||
document.getElementById("results").innerHTML = "<div id='results-error'>To use Khoj search, setup your content plugins on the Khoj <a class='inline-chat-link' href='/config'>settings page</a>.</div>";
|
document.getElementById("results").innerHTML = "<div id='results-error'>To use Khoj search, setup your content plugins on the Khoj <a class='inline-chat-link' href='/configure'>settings page</a>.</div>";
|
||||||
document.getElementById("query").setAttribute("disabled", "disabled");
|
document.getElementById("query").setAttribute("disabled", "disabled");
|
||||||
document.getElementById("query").setAttribute("placeholder", "Configure Khoj to enable search");
|
document.getElementById("query").setAttribute("placeholder", "Configure Khoj to enable search");
|
||||||
return [];
|
return [];
|
||||||
|
|
|
@ -36,7 +36,7 @@
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<div id="khoj-nav-menu" class="khoj-nav-dropdown-content">
|
<div id="khoj-nav-menu" class="khoj-nav-dropdown-content">
|
||||||
<div class="khoj-nav-username"> {{ username }} </div>
|
<div class="khoj-nav-username"> {{ username }} </div>
|
||||||
<a id="settings-nav" class="khoj-nav" href="/config">Settings</a>
|
<a id="settings-nav" class="khoj-nav" href="/configure">Settings</a>
|
||||||
<a id="github-nav" class="khoj-nav" href="https://github.com/khoj-ai/khoj">GitHub</a>
|
<a id="github-nav" class="khoj-nav" href="https://github.com/khoj-ai/khoj">GitHub</a>
|
||||||
<a id="help-nav" class="khoj-nav" href="https://docs.khoj.dev" target="_blank">Help</a>
|
<a id="help-nav" class="khoj-nav" href="https://docs.khoj.dev" target="_blank">Help</a>
|
||||||
<a class="khoj-nav" href="/auth/logout">Logout</a>
|
<a class="khoj-nav" href="/auth/logout">Logout</a>
|
||||||
|
|
|
@ -6,7 +6,6 @@ import os
|
||||||
import threading
|
import threading
|
||||||
import time
|
import time
|
||||||
import uuid
|
import uuid
|
||||||
from random import random
|
|
||||||
from typing import Any, Callable, List, Optional, Union
|
from typing import Any, Callable, List, Optional, Union
|
||||||
|
|
||||||
import cron_descriptor
|
import cron_descriptor
|
||||||
|
@ -190,7 +189,7 @@ def update(
|
||||||
):
|
):
|
||||||
user = request.user.object
|
user = request.user.object
|
||||||
if not state.config:
|
if not state.config:
|
||||||
error_msg = f"🚨 Khoj is not configured.\nConfigure it via http://localhost:42110/config, plugins or by editing {state.config_file}."
|
error_msg = f"🚨 Khoj is not configured.\nConfigure it via http://localhost:42110/configure, plugins or by editing {state.config_file}."
|
||||||
logger.warning(error_msg)
|
logger.warning(error_msg)
|
||||||
raise HTTPException(status_code=500, detail=error_msg)
|
raise HTTPException(status_code=500, detail=error_msg)
|
||||||
try:
|
try:
|
||||||
|
|
|
@ -920,7 +920,7 @@ class ApiUserRateLimiter:
|
||||||
)
|
)
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=429,
|
status_code=429,
|
||||||
detail="We're glad you're enjoying Khoj! You've exceeded your usage limit for today. Come back tomorrow or subscribe to increase your usage limit via [your settings](https://app.khoj.dev/config).",
|
detail="We're glad you're enjoying Khoj! You've exceeded your usage limit for today. Come back tomorrow or subscribe to increase your usage limit via [your settings](https://app.khoj.dev/configure).",
|
||||||
)
|
)
|
||||||
|
|
||||||
# Add the current request to the cache
|
# Add the current request to the cache
|
||||||
|
@ -959,7 +959,7 @@ class ConversationCommandRateLimiter:
|
||||||
if not subscribed and count_requests >= self.trial_rate_limit:
|
if not subscribed and count_requests >= self.trial_rate_limit:
|
||||||
raise HTTPException(
|
raise HTTPException(
|
||||||
status_code=429,
|
status_code=429,
|
||||||
detail=f"We're glad you're enjoying Khoj! You've exceeded your `/{conversation_command.value}` command usage limit for today. Subscribe to increase your usage limit via [your settings](https://app.khoj.dev/config).",
|
detail=f"We're glad you're enjoying Khoj! You've exceeded your `/{conversation_command.value}` command usage limit for today. Subscribe to increase your usage limit via [your settings](https://app.khoj.dev/configure).",
|
||||||
)
|
)
|
||||||
await UserRequests.objects.acreate(user=user, slug=command_slug)
|
await UserRequests.objects.acreate(user=user, slug=command_slug)
|
||||||
return
|
return
|
||||||
|
|
|
@ -138,7 +138,7 @@ def agent_page(request: Request, agent_slug: str):
|
||||||
return templates.TemplateResponse("agent.html", context=user_config)
|
return templates.TemplateResponse("agent.html", context=user_config)
|
||||||
|
|
||||||
|
|
||||||
@web_client.get("/config", response_class=HTMLResponse)
|
@web_client.get("/configure", response_class=HTMLResponse)
|
||||||
@requires(["authenticated"], redirect="login_page")
|
@requires(["authenticated"], redirect="login_page")
|
||||||
def config_page(request: Request):
|
def config_page(request: Request):
|
||||||
user: KhojUser = request.user.object
|
user: KhojUser = request.user.object
|
||||||
|
@ -147,7 +147,7 @@ def config_page(request: Request):
|
||||||
return templates.TemplateResponse("config.html", context=user_config)
|
return templates.TemplateResponse("config.html", context=user_config)
|
||||||
|
|
||||||
|
|
||||||
@web_client.get("/config/content-source/github", response_class=HTMLResponse)
|
@web_client.get("/configure/content/github", response_class=HTMLResponse)
|
||||||
@requires(["authenticated"], redirect="login_page")
|
@requires(["authenticated"], redirect="login_page")
|
||||||
def github_config_page(request: Request):
|
def github_config_page(request: Request):
|
||||||
user = request.user.object
|
user = request.user.object
|
||||||
|
@ -177,7 +177,7 @@ def github_config_page(request: Request):
|
||||||
return templates.TemplateResponse("content_source_github_input.html", context=user_config)
|
return templates.TemplateResponse("content_source_github_input.html", context=user_config)
|
||||||
|
|
||||||
|
|
||||||
@web_client.get("/config/content-source/notion", response_class=HTMLResponse)
|
@web_client.get("/configure/content/notion", response_class=HTMLResponse)
|
||||||
@requires(["authenticated"], redirect="login_page")
|
@requires(["authenticated"], redirect="login_page")
|
||||||
def notion_config_page(request: Request):
|
def notion_config_page(request: Request):
|
||||||
user = request.user.object
|
user = request.user.object
|
||||||
|
@ -192,7 +192,7 @@ def notion_config_page(request: Request):
|
||||||
return templates.TemplateResponse("content_source_notion_input.html", context=user_config)
|
return templates.TemplateResponse("content_source_notion_input.html", context=user_config)
|
||||||
|
|
||||||
|
|
||||||
@web_client.get("/config/content-source/computer", response_class=HTMLResponse)
|
@web_client.get("/configure/content/computer", response_class=HTMLResponse)
|
||||||
@requires(["authenticated"], redirect="login_page")
|
@requires(["authenticated"], redirect="login_page")
|
||||||
def computer_config_page(request: Request):
|
def computer_config_page(request: Request):
|
||||||
user = request.user.object if request.user.is_authenticated else None
|
user = request.user.object if request.user.is_authenticated else None
|
||||||
|
|
Loading…
Reference in a new issue