大家好,我是八哥。如今 AI 已经渗透到了我们的生活、求职、工作等方方面面。就拿求职来说,今年的美团校招,已经用上了 AI 来当面试官,降本增效。
我自己也当过面试官,其实对 AI 面试官还是挺好奇的。毕竟每个候选人的情况不同,想要全方面考察一个人的水平,一定要针对其简历和具体情况定制化提问。AI 能做好这点么?能当一个合格的面试官么?
此外,对于大家来说,可能更关心的是:如何战胜 AI 面试官?
嘿嘿,当然要用魔法打败魔法!我们也可以用 AI 来准备面试呀~
具体怎么做呢?这篇文章鱼皮就带大家搞一个 AI 备战面试小助手出来!看到结尾还有福利哦~
选择 AI 模型
首先我们要选择一个优质的 AI 大模型,AI 面试官智商的高低就取决于它了。
我作为一名程序员 + 创业者,也带团队开发过很多 AI 应用,在选择 AI 大模型的时候,最关注的是 3 点:理解能力、生成速度和成本。也就是 3 个字:准、快、省。
单论理解能力,OpenAI 的 o1-preview、o1-mini 处于领先地位,但不足之处在于使用门槛较高、成本较高。大家可能不知道,其实我们国产 AI 大模型已经有了显著进步,比如今年 9 月最新发布的智谱 GLM-4-Plus,作为其最强旗舰模型,在逻辑推理、编程算法、长文本输出方面都有质的突破。
在最新的大模型评测中,GLM-4-Plus 排名第 3,打破了国外模型对前 3 名的垄断!虽然跟 OpenAI 大模型对比还有一定差距,但已经强于其他国产模型,进入世界第一梯队。
让我们来试试看,打开智谱 AI 开放平台(bigmodel.cn),进入体验中心,就可以选择模型进行测试了。我现在测试新模型效果时,都会先搜一下自己。结果 GLM-4-Plus AI 的输出让我特么直接震惊了!我 8 月底刚干的事情就被它 “和盘托出” 了,这么与时俱进么?
其背后应该是运用了网页检索工具,从网上先搜集了一波我的信息再进行整理,准确度已经很不错了,我觉得已经可以当我的日记本了。说不定 AI 再进化进化,就能当我脑袋上的摄像头了。
除了准确度之外,GLM-4-Plus 模型的生成速度也很不错,像我用 OpenAI GPT 的时候偶尔还会卡顿和生成失败,国内的明显要稳定许多。
当然,对于我们大多数开发者来说,最最最最最关注的,肯定还是成本。效果再好,用不起也白搭!
GLM-4-Plus 模型不仅更准更快,而且相比以前的版本,价格直接优惠了 50%!而且国庆月期间,智谱 bigmodel.cn 为新老用户准备了「百万用户每人赠送 1 亿 tokens」+「1 - 5 折 API 调用优惠」限时活动。
好了,我心动了,我直接跟我们团队的同学说:薅它!
体验 AI 面试
选择完 AI 模型后,我们先不写代码,用智谱 AI 提供的体验中心来模拟下 AI 面试官。
在右侧可以自主设置 AI Prompt,改变 AI 的行为,比如:你是一位面试官,现在要为公司招募 Java 程序员,我会给你候选人的情况介绍,请帮我生成 10 道面试题进行考察。
然后就可以跟 AI 对话了,还可以上传简历文件:
AI 回答时,会解析我的简历文件作为上下文。你别说,的确是围绕我的简历问的,技术、项目、实习经历、综合能力等等,考察的还真全面!
tnnd,AI 面试官你有点儿东西啊!但是公司能用 AI 来考察候选人,那我们一样可以用 AI 来面试呀!
试试看,来一道经典程序员面试题:MySQL 有哪些存储引擎?分别有什么优缺点?
先设置个系统 Prompt:你是一位求职者,现在要面试某公司的 Java 程序员岗位,我会给你一些面试题,请帮我生成专业的回答。
AI 给出的回答非常专业,如图:
但一般面试的时候,我们不会按照这种方式进行回答,有些 “过于专业” 了。所以可以换一种系统 Prompt。比如:你是一位求职者,现在要面试某公司的 Java 程序员岗位,我会给你一些面试题,请使用第一人称进行回答,一段话就足够,不用过于详细。
嘿,回答的也很不错,关键是这次 AI 的回答就更像人类了:
但是在面试时使用 AI 的风险还是很大的,鱼皮也不建议大家真的这么做,即使靠作弊通过了面试,进了公司估计就原形毕露了。
但是我有一个大胆的想法,能不能把 AI 面试官 + AI 求职者结合,先让 AI 面试官帮我分析简历并出题,再让 AI 求职者帮我给出标准答案呢?这样我不就知道面试官可能会考我什么、而且知道怎么回答了么?相当于参与了一场有指导的模拟面试,感觉也是个准备面试的好方法。
为了实现这个 “备战面试小助手”,我们只使用智谱 AI 开放平台的体验中心是无法满足要求的。开放平台还提供了 API 调用能力,我们可以自主编写程序来实现。
开发备战面试小助手
1、接入 AI
要在项目中使用 AI 能力其实很简单,可以直接使用官方提供的 SDK(支持 Java 和 Python),其他编程语言可以通过 Http 请求发起调用。
对于 Maven 管理的 Java 项目,需要引入下列依赖:
<dependency>
<groupId>cn.bigmodel.openapi</groupId>
<artifactId>oapi-java-sdk</artifactId>
<version>release-V4-2.3.0</version>
</dependency>
我们可以先写一个简单的 Demo,测试 AI 调用。
进入智谱 AI 开放平台的 API 密钥管理页面,新建并复制一个 API Key,注意不要泄露:
有了密钥后,在代码中初始化客户端,用于调用 AI 能力:
public static final String API_SECRET_KEY = "{你的 ApiSecretKey}";
public static ClientV4 client = new ClientV4.Builder(API_SECRET_KEY)
.build();
编写一个方法,向 AI 发送 “你好”,并输出 AI 的返回结果:
private static void testInvoke() {
// 发送给 AI 的消息
List<ChatMessage> messages = new ArrayList<>();
ChatMessage chatMessage = new ChatMessage(ChatMessageRole.USER.value(), "你好");
messages.add(chatMessage);
// 构造请求
ChatCompletionRequest chatCompletionRequest = ChatCompletionRequest.builder()
.model("glm-4-plus") // 使用最新的大模型
.stream(Boolean.FALSE)
.invokeMethod(Constants.invokeMethod)
.messages(messages)
.build();
// 发送请求,获取响应
ModelApiResponse invokeModelApiResp = client.invokeModelApi(chatCompletionRequest);
System.out.println("model output:" + invokeModelApiResp);
}
组合上述代码并执行,能成功看到 AI 的回复:
为了更方便地在项目中使用 AI,我们可以编写一个更通用的方法,实现调用 AI 并获取结果。代码如下:
public static String invoke(String systemMessage, String userMessage) {
// 发送给 AI 的消息
List<ChatMessage> messages = new ArrayList<>();
ChatMessage systemChatMessage = new ChatMessage(ChatMessageRole.SYSTEM.value(), systemMessage);
messages.add(systemChatMessage);
ChatMessage userChatMessage = new ChatMessage(ChatMessageRole.USER.value(), userMessage);
messages.add(userChatMessage);
// 构造请求
ChatCompletionRequest chatCompletionRequest = ChatCompletionRequest.builder()
.model("glm-4-plus") // 使用最新的大模型
.stream(Boolean.FALSE)
.invokeMethod(Constants.invokeMethod)
.messages(messages)
.build();
// 发送请求,获取响应
try {
ModelApiResponse invokeModelApiResp = client.invokeModelApi(chatCompletionRequest);
// 从响应对象中获取 AI 输出的文本
return invokeModelApiResp.getData().getChoices().get(0).getMessage().getContent().toString();
} catch (Exception e) {
e.printStackTrace();
return "";
}
}
2、实现流程
让我们先来梳理一下实现流程:
- 提供求职者的简历内容,输入给 AI 面试官,让其分析并生成面试问题
- 将生成的问题逐一输入给 AI 求职者,让其给出标准答案
- 对 AI 生成的结果进行组合整理
下面依次编码实现上述流程。
3、助手开发
1)开发 AI 面试官
先编写 AI 面试官的系统 Prompt,可以先利用智谱 AI 体验中心进行调试。示例 Prompt 如下:
你是一位经验丰富的 AI 面试官,下面我会给你一份求职者的简历,请分析简历并提出相关的面试问题。
要求输出格式如下,每个问题一行,此外不要有任何多余的内容:
{序号}. {面试问题}
编写代码,将系统 Prompt 和用户简历(用户 Prompt)作为参数调用 AI,并输出结果:
String userResume = "Java程序员,工作经验3年,熟悉MySQL、Redis,有过电商项目经历";
// AI 面试官
String AI_INTERVIEWER_SYSTEM_PROMPT = "你是一位经验丰富的 AI 面试官,下面我会给你一份求职者的简历,请分析简历并提出相关的面试问题。\n" +
"要求输出格式如下,每个问题一行,此外不要有任何多余的内容:\n" +
"{序号}. {面试问题} ";
String aiInterviewerReply = invoke(AI_INTERVIEWER_SYSTEM_PROMPT, userResume);
System.out.println(aiInterviewerReply);
当然,你完全可以把用户简历替换为更复杂的内容,比如解析一个 PDF 文档。
执行上述程序,可以看到 AI 生成了符合我们格式要求的数据:
可以按照换行符对字符串进行拆分,得到问题数组:
if (StrUtil.isBlank(aiInterviewerReply)) {
return;
}
// 切分字符串为问题数组
String[] questions = aiInterviewerReply.split("\n");
通过打断点进行调试,效果如图:
经过测试,使用智谱的 GLM-4-PLus 模型,能够很稳定地生成面试问题。当然,AI 输出结果的稳定性也和具体的 Prompt 有关,所以建议做好异常处理来应对特殊情况。
2)开发 AI 求职者
先编写 AI 求职者的系统 Prompt,要求让它用第一人称简略回答,会更真实一些。示例如下:
你是一位求职者,你要结合自己的个人简历,清晰准确地回答面试官提出的问题。
要求使用第一人称进行回答,一段话就足够,不用过于详细。
需要遍历面试问题列表,每个问题都要调用一次 AI 求职者,需要将用户简历和问题作为用户 Prompt 来调用 AI。代码如下:
// AI 求职者
String AI_APPLICANT_SYSTEM_PROMPT = "你是一位求职者,你要结合自己的个人简历,清晰准确地回答面试官提出的问题。\n" +
"要求使用第一人称进行回答,一段话就足够,不用过于详细。";
for (String question : questions) {
String userPrompt = String.format("---个人简历---\n%s\n---面试问题---\n%s", userResume, question);
String aiApplicantReply = invoke(AI_APPLICANT_SYSTEM_PROMPT, userPrompt);
System.out.println(aiApplicantReply);
}
通过打断点进行调试,给出的答案还是挺不错的:
3)组合整理 AI 生成的结果
可以利用 LinkedHashMap 结构,按顺序保存每一个问题和答案。代码如下:
// 按需保存问题和答案
Map<String, String> questionAnswerMap = new LinkedHashMap<>();
for (String question : questions) {
String userPrompt = String.format("---个人简历---\n%s\n---面试问题---\n%s", userResume, question);
String aiApplicantReply = invoke(AI_APPLICANT_SYSTEM_PROMPT, userPrompt);
questionAnswerMap.put(question, aiApplicantReply);
}
System.out.println(questionAnswerMap);
通过打断点进行调试,现在我们就拿到了自己的简历对应的面试题和答案啦!
以上更多的是演示业务流程,大家可以根据自己的需求编写更详细的 Prompt,输出的结果质量也会更高。
智谱 AI 开放平台的官方文档也分享了 Prompt 编写技巧,开发 AI 应用之前建议完整阅读一遍:
总结
以上就是本期分享。喜迎国庆,智谱也发了个大福利:新用户注册后即可获赠 1 亿额度 Tokens 资源包!拿来开发 AI 应用妥妥的~
如何学习AI大模型 ?
“最先掌握AI的人,将会比较晚掌握AI的人有竞争优势”。
这句话,放在计算机、互联网、移动互联网的开局时期,都是一样的道理。
我在一线互联网企业工作十余年里,指导过不少同行后辈。帮助很多人得到了学习和成长。
我意识到有很多经验和知识值得分享给大家,故此将并将重要的AI大模型资料包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来。【保证100%免费】🆓
对于0基础小白入门:
如果你是零基础小白,想快速入门大模型是可以考虑的。
一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。
😝有需要的小伙伴,可以VX扫描下方二维码免费领取🆓
👉1.大模型入门学习思维导图👈
要学习一门新的技术,作为新手一定要先学习成长路线图,方向不对,努力白费。
对于从来没有接触过AI大模型的同学,我们帮你准备了详细的学习成长路线图&学习规划。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。(全套教程文末领取哈)
👉2.AGI大模型配套视频👈
很多朋友都不喜欢晦涩的文字,我也为大家准备了视频教程,每个章节都是当前板块的精华浓缩。
👉3.大模型实际应用报告合集👈
这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。(全套教程文末领取哈)
👉4.大模型落地应用案例PPT👈
光学理论是没用的,要学会跟着一起做,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。(全套教程文末领取哈)
👉5.大模型经典学习电子书👈
随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。(全套教程文末领取哈)
👉6.大模型面试题&答案👈
截至目前大模型已经超过200个,在大模型纵横的时代,不仅大模型技术越来越卷,就连大模型相关的岗位和面试也开始越来越卷了。为了让大家更容易上车大模型算法赛道,我总结了大模型常考的面试题。(全套教程文末领取哈)
👉学会后的收获:👈
• 基于大模型全栈工程实现(前端、后端、产品经理、设计、数据分析等),通过这门课可获得不同能力;
• 能够利用大模型解决相关实际项目需求: 大数据时代,越来越多的企业和机构需要处理海量数据,利用大模型技术可以更好地处理这些数据,提高数据分析和决策的准确性。因此,掌握大模型应用开发技能,可以让程序员更好地应对实际项目需求;
• 基于大模型和企业数据AI应用开发,实现大模型理论、掌握GPU算力、硬件、LangChain开发框架和项目实战技能, 学会Fine-tuning垂直训练大模型(数据准备、数据蒸馏、大模型部署)一站式掌握;
• 能够完成时下热门大模型垂直领域模型训练能力,提高程序员的编码能力: 大模型应用开发需要掌握机器学习算法、深度学习
这份完整版的 AI 大模型学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费
】
😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓