Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
S
sl-ai
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
zhouwei
sl-ai
Commits
dffaa3db
Commit
dffaa3db
authored
Apr 14, 2025
by
zhouwei
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
支持gateway传递model和model key
parent
ed4aafc7
Changes
8
Hide whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
49 additions
and
59 deletions
+49
-59
Constant.java
src/main/java/com/nanyan/securitylink/common/Constant.java
+2
-0
WebConfig.java
src/main/java/com/nanyan/securitylink/config/WebConfig.java
+3
-1
TranslateInputDTO.java
...n/java/com/nanyan/securitylink/dto/TranslateInputDTO.java
+1
-0
UserHeader.java
src/main/java/com/nanyan/securitylink/entity/UserHeader.java
+5
-36
HeaderInterceptor.java
...om/nanyan/securitylink/interceptor/HeaderInterceptor.java
+7
-6
LogResponseTimeInterceptor.java
.../securitylink/interceptor/LogResponseTimeInterceptor.java
+3
-3
LoginInterceptor.java
...com/nanyan/securitylink/interceptor/LoginInterceptor.java
+1
-4
DeepSeekAIServiceImpl.java
...nyan/securitylink/service/impl/DeepSeekAIServiceImpl.java
+27
-9
No files found.
src/main/java/com/nanyan/securitylink/common/Constant.java
View file @
dffaa3db
...
...
@@ -5,6 +5,8 @@ public interface Constant {
int
picType
=
1
;
int
textType
=
0
;
String
ACCOUNT
=
"account"
;
String
MODEL
=
"model"
;
String
MODEL_KEY
=
"modelKey"
;
int
SUCCESS_STATUS
=
200
;
String
WEATHER_GROUP
=
"weatherType"
;
String
ADMIN_ROLE
=
"admin"
;
...
...
src/main/java/com/nanyan/securitylink/config/WebConfig.java
View file @
dffaa3db
...
...
@@ -16,10 +16,12 @@ public class WebConfig extends WebMvcConfigurationSupport {
private
LoginInterceptor
loginInterceptor
;
@Resource
LogResponseTimeInterceptor
logResponseTimeInterceptor
;
@Resource
HeaderInterceptor
headerInterceptor
;
@Override
protected
void
addInterceptors
(
InterceptorRegistry
registry
)
{
//
registry
.
addInterceptor
(
headerInterceptor
);
registry
.
addInterceptor
(
loginInterceptor
);
registry
.
addInterceptor
(
logResponseTimeInterceptor
);
super
.
addInterceptors
(
registry
);
...
...
src/main/java/com/nanyan/securitylink/dto/TranslateInputDTO.java
View file @
dffaa3db
...
...
@@ -5,5 +5,6 @@ import lombok.Data;
@Data
public
class
TranslateInputDTO
{
String
record_json
;
String
msg_info
;
String
language
;
}
src/main/java/com/nanyan/securitylink/entity/UserHeader.java
View file @
dffaa3db
package
com
.
nanyan
.
securitylink
.
entity
;
public
class
UserHeader
{
String
userId
;
String
accountName
;
String
role
;
String
token
;
public
String
getToken
()
{
return
token
;
}
public
void
setToken
(
String
token
)
{
this
.
token
=
token
;
}
public
String
getUserId
()
{
return
userId
;
}
public
void
setUserId
(
String
userId
)
{
this
.
userId
=
userId
;
}
import
lombok.Data
;
public
String
getAccountName
()
{
return
accountName
;
}
public
void
setAccountName
(
String
accountName
)
{
this
.
accountName
=
accountName
;
}
public
String
getRole
()
{
return
role
;
}
public
void
setRole
(
String
role
)
{
this
.
role
=
role
;
}
@Data
public
class
UserHeader
{
String
model
;
String
modelKey
;
}
src/main/java/com/nanyan/securitylink/interceptor/HeaderInterceptor.java
View file @
dffaa3db
...
...
@@ -5,6 +5,7 @@ import com.nanyan.securitylink.common.MsgCode;
import
com.nanyan.securitylink.entity.UserHeader
;
import
com.nanyan.securitylink.entity.UserThreadLocal
;
import
com.nanyan.securitylink.execption.HeaderException
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.stereotype.Component
;
import
org.springframework.util.StringUtils
;
import
org.springframework.web.servlet.HandlerInterceptor
;
...
...
@@ -14,19 +15,21 @@ import javax.servlet.http.HttpServletResponse;
import
java.util.Base64
;
@Slf4j
@Component
public
class
HeaderInterceptor
implements
HandlerInterceptor
{
@Override
public
boolean
preHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
)
throws
Exception
{
try
{
String
accountName
=
getHeader
(
request
,
Constant
.
ACCOUNT
);
String
model
=
getHeader
(
request
,
Constant
.
MODEL
);
String
modelKey
=
getHeader
(
request
,
Constant
.
MODEL_KEY
);
UserHeader
userHeader
=
new
UserHeader
();
userHeader
.
setAccountName
(
accountName
);
userHeader
.
setModel
(
model
);
userHeader
.
setModelKey
(
modelKey
);
UserThreadLocal
.
set
(
userHeader
);
}
catch
(
Exception
e
){
e
.
printStackTrace
();
throw
new
HeaderException
(
MsgCode
.
LOGIN_FAILED
);
log
.
info
(
""
,
e
);
}
return
true
;
...
...
@@ -41,8 +44,6 @@ public class HeaderInterceptor implements HandlerInterceptor {
if
(
StringUtils
.
isEmpty
(
value
)){
return
""
;
}
byte
[]
decodedBytes
=
Base64
.
getDecoder
().
decode
(
value
);
value
=
new
String
(
decodedBytes
);
return
value
;
}
}
src/main/java/com/nanyan/securitylink/interceptor/LogResponseTimeInterceptor.java
View file @
dffaa3db
...
...
@@ -31,10 +31,10 @@ public class LogResponseTimeInterceptor implements HandlerInterceptor {
// System.out.println("接口耗时:" + time + "ms");
String
requestURI
=
request
.
getRequestURI
();
UserHeader
userHeader
=
UserThreadLocal
.
get
();
String
accountName
=
""
;
String
model
=
""
;
if
(
userHeader
!=
null
){
accountName
=
UserThreadLocal
.
get
().
getAccountName
();
logger
.
info
(
"
account:{} 接口{}耗时{} ms"
,
accountName
,
requestURI
,
time
);
model
=
UserThreadLocal
.
get
().
getModel
();
logger
.
info
(
"
model:{} 接口{}耗时{} ms"
,
model
,
requestURI
,
time
);
}
else
{
logger
.
info
(
"接口{}耗时{} ms"
,
requestURI
,
time
);
}
...
...
src/main/java/com/nanyan/securitylink/interceptor/LoginInterceptor.java
View file @
dffaa3db
...
...
@@ -11,10 +11,7 @@ import java.io.IOException;
@Component
public
class
LoginInterceptor
implements
HandlerInterceptor
{
@Override
public
boolean
preHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
)
throws
IOException
{
String
uri
=
request
.
getRequestURI
();
String
token
=
request
.
getHeader
(
"token"
);
// 从请求头中获取 token
public
boolean
preHandle
(
HttpServletRequest
request
,
HttpServletResponse
response
,
Object
handler
)
{
return
true
;
}
}
src/main/java/com/nanyan/securitylink/service/impl/DeepSeekAIServiceImpl.java
View file @
dffaa3db
...
...
@@ -6,9 +6,7 @@ import com.fasterxml.jackson.databind.ObjectMapper;
import
com.nanyan.securitylink.common.MsgCode
;
import
com.nanyan.securitylink.config.AppConfig
;
import
com.nanyan.securitylink.dto.TranslateDTO
;
import
com.nanyan.securitylink.entity.ChatCompletionResponse
;
import
com.nanyan.securitylink.entity.ChatInputData
;
import
com.nanyan.securitylink.entity.Message
;
import
com.nanyan.securitylink.entity.*
;
import
com.nanyan.securitylink.execption.BaseException
;
import
com.nanyan.securitylink.service.AIService
;
import
com.nanyan.securitylink.vo.AIResponse
;
...
...
@@ -89,7 +87,12 @@ public class DeepSeekAIServiceImpl implements AIService {
ChatInputData
chatInputData
=
new
ChatInputData
();
buildTranslate
(
chatInputData
,
translateDTO
);
ChatCompletionResponse
chatCompletionResponse
=
aiRequest
(
chatInputData
,
appConfig
.
getApiTranslateKey
());
UserHeader
userHeader
=
UserThreadLocal
.
get
();
String
apiKey
=
appConfig
.
getApiTranslateKey
();
if
(
StringUtils
.
isNotEmpty
(
userHeader
.
getModelKey
())){
apiKey
=
userHeader
.
getModelKey
();
}
ChatCompletionResponse
chatCompletionResponse
=
aiRequest
(
chatInputData
,
apiKey
);
if
(
CollectionUtils
.
isNotEmpty
(
chatCompletionResponse
.
getChoices
()))
{
AIResponse
aiResponse
=
new
AIResponse
();
...
...
@@ -103,7 +106,12 @@ public class DeepSeekAIServiceImpl implements AIService {
ChatInputData
chatInputData
=
new
ChatInputData
();
buildNewsTag
(
chatInputData
,
translateDTO
);
ChatCompletionResponse
chatCompletionResponse
=
aiRequest
(
chatInputData
,
appConfig
.
getApiTranslateKey
());
UserHeader
userHeader
=
UserThreadLocal
.
get
();
String
apiKey
=
appConfig
.
getApiTranslateKey
();
if
(
StringUtils
.
isNotEmpty
(
userHeader
.
getModelKey
())){
apiKey
=
userHeader
.
getModelKey
();
}
ChatCompletionResponse
chatCompletionResponse
=
aiRequest
(
chatInputData
,
apiKey
);
if
(
CollectionUtils
.
isNotEmpty
(
chatCompletionResponse
.
getChoices
()))
{
AIResponse
aiResponse
=
new
AIResponse
();
...
...
@@ -129,7 +137,12 @@ public class DeepSeekAIServiceImpl implements AIService {
}
private
void
buildNewsTag
(
ChatInputData
chatInputData
,
TranslateDTO
translateDTO
)
{
chatInputData
.
setModel
(
"deepseek-v3-250324"
);
UserHeader
userHeader
=
UserThreadLocal
.
get
();
if
(
StringUtils
.
isNotEmpty
(
userHeader
.
getModel
())){
chatInputData
.
setModel
(
userHeader
.
getModel
());
}
else
{
chatInputData
.
setModel
(
"deepseek-v3-250324"
);
}
chatInputData
.
setStream
(
false
);
List
<
Message
>
messages
=
new
ArrayList
<>();
chatInputData
.
setMessages
(
messages
);
...
...
@@ -147,7 +160,7 @@ public class DeepSeekAIServiceImpl implements AIService {
}
catch
(
JsonProcessingException
e
)
{
throw
new
BaseException
(
MsgCode
.
JSON_ERROR
);
}
log
.
info
(
"
translate
json:{}"
,
writeValueAsString
);
log
.
info
(
"json:{}"
,
writeValueAsString
);
HttpEntity
header
=
getHeader
(
apiKey
);
HttpEntity
<
String
>
entity
=
new
HttpEntity
<>(
writeValueAsString
,
header
.
getHeaders
());
ResponseEntity
<
ChatCompletionResponse
>
response
=
restTemplate
.
postForEntity
(
DEEP_SEEK_URL
,
entity
,
ChatCompletionResponse
.
class
);
...
...
@@ -159,7 +172,12 @@ public class DeepSeekAIServiceImpl implements AIService {
}
private
void
buildTranslate
(
ChatInputData
chatInputData
,
TranslateDTO
translateDTO
)
{
chatInputData
.
setModel
(
"deepseek-v3-250324"
);
UserHeader
userHeader
=
UserThreadLocal
.
get
();
if
(
StringUtils
.
isNotEmpty
(
userHeader
.
getModel
())){
chatInputData
.
setModel
(
userHeader
.
getModel
());
}
else
{
chatInputData
.
setModel
(
"deepseek-v3-250324"
);
}
chatInputData
.
setStream
(
false
);
List
<
Message
>
messages
=
new
ArrayList
<>();
chatInputData
.
setMessages
(
messages
);
...
...
@@ -187,7 +205,7 @@ public class DeepSeekAIServiceImpl implements AIService {
private
static
Message
getUserTagDeepSeekMessage
(
TranslateDTO
translateDTO
)
{
Message
userRole
=
new
Message
();
userRole
.
setRole
(
"user"
);
userRole
.
setContent
(
translateDTO
.
getInputs
().
get
Record_json
());
userRole
.
setContent
(
translateDTO
.
getInputs
().
get
Msg_info
());
return
userRole
;
}
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment