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