Skip to content

Commit

Permalink
📝 docs: update url-share docs (#2791)
Browse files Browse the repository at this point in the history
* 📝 docs: update docs

* update docs
  • Loading branch information
arvinxx committed Jun 5, 2024
1 parent 8f4760f commit adebf0a
Show file tree
Hide file tree
Showing 3 changed files with 176 additions and 114 deletions.
146 changes: 89 additions & 57 deletions docs/self-hosting/advanced/settings-url-share.mdx
Original file line number Diff line number Diff line change
@@ -1,9 +1,10 @@
# Share settings via URL
# Share settings via URL

LobeChat support import settings from external URL to quickly set up LobeChat configuration.

The currently supported settings are:

- `keyVaults`: provider api key and baseURL settings
- `languageModel`: Language model settings

## Import from URL
Expand All @@ -12,18 +13,18 @@ Use the following URL format to import settings parameters from an external URL:

```plaintext
https://lobehub.com/?settings=<settings object in JSON format>
https://lobehub.com/?settings={"languageModel":{"openai":{"apiKey":"user-key","endpoint":"https://lobehub.com/v1"}}}
https://lobehub.com/?settings={"keyVaults":{"openai":{"apiKey":"user-key","baseURL":"https://your-proxy.com/v1"}}}
```

Example of settings in JSON format:

```json
{
"languageModel": {
"openai": {
"apiKey": "user-key"
}
"keyVaults": {
"openai": {
"apiKey": "user-key"
}
}
}
```

Expand All @@ -32,69 +33,100 @@ Example of settings in JSON format:
```ts
// Generate settings to export to URL
const settings = {
languageModel: {
keyVaults: {
openai: {
apiKey: 'user-key',
endpoint: 'https://lobehub.com/v1'
apiKey: 'user-key',
baseURL: 'https://your-proxy.com/v1',
},
}};
},
};
// Convert settings to a JSON formatted string
const url = `/?settings=${JSON.stringify(settings)}`;
console.log(url);
// /?settings={"languageModel":{"openai":{"apiKey":"user-key","endpoint":"https://lobehub.com/v1"}}}
console.log(url);
// /?settings={"keyVaults":{"openai":{"apiKey":"user-key","baseURL":"https://your-proxy.com/v1"}}}
```

<Callout type={'warning'}>
LobeChat does not verify the correctness of the settings parameters in the URL, nor provide encryption or decryption methods. Please use with caution.
LobeChat does not verify the correctness of the settings parameters in the URL, nor provide
encryption or decryption methods. Please use with caution.
</Callout>

## Parameter schema

### languageModel
### keyVaults

- Property name and type

| Property name | Type |
|---------------|--------------------------------|
| anthropic | GeneralModelProviderConfig |
| azure | AzureOpenAIConfig |
| bedrock | AWSBedrockConfig |
| google | GeneralModelProviderConfig |
| groq | GeneralModelProviderConfig |
| minimax | GeneralModelProviderConfig |
| mistral | GeneralModelProviderConfig |
| moonshot | GeneralModelProviderConfig |
| ollama | GeneralModelProviderConfig |
| openai | GeneralModelProviderConfig |
| openrouter | GeneralModelProviderConfig |
| perplexity | GeneralModelProviderConfig |
| togetherai | GeneralModelProviderConfig |
| zeroone | GeneralModelProviderConfig |
| zhipu | GeneralModelProviderConfig |

- Type `GeneralModelProviderConfig`

| Property name | Type | Description |
|-----------------------|--------------------------|-----------------------------------------------------------------------------|
| apiKey | string | The API key for the model provider. |
| autoFetchModelLists | boolean | Whether to automatically fetch model lists. |
| enabled | boolean | Whether the model provider is enabled. |
| enabledModels | string[] | null | The IDs of the enabled models. |
| endpoint | string | The endpoint for the model provider. |
| fetchOnClient | boolean | Whether to fetch on the client. |

- Type `AzureOpenAIConfig`
> Inherits the fields from `GeneralModelProviderConfig`
| Property name | Type | Description |
|-----------------------|--------------------------|-----------------------------------------------------------------------------|
| apiVersion | string | The API version for Azure OpenAI. |

- Type `AWSBedrockConfig`
> Inherits all fields from `GeneralModelProviderConfig` except `apiKey, endpoint`
| Property name | Type | Description |
| accessKeyId | string | The access key ID for AWS Bedrock. |
| region | string | The region for AWS Bedrock. |
| secretAccessKey | string | The secret access key for AWS Bedrock. |
| Property name | Type |
| ------------- | ------------------------ |
| anthropic | `OpenAICompatibleKeyVault` |
| azure | `AzureOpenAIKeyVault` |
| bedrock | `AWSBedrockKeyVault` |
| google | `OpenAICompatibleKeyVault` |
| groq | `OpenAICompatibleKeyVault` |
| minimax | `OpenAICompatibleKeyVault` |
| mistral | `OpenAICompatibleKeyVault` |
| moonshot | `OpenAICompatibleKeyVault` |
| ollama | `OpenAICompatibleKeyVault` |
| openai | `OpenAICompatibleKeyVault` |
| openrouter | `OpenAICompatibleKeyVault` |
| perplexity | `OpenAICompatibleKeyVault` |
| togetherai | `OpenAICompatibleKeyVault` |
| zeroone | `OpenAICompatibleKeyVault` |
| zhipu | `OpenAICompatibleKeyVault` |

- Type `OpenAICompatibleKeyVault`

| Property name | Type | Description |
| ------------- | ------ | ------------------------------------ |
| apiKey | string | The API key for the model provider. |
| baseURL | string | The endpoint for the model provider. |

- Type `AzureOpenAIKeyVault`

| Property name | Type | Description |
| ------------- | ------ | ------------------------------------ |
| apiVersion | string | The API version for Azure OpenAI. |
| apiKey | string | The API key for the model provider. |
| endpoint | string | The endpoint for the model provider. |

- Type `AWSBedrockKeyVault`

| Property name | Type | Description |
| --------------- | ------ | -------------------------------------- |
| accessKeyId | string | The access key ID for AWS Bedrock. |
| region | string | The region for AWS Bedrock. |
| secretAccessKey | string | The secret access key for AWS Bedrock. |

### languageModel

```ts
export type UserModelProviderConfig = Record<string, ProviderConfig>;
```

| Property name | Type |
| ------------- | -------------- |
| anthropic | `ProviderConfig` |
| azure | `ProviderConfig` |
| bedrock | `ProviderConfig` |
| google | `ProviderConfig` |
| groq | `ProviderConfig` |
| minimax | `ProviderConfig` |
| mistral | `ProviderConfig` |
| moonshot | `ProviderConfig` |
| ollama | `ProviderConfig` |
| openai | `ProviderConfig` |
| openrouter | `ProviderConfig` |
| perplexity | `ProviderConfig` |
| togetherai | `ProviderConfig` |
| zeroone | `ProviderConfig` |
| zhipu | `ProviderConfig` |

- Type `ProviderConfig`

| Property name | Type | Description |
| ------------------- | -------- | ------------------------------------------- | ------------------------------ |
| autoFetchModelLists | boolean | Whether to automatically fetch model lists. |
| enabled | boolean | Whether the model provider is enabled. |
| enabledModels | string[] | null | The IDs of the enabled models. |
| fetchOnClient | boolean | Whether to fetch on the client. |
143 changes: 87 additions & 56 deletions docs/self-hosting/advanced/settings-url-share.zh-CN.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -4,26 +4,27 @@ LobeChat 支持从外部 URL 导入设置参数,以便于快速设置 LobeChat

目前支持的设置项有:

- `languageModel`:语言模型设置
- `keyVaults`: 模型供应商相关秘钥设置
- `languageModel`:语言模型设置

## 从 URL 中导入

使用以下 URL 格式,可以从外部 URL 导入设置参数:

```plaintext
https://lobehub.com/?settings=<JSON格式的设置对象>
https://lobehub.com/?settings={"languageModel":{"openai":{"apiKey":"user-key","endpoint":"https://lobehub.com/v1"}}}
https://lobehub.com/?settings={"keyVaults":{"openai":{"apiKey":"user-key","baseURL":"https://your-proxy.com/v1"}}}
```

JSON格式的设置示例:

```json
{
"languageModel": {
"openai": {
"apiKey": "user-key"
}
"keyVaults": {
"openai": {
"apiKey": "user-key"
}
}
}
```

Expand All @@ -32,69 +33,99 @@ JSON格式的设置示例:
```ts
// 生成要导出到 URL 的设置
const settings = {
languageModel: {
keyVaults: {
openai: {
apiKey: 'user-key',
endpoint: 'https://lobehub.com/v1'
apiKey: 'user-key',
baseURL: 'https://your-proxy.com/v1',
},
}};
// 将设置转为 JSON 格式的字符串
},
};
// Convert settings to a JSON formatted string
const url = `/?settings=${JSON.stringify(settings)}`;
console.log(url);
// /?settings={"languageModel":{"openai":{"apiKey":"user-key","endpoint":"https://lobehub.com/v1"}}}
console.log(url);
// /?settings={"keyVaults":{"openai":{"apiKey":"user-key","baseURL":"https://your-proxy.com/v1"}}}
```

<Callout type={'warning'}>
LobeChat 不对 URL 中的设置参数进行正确性校验,也不提供加密、解密方法,请谨慎使用。
LobeChat 不对 URL 中的设置参数进行正确性校验,也不提供 URL 的加密、解密方法,请谨慎使用。
</Callout>

## 参数格式

### languageModel
### keyVaults

- 参数及其类型

| 参数名称 | 类型 |
|---------------|--------------------------------|
| anthropic | GeneralModelProviderConfig |
| azure | AzureOpenAIConfig |
| bedrock | AWSBedrockConfig |
| google | GeneralModelProviderConfig |
| groq | GeneralModelProviderConfig |
| minimax | GeneralModelProviderConfig |
| mistral | GeneralModelProviderConfig |
| moonshot | GeneralModelProviderConfig |
| ollama | GeneralModelProviderConfig |
| openai | GeneralModelProviderConfig |
| openrouter | GeneralModelProviderConfig |
| perplexity | GeneralModelProviderConfig |
| togetherai | GeneralModelProviderConfig |
| zeroone | GeneralModelProviderConfig |
| zhipu | GeneralModelProviderConfig |

- 类型 `GeneralModelProviderConfig`

| 参数 | TS 类型 | 描述 |
|-----------------------|--------------------------|-----------------------------------------------------------------------------|
| apiKey | string | 模型的 API 密钥。 |
| autoFetchModelLists | boolean | 是否自动获取模型列表。 |
| enabled | boolean | 是否启用该模型。 |
| enabledModels | string[] | 启用的模型的 ID。 |
| endpoint | string | 模型API端点。 |
| fetchOnClient | boolean | 是否在客户端发起请求,默认在服务端发起请求。 |

- 类型 `AzureOpenAIConfig`
> 继承 `GeneralModelProviderConfig` 中的字段
| 参数 | TS 类型 | 描述 |
|-----------------------|--------------------------|-----------------------------------------------------------------------------|
| 参数名称 | 类型 |
| ---------- | ------------------------ |
| anthropic | `OpenAICompatibleKeyVault` |
| azure | `AzureOpenAIKeyVault` |
| bedrock | `AWSBedrockKeyVault` |
| google | `OpenAICompatibleKeyVault` |
| groq | `OpenAICompatibleKeyVault` |
| minimax | `OpenAICompatibleKeyVault` |
| mistral | `OpenAICompatibleKeyVault` |
| moonshot | `OpenAICompatibleKeyVault` |
| ollama | `OpenAICompatibleKeyVault` |
| openai | `OpenAICompatibleKeyVault` |
| openrouter | `OpenAICompatibleKeyVault` |
| perplexity | `OpenAICompatibleKeyVault` |
| togetherai | `OpenAICompatibleKeyVault` |
| zeroone | `OpenAICompatibleKeyVault` |
| zhipu | `OpenAICompatibleKeyVault` |

- Type `OpenAICompatibleKeyVault`

| 参数 | 类型 | 描述 |
| ------- | ------ | ----------------- |
| apiKey | string | 模型的 API 密钥。 |
| baseURL | string | 模型API端点。 |

- Type `AzureOpenAIKeyVault`

| 参数 | 类型 | 描述 |
| ---------- | ------ | -------------------------- |
| apiVersion | string | Azure OpenAI 的 API 版本。 |
| apiKey | string | 模型的 API 密钥。 |
| baseURL | string | 模型API端点。 |

- Type `AWSBedrockKeyVault`

- 类型 `AWSBedrockConfig`
> 继承 `GeneralModelProviderConfig` 中除 `apiKey, endpoint` 外的所有字段
| 参数 | 类型 | 描述 |
| --------------- | ------ | --------------------------- |
| accessKeyId | string | AWS Bedrock 的访问密钥 ID。 |
| region | string | AWS Bedrock 的区域。 |
| secretAccessKey | string | AWS Bedrock 的访问密钥。 |

### languageModel

```ts
export type UserModelProviderConfig = Record<string, ProviderConfig>;
```

| 参数 | TS 类型 | 描述 |
|-----------------------|--------------------------|-----------------------------------------------------------------------------|
| accessKeyId | string | AWS Bedrock 的访问密钥 ID。 |
| region | string | AWS Bedrock 的区域。 |
| secretAccessKey | string | AWS Bedrock 的访问密钥。 |
| 参数名称 | 类型 |
| ---------- | -------------- |
| anthropic | `ProviderConfig` |
| azure | `ProviderConfig` |
| bedrock | `ProviderConfig` |
| google | `ProviderConfig` |
| groq | `ProviderConfig` |
| minimax | `ProviderConfig` |
| mistral | `ProviderConfig` |
| moonshot | `ProviderConfig` |
| ollama | `ProviderConfig` |
| openai | `ProviderConfig` |
| openrouter | `ProviderConfig` |
| perplexity | `ProviderConfig` |
| togetherai | `ProviderConfig` |
| zeroone | `ProviderConfig` |
| zhipu | `ProviderConfig` |

- 类型 `ProviderConfig`

| 参数 | TS 类型 | 描述 |
| ------------------- | -------- | -------------------------------------------- |
| autoFetchModelLists | boolean | 是否自动获取模型列表。 |
| enabled | boolean | 是否启用该模型。 |
| enabledModels | string[] | 启用的模型的 ID。 |
| fetchOnClient | boolean | 是否在客户端发起请求,默认在服务端发起请求。 |
1 change: 0 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -209,7 +209,6 @@
"@types/uuid": "^9.0.8",
"@umijs/lint": "^4.2.5",
"@vitest/coverage-v8": "~1.2.2",
"ajv": "8.14.0",
"ajv-keywords": "^5.1.0",
"commitlint": "^19.3.0",
"consola": "^3.2.3",
Expand Down

0 comments on commit adebf0a

Please sign in to comment.