sb-ai-alibaba 简历岗位匹配20250715
教育经历
北京大学软件工程本科2005.09-2009.06
主修课程:Java语言开发、C语言开发、操作系统、编译原理、计算机网络、算法导论、电商商务、电子基础、高等数学、概率论与统计、离散数学。
工作经验
阿里巴巴有限公司算法工程师
2009-7-1-2015-7-10
拥有五年以上的算法工程师经验,熟悉各种开发语言的使用,比如ava、C++、C#等,熟练使用各种主流深度学习框架,能独立开发出高质量、高性能的算法模型,精通数据结构、算法及机器学习模型的实现与优化,在多个项目中负贡算法模型的设计与开发,包括基于深度学习的图像识别、语音识别及白然语言处理等方向。。
小米科技有限公司算法工程师
2015-8-1 -2020-3-1
担任小米科技有限公司算法工程师,负责参与开发高性能机器学习算法。在项目中,我使用Python和MATLAB编写了多种算法模型,并且实现了GPU加速计算,使得算法在处理大规模复杂数据时表现优异。
就职于小米科技有限公司,作为算法工程师,全程参与了一款自动驾驶系统的开发。在项自中,我主要通过深度学习、自标检测等技术,实现了车辆识别、道路分刮等多项技术难点,使得系统在真实道路环境下表现出了较高的稳定性和可靠性。
在小米科技有限公司,我作为算法工程师负责了一项推荐系统的研发。该系统基于用户行为数据,使用协同过滤和深度学习技术,为用户推荐最优质的内容。在项目中,我优化了多种推荐算法,优化推荐精度达到了90%以上。
2、RAG知识库vectorStore
package com.ds.aiaibabaresume.config;
import com.ds.aiaibabaresume.func.ResumeServiceFunction;
import org.springframework.ai.document.Document;
import org.springframework.ai.embedding.EmbeddingModel;
import org.springframework.ai.reader.TextReader;
import org.springframework.ai.transformer.splitter.TokenTextSplitter;
import org.springframework.ai.vectorstore.SimpleVectorStore;
import org.springframework.ai.vectorstore.VectorStore;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Description;
import java.util.List;
import java.util.function.Function;
@Configuration
public class RagConfig {
@Bean
VectorStore vectorStore(EmbeddingModel embeddingModel) {
SimpleVectorStore simpleVectorStore = SimpleVectorStore
.builder(embeddingModel)
.build();
//提取文本内容
String filePath = "张三简历.txt";
TextReader textReader = new TextReader(filePath);
textReader.getCustomMetadata().put("filePath", filePath);
List<Document> documents = textReader.get();
//段落切分
TokenTextSplitter splitter=new TokenTextSplitter(1200,
350,5,
100,true);
splitter.apply(documents);
//向量化存储
simpleVectorStore.add(documents);
return simpleVectorStore;
}
@Bean
@Description("某某是否有资格面试")
public Function<ResumeServiceFunction.Request, ResumeServiceFunction.Response>
resumeServiceFunction(){
return new ResumeServiceFunction();
}
}
3、工具类ResumeServiceFunction
package com.ds.aiaibabaresume.func;
import java.util.function.Function;
public class ResumeServiceFunction
implements Function<ResumeServiceFunction.Request,
ResumeServiceFunction.Response> {
@Override
public ResumeServiceFunction.Response apply(
ResumeServiceFunction.Request request) {
String position ="未知";
if (request.name.equals("张三")) {
position = "算法工程师";
}
return new Response(position);
}
public record Request (String name) {};
public record Response (String position) {};
}
4、应用人设
package com.ds.aiaibabaresume.controller;
import com.alibaba.cloud.ai.dashscope.chat.DashScopeChatOptions;
import org.springframework.ai.chat.messages.Message;
import org.springframework.ai.chat.messages.SystemMessage;
import org.springframework.ai.chat.model.ChatModel;
import org.springframework.ai.chat.model.Generation;
import org.springframework.ai.chat.prompt.Prompt;
import org.springframework.ai.chat.prompt.PromptTemplate;
import org.springframework.ai.document.Document;
import org.springframework.ai.vectorstore.VectorStore;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.stream.Collectors;
@RestController
public class ChatController {
@Autowired
private ChatModel chatModel;
@Autowired
private VectorStore vectorStore;
@GetMapping("/ai/agent")
public String chat(@RequestParam(value = "query")
String query ) {
//检索
List<Document> documents = vectorStore.similaritySearch(query);
//提取信息
String info="";
if (documents.size()>0){
info=documents.get(0).getContent();
}
//构造系统 prompt
String systemPrompt= """
角色与目标:你是一个招聘助手,会针对用户的问题,结合候选人经历,岗位匹配度等专业知识,给用户
提供指导。
指导原则:你需要确保给出的建议合理科学,不会对候选人的表现冇言论侮。限制:在提供建议时,需要强调在个性建议方面用户仍然需要线下寻求专业咨询。澄淸:在与用户交互过程中,你需要明确回答用户关于招聘方面的问题,对于非招聘方面的问题,你的回
应是'我只是一个招聘助手,不能回答这个问题哦’。
个性化:在回答时,你需要以专业可靠的预期回答,偶尔可以带点幽默感。调节气氛。
给你提供一个数据参考,并且给你调用岗位投递检索公户
请你跟进数据参考与工具返回结果回复用户的请求。
""";
//构造用户 prompt
String userprompt= """
给你提供一些数据参考:{info},请回答我的问题:{query}
请你跟进数据参考与工具返回结果回复用户的请求。
""";
//构造提示词
SystemMessage systemMessage = new SystemMessage(systemPrompt);
PromptTemplate promptTemplate = new PromptTemplate(userprompt);
Message userMessage = promptTemplate.
createMessage(Map.of("info",info,"query",query));
Prompt prompt = new Prompt(
List.of(systemMessage,userMessage),
DashScopeChatOptions.builder()
.withFunctions(Set.of("resumeServiceFunction")).build());
List<Generation> results=chatModel.call(prompt).getResults();
String content= results.stream().map(x->x.getOutput().getText())
.collect(Collectors.joining(""));
return content;
}
}
5、