C#学习:构建一个更真实的基于LLM的简历评估系统
笔记哥 /
05-29 /
42点赞 /
0评论 /
215阅读
## 前言
昨天的Demo以txt文件为例进行说明,并且评估标准写死了,跟真实的简历评估系统差别太大了。今天分享的是经过改进后更加真实的基于LLM的简历评估系统。
使用AI生成了5份不同的简历,如下所示:
程序员A:

程序员B:

程序员C:

程序员D:

程序员E:

输入要求:
```csharp
shared["requirements"] = """
- 具备前端开发能力
- 使用过Vue
""";
```
效果:

更改要求:
```csharp
shared["requirements"] = """
- 具备后端开发能力
- 熟悉go语言
""";
```

全部代码已上传至GitHub,地址:https://github.com/Ming-jiayou/PocketFlowSharp/tree/main/PocketFlowSharpSamples.Console/Real_Resume_Qualification_Demo
## C#读取PDF内容
本次更改主要涉及到C#读取PDF内容。
使用的是pdfpig,项目地址:https://github.com/UglyToad/PdfPig

项目简介:使用 C# 读取和提取 PDF 中的文本和其他内容(PDFBox 的移植)
修改Utils类,增加读取PDF内容功能:
```csharp
public static string ExtractTextFromPdf(string pdfPath)
{
StringBuilder text = new StringBuilder();
using (PdfDocument document = PdfDocument.Open(pdfPath))
{
foreach (Page page in document.GetPages())
{
text.AppendLine(page.Text);
}
}
return text.ToString();
}
```
效果如下所示:

## 灵活更改简历要求
可以将要求存入共享内存,然后通过$插值字符串,插入到提示词中即可:
```csharp
string prompt = $@"
评估以下简历并确定候选人是否符合职位的要求。
资格标准:
{requirements}
简历内容:
{content}
请以YAML格式返回您的评估:
```yaml
candidate_name: [候选人姓名]
qualifies: [true/false]
reasons:
- [资格认定/不认定的第一个原因]
- [第二个原因(如果适用)]
```
";
```
运行时就会变成这样:

## 与LLM交互
```csharp
public static string ModelName { get; set; }
public static string EndPoint { get; set; }
public static string ApiKey { get; set; }
public static string CallLLM(string prompt)
{
ApiKeyCredential apiKeyCredential = new ApiKeyCredential(ApiKey);
OpenAIClientOptions openAIClientOptions = new OpenAIClientOptions();
openAIClientOptions.Endpoint = new Uri(EndPoint);
ChatClient client = new(model: ModelName, apiKeyCredential, openAIClientOptions);
ChatCompletion completion = client.CompleteChat(prompt);
return completion.Content[0].Text;
}
```
以上就是通过这个Demo可以学习到的一些内容。
本文来自投稿,不代表本站立场,如若转载,请注明出处:http//www.knowhub.vip/share/2/3822
- 热门的技术博文分享
- 1 . ESP实现Web服务器
- 2 . 从零到一:打造高效的金仓社区 API 集成到 MCP 服务方案
- 3 . 使用C#构建一个同时问多个LLM并总结的小工具
- 4 . .NET 原生驾驭 AI 新基建实战系列Milvus ── 大规模 AI 应用的向量数据库首选
- 5 . 在Avalonia/C#中使用依赖注入过程记录
- 6 . [设计模式/Java] 设计模式之工厂方法模式
- 7 . 5. RabbitMQ 消息队列中 Exchanges(交换机) 的详细说明
- 8 . SQL 中的各种连接 JOIN 的区别总结!
- 9 . JavaScript 中防抖和节流的多种实现方式及应用场景
- 10 . SaltStack 远程命令执行中文乱码问题
- 11 . 推荐10个 DeepSeek 神级提示词,建议搜藏起来使用
- 12 . C#基础:枚举、数组、类型、函数等解析
- 13 . VMware平台的Ubuntu部署完全分布式Hadoop环境
- 14 . C# 多项目打包时如何将项目引用转为包依赖
- 15 . Chrome 135 版本开发者工具(DevTools)更新内容
- 16 . 从零创建npm依赖,只需执行一条命令
- 17 . 关于 Newtonsoft.Json 和 System.Text.Json 混用导致的的序列化不识别的问题
- 18 . 大模型微调实战之训练数据集准备的艺术与科学
- 19 . Windows快速安装MongoDB之Mongo实战
- 20 . 探索 C# 14 新功能:实用特性为编程带来便利
- 相关联分享