实现思路
每问一个问题,将保存,每回复一条语音,将语音转换为文字,存储起来,最后面试结束,将完整的面试记录发给大模型,让他进行总结。
1.记录面试问题
定义一个变量memory
每回答一次,记录一次问题
askQuestion() {
if (this.count === 6) {
this.reply("此次面试结束,请等待生成回馈总结")
console.log(this.memory)
request.post("/conclusion", {
memory: this.memory
}).then(res => {
this.reply(res.result)
})
this.count = 0
this.memory = ""
} else {
// console.log("返回文字内容:", this.question);
console.log(this.count)
let cou = this.count
this.reply(this.question[cou])
this.speakText(this.question[this.count])
this.memory += this.question[cou]
this.count += 1
}
2.回答记录
流程:上传后端whisper语音转文字,在记录下来
upload(blob) {
console.log("语音上传服务器:");
this.blobToDataURI(blob, (result) => {
request.post('/upload', {
file: result.split(",")[1],
format: "wav",
len: atob(result.split(",")[1]).length,
})
.then((res) => {
console.log(res)
if (res.code === 200) {
this.memory += "回答:" + res.result + "\n"
console.log(res.result)
}
})
.catch((err) => {
console.log(err);
});
});
},
3.面试回馈
当提问次数查过我们设定的时候,触发反馈,将记录传给后端,后端调用大模型接口,实现反馈
@app.route('/conclusion', methods=['POST'])
def conclude():
data = request.json.get('memory')
print("记录")
print(data)
question = f'''你是面试官,刚刚对我进行了面试
\n\n
这是面试记录,包括面试的问题和我的回答{data}
\n\n
请你评价我的面试表现,并针对每一个问题提出建议'''
result = Turing(question)
return jsonify({
'code': 200,
'result': result
})