😎代码清理

This commit is contained in:
zuohuaijun 2025-07-25 00:28:07 +08:00
parent 45b8e46935
commit 86dfa73d25
5 changed files with 174 additions and 175 deletions

View File

@ -1,160 +1,160 @@
{
"LLM": {
"ModelProvider": "DeepSeek", // 使ProvidersProductName
"InitSystemChatMessage": "你是一个经验丰富的 Admin.NET 人工智能助手,请根据用户的问题给出准确的回答。- **回答请以markdown格式输出**;- **适当加入emoji表达人类情感使内容更易于理解与传播。**",
"UserCanSwitchLLM": true, //
"TargetCount": 10, // TargetCount+ThresholdCounttoken
"ThresholdCount": 3, // TargetCount+ThresholdCounttoken
"IsUserProxy": false, // 使openai,claudetruefalse,LLM
"ProxyUrl": "http://127.0.0.1:10809", // IsUserProxytrue
"LogEnabled": false, // http.
"Providers": [
{
"ProductName": "OpenAI", // LLM
"LLMType": "OpenAI_Compatible",
"ApiKey": "sk-proj-88vztr-6Tf6LwmtpvqAYQR-5q4XJaLW-6vmeeVunhycpsUuKMLGLJAhDGyodovkVJqXLba-HV_ST3BlbkFJghWQCgwt68t5Fv4AZSwoY0MX2K2c-HQPbBQLQYOrGcWfhX4yM9OJtqMYAmPedko4RRolifks8A",
"ApiEndpoint": "https://api.openai.com/v1",
"ChatCompletion": {
"ModelId": "gpt-4o",
"SupportModelIds": [
"gpt-4o",
"gpt-4o-mini"
]
},
"Embedding": {
"ModelId": "text-embedding-ada-002",
"SupportModelIds": [
"text-embedding-ada-002",
"text-embedding-3-small"
]
}
},
{
"ProductName": "Azure",
"LLMType": "AzureOpenAI",
"ApiKey": "sk-proj-88vztr-6Tf6LwmtpvqAYQR-5q4XJaLW-6vmeeVunhycpsUuKMLGLJAhDGyodovkVJqXLba-HV_ST3BlbkFJghWQCgwt68t5Fv4AZSwoY0MX2K2c-HQPbBQLQYOrGcWfhX4yM9OJtqMYAmPedko4RRolifks8A",
"ApiEndpoint": "https://my-openapi.openai.azure.com/",
"ChatCompletion": {
"ModelId": "gpt-4o",
"SupportModelIds": [
"gpt-4o",
"gpt-4o-mini"
]
},
"Embedding": {
"ModelId": "text-embedding-ada-002",
"SupportModelIds": [
"text-embedding-ada-002",
"text-embedding-3-small"
]
}
},
{
"ProductName": "DeepSeek",
"LLMType": "OpenAI_Compatible",
"ApiKey": "sk-c1f8ca9b3b524d65a817200681f3241e",
"ApiEndpoint": "https://api.deepseek.com/v1",
"ChatCompletion": {
"ModelId": "deepseek-chat",
"SupportModelIds": [
"deepseek-chat",
"deepseek-reasoner"
]
}
},
{
"ProductName": "google",
"LLMType": "google",
"ApiKey": "sk-proj-88vztr-6Tf6LwmtpvqAYQR-5q4XJaLW-6vmeeVunhycpsUuKMLGLJAhDGyodovkVJqXLba-HV_ST3BlbkFJghWQCgwt68t5Fv4AZSwoY0MX2K2c-HQPbBQLQYOrGcWfhX4yM9OJtqMYAmPedko4RRolifks8A",
"ApiEndpoint": "https://api.openai.com",
"ChatCompletion": {
"ModelId": "gemini-1.5-flash",
"SupportModelIds": [
"gemini-1.5-flash",
"gemini-1.5-pro"
]
},
"Embedding": {
"ModelId": "text-embedding-3-small",
"SupportModelIds": [
"text-embedding-3-small",
"text-embedding-3-large"
]
}
},
{
"ProductName": "Ollama",
"LLMType": "Ollama",
"ApiKey": "sk-proj-88vztr-6Tf6LwmtpvqAYQR-5q4XJaLW-6vmeeVunhycpsUuKMLGLJAhDGyodovkVJqXLba-HV_ST3BlbkFJghWQCgwt68t5Fv4AZSwoY0MX2K2c-HQPbBQLQYOrGcWfhX4yM9OJtqMYAmPedko4RRolifks8A",
"ApiEndpoint": "http://127.0.0.1:11434",
"ChatCompletion": {
"ModelId": "llama3.1",
"SupportModelIds": [
"llama3.1",
"llama3.1:8b",
"llama3.1:70b"
]
}
},
{
"ProductName": "OpenRouter",
"LLMType": "OpenAI_Compatible",
"ApiKey": "sk-proj-88vztr-6Tf6LwmtpvqAYQR-5q4XJaLW-6vmeeVunhycpsUuKMLGLJAhDGyodovkVJqXLba-HV_ST3BlbkFJghWQCgwt68t5Fv4AZSwoY0MX2K2c-HQPbBQLQYOrGcWfhX4yM9OJtqMYAmPedko4RRolifks8A",
"ApiEndpoint": "https://openrouter.ai/api/v1",
"ChatCompletion": {
"ModelId": "deepseek/deepseek-r1:free",
"SupportModelIds": [
"deepseek/deepseek-chat-v3-0324:free",
"deepseek/deepseek-r1:free",
"google/gemini-2.0-flash-exp:free",
"google/gemma-3-27b-it:free"
]
}
},
{
"ProductName": "Claude",
"LLMType": "Claude",
"ApiKey": "sk-ant-api03-0000000000000000000000000000000000000000000000000000000000000000",
"ApiEndpoint": "https://api.anthropic.com/v1",
"Region": "us-east-1",
"ApiSecret": "sk-ant-api03-0000000000000000000000000000000000000000000000000000000000000000",
"ChatCompletion": {
"ModelId": "claude-3-7-sonnet-20250219",
"SupportModelIds": [
"claude-3-5-sonnet-20240620",
"claude-3-7-sonnet-20250219",
"claude-opus-4-20250514",
"claude-sonnet-4-20250514"
]
}
},
{
"ProductName": "智谱",
"LLMType": "OpenAI_Compatible",
"ApiKey": "cxxxxxxxxxx",
"ApiEndpoint": "https://open.bigmodel.cn/api/paas/v4",
"ChatCompletion": {
"ModelId": "glm-4",
"SupportModelIds": [
"glm-4",
"glm-4-6b"
]
}
},
{
"ProductName": "月之暗面",
"LLMType": "OpenAI_Compatible",
"ApiKey": "sk-ant-api03-0000000000000000000000000000000000000000000000000000000000000000",
"ApiEndpoint": "https://api.moonshot.cn/v1",
"ChatCompletion": {
"ModelId": "moonshot-v1-8k",
"SupportModelIds": [
"moonshot-v1-8k",
"moonshot-v1-16k",
"moonshot-v1-128k"
]
}
}
]
}
"LLM": {
"ModelProvider": "DeepSeek", // 使ProvidersProductName
"InitSystemChatMessage": "你是一个经验丰富的 Admin.NET 人工智能助手,请根据用户的问题给出准确的回答。- **回答请以markdown格式输出**;- **适当加入emoji表达人类情感使内容更易于理解与传播。**",
"UserCanSwitchLLM": true, //
"TargetCount": 10, // TargetCount+ThresholdCounttoken
"ThresholdCount": 3, // TargetCount+ThresholdCounttoken
"IsUserProxy": false, // 使openai,claudetruefalse,LLM
"ProxyUrl": "http://127.0.0.1:10809", // IsUserProxytrue
"LogEnabled": false, // http.
"Providers": [
{
"ProductName": "OpenAI", // LLM
"LLMType": "OpenAI_Compatible",
"ApiKey": "sk-proj-88vztr-6Tf6LwmtpvqAYQR-5q4XJaLW-6vmeeVunhycpsUuKMLGLJAhDGyodovkVJqXLba-HV_ST3BlbkFJghWQCgwt68t5Fv4AZSwoY0MX2K2c-HQPbBQLQYOrGcWfhX4yM9OJtqMYAmPedko4RRolifks8A",
"ApiEndpoint": "https://api.openai.com/v1",
"ChatCompletion": {
"ModelId": "gpt-4o",
"SupportModelIds": [
"gpt-4o",
"gpt-4o-mini"
]
},
"Embedding": {
"ModelId": "text-embedding-ada-002",
"SupportModelIds": [
"text-embedding-ada-002",
"text-embedding-3-small"
]
}
},
{
"ProductName": "Azure",
"LLMType": "AzureOpenAI",
"ApiKey": "sk-proj-88vztr-6Tf6LwmtpvqAYQR-5q4XJaLW-6vmeeVunhycpsUuKMLGLJAhDGyodovkVJqXLba-HV_ST3BlbkFJghWQCgwt68t5Fv4AZSwoY0MX2K2c-HQPbBQLQYOrGcWfhX4yM9OJtqMYAmPedko4RRolifks8A",
"ApiEndpoint": "https://my-openapi.openai.azure.com/",
"ChatCompletion": {
"ModelId": "gpt-4o",
"SupportModelIds": [
"gpt-4o",
"gpt-4o-mini"
]
},
"Embedding": {
"ModelId": "text-embedding-ada-002",
"SupportModelIds": [
"text-embedding-ada-002",
"text-embedding-3-small"
]
}
},
{
"ProductName": "DeepSeek",
"LLMType": "OpenAI_Compatible",
"ApiKey": "sk-c1f8ca9b3b524d65a817200681f3241e",
"ApiEndpoint": "https://api.deepseek.com/v1",
"ChatCompletion": {
"ModelId": "deepseek-chat",
"SupportModelIds": [
"deepseek-chat",
"deepseek-reasoner"
]
}
},
{
"ProductName": "google",
"LLMType": "google",
"ApiKey": "sk-proj-88vztr-6Tf6LwmtpvqAYQR-5q4XJaLW-6vmeeVunhycpsUuKMLGLJAhDGyodovkVJqXLba-HV_ST3BlbkFJghWQCgwt68t5Fv4AZSwoY0MX2K2c-HQPbBQLQYOrGcWfhX4yM9OJtqMYAmPedko4RRolifks8A",
"ApiEndpoint": "https://api.openai.com",
"ChatCompletion": {
"ModelId": "gemini-1.5-flash",
"SupportModelIds": [
"gemini-1.5-flash",
"gemini-1.5-pro"
]
},
"Embedding": {
"ModelId": "text-embedding-3-small",
"SupportModelIds": [
"text-embedding-3-small",
"text-embedding-3-large"
]
}
},
{
"ProductName": "Ollama",
"LLMType": "Ollama",
"ApiKey": "sk-proj-88vztr-6Tf6LwmtpvqAYQR-5q4XJaLW-6vmeeVunhycpsUuKMLGLJAhDGyodovkVJqXLba-HV_ST3BlbkFJghWQCgwt68t5Fv4AZSwoY0MX2K2c-HQPbBQLQYOrGcWfhX4yM9OJtqMYAmPedko4RRolifks8A",
"ApiEndpoint": "http://127.0.0.1:11434",
"ChatCompletion": {
"ModelId": "llama3.1",
"SupportModelIds": [
"llama3.1",
"llama3.1:8b",
"llama3.1:70b"
]
}
},
{
"ProductName": "OpenRouter",
"LLMType": "OpenAI_Compatible",
"ApiKey": "sk-proj-88vztr-6Tf6LwmtpvqAYQR-5q4XJaLW-6vmeeVunhycpsUuKMLGLJAhDGyodovkVJqXLba-HV_ST3BlbkFJghWQCgwt68t5Fv4AZSwoY0MX2K2c-HQPbBQLQYOrGcWfhX4yM9OJtqMYAmPedko4RRolifks8A",
"ApiEndpoint": "https://openrouter.ai/api/v1",
"ChatCompletion": {
"ModelId": "deepseek/deepseek-r1:free",
"SupportModelIds": [
"deepseek/deepseek-chat-v3-0324:free",
"deepseek/deepseek-r1:free",
"google/gemini-2.0-flash-exp:free",
"google/gemma-3-27b-it:free"
]
}
},
{
"ProductName": "Claude",
"LLMType": "Claude",
"ApiKey": "sk-ant-api03-0000000000000000000000000000000000000000000000000000000000000000",
"ApiEndpoint": "https://api.anthropic.com/v1",
"Region": "us-east-1",
"ApiSecret": "sk-ant-api03-0000000000000000000000000000000000000000000000000000000000000000",
"ChatCompletion": {
"ModelId": "claude-3-7-sonnet-20250219",
"SupportModelIds": [
"claude-3-5-sonnet-20240620",
"claude-3-7-sonnet-20250219",
"claude-opus-4-20250514",
"claude-sonnet-4-20250514"
]
}
},
{
"ProductName": "智谱",
"LLMType": "OpenAI_Compatible",
"ApiKey": "cxxxxxxxxxx",
"ApiEndpoint": "https://open.bigmodel.cn/api/paas/v4",
"ChatCompletion": {
"ModelId": "glm-4",
"SupportModelIds": [
"glm-4",
"glm-4-6b"
]
}
},
{
"ProductName": "月之暗面",
"LLMType": "OpenAI_Compatible",
"ApiKey": "sk-ant-api03-0000000000000000000000000000000000000000000000000000000000000000",
"ApiEndpoint": "https://api.moonshot.cn/v1",
"ChatCompletion": {
"ModelId": "moonshot-v1-8k",
"SupportModelIds": [
"moonshot-v1-8k",
"moonshot-v1-16k",
"moonshot-v1-128k"
]
}
}
]
}
}

View File

@ -870,7 +870,7 @@ public enum ErrorCodeEnum
/// </summary>
[ErrorCodeItemMetadata("数据源不存在")]
C1002,
/// <summary>
/// 编码已存在
/// </summary>

View File

@ -455,5 +455,4 @@ public static class ParseExtensions
}
#endregion Dictionary
}

View File

@ -140,7 +140,7 @@ public class SysRoleService : IDynamicApiController, ITransient
{
// 禁止删除系统内置角色
var sysRole = await _sysRoleRep.GetByIdAsync(input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D1002);
if(sysRole.SysFlag == YesNoEnum.Y) throw Oops.Oh(ErrorCodeEnum.D1019);
if (sysRole.SysFlag == YesNoEnum.Y) throw Oops.Oh(ErrorCodeEnum.D1019);
// 若角色有用户则禁止删除
var userIds = await _sysUserRoleService.GetUserIdList(input.Id);

View File

@ -57,7 +57,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[DisplayName("获取用户分页列表")]
[DisplayName("获取用户分页列表")]
public virtual async Task<SqlSugarPagedList<UserOutput>> Page(PageUserInput input)
{
// 获取用户拥有的机构集合
@ -103,7 +103,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// <returns></returns>
[UnitOfWork]
[ApiDescriptionSettings(Name = "Add"), HttpPost]
[DisplayName("增加用户")]
[DisplayName("增加用户")]
public virtual async Task<long> AddUser(AddUserInput input)
{
// 是否有权操作此账号
@ -139,7 +139,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// <returns></returns>
[UnitOfWork]
[ApiDescriptionSettings(Name = "Update"), HttpPost]
[DisplayName("更新用户")]
[DisplayName("更新用户")]
public virtual async Task UpdateUser(UpdateUserInput input)
{
var query = _sysUserRep.AsQueryable().ClearFilter().Where(u => u.Id != input.Id);
@ -190,7 +190,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// <returns></returns>
[UnitOfWork]
[ApiDescriptionSettings(Name = "Delete"), HttpPost]
[DisplayName("删除用户")]
[DisplayName("删除用户")]
public virtual async Task DeleteUser(DeleteUserInput input)
{
var user = await _sysUserRep.GetByIdAsync(input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D0009);
@ -231,7 +231,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// 查看用户基本信息 🔖
/// </summary>
/// <returns></returns>
[DisplayName("查看用户基本信息")]
[DisplayName("查看用户基本信息")]
public virtual async Task<SysUser> GetBaseInfo()
{
return await _sysUserRep.GetByIdAsync(_userManager.UserId);
@ -242,7 +242,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// </summary>
/// <returns></returns>
[ApiDescriptionSettings(Name = "UpdateBaseInfo"), HttpPost]
[DisplayName("更新用户基本信息")]
[DisplayName("更新用户基本信息")]
public virtual async Task<int> UpdateBaseInfo(SysUser user)
{
return await _sysUserRep.AsUpdateable(user)
@ -255,7 +255,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// <param name="input"></param>
/// <returns></returns>
[UnitOfWork]
[DisplayName("设置用户状态")]
[DisplayName("设置用户状态")]
public virtual async Task<int> SetStatus(BaseStatusInput input)
{
if (_userManager.UserId == input.Id)
@ -288,7 +288,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// <param name="input"></param>
/// <returns></returns>
[UnitOfWork]
[DisplayName("授权用户角色")]
[DisplayName("授权用户角色")]
public async Task GrantRole(UserRoleInput input)
{
var user = await _sysUserRep.GetByIdAsync(input.UserId) ?? throw Oops.Oh(ErrorCodeEnum.D0009);
@ -311,7 +311,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[DisplayName("修改用户密码")]
[DisplayName("修改用户密码")]
public virtual async Task<int> ChangePwd(ChangePwdInput input)
{
// 国密SM2解密前端密码传输SM2加密后的
@ -376,7 +376,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[DisplayName("重置用户密码")]
[DisplayName("重置用户密码")]
public virtual async Task<string> ResetPwd(ResetPwdUserInput input)
{
var user = await _sysUserRep.GetByIdAsync(input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D0009);
@ -404,7 +404,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// 验证密码有效期 🔖
/// </summary>
/// <returns></returns>
[DisplayName("验证密码有效期")]
[DisplayName("验证密码有效期")]
public async Task<bool> VerifyPwdExpirationTime()
{
var sysConfig = await _sysConfigService.GetConfig(ConfigConst.SysPasswordExpirationTime);
@ -424,7 +424,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// </summary>
/// <param name="input"></param>
/// <returns></returns>
[DisplayName("解除登录锁定")]
[DisplayName("解除登录锁定")]
public virtual async Task UnlockLogin(BaseIdInput input)
{
var user = await _sysUserRep.GetByIdAsync(input.Id) ?? throw Oops.Oh(ErrorCodeEnum.D0009);
@ -442,7 +442,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
[DisplayName("获取用户拥有角色集合")]
[DisplayName("获取用户拥有角色集合")]
public async Task<GrantRoleOutput> GetOwnRoleList(long userId)
{
// 获取当前用户已分配角色
@ -461,7 +461,7 @@ public class SysUserService : IDynamicApiController, ITransient
/// </summary>
/// <param name="userId"></param>
/// <returns></returns>
[DisplayName("获取用户扩展机构集合")]
[DisplayName("获取用户扩展机构集合")]
public async Task<List<SysUserExtOrg>> GetOwnExtOrgList(long userId)
{
return await _sysUserExtOrgService.GetUserExtOrgList(userId);