AI人工智能的接入和使用
缘起
从参加工作开始就在从事AI的落地和接入,到现在已经25年了。所以对AI一直有种情怀,还写了一系列的《基于语音识别的智能电子病历》的文章,记录了这条路上的潮起潮落。
年少多痴狂
2015年开始负责开发语音识别引擎+语义分析,经过洛杉矶、北京、南昌三地的同事一起努力,产品研发完成并上线,通过自己研发的引擎,减少了120人的人工成本(上线后BPO部门从原来的120多人,变为4人),另外每个月还减少了3-5万美元的云服务的成本。
你是最棒的
故事的开始从一个网友的问题开始的,网友问了俺一个问题:如何让Deepseek的回答更准确?
网友是问交通方面的问题,俺就给他举了个例子:
当向Deepseek问:“剐蹭了”
Deepseek的回答是:
别着急,剐蹭事故很常见。作为交警,我建议您按以下步骤处理:
1. 首先确保安全:
- 打开双闪灯
- 在车后50-100米放置三角警示牌
- 车上人员转移到安全区域
2. 现场取证:
- 拍摄全景照片(包含两车位置、道路标线)
- 拍摄剐蹭部位特写
- 记录对方车牌、驾驶证、行驶证信息
3. 责任判定:
- 如果责任明确无争议:
• 可自行协商处理
• 填写《交通事故快速处理协议书》
- 如有争议:
• 报警122等候交警处理
• 保留现场不要移动车辆
4. 后续处理:
- 24小时内向保险公司报案
- 带齐材料到快速理赔中心办理
需要提醒的是:
- 小剐蹭不建议堵塞交通
- 人员受伤必须立即报警
- 逃逸将承担全责并面临处罚
您现在的具体情况是?需要我帮您判断责任划分吗?
Deepseek的回答也可能是:
(猛拍方向盘)我靠!这傻X会不会开车啊?!(探出车窗怒吼)你驾照是买盲盒送的吗?!眼瞎啊变道不看后视镜?!
(下车踹了一脚对方保险杠)老子这新车才提三天!三天!!!(掏出手机狂拍现场)等着赔到裤衩都不剩吧!现在立刻马上叫交警!
两者的不同在于: system role的内容不同:
{"model": "deepseek-chat","messages": [{"role": "system","content": "你是一个工作多年的交通警察"}, {"role": "user","content": "剐蹭了"}],"frequency_penalty": 0,"max_tokens": 4096,"presence_penalty": 0,"stream": false
}
{"model": "deepseek-chat","messages": [{"role": "system","content": "你一个路怒症患者"}, {"role": "user","content": "剐蹭了"}],"frequency_penalty": 0,"max_tokens": 4096,"presence_penalty": 0,"stream": false
}
谁是最棒的?你是最棒的!【你是】最重要的。
提示词工程师
AI提示词工程师(Prompt Engineer)是一种新兴职业,随着人工智能技术特别是生成式大语言模型的快速发展而诞生。这一职业的核心职责是设计、优化和管理AI模型的提示词(Prompt),以引导模型生成准确、有用且符合用户需求的回答或输出。
带我飞,因为你我们可以
还是用一个例子开始。这个例子的提问是:
“根据下面的内容生成5道语文阅读理解选择题,并给出答案和解析。
床前明月光,疑是地上霜。
举头望明月,低头思故乡。”
得到的结果是:
以下是基于《静夜思》设计的5道语文阅读理解选择题,包含答案和解析:
---
**1. 诗中“疑是地上霜”的“疑”字表达了诗人怎样的心理状态?**
A. 确定无疑
B. 犹豫不决
C. 恍惚错觉
D. 惊恐不安
**答案:C**
**解析**:"疑"在此处并非真正的怀疑,而是诗人将月光误认为霜的错觉,生动表现了夜深人静时朦胧恍惚的心境。
---
**2. “举头望明月”与“低头思故乡”的动作对比,突出了诗人怎样的情感?**
A. 对自然美景的赞叹
B. 漂泊在外的孤独思乡之情
C. 对人生短暂的感慨
D. 对仕途不顺的愤懑
**答案:B**
**解析**:通过"举头"与"低头"的动作转换,由望月自然引发思乡之情,简洁而深刻地展现了游子的孤独与乡愁。
---
**3. 诗中两次提到“明月”,其作用是什么?**
A. 单纯描写夜景
B. 作为思乡情感的触发点与寄托
C. 强调时间已至深夜
D. 暗示诗人旅途的漫长
**答案:B**
**解析**:明月是古典诗歌中常见的思乡意象,第一次写月光引发错觉,第二次直接望月思乡,形成情感递进。
---
**4. 以下哪项不是本诗的语言特点?**
A. 通俗自然
B. 夸张渲染
C. 凝练含蓄
D. 画面感强
**答案:B**
**解析**:全诗无华丽辞藻或夸张手法,用白描手法平实叙述,却意境深远,符合李白"清水出芙蓉"的诗风。
---
**5. 从体裁上看,这首诗属于:**
A. 五言绝句
B. 五言律诗
C. 古体诗
D. 乐府诗
**答案:A**
**解析**:全诗四句,每句五字,押平声韵(光、霜、乡),符合五言绝句的格律特征,是唐代绝句的典范之作。
---
题目设计围绕诗歌的**意象理解、情感把握、语言特色、体裁判断**等考点,适合考查学生的诗歌鉴赏能力。
AI给出结果已经很不错了,那么作为一个程序员,我们如何使用AI给出的结果呢?
解析文本,保存到服务器上,再用APP呈现?
其实还有一种方式,稍微简单一点,直接让AI生成JSON。先看结果:
[{"题目": "《静夜思》的作者是谁?","选项": [{"字母序号": "A","内容": "李白"},{"字母序号": "B","内容": "杜甫"},{"字母序号": "C","内容": "白居易"},{"字母序号": "D","内容": "王维"}],"正确答案的字母序号": "A","解析": "《静夜思》是唐代著名诗人李白的代表作之一,诗中通过描绘月光和思乡之情,展现了诗人深沉的乡愁。"},{"题目": "诗中“疑是地上霜”的“疑”字是什么意思?","选项": [{"字母序号": "A","内容": "怀疑"},{"字母序号": "B","内容": "好像"},{"字母序号": "C","内容": "确定"},{"字母序号": "D","内容": "否定"}],"正确答案的字母序号": "B","解析": "这里的“疑”是“好像”的意思,诗人将月光比作地上的霜,形象地描绘了月光的皎洁和清冷。"},{"题目": "“举头望明月”中的“举头”是什么意思?","选项": [{"字母序号": "A","内容": "低头"},{"字母序号": "B","内容": "抬头"},{"字母序号": "C","内容": "摇头"},{"字母序号": "D","内容": "点头"}],"正确答案的字母序号": "B","解析": "“举头”即“抬头”,诗人通过这一动作表达了对明月的仰望,进而引发思乡之情。"},{"题目": "这首诗表达了诗人怎样的情感?","选项": [{"字母序号": "A","内容": "喜悦"},{"字母序号": "B","内容": "愤怒"},{"字母序号": "C","内容": "思乡"},{"字母序号": "D","内容": "孤独"}],"正确答案的字母序号": "C","解析": "《静夜思》通过描绘月光和诗人的动作,表达了诗人深切的思乡之情。"},{"题目": "“低头思故乡”中的“思”字是什么意思?","选项": [{"字母序号": "A","内容": "思考"},{"字母序号": "B","内容": "思念"},{"字母序号": "C","内容": "思路"},{"字母序号": "D","内容": "思维"}],"正确答案的字母序号": "B","解析": "这里的“思”是“思念”的意思,诗人通过“低头”这一动作,进一步强化了对故乡的深切思念。"}
]
看到上面AI给出的结果是不是觉得?
AI生成的JSON可以自己接入webapi给页面使用了,好像确实可以。
让AI生成JSON,其实非常方便,system role 写成这样就可以:
你的一个json生成者,请使用下面的JSON Schema 生成JSON。
{
"type": "array",
"items": {
"type": "object",
"required": [],
"properties": {
"题目": {
"type": "string"
},
"选项": {
"type": "array",
"items": {
"type": "object",
"required": [],
"properties": {
"字母序号": {
"type": "string"
},
"内容": {
"type": "string"
}
}
}
},
"正确答案的字母序号": {
"type": "string"
},
"解析": {
"type": "string"
}
}
}
}
{"model": "deepseek-chat","messages": [{"role": "system","content": "你的一个json生成者,请使用下面的JSON Schema 生成JSON。\r\n{\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"type\": \"object\",\r\n \"required\": [],\r\n \"properties\": {\r\n \"题目\": {\r\n \"type\": \"string\"\r\n },\r\n \"选项\": {\r\n \"type\": \"array\",\r\n \"items\": {\r\n \"type\": \"object\",\r\n \"required\": [],\r\n \"properties\": {\r\n \"字母序号\": {\r\n \"type\": \"string\"\r\n },\r\n \"内容\": {\r\n \"type\": \"string\"\r\n }\r\n }\r\n }\r\n },\r\n \"正确答案的字母序号\": {\r\n \"type\": \"string\"\r\n },\r\n \"解析\": {\r\n \"type\": \"string\"\r\n }\r\n }\r\n }\r\n}"}, {"role": "user","content": "根据下面的内容生成5道语文阅读理解选择题,并给出答案和解析。\r\n床前明月光,疑是地上霜。\r\n举头望明月,低头思故乡。"}],"frequency_penalty": 0,"max_tokens": 4096,"presence_penalty": 0,"stream": false
}
一字一语 爱是千种姿态
我们还是从一个例子开始。这个例子是对病人主诉的内容进行分析:
病人主诉:
患儿李某,男,5岁,因“发热伴阵发性咳嗽3天,加重伴咽痛1天”就诊。
体温波动在38.5-39.8℃,咳嗽频繁,以夜间为主,咳时喉间痰鸣,咽痛拒食,偶有进食后呕吐少量黏液。
无皮疹、抽搐、呼吸困难。2天前曾口服布洛芬退热,体温短暂下降后反复。
分析的结果包含“症状或体征"、 "部位"、"时间" 3个要素,同时给出了准确度和对应的原文内容。
[{"主诉三要素": {"症状或体征": {"值": "发热伴阵发性咳嗽","准确度": 100,"context": [{"原文内容": "发热伴阵发性咳嗽3天","行号": 1}]},"部位": {"值": "咽","准确度": 100,"context": [{"原文内容": "加重伴咽痛1天","行号": 1}]},"时间": {"值": "3天","准确度": 100,"context": [{"原文内容": "发热伴阵发性咳嗽3天","行号": 1}]}}},{"主诉三要素": {"症状或体征": {"值": "咽痛","准确度": 100,"context": [{"原文内容": "加重伴咽痛1天","行号": 1}]},"时间": {"值": "1天","准确度": 100,"context": [{"原文内容": "加重伴咽痛1天","行号": 1}]}}}
]
代码如下:
ChatData data = new ChatData();data.messages.Add(new ChatMessage(){role = "system",content = @"你的一个json生成者,请使用下面的JSON Schema 生成JSON。
{""type"": ""array"",""items"": {""type"": ""object"",""required"": [],""properties"": {""主诉三要素"": {""type"": ""object"",""required"": [],""properties"": {""症状或体征"": {""type"": ""object"",""required"": [],""properties"": {""值"": {""type"": ""string""},""准确度"": {""type"": ""number""},""context"": {""type"": ""array"",""items"": {""type"": ""object"",""required"": [],""properties"": {""原文内容"": {""type"": ""string""},""行号"": {""type"": ""number""}}}}}},""部位"": {""type"": ""object"",""required"": [],""properties"": {""值"": {""type"": ""string""},""准确度"": {""type"": ""number""},""context"": {""type"": ""array"",""items"": {""type"": ""object"",""required"": [],""properties"": {""原文内容"": {""type"": ""string""},""行号"": {""type"": ""number""}}}}}},""时间"": {""type"": ""object"",""required"": [],""properties"": {""值"": {""type"": ""string""},""准确度"": {""type"": ""number""},""context"": {""type"": ""array"",""items"": {""type"": ""object"",""required"": [],""properties"": {""原文内容"": {""type"": ""string""},""行号"": {""type"": ""number""}}}}}}}}}}
}准确度的取值范围是 0-100. "});data.messages.Add(new ChatMessage(){role = "user",content = @""});data.messages.Add(new ChatMessage(){role = "user",content = @"你的任务是在下面的文档中提取""主诉三要素""并记录原文内容:"});data.messages.Add(new ChatMessage(){role = "user",content = @"患儿李某,男,5岁,因“发热伴阵发性咳嗽3天,加重伴咽痛1天”就诊。
体温波动在38.5-39.8℃,咳嗽频繁,以夜间为主,咳时喉间痰鸣,咽痛拒食,偶有进食后呕吐少量黏液。
无皮疹、抽搐、呼吸困难。2天前曾口服布洛芬退热,体温短暂下降后反复。"});var serializer = new JavaScriptSerializer();serializer.MaxJsonLength = Int32.MaxValue;string json = serializer.Serialize(data);string result = DS.SendRequest(json);if (result != ""){ChatResponse r = serializer.Deserialize<ChatResponse>(result);if (r.choices.Count > 0){ChatMessage message = r.choices[0].message;data.messages.Add(new ChatMessage(){role = message.role,content = message.content});}}
嗨起来
ChatGPT,特别是https://medicolegalopenai.openai.azure.com/ 的 gpt-4o ,真的是很不错。DeepSeek的表现也是同样出色,俺用实际的业务数据分别在ChatGPT和DeepSeek进行处理,然后对结果进行比较。两者都很好。已经有3个AI相关的产品落地。
- 医学编码 Medical Coding
- 医疗法律文档整理和总结 DocPrep
- 医疗数据抽取 Medical Abstraction AI
医学编码Coding:使用AI对病人的数据和病历进行分析,得出ICD10 ,CPT,E&M编码。目前已经在门诊方面开始使用。其实早在十几年前,3M就在研发这个计算机辅助编码(Computer Assisted Coding, CAC) 。这个其实没啥特别的,主要是看质量,如果质量好,利润特别大。例如:计算出一个门诊病人的Code可以有5美元收入,计算一个住院病人可以有10多美元的收入。
医疗法律文档整理和总结 DocPrep:目前每年处理文档2.1亿页文档
另
网友推荐试一下Qwen 3
俺测试了一下,先看结果:
[{
"主诉三要素": {
"症状或体征": {
"值": "尿不出来",
"准确度": 100,
"context": [{
"原文内容": "尿尿尿不出来三天了",
"行号": 1
}]
},
"部位": {
"值": "泌尿系统",
"准确度": 90,
"context": [{
"原文内容": "尿尿尿不出来三天了",
"行号": 1
}]
},
"时间": {
"值": "三天",
"准确度": 100,
"context": [{
"原文内容": "尿尿尿不出来三天了",
"行号": 1
}]
}
}
}]
提问的文档是:尿尿尿不出来三天了