大家好,我是小林。
最近收到读者反馈,在面试某个公司时,想要针对性地看该公司的面经比较困难,如果有快速 get 到公司面试重点的方法就好了。
于是,我想到一个好主意,我们何不把面经库喂给AI,这样就可以指定一个公司看面试题了!
试想一下,我下星期要面试腾讯,我直接问AI,帮我梳理腾讯的面试重点知识,那么就可以根据AI输出的重点知识靶向学习一波,这下面试需要准备的知识再也不用靠猜了!
这样复习到的知识,被面试问到的概率就会很高,这样的学习投入产出比不要太高了。
那说干就干!
技术选型
当然,我们在开发一个项目的时候,肯定首先要考虑技术选型的事情,技术选型重要的是基于场景来考虑, 比如实用性、开发成本、费用成本等等。
那么,做AI工具前,我们先来调研用哪个大语言模型。
那问题来了,国内外那么多大模型,到底哪个才是好用的呢?
于是我问了一位身处大模型行业的朋友,而他向我推荐了智谱旗下,据说性能十分强劲的GLM-4-Plus。
要说最近智谱也是动作频频啊,不但更新了基座大模型 GLM-4-Plus,还以此为契机,将旗下一系列全模型家族都上线到了bigmodel.cn。
而在 SuperBench 9 月综合榜最新的大模型评测中,国内模型 GLM-4-Plus 在本次评测中排名全球第三(国内第一),打破了国外模型对前三名的垄断。
从图中我们可以看到,国内模型在多个方面都有明显提升,包括对齐、智能体和数理逻辑等。
虽然和OpenAI还有一些差距,但也是遥遥领先其他国产大模型了!因为网络原因,我们调用OpenAI的模型不太方便,再加上国外模型对中文的适配度普遍较差。
最终我决定选择我们国产的模型GLM-4-Plus来做AI面试题知识库!
那问题来了,GLM-4-Plus是国内哪家的大模型的呢?
我调研了一下,发现是智谱团队全自研的大模型,智谱是由清华大学计算机系技术成果转化而来的公司。
在这次最新的国内外大模型的评测中,也能明显看到GLM-4-Plus的基本素质过硬,明显强于其他国产模型,进入世界第一梯队。
除此之外,我还想看看他的价格如何。
可以,零帧起手就是免费的1亿tokens,做个小应用完全够用了!
常见构建智能体的操作(文生文、文生图、文生视频、微调、知识库等),在智谱的文档里也写的相当清楚,对我们程序员的眼睛很友好!
接着,我们再看看GLM-4-Plus,到底有多厉害?能解决我的需求吗?
先来做个简单测试:「9.9 和 9.11,谁比较大?」,别看这个问题简单,之前有不少大模型都在这个简单的数学问题上翻车了。
我们,来看看智谱的GLM-4-Plus模型的回答。
很聪明,GLM-4-Plus模型回答是正确的,有意思的是,在后面也小小吐槽了其他大模型在这类简单的问题却出现了错误。
既然针对GLM-4-Plus模型的小测试,它挑战成功了,我们来继续测试测试GLM-4-Plus模型更多的能力。
文章总结的能力
面试解答的能力
最后,我把我整理的面经库交给模型,手把手教大家如何写一个可以指定公司的面试题库机器人,面试对应公司时,我们就能针对性地训练了!
GLM-4-Plus:文章总结
我在公众号已经分享了 100 多篇的互联网后端开发的面经,累计起来也有 100 万字了,其实这也是一个庞大的知识库了,但是短期着急面试的同学,肯定也看不完。
如果你突然收到了字节的面试,想要快速复习字节常考的知识点,我教大家一个高效的复习方法!
你可以从《互联网中大后端开发的面经》中找到我发布过的字节面经文章,然后把文章保存到本地文件交给了智谱AI BigModel开放平台的GLM-4-Plus模型来梳理文章的内容。
比如,我挑选了一篇字节的面经,上传之后,GLM-4-Plus会把重点内容的知识进行了分类,并且还把算法题的 leetcode 编号写出来,也方便我们可以去 leetcode 去练习这个算法题。
接下来,你可以针对不熟悉的内容进一步去学习。
比如,我跟他说「我对 RPC 与 HTTP 的区别不是很懂,请你帮我解释一下」,GLM-4-Plus模型是很认真回答了这个问题,而且罗列的也很全面。
GLM-4-Plus:面试解答
大家出去面试的时候,最好面试完之后,要把问题整理一下,并且要针对每一个问题进行复盘,这样你的成长才会比较快
为了更高效的对自己的面经进行复盘,我们可以把面试问题直接上传给GLM-4-Plus模型,让他帮我们整理!
比如,我这里找了一个同学的互联网中厂的Java后端面经,把内容保存为文件。
接着,直接上传给GLM-4-Plus模型,让它给出回答,不到几秒的时间,GLM-4-Plus模型就把所有问题的回答都总结出来了:
如果你想针对某一个问题,想具体详细的进一步学习,你可以继续追问。
比如,我让GLM-4-Plus模型帮我梳理HashMap 梳理 jdk1.7 版本和 1.8 版本的区别,一下子就给出更详细且清晰的回答了。
通过这种方式,就可以非常高效的复盘和整理自己的面经了,如果想要进一步深入某个面试题,多向GLM-4-Plus模型追问几句就可以,简单又高效!
GLM-4-Plus:针对公司的面试题库
通过文章总结,我们可以总结一篇面经文章的内容。可是,我们在准备某个公司面试时,一篇文章显然是不够的,而单纯和AI对话也不能容纳太多的上下文。
那么如果我想要制作一个海纳百川的题库,然后根据指定公司得到对应的面试题和解答呢?答案是:构建一个面经知识库!
我们只需要完成以下几步:
创建自己的API key
创建知识库:上传所有的面经
训练面试题大模型
问答:面试哪个公司就唤起哪个公司的“面试官”
创建自己的API key
调用GLM-4-Plus 模型接口调用非常简单,官方都已经给出代码示例了,只需要复制代码示例,然后把代码示例中的API密钥改成你自己的,就完事了,极大缩减了开发的周期。
首先,创建一个自己的API key。而且,完全不用担心token问题!智谱先送 1 亿Tokens:
老用户献上大礼:根据用户在9月份用量情况,赠送额度2000万到 1亿tokens的tokens资源包。
新用户巅峰起步:每位新注册用户,注册后即可获赠 1亿额度Tokens资源包。
接着,在代码里初始化client:
private static final String API_SECRET_KEY = "此处替换为你的API key";
private static final ClientV4 client = new ClientV4.Builder(API_SECRET_KEY)
.networkConfig(60, 60, 60, 60, TimeUnit.SECONDS)
.build();
创建知识库
新建一个知识库,上传各个公司的面经(这里我就上传了我整理的面经文章)。
注意,我们可以根据文章格式,配置文档类型为文章知识、问答类知识或自定义知识。
训练面试题大模型
我们设计两个角色:AI面试官和AI面试者。
AI面试官:根据我们指定的公司,从知识库找到问题提问。(此时你可以根据问题试试自己能不能答得出来!)
AI面试者:根据知识库的解答,总结并润色成“人话”。(此时你可以对比看看自己刚才回答得怎么样)
(1)我们先设计好他们各自的Prompt:
private static final String AI_INTERVIEWER_SYSTEM_PROMPT =
"从知识库中找属于{{用户给出的公司名称}}的后端开发面试题,用于向面试者提问,找不到就用自身知识提问并且告诉用户该信息不是来自文档。n" +
"如果用户没有给出公司名称,请从知识库中随机找面试问题。n" +
"要求:(1)只需要提出问题,绝对不要回答给出的问题。(2)至少给出5个问题 (3)不要直接照搬知识库内容,请将找到的内容润色成面试问题(4)按照{序号}.{面试题}的格式输出";
private static final String AI_APPLICANT_SYSTEM_PROMPT =
"你是一位求职者,你要结合知识库,清晰准确地回答面试官提出的问题。n" +
"要求:(1)优先搜索知识库答案 (2)找到答案后,润色成口语化表达 (3)使用第一人称进行回答,回答不超过200字。";
(2)第二步,我们包装一个请求函数,传入上下文(之前发过的消息)、配置知识库工具等。话不多说,直接看代码:
public static String invoke(String systemMessage, String userMessage) {
// 1. 这里的作用是收集上下文,让AI根据我们给出的上下文继续推导,也可以把入参直接改为List<ChatMessage> context
List<ChatMessage> messages = Arrays.asList(
new ChatMessage(ChatMessageRole.SYSTEM.value(), systemMessage),
new ChatMessage(ChatMessageRole.USER.value(), userMessage)
);
// 2. 配置知识库工具
List<ChatTool> tools = Collections.singletonList(createKnowledgeChatTool());
// 3. 构建请求
ChatCompletionRequest chatCompletionRequest = ChatCompletionRequest.builder()
.model("glm-4-long") // 使用最新的大模型
.stream(false) // 不使用流式输出
.invokeMethod(Constants.invokeMethod)
.messages(messages) // 已知上下文
.tools(tools) // 其他工具:网络搜索、知识库、自定义函数等
.build();
try {
// 4. 发起请求,如果想到达到GPT那种“打字”效果,可以转换为流式输出(SSE、Websocket)
ModelApiResponse invokeModelApiResp = client.invokeModelApi(chatCompletionRequest);
return (String) Optional.ofNullable(invokeModelApiResp)
.map(ModelApiResponse::getData)
.map(data -> data.getChoices().get(0).getMessage().getContent())
.orElse("");
} catch (Exception e) {
System.err.println("调用AI失败: " + e.getMessage());
return "";
}
}
private static ChatTool createKnowledgeChatTool() {
ChatTool tool = new ChatTool();
tool.setType(ChatToolType.RETRIEVAL.value()); // 规定工具类型为搜索知识库
Retrieval retrieval = new Retrieval();
retrieval.setKnowledge_id(KNOWLEDGE_ID); // 指定知识库ID
tool.setRetrieval(retrieval);
return tool;
}
(3)搭建根据Prompt和用户输入得到回答的机器人
AI面试官:输入为面试官Prompt+公司名,让AI根据知识库调出对应公司的面试题
AI面试者:输入为面试者Prompt+刚才面试官提出的问题,让AI根据知识库的解答,回答问题
这是测试函数的代码:
public static void main(String[] args) {
String company = "字节";
String aiInterviewerReply = invoke(AI_INTERVIEWER_SYSTEM_PROMPT, company);
if (StringUtils.isEmpty(aiInterviewerReply)) {
return;
}
// 切分字符串为问题数组
List<String> questions = Arrays.asList(aiInterviewerReply.split("n"));
// 按需保存问题和答案
Map<String, String> questionAnswerMap = new LinkedHashMap<>();
questions.forEach(question -> {
String userPrompt = String.format("---公司名---n%sn---面试问题---n%s", company, question);
String aiApplicantReply = invoke(AI_APPLICANT_SYSTEM_PROMPT, userPrompt);
questionAnswerMap.put(question, aiApplicantReply);
});
// 打印结果
printResults(company, questionAnswerMap);
}
private static void printResults(String company, Map<String, String> questionAnswerMap) {
System.out.println("****** " + company + " ******");
questionAnswerMap.forEach((question, answer) -> {
System.out.println("============================");
System.out.println(question);
System.out.println(answer);
});
}
(4)主体函数完成了,接下来我们来测试一下!也顺便看看你能不能答出来吧!
字节
阿里
腾讯
美团
最后
怎么样?
通过我前面测试的情况,大家肯定也是能明显感觉到 GLM-4-Plus 在语言理解、长文本处理、逻辑推理能力还是非常强大的。
咱们的算法和面试题方面的问题统统都能被 GLM-4-Plus 模型轻松解决,妥妥就是我们学习编程和面试的好帮手。
而且GLM-4-Plus 模型提供的SDK,也可以很简单就上手了,简单几行代码就能直接调用 GLM-4-Plus 模型接口,极大的缩减了开发周期。
随着大模型的普及,未来肯定也会出现更多有意思的AI应用,如果你正在做AI相关的应用,那么接入国内第一梯队的GLM-4-Plus 模型是不错的选择,不仅能力强,而且上手快,更关键价格对开发者太友好了。
智谱团队也给开发者们发了个大福利:新用户注册后即可获赠 1 亿额度 Tokens 资源包!
即使用完这个免费的额度 GLM-4-Plus 定价也很实在,一千 Token 仅需0.005元,相比前代旗舰 GLM-4-0520 便宜了 50%,这力度太强了,难道又要卷起一波,国内大模型价格战?
大家可以直接访问智谱开放平台 bigmodel.cn 注册领取,也可以点击下方「阅读原文」快速跳转