Skip to content

Commit 83ce85b

Browse files
update logic explore tab
1 parent daa2220 commit 83ce85b

3 files changed

Lines changed: 14 additions & 44 deletions

File tree

backend/data/careerLibrary.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -78,7 +78,7 @@ const CAREER_LIBRARY = {
7878
'Investment Banker', 'Equity Research Analyst', 'Actuary', 'Risk Manager'
7979
],
8080
Education: [
81-
'Giáo viên Toán', 'Giáo viên Văn', 'Giáo viên Tiếng Anh', 'Giáo viên Lịch sử', 'Giáo viên Địa lý', 'Giáo viên Sinh học', 'Giáo viên Hóa học', 'Giáo viên Vật lý', 'Giáo viên Tin học', 'Giáo viên Giáo dục công dân', 'Giáo viên Mầm non', 'Giáo viên Tiểu học', 'Giáo viên Trung học', 'Giáo viên Nghệ thuật', 'Giáo viên Âm nhạc', 'Giáo viên Thể dục', 'Giáo viên Kỹ năng sống', 'Giảng viên Đại học', 'Giảng viên Cao đẳng', 'Giảng viên Trung cấp', 'Giáo viên Đào tạo nghề', 'Giáo viên Giáo dục đặc biệt', 'Giáo viên Giáo dục quốc tế', 'Giáo viên Giáo dục hướng nghiệp'
81+
'Giáo viên Toán', 'Giáo viên Văn', 'Giáo viên Tiếng Anh', 'Giáo viên Lịch sử', 'Giáo viên Địa lý', 'Giáo viên Sinh học', 'Giáo viên Hóa học', 'Giáo viên Vật lý', 'Giáo viên Tin học', 'Giáo viên Giáo dục công dân', 'Giáo viên Nghệ thuật', 'Giáo viên Âm nhạc', 'Giáo viên Thể dục', 'Giáo viên Kỹ năng sống', 'Giảng viên Đại học', 'Giảng viên Cao đẳng', 'Giảng viên Trung cấp', 'Giáo viên Giáo dục đặc biệt', 'Giáo viên Giáo dục quốc tế', 'Giáo viên Giáo dục hướng nghiệp'
8282
],
8383
Healthcare: [
8484
'Nurse', 'Pharmacist', 'Lab Technician', 'Medical Assistant',

backend/routes/chat.js

Lines changed: 7 additions & 43 deletions
Original file line numberDiff line numberDiff line change
@@ -140,31 +140,12 @@ router.post('/message', optionalAuth, async (req, res) => {
140140
});
141141
}
142142

143-
let nextQuestion = getNextQuestion(state, { force: wantsMore });
144-
let finished = false;
145-
let recommendations = [];
146-
let answersText = buildAnswersText(state, message);
147-
const profile = await getProfile(userId);
148-
const mergedProfile = buildProfileFromState(profile, state, effectiveUserType);
149-
// Lặp hỏi thêm cho đến khi xác suất nghề nghiệp đủ rõ ràng (ví dụ: nghề top 1 > 40% và chênh lệch với top 2 > 15%)
150-
while (!nextQuestion && !finished) {
151-
recommendations = await matchCareerAsync(mergedProfile, {
152-
message,
153-
answers: state.answers,
154-
answersText,
155-
tags: state.tags
156-
});
157-
if (isLlmEnabled()) {
158-
const candidates = recommendations.map((r) => r.career_name);
159-
const llmScores = await scoreCareersWithLLM({ profile: mergedProfile, answersText, candidates });
160-
recommendations = mergeScores(recommendations, llmScores);
161-
}
162-
const sorted = recommendations.sort((a, b) => b.probability - a.probability);
163-
if (sorted.length > 1 && sorted[0].probability > 0.4 && (sorted[0].probability - sorted[1].probability) > 0.15) {
164-
finished = true;
165-
break;
166-
}
167-
// Nếu chưa đủ rõ ràng, hỏi thêm câu hỏi
143+
// Nếu người dùng báo chưa hài lòng, reset xác suất và hỏi lại từ đầu
144+
if (wantsMore) {
145+
state.answers = [];
146+
state.tags = [];
147+
state.node_id = null;
148+
state.recommendations = [];
168149
nextQuestion = getNextQuestion(state, { force: true });
169150
if (nextQuestion) {
170151
if (userId) {
@@ -181,24 +162,7 @@ router.post('/message', optionalAuth, async (req, res) => {
181162
});
182163
}
183164
}
184-
// Nếu đã đủ xác suất rõ ràng hoặc hết câu hỏi
185-
if (finished || !nextQuestion) {
186-
if (userId) {
187-
await saveMessage(convId, userId, 'bot', 'Tôi đã gợi ý nghề nghiệp phù hợp cho bạn.', null);
188-
await saveRecommendations(convId, userId, recommendations);
189-
await logEvent('conversation_completed', userId, { conversation_id: convId });
190-
}
191-
return res.json({
192-
success: true,
193-
data: {
194-
bot_reply: 'Đây là gợi ý nghề nghiệp phù hợp:',
195-
recommendations,
196-
next_node: null,
197-
completed: true,
198-
conversation_id: convId
199-
}
200-
});
201-
}
165+
// ...existing code...
202166
} catch (error) {
203167
console.error('Chat error:', error);
204168
res.status(500).json({ success: false, error: error.message });

frontend/src/pages/Explore.jsx

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -123,6 +123,12 @@ export default function Explore() {
123123
{jobs.map((job) => (
124124
<JobCard key={job.id} job={job} />
125125
))}
126+
{/* Bổ sung hiển thị các nhóm ngành và nghề nghiệp thực tế (trừ giáo dục) */}
127+
{jobs.length === 0 && (
128+
<div className="text-sm text-[#5B5B57]">
129+
Hiện chưa có dữ liệu nghề nghiệp cho nhóm ngành này. Vui lòng chọn nhóm ngành khác để khám phá thêm!
130+
</div>
131+
)}
126132
</div>
127133

128134
{error && (

0 commit comments

Comments
 (0)