优化
This commit is contained in:
@@ -25,6 +25,7 @@ export function getAgentList() {
|
|||||||
* @param {number} options.agentId - 智能体ID
|
* @param {number} options.agentId - 智能体ID
|
||||||
* @param {string} options.content - 用户输入内容
|
* @param {string} options.content - 用户输入内容
|
||||||
* @param {string} [options.conversationId] - 会话ID(可选,首次对话不传)
|
* @param {string} [options.conversationId] - 会话ID(可选,首次对话不传)
|
||||||
|
* @param {string} [options.modelMode] - 模型模式:pro-深度版 standard-标准版
|
||||||
* @param {AbortController} [options.ctrl] - 取消控制器
|
* @param {AbortController} [options.ctrl] - 取消控制器
|
||||||
* @param {Function} options.onMessage - 消息回调
|
* @param {Function} options.onMessage - 消息回调
|
||||||
* @param {Function} [options.onError] - 错误回调
|
* @param {Function} [options.onError] - 错误回调
|
||||||
@@ -35,6 +36,7 @@ export async function sendChatStream(options) {
|
|||||||
agentId,
|
agentId,
|
||||||
content,
|
content,
|
||||||
conversationId,
|
conversationId,
|
||||||
|
modelMode = 'pro',
|
||||||
ctrl,
|
ctrl,
|
||||||
onMessage,
|
onMessage,
|
||||||
onError,
|
onError,
|
||||||
@@ -54,7 +56,8 @@ export async function sendChatStream(options) {
|
|||||||
body: JSON.stringify({
|
body: JSON.stringify({
|
||||||
agentId,
|
agentId,
|
||||||
content,
|
content,
|
||||||
conversationId
|
conversationId,
|
||||||
|
modelMode
|
||||||
}),
|
}),
|
||||||
onmessage: (event) => {
|
onmessage: (event) => {
|
||||||
if (typeof onMessage === 'function') {
|
if (typeof onMessage === 'function') {
|
||||||
|
|||||||
@@ -207,6 +207,7 @@ const handleSend = async () => {
|
|||||||
agentId: props.agent?.id,
|
agentId: props.agent?.id,
|
||||||
content: question,
|
content: question,
|
||||||
conversationId: conversationId.value,
|
conversationId: conversationId.value,
|
||||||
|
modelMode: modelMode.value,
|
||||||
ctrl: abortController.value,
|
ctrl: abortController.value,
|
||||||
onMessage: (result) => {
|
onMessage: (result) => {
|
||||||
if (result.event === 'message' && result.content) {
|
if (result.event === 'message' && result.content) {
|
||||||
|
|||||||
@@ -29,8 +29,10 @@ public class DifyServiceImpl implements DifyService {
|
|||||||
|
|
||||||
/** Dify 平台标识 */
|
/** Dify 平台标识 */
|
||||||
private static final String PLATFORM_DIFY = "dify";
|
private static final String PLATFORM_DIFY = "dify";
|
||||||
/** Dify 模型类型 */
|
/** Dify 模型类型 - Pro深度版 */
|
||||||
private static final String MODEL_TYPE_WRITING = "writing";
|
private static final String MODEL_TYPE_WRITING_PRO = "writing_pro";
|
||||||
|
/** Dify 模型类型 - 标准版 */
|
||||||
|
private static final String MODEL_TYPE_WRITING_STANDARD = "writing_standard";
|
||||||
|
|
||||||
@Resource
|
@Resource
|
||||||
private AiAgentService aiAgentService;
|
private AiAgentService aiAgentService;
|
||||||
@@ -55,8 +57,11 @@ public class DifyServiceImpl implements DifyService {
|
|||||||
throw new RuntimeException("智能体不存在");
|
throw new RuntimeException("智能体不存在");
|
||||||
}
|
}
|
||||||
|
|
||||||
// 2. 获取积分配置
|
// 2. 根据 modelMode 获取对应的积分配置
|
||||||
AiModelConfigDO config = pointsService.getConfig(PLATFORM_DIFY, MODEL_TYPE_WRITING);
|
String modelType = "standard".equals(reqVO.getModelMode())
|
||||||
|
? MODEL_TYPE_WRITING_STANDARD
|
||||||
|
: MODEL_TYPE_WRITING_PRO;
|
||||||
|
AiModelConfigDO config = pointsService.getConfig(PLATFORM_DIFY, modelType);
|
||||||
|
|
||||||
// 3. 预检积分
|
// 3. 预检积分
|
||||||
pointsService.checkPoints(userId, config.getConsumePoints());
|
pointsService.checkPoints(userId, config.getConsumePoints());
|
||||||
|
|||||||
@@ -23,4 +23,7 @@ public class DifyChatReqVO {
|
|||||||
@Schema(description = "会话ID(可选,首次对话不传)")
|
@Schema(description = "会话ID(可选,首次对话不传)")
|
||||||
private String conversationId;
|
private String conversationId;
|
||||||
|
|
||||||
|
@Schema(description = "模型模式:pro-深度版 standard-标准版", example = "pro")
|
||||||
|
private String modelMode = "pro";
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -34,10 +34,12 @@ public interface AiAgentMapper extends BaseMapperX<AiAgentDO> {
|
|||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询启用状态的智能体列表
|
* 查询启用状态的智能体列表(只查询必要字段)
|
||||||
*/
|
*/
|
||||||
default List<AiAgentDO> selectEnabledList() {
|
default List<AiAgentDO> selectEnabledList() {
|
||||||
return selectList(new LambdaQueryWrapperX<AiAgentDO>()
|
return selectList(new LambdaQueryWrapperX<AiAgentDO>()
|
||||||
|
.select(AiAgentDO::getId, AiAgentDO::getAgentId, AiAgentDO::getAgentName,
|
||||||
|
AiAgentDO::getIcon, AiAgentDO::getDescription, AiAgentDO::getCategoryName)
|
||||||
.eq(AiAgentDO::getStatus, 1)
|
.eq(AiAgentDO::getStatus, 1)
|
||||||
.orderByDesc(AiAgentDO::getId));
|
.orderByDesc(AiAgentDO::getId));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,7 @@
|
|||||||
<el-form-item label="模型名称" prop="modelName">
|
<el-form-item label="模型名称" prop="modelName">
|
||||||
<el-input v-model="formData.modelName" placeholder="请输入模型名称" />
|
<el-input v-model="formData.modelName" placeholder="请输入模型名称" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="模型标识/编码" prop="modelCode">
|
<el-form-item label="模型标识" prop="modelCode">
|
||||||
<el-input v-model="formData.modelCode" placeholder="请输入模型标识/编码" />
|
<el-input v-model="formData.modelCode" placeholder="请输入模型标识/编码" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="所属平台" prop="platform">
|
<el-form-item label="所属平台" prop="platform">
|
||||||
@@ -33,7 +33,7 @@
|
|||||||
<el-form-item label="每日请求次数" prop="dailyLimit">
|
<el-form-item label="每日请求次数" prop="dailyLimit">
|
||||||
<el-input v-model="formData.dailyLimit" placeholder="请输入每日请求次数" />
|
<el-input v-model="formData.dailyLimit" placeholder="请输入每日请求次数" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="模型类型(image-图像 text-文本 video-视频 audio-音频)" prop="modelType">
|
<el-form-item label="模型类型" prop="modelType">
|
||||||
<el-radio-group v-model="formData.modelType">
|
<el-radio-group v-model="formData.modelType">
|
||||||
<el-radio value="image">图像</el-radio>
|
<el-radio value="image">图像</el-radio>
|
||||||
<el-radio value="text">文本</el-radio>
|
<el-radio value="text">文本</el-radio>
|
||||||
|
|||||||
@@ -17,10 +17,10 @@
|
|||||||
class="!w-240px"
|
class="!w-240px"
|
||||||
/>
|
/>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="模型标识/编码" prop="modelCode">
|
<el-form-item label="模型标识" prop="modelCode">
|
||||||
<el-input
|
<el-input
|
||||||
v-model="queryParams.modelCode"
|
v-model="queryParams.modelCode"
|
||||||
placeholder="请输入模型标识/编码"
|
placeholder="请输入模型标识"
|
||||||
clearable
|
clearable
|
||||||
@keyup.enter="handleQuery"
|
@keyup.enter="handleQuery"
|
||||||
class="!w-240px"
|
class="!w-240px"
|
||||||
@@ -107,15 +107,15 @@
|
|||||||
@selection-change="handleRowCheckboxChange"
|
@selection-change="handleRowCheckboxChange"
|
||||||
>
|
>
|
||||||
<el-table-column type="selection" width="55" />
|
<el-table-column type="selection" width="55" />
|
||||||
<el-table-column label="模型名称" align="center" prop="modelName" />
|
<el-table-column label="模型名称" align="center" width="150" prop="modelName" />
|
||||||
<el-table-column label="模型标识/编码" align="center" prop="modelCode" />
|
<el-table-column label="模型标识" align="center" prop="modelCode" />
|
||||||
<el-table-column label="所属平台" align="center" prop="platform" />
|
<el-table-column label="所属平台" align="center" prop="platform" />
|
||||||
<el-table-column label="API秘钥" align="center" prop="apiKey" />
|
<el-table-column label="API秘钥" align="center" prop="apiKey" />
|
||||||
<el-table-column label="状态(0-禁用 1-启用)" align="center" prop="status" />
|
<el-table-column label="状态" align="center" prop="status" />
|
||||||
<el-table-column label="温度参数" align="center" prop="temperature" />
|
<el-table-column label="温度参数" align="center" prop="temperature" />
|
||||||
<el-table-column label="回复数Token数" align="center" prop="maxTokens" />
|
<el-table-column label="回复数Token数" align="center" prop="maxTokens" />
|
||||||
<el-table-column label="每日请求次数" align="center" prop="dailyLimit" />
|
<el-table-column label="每日请求次数" align="center" prop="dailyLimit" />
|
||||||
<el-table-column label="模型类型(image-图像 text-文本 video-视频 audio-音频)" align="center" prop="modelType" />
|
<el-table-column label="模型类型" align="center" prop="modelType" />
|
||||||
<el-table-column label="消耗积分" align="center" prop="consumePoints" />
|
<el-table-column label="消耗积分" align="center" prop="consumePoints" />
|
||||||
<el-table-column label="最大文本数量" align="center" prop="maxTextLength" />
|
<el-table-column label="最大文本数量" align="center" prop="maxTextLength" />
|
||||||
<el-table-column label="图片最大像素" align="center" prop="maxImageSize" />
|
<el-table-column label="图片最大像素" align="center" prop="maxImageSize" />
|
||||||
|
|||||||
Reference in New Issue
Block a user