功能实现
个性化职业评价
- 微调后的模型根据用户输入的 MBTI、星座、性别、专业等信息,生成职业评价和建议。
- 输入用户信息: 用户在前端界面输入自己的 MBTI、星座、性别、专业等信息。
- 调用模型服务: 前端将用户信息发送到后端的微调模型,获取职业评价和建议。
- 生成反馈: 模型基于训练中学习到的知识,生成职业建议并提供详细的说明。
- API 调用
function getCareerAdvice(userInfo) {
fetch('http://<your_server_ip>:5000/evaluate', {
method: 'POST',
headers: {
'Content-Type': 'application/json'
},
body: JSON.stringify(userInfo)
})
.then(response => response.json())
.then(data => {
console.log('Career Advice:', data);
displayAdvice(data);
})
.catch(error => {
console.error('Error:', error);
});
}
前端展示
- 在前端页面中显示模型生成的职业评价和建议:
<div id="career-advice">
<!-- 职业建议将显示在这里 -->
</div>
<script>
function displayAdvice(data) {
const adviceElement = document.getElementById('career-advice');
adviceElement.innerHTML = `
<h3>职业建议: ${data.advice}</h3>
<p>详细说明: ${data.details}</p>
`;
}
</script>
- 系统集成
- 前端集成
- 在前端项目中添加输入框和按钮,用户可以提交个人信息并查看职业建议。
<form id="user-info-form">
<label for="mbti">MBTI:</label>
<input type="text" id="mbti" name="mbti">
<label for="star-sign">星座:</label>
<input type="text" id="star-sign" name="star-sign">
<label for="gender">性别:</label>
<input type="text" id="gender" name="gender">
<label for="major">专业:</label>
<input type="text" id="major" name="major">
<button type="button" id="submit-info-button">获取职业建议</button>
</form>
<script>
document.getElementById('submit-info-button').addEventListener('click', function() {
const userInfo = {
mbti: document.getElementById('mbti').value,
star_sign: document.getElementById('star-sign').value,
gender: document.getElementById('gender').value,
major: document.getElementById('major').value
};
getCareerAdvice(userInfo);
});
</script>
后端集成
- 在阿里云服务器上部署微调后的模型服务,并提供 API 接口。
from flask import Flask, request, jsonify
from transformers import AutoModelForSequenceClassification, AutoTokenizer
app = Flask(__name__)
model = AutoModelForSequenceClassification.from_pretrained('./path_to_finetuned_model')
tokenizer = AutoTokenizer.from_pretrained('./path_to_finetuned_model')
@app.route('/evaluate', methods=['POST'])
def evaluate():
data = request.json
user_info = f"MBTI: {data['mbti']}, 星座: {data['star_sign']}, 性别: {data['gender']}, 专业: {data['major']}"
inputs = tokenizer(user_info, return_tensors='pt')
outputs = model(**inputs)
advice = "你适合从事软件开发、项目管理等工作。"
details = "根据你的 MBTI 类型、星座特征、性别和专业背景,这些职业方向与您的个性和兴趣匹配度较高。"
return jsonify({'advice': advice, 'details': details})
if __name__ == '__main__':
app.run(host='0.0.0.0', port=5000)
测试与优化
- 测试模型服务 在浏览器中访问 http://<your_server_ip>:5000,确保模型服务正常工作。
- 测试前端集成 点击“获取职业建议”按钮,输入用户信息,检查是否可以正确获得职业评价和建议。
- 示例测试场景 直接访问:
验证是否能打开模型服务页面,并观察职业建议是否准确。 API 调用:
输入示例信息,如“MBTI: INTJ,星座: 天蝎座,性别: 男,专业: 计算机科学”,检查模型生成的职业建议是否合理。 - 模型优化 根据测试结果进行调整:
增加数据集规模: 扩展数据集的覆盖范围,提升模型的泛化能力。 调整超参数: 根据模型表现,优化学习率、批量大小等超参数。 改进数据质量:
添加更多的标准职业建议和详细解释,提升模型的输出质量