Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
E
exam_master
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
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
ai-tech
exam_master
Commits
a04704a8
Commit
a04704a8
authored
Jul 04, 2024
by
陈立彬
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
考试评分异步流程
parent
c4be4d3f
Changes
3
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
70 additions
and
0 deletions
+70
-0
ExamMasterApplication.java
src/main/java/cn/aibreeze/exam/ExamMasterApplication.java
+2
-0
ExamController.java
src/main/java/cn/aibreeze/exam/api/ExamController.java
+17
-0
ExamAppFacade.java
src/main/java/cn/aibreeze/exam/facade/ExamAppFacade.java
+51
-0
No files found.
src/main/java/cn/aibreeze/exam/ExamMasterApplication.java
View file @
a04704a8
...
@@ -2,7 +2,9 @@ package cn.aibreeze.exam;
...
@@ -2,7 +2,9 @@ package cn.aibreeze.exam;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
import
org.springframework.scheduling.annotation.EnableAsync
;
@EnableAsync
@SpringBootApplication
@SpringBootApplication
public
class
ExamMasterApplication
{
public
class
ExamMasterApplication
{
...
...
src/main/java/cn/aibreeze/exam/api/ExamController.java
View file @
a04704a8
...
@@ -4,6 +4,7 @@ import cn.aibreeze.exam.dto.*;
...
@@ -4,6 +4,7 @@ import cn.aibreeze.exam.dto.*;
import
cn.aibreeze.exam.entity.ElehKnowledgeDo
;
import
cn.aibreeze.exam.entity.ElehKnowledgeDo
;
import
cn.aibreeze.exam.entity.ElehKnowledgeTagDo
;
import
cn.aibreeze.exam.entity.ElehKnowledgeTagDo
;
import
cn.aibreeze.exam.entity.ElehSessionQaRecordDo
;
import
cn.aibreeze.exam.entity.ElehSessionQaRecordDo
;
import
cn.aibreeze.exam.facade.ExamAppFacade
;
import
cn.aibreeze.exam.mapper.ElehKnowledgeMapper
;
import
cn.aibreeze.exam.mapper.ElehKnowledgeMapper
;
import
cn.aibreeze.exam.mapper.ElehKnowledgeTagMapper
;
import
cn.aibreeze.exam.mapper.ElehKnowledgeTagMapper
;
import
cn.aibreeze.exam.mapper.ElehSessionQaRecordMapper
;
import
cn.aibreeze.exam.mapper.ElehSessionQaRecordMapper
;
...
@@ -43,6 +44,8 @@ public class ExamController {
...
@@ -43,6 +44,8 @@ public class ExamController {
private
final
AliyunNLSFacade
aliyunNLSFacade
;
private
final
AliyunNLSFacade
aliyunNLSFacade
;
private
final
ExamAppFacade
examAppFacade
;
private
static
String
EXAM_REDIS_SESSION_KEY
=
"EXAM_MASTER:%d:%s:%s"
;
private
static
String
EXAM_REDIS_SESSION_KEY
=
"EXAM_MASTER:%d:%s:%s"
;
@GetMapping
(
value
=
"/list"
)
@GetMapping
(
value
=
"/list"
)
...
@@ -211,4 +214,18 @@ public class ExamController {
...
@@ -211,4 +214,18 @@ public class ExamController {
return
ApiResponse
.
ok
(
resultContent
);
return
ApiResponse
.
ok
(
resultContent
);
}
}
@PostMapping
(
value
=
"/run4score"
)
public
ApiResponse
<
String
>
run4Score
(
@RequestParam
(
value
=
"scene"
)
String
scene
,
@RequestParam
(
value
=
"session_id"
)
String
sessionId
,
@RequestParam
(
value
=
"user_id"
)
String
userId
,
@RequestParam
(
value
=
"question"
)
String
question
,
@RequestParam
(
value
=
"answer"
)
String
answer
,
@RequestParam
(
value
=
"user_answer"
)
String
userAnswer
)
{
examAppFacade
.
run4Score
(
scene
,
sessionId
,
userId
,
question
,
answer
,
userAnswer
);
return
ApiResponse
.
ok
(
"ok"
);
}
}
}
src/main/java/cn/aibreeze/exam/facade/ExamAppFacade.java
0 → 100644
View file @
a04704a8
package
cn
.
aibreeze
.
exam
.
facade
;
import
com.alibaba.fastjson2.JSONObject
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.beans.factory.annotation.Value
;
import
org.springframework.http.HttpEntity
;
import
org.springframework.http.HttpHeaders
;
import
org.springframework.http.MediaType
;
import
org.springframework.http.ResponseEntity
;
import
org.springframework.scheduling.annotation.Async
;
import
org.springframework.stereotype.Component
;
import
org.springframework.web.client.RestTemplate
;
import
java.util.HashMap
;
import
java.util.Map
;
@Component
@Slf4j
public
class
ExamAppFacade
{
@Value
(
"${dify.api_base:https://ai-api.tech.breezeai.cn/v1}"
)
private
String
difyBase
;
@Value
(
"${dify.api_key:app-yaoa2lAMGJzB11ZGxd5P4iTQ}"
)
private
String
apiKey
;
private
final
RestTemplate
restTemplate
=
new
RestTemplate
();
@Async
public
void
run4Score
(
String
scene
,
String
sessionId
,
String
userId
,
String
question
,
String
answer
,
String
userAnswer
)
{
Map
<
String
,
String
>
inputs
=
new
HashMap
<>();
inputs
.
put
(
"scene"
,
scene
);
inputs
.
put
(
"question"
,
question
);
inputs
.
put
(
"answer"
,
answer
);
JSONObject
param
=
new
JSONObject
();
param
.
put
(
"query"
,
userAnswer
);
param
.
put
(
"inputs"
,
inputs
);
param
.
put
(
"response_mode"
,
"blocking"
);
param
.
put
(
"conversation_id"
,
sessionId
);
param
.
put
(
"user"
,
userId
);
HttpHeaders
headers
=
new
HttpHeaders
();
headers
.
setContentType
(
MediaType
.
APPLICATION_JSON
);
headers
.
setBearerAuth
(
apiKey
);
HttpEntity
<
String
>
postEntity
=
new
HttpEntity
<>(
param
.
toJSONString
(),
headers
);
ResponseEntity
<
String
>
response
=
restTemplate
.
postForEntity
(
difyBase
+
"/chat-messages"
,
postEntity
,
String
.
class
);
log
.
info
(
"执行结果:"
,
JSONObject
.
parseObject
(
response
.
getBody
()));
}
}
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