mirror of https://github.com/jumpserver/jumpserver
perf: deepseek
parent
404d58a9c9
commit
c0ffe45ce9
|
@ -264,7 +264,6 @@
|
|||
"ChangeViewHelpText": "Click to switch different views",
|
||||
"Chat": "Chat",
|
||||
"ChatAI": "Chat AI",
|
||||
"ChatAITypeHelpText": "Only used for page switching. After switching the type, you need to update the following properties to take effect.",
|
||||
"ChatHello": "Hello, can I help you?",
|
||||
"ChdirHelpText": "By default, the execution directory is the user's home directory",
|
||||
"CheckAssetsAmount": "Check asset quantity",
|
||||
|
|
|
@ -278,7 +278,6 @@
|
|||
"ChangeViewHelpText": "クリックして異なるビューを切り替え",
|
||||
"Chat": "チャット",
|
||||
"ChatAI": "スマートアンサー",
|
||||
"ChatAITypeHelpText": "ページ切り替え専用で、切り替えタイプを変更した後は、下の属性を更新する必要があります。",
|
||||
"ChatHello": "こんにちは!お手伝いできることがあれば何でもお申し付けください。",
|
||||
"ChdirHelpText": "デフォルトの実行ディレクトリは実行ユーザーのホームディレクトリです",
|
||||
"CheckAssetsAmount": "資産の数量を確認",
|
||||
|
|
|
@ -264,7 +264,6 @@
|
|||
"ChangeViewHelpText": "Clique para alternar diferentes pontos de vista",
|
||||
"Chat": "Chat",
|
||||
"ChatAI": "Resposta inteligente",
|
||||
"ChatAITypeHelpText": "Utilizado apenas para a troca de página. Após alterar o tipo, é necessário atualizar os atributos abaixo para que a mudança tenha efeito.",
|
||||
"ChatHello": "Olá! Como posso ajudá-lo? ",
|
||||
"ChdirHelpText": "O diretório de execução padrão é o diretório home do usuário de execução",
|
||||
"CheckAssetsAmount": "Verificar Quantidade de Ativos",
|
||||
|
|
|
@ -264,7 +264,6 @@
|
|||
"ChangeViewHelpText": "点击切换不同视图",
|
||||
"Chat": "聊天",
|
||||
"ChatAI": "智能问答",
|
||||
"ChatAITypeHelpText": "仅用于页面切换,切换类型后需更新下方属性才能生效。",
|
||||
"ChatHello": "你好!我能为你提供什么帮助?",
|
||||
"ChdirHelpText": "默认执行目录为执行用户的 home 目录",
|
||||
"CheckAssetsAmount": "校对资产数量",
|
||||
|
|
|
@ -351,7 +351,6 @@
|
|||
"Charset": "字元集",
|
||||
"Chat": "聊天",
|
||||
"ChatAI": "智慧問答",
|
||||
"ChatAITypeHelpText": "僅用於頁面切換,切換類型後需更新下方屬性方能生效。",
|
||||
"ChatHello": "你好!我能為你提供什麼幫助?",
|
||||
"ChdirHelpText": "默認執行目錄為執行用戶的 home 目錄",
|
||||
"CheckAssetsAmount": "校對資產數量",
|
||||
|
|
|
@ -682,10 +682,13 @@ class Config(dict):
|
|||
# Chat AI
|
||||
'CHAT_AI_ENABLED': False,
|
||||
'CHAT_AI_TYPE': 'gpt',
|
||||
'GPT_API_KEY': '',
|
||||
'GPT_BASE_URL': '',
|
||||
'GPT_API_KEY': '',
|
||||
'GPT_PROXY': '',
|
||||
'GPT_MODEL': 'gpt-4o-mini',
|
||||
'DEEPSEEK_BASE_URL': '',
|
||||
'DEEPSEEK_API_KEY': '',
|
||||
'DEEPSEEK_PROXY': '',
|
||||
'DEEPSEEK_MODEL': 'deepseek-chat',
|
||||
'VIRTUAL_APP_ENABLED': False,
|
||||
|
||||
|
|
|
@ -222,11 +222,14 @@ ASSET_SIZE = 'small'
|
|||
|
||||
# Chat AI
|
||||
CHAT_AI_ENABLED = CONFIG.CHAT_AI_ENABLED
|
||||
GPT_API_KEY = CONFIG.GPT_API_KEY
|
||||
CHAT_AI_TYPE = CONFIG.CHAT_AI_TYPE
|
||||
GPT_BASE_URL = CONFIG.GPT_BASE_URL
|
||||
GPT_API_KEY = CONFIG.GPT_API_KEY
|
||||
GPT_PROXY = CONFIG.GPT_PROXY
|
||||
GPT_MODEL = CONFIG.GPT_MODEL
|
||||
CHAT_AI_TYPE = CONFIG.CHAT_AI_TYPE
|
||||
DEEPSEEK_BASE_URL = CONFIG.DEEPSEEK_BASE_URL
|
||||
DEEPSEEK_API_KEY = CONFIG.DEEPSEEK_API_KEY
|
||||
DEEPSEEK_PROXY = CONFIG.DEEPSEEK_PROXY
|
||||
DEEPSEEK_MODEL = CONFIG.DEEPSEEK_MODEL
|
||||
|
||||
VIRTUAL_APP_ENABLED = CONFIG.VIRTUAL_APP_ENABLED
|
||||
|
|
|
@ -41,16 +41,21 @@ class ChatAITestingAPI(GenericAPIView):
|
|||
data={'msg': _('Chat AI is not enabled')}
|
||||
)
|
||||
|
||||
proxy = config['GPT_PROXY']
|
||||
tp = config['CHAT_AI_TYPE']
|
||||
if tp == ChatAITypeChoices.gpt:
|
||||
url = config['GPT_BASE_URL']
|
||||
api_key = config['GPT_API_KEY']
|
||||
proxy = config['GPT_PROXY']
|
||||
model = config['GPT_MODEL']
|
||||
else:
|
||||
url = config['DEEPSEEK_BASE_URL']
|
||||
api_key = config['DEEPSEEK_API_KEY']
|
||||
proxy = config['DEEPSEEK_PROXY']
|
||||
model = config['DEEPSEEK_MODEL']
|
||||
|
||||
kwargs = {
|
||||
'base_url': config['GPT_BASE_URL'] or None,
|
||||
'api_key': config['GPT_API_KEY'],
|
||||
'base_url': url or None,
|
||||
'api_key': api_key,
|
||||
}
|
||||
try:
|
||||
if proxy:
|
||||
|
|
|
@ -194,7 +194,17 @@ class ChatPrompt(JMSBaseModel):
|
|||
return self.name
|
||||
|
||||
|
||||
def get_chatai_model():
|
||||
if settings.CHAT_AI_TYPE == ChatAITypeChoices.gpt:
|
||||
return settings.GPT_MODEL
|
||||
return settings.DEEPSEEK_MODEL
|
||||
def get_chatai_data():
|
||||
data = {
|
||||
'url': settings.GPT_BASE_URL,
|
||||
'api_key': settings.GPT_API_KEY,
|
||||
'proxy': settings.GPT_PROXY,
|
||||
'model': settings.GPT_MODEL,
|
||||
}
|
||||
if settings.CHAT_AI_TYPE != ChatAITypeChoices.gpt:
|
||||
data['url'] = settings.DEEPSEEK_BASE_URL
|
||||
data['api_key'] = settings.DEEPSEEK_API_KEY
|
||||
data['proxy'] = settings.DEEPSEEK_PROXY
|
||||
data['model'] = settings.DEEPSEEK_MODEL
|
||||
|
||||
return data
|
||||
|
|
|
@ -143,6 +143,17 @@ class ChatAISettingSerializer(serializers.Serializer):
|
|||
default=GPTModelChoices.gpt_4o_mini, choices=GPTModelChoices.choices,
|
||||
label=_("GPT Model"), required=False,
|
||||
)
|
||||
DEEPSEEK_BASE_URL = serializers.CharField(
|
||||
allow_blank=True, required=False, label=_('Base URL'),
|
||||
help_text=_('The base URL of the Chat service.')
|
||||
)
|
||||
DEEPSEEK_API_KEY = EncryptedField(
|
||||
allow_blank=True, required=False, label=_('API Key'),
|
||||
)
|
||||
DEEPSEEK_PROXY = serializers.CharField(
|
||||
allow_blank=True, required=False, label=_('Proxy'),
|
||||
help_text=_('The proxy server address of the GPT service. For example: http://ip:port')
|
||||
)
|
||||
DEEPSEEK_MODEL = serializers.ChoiceField(
|
||||
default=DeepSeekModelChoices.deepseek_chat, choices=DeepSeekModelChoices.choices,
|
||||
label=_("DeepSeek Model"), required=False,
|
||||
|
|
|
@ -9,7 +9,7 @@ from common.const.signals import OP_LOG_SKIP_SIGNAL
|
|||
from common.db.models import JMSBaseModel
|
||||
from common.utils import get_logger, lazyproperty
|
||||
from orgs.utils import tmp_to_root_org
|
||||
from settings.models import get_chatai_model
|
||||
from settings.models import get_chatai_data
|
||||
from terminal.const import TerminalType as TypeChoices
|
||||
from users.models import User
|
||||
from .status import Status
|
||||
|
@ -121,11 +121,12 @@ class Terminal(StorageMixin, TerminalStatusMixin, JMSBaseModel):
|
|||
|
||||
@staticmethod
|
||||
def get_chat_ai_setting():
|
||||
data = get_chatai_data()
|
||||
return {
|
||||
'GPT_BASE_URL': settings.GPT_BASE_URL,
|
||||
'GPT_API_KEY': settings.GPT_API_KEY,
|
||||
'GPT_PROXY': settings.GPT_PROXY,
|
||||
'GPT_MODEL': get_chatai_model(),
|
||||
'GPT_BASE_URL': data['url'],
|
||||
'GPT_API_KEY': data['api_key'],
|
||||
'GPT_PROXY': data['proxy'],
|
||||
'GPT_MODEL': data['model'],
|
||||
}
|
||||
|
||||
@staticmethod
|
||||
|
|
Loading…
Reference in New Issue