mirror of
https://github.com/kuaifan/dootask.git
synced 2026-07-23 06:28:30 +00:00
fix(ai-assistant): respect model visibility settings
This commit is contained in:
parent
44bd541d00
commit
6f22fd2706
@ -24,7 +24,7 @@ negative:
|
||||
- 配置入口不在「系统设置」菜单,而在「AI 助手」应用内的设置面板(仅管理员可见)
|
||||
- v1.4.35 起旧接口 setting__ai 已废弃,AI 模型配置全部迁移到 AI 助手应用的设置面板
|
||||
- 不安装 ai 插件,「AI 助手」应用不出现
|
||||
last_verified: v1.7.90
|
||||
last_verified: v1.8.69
|
||||
---
|
||||
|
||||
# AI 模型配置
|
||||
@ -40,9 +40,11 @@ DooTask 的 AI 能力由独立的 **ai 插件**(`dootask-ai`)提供。系统
|
||||
## 操作步骤
|
||||
1. 管理员在应用商店安装并启用 ai 插件(生成 `dootask-ai` 容器)
|
||||
2. 打开「AI 助手」应用,选择要配置的供应商(ChatGPT/OpenAI、Claude、DeepSeek、Gemini、Grok、Ollama、智谱、通义千问、文心一言等)
|
||||
3. 在设置面板填写:API Key、模型列表(一行一个模型名,可点「使用默认模型列表」一键填入)、默认模型、Base URL(可选)、代理(可选)、Temperature、默认提示词
|
||||
3. 在设置面板填写:API Key、模型列表、默认模型、Base URL(可选)、代理(可选)、Temperature、默认提示词;不希望普通用户选择的模型可设为隐藏
|
||||
4. 保存后该供应商的模型立即可在 AI 对话中选用,并可被 [[system-setting.ai-bot.howto]] 的「AI 机器人」使用
|
||||
|
||||
AI 助手的模型下拉会按供应商展示全部可见模型,不限制每个供应商的模型数量。设为隐藏的模型不会出现在 AI 助手或 AI 机器人的模型选择列表;如果原默认模型或用户缓存的模型已隐藏,AI 助手会自动改选可见模型。
|
||||
|
||||
## 与其他模块的关系
|
||||
- 提供模型给 [[system-setting.ai-bot.howto]] 的默认模型选择
|
||||
- 「AI 整理汇报」、AI 助手浮窗等都依赖此处配置
|
||||
|
||||
@ -622,18 +622,11 @@ export default {
|
||||
}
|
||||
const defaultModel = data[`${type}_model`] || '';
|
||||
const label = AIBotMap[type] || type;
|
||||
const options = list.slice(0, 5);
|
||||
if (defaultModel) {
|
||||
const defaultOption = list.find(option => option.value === defaultModel);
|
||||
if (defaultOption && !options.some(option => option.value === defaultOption.value)) {
|
||||
options.push(defaultOption);
|
||||
}
|
||||
}
|
||||
const group = {
|
||||
type,
|
||||
label,
|
||||
defaultModel,
|
||||
options: options.map(option => {
|
||||
options: list.map(option => {
|
||||
const id = `${type}:${option.value}`;
|
||||
const item = Object.assign({}, option, {
|
||||
id,
|
||||
|
||||
3
resources/assets/js/utils/ai.js
vendored
3
resources/assets/js/utils/ai.js
vendored
@ -181,7 +181,7 @@ const withLanguagePreferencePrompt = (prompt) => {
|
||||
|
||||
/**
|
||||
* 解析模型列表文本为选项数组
|
||||
* 新格式:JSON 数组 [{id,name,thinking}];旧格式:每行 "id|name"
|
||||
* 新格式:JSON 数组 [{id,name,thinking,hidden}];旧格式:每行 "id|name"
|
||||
*/
|
||||
const AIModelNames = (str) => {
|
||||
if (typeof str !== 'string') {
|
||||
@ -195,6 +195,7 @@ const AIModelNames = (str) => {
|
||||
const parsed = JSON.parse(trimmed);
|
||||
if (Array.isArray(parsed)) {
|
||||
return parsed
|
||||
.filter(item => !item?.hidden)
|
||||
.map(item => ({
|
||||
value: String(item?.id ?? item?.value ?? '').trim(),
|
||||
label: String(item?.name ?? item?.label ?? '').trim()
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user