AI面试业务实践
1. 需求背景单词学习教练的招聘分为两轮面试,一轮面试是对候选人的英语口语发音,单词词汇量的测试(使用语音评分服务以及自研的词汇量评测方案);二轮面试是对候选人的教师职业素养能力的测试,分为自我介绍和职业素养开放性问答两个环节。 进入二面,会先播放一个单词学习教练的工作内容介绍视频,播放完毕进入自我介绍环节: 页面展示题目“请做一个自我介绍吧。“,并语音播放题目; 候选人点击录音按钮,开始作答,系统开始录音,并展示2 分钟的倒计时; 用户点击作答完成,或者倒计时结束,进入下一个环节; 职业素养问答环节: 职业素养题目分为 4 道题,候选人每回答完成一道题,就进入下一道题; 4 道题目作答完成,展示面试结果; 如果面试未通过,可以重新面试,一共两次机会; 2. 技术方案考虑到成本与用户体验之间的平衡;决定采用语音转文本 + 大语言模型评判的方式来完成二面面试的核心评判逻辑;考虑到代码的可扩展性和维护成本,采用策略模式+模版方法设计模式来组织代码逻辑; 1. 核心评判逻辑时序图sequenceDiagram actor User participant Fro...
如何写好提示词
1. 原则1. 指令需要清晰、具体1. 使用分隔符例如,可以使用```{text}```,或者XML的标签来区分出指令内容和上下文背景内容; 2. 结构化输出可以要求模型以JSON或者HTML等格式内容输出; 3. 给出示例可以给出几个任务完成的结果示例,供模型参考; 4. 预设一些条件检查(可选)让模型执行的关键节点检查是否满足条件,来决定任务的执行路径; 2. 给模型时间去思考1. 列出任务步骤复杂的任务,最好将任务过程分步骤列出来; 2. 指导模型下结论前,自己先计算一次模型做决策之前,让模型自己先思考一遍解决方案,会得到更好的结果,否则模型给出的结论不一定准确; 3. 风险规避1. 模型“幻觉”模型可能编造看似真实的信息(如不存在的产品参数、错误的文献引用)。可在提示词中加入 “基于已知信息回答,若无法确认,明确说明,暂无相关数据”,或要求模型 “引用源文本中的内容作为支撑”,减少无根据的编造; 2. 避免指令冲突提示词中如果有相互矛盾的指令,模型会浪费大量资源去推理调和矛盾,甚至输出错误的结果;提示词撰写完成需要反复检查,确保逻辑一致,可以对指令设置...
联想G480笔记本电脑安装ubuntu22.04.1LTS
1. 安装前准备1.1 笔记本电脑处理 数据无价,切记先将原电脑的重要数据备份好; 笔记本启动时进入bios,将UEFI Boot设置为enable开启; 笔记本磁盘分区改为GPT格式分区; 1.2 准备系统安装U盘 下载系统镜像,最好选择LTS版本,我这里预备安装的是22.04.1LTS,内核版本为5.15,官方将支持到2027年(从22.04.2开始,内核版本就可以开始选装6.1的内核)。 新版本ubuntu镜像可以在https://releases.ubuntu.com/ 下载; 历史版本ubuntu镜像可以在https://old-releases.ubuntu.com/releases/下载; 我这里选择了ubuntu-22.04-live-server-amd64.iso; 下载工具rufus https://rufus.ie/zh,制作启动盘; 选择U盘,选择镜像文件,分区选择GPT,点击开始制作; 2. 开始安装2.1 进入启动 U盘插入笔记本,开机,按F12进入BOOT界面,选择EFI U盘启动盘; 开始启动安装,进入GRUB界面; (可选)如果...
分布式锁全面总结(附Redisson源码解析)
随着企业软件开发中微服务化不断发展,应用分布式部署如今已是家常便饭,而分布式锁更是个老生常谈的技术话题。笔者发现,目前网上关于分布式锁的文章都不够全面。真实生产环境实现分布式锁是有很多重要的细节点。笔者,参考了一系列文章以及公司本身的生产实践,阐述了分布式锁的实际应用中的要点(包含理论分析与代码实现)。 1、什么是分布式锁?为什么要用分布式锁? 服务分布式部署之后,多个实例(Java进程)争抢共享资源(往往这种情况都是非幂等的操作),需要加锁控制,保证同一时间只有一个客户端对共享资源进行操作,保证数据一致。例如,商品秒杀时,没有正确对商品数量加锁进行并发控制的话,可能出现商品超卖。 实现分布式锁需要同时满足四个条件: 互斥,同一时刻只能有一个客户端获取到锁。 不会发生死锁,一个客户端异常导致没有释放锁,其他客户端也要能获取到锁。 解铃还须系铃人,加锁解锁必须是同一客户端,不能误解了别的客户端加的锁。 具有容错性,大多数redis节点正常运行,客户端就能获取锁和解锁。 2、如何用redis来实现分布式锁? 使用redis的setnx(set if not exis...
判断两个日期间差多少个工作日(包含法定假日调休)及某一天是否为工作日(附python代码)
项目中账单每月扣款要考虑到工作日和休息日,故需要判断某一天是否为工作日或休息日,以及两个出账日之间的工作日间隔。而每年假日办公布的假期是会变化的,通过下面的代码可以灵活获取每年的工作日休息日情况,可以直接使用,或者将数据存入各类数据库以供查询。 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990#!usr/bin/python# _*_coding:utf-8_*_import syssys.path.append("..")from datetime import datetime, timedeltafrom dateutil import rrulefrom dateutil.parser import parse# 法定节假日是工作日的日期记录下来, 休息日是工作...