文章通过对我这段时间通过DeepSeek开发的汉字查询等知识工具类小程序的过程进行整理总结,希望能给大家带来一些收获和启发
主要包括三部分:
随着AI的越来越成熟,以前很多需要大量时间、大量人力做的事情现在都变得很简单;而我们的学习过程总是从0开始,比如:汉字的学习、常识的学习;虽然AI已经拥有了所有汉字写法、读音、含义的所有知识,但是对于现在的小孩子来说,他们还是需要一个字、一个拼音的学习,这个过程并不能省略,所以就想到能不能用AI做一些小工具来帮助其学习,然后就有了利用闲暇开发一款知识工具小程序的想法。
工具的功能主要包括这样几部分:
效果如下图所示:
在开发的时候都或多或少的用到了AI工具,汉字工具使用了大量的腾讯云提供的DeepSeek大模型,当然还有很多腾讯云的其他工具,比如:手写识别、语音识别等。
接下来会主要说说在开发汉字查询功能过程中,对大模型的多样化使用,会发现对大模型的使用不限于对话的方式
拼音查询汉字功能开发
界面如上所示,通过点击拼音首字母+对应首字母下的拼音来查询汉字,并找到要查询的汉字来获得汉字的读音、含义、组词、造句等信息
这部分的难点主要还是在汉字库的构建,以及可选拼音列表的生成;搜索了现有的汉字库,发现都不太适合该功能,因为组词、造句这些数据在大部分字典上并没有那么完整,而是在字含义的解释上,所以需要自己构建这部分内容,而如果人工对整个汉字进行组词、造句的构建恐怕还是需要不少时间和工作量;于是就想到了通过ai帮忙。
最先想到是用市面上的对话式AI程序进行构建,再尝试了几个app之后放弃,主要存在这几个问题
最后想到就是能不能使用腾讯云提供的AI接口进行批量处理,于是就进来找了下云产品,开通之后居然还赠送了10w的token,同时可以并发5个请求,于是用js脚本进行并发请求获取字典数据,单挑数据请求差不多10秒左右,总共1.6w的汉字数据差不多用了 10个小时全部完成,整体体验下来还是挺不错的
代码如下所示
这里使用的openai的兼容接口,还可以使用腾讯云的sdk进行使用
const getWordExplanation = async (word) => {
try {
const completion = await openai.chat.completions.create({
model: CONFIG.openai.model,
messages: [
{
role: "system",
content: `你是一个中文语言专家,请用JSON格式解释汉字,包含以下字段:
character: 汉字
pinyin: 拼音(不带声调)
symbol: 拼音(带声调)
meaning: 含义数组,每个元素包含:
- property: 词性
- definition: 该词性下的含义
group: 包含该字的常用词组(数组)
sentence: 包含该字的例句(数组)
请确保返回的是合法的JSON格式。`
},
{
role: "user",
content: `请解释汉字:"${word.character}"(拼音:${word.pinyin})`
}
],
temperature: CONFIG.openai.temperature,
max_tokens: CONFIG.openai.maxTokens
});
const response = completion.choices[0].message.content;
try {
const cleanResponse = response.replace(/^```json\n?/, '').replace(/\n?```$/, '').trim();
const parsedResponse = JSON.parse(cleanResponse);
// 确保meaning是数组格式
if (typeof parsedResponse.meaning === 'string') {
parsedResponse.meaning = [{
property: parsedResponse.property || '未知',
definition: parsedResponse.meaning
}];
}
return parsedResponse;
} catch (e) {
console.error(`Error parsing JSON for word ${word.character}:`, e);
// 如果解析失败,创建默认数据
const defaultWordData = createDefaultWordData(word.character, word.pinyin);
defaultWordData.error = true;
return defaultWordData;
}
} catch (error) {
console.error(`Error getting explanation for word ${word.character}:`, error);
// 如果API调用失败,创建默认数据
const defaultWordData = createDefaultWordData(word.character, word.pinyin);
defaultWordData.error = true;
return defaultWordData;
}
};
语音输入查询汉字功能开发
界面如上所示,通过点击下面的语音输入按钮进行语音输入,输入的内容其实有很多种,比如:
看上去还是挺智能的,不过实际都是调用的腾讯云提供的接口
这是微信云函数中的脚本,这里使用的是腾讯云的sdk,反正都非常方便
// 云函数入口函数
exports.main = async (event, context) => {
const { audioData } = event
// console.log("audioData", audioData);
try {
// 创建语音识别客户端
const client = new AsrClient(clientAsrConfig)
// 调用语音识别接口
const params = {
EngSerViceType: "16k_zh", // 16k采样率中文语音识别
SourceType: 1,
VoiceFormat: "mp3",
Data: audioData,
DataLen: audioData.length
}
const result = await client.SentenceRecognition(params)
console.log("result", result);
if (!result || !result.Result) {
return {
success: false,
error: '语音识别失败'
}
}
// 调用腾讯云 DeepSeek 接口获取汉字
const recognizedText = result.Result
const LkeapClient = tencentcloud.lkeap.v20240522.Client;
const deepseekClient = new LkeapClient(clientDeepseekConfig)
const deepseekParams = {
Messages: [
{
Role: "system",
Content: "你是一个汉字识别专家,请分析以下语音识别结果,如果是在询问某个汉字的写法,请直接返回该汉字。如果不是,请将结果转换为汉字。最多返回4个汉字。"
},
{
Role: "user",
Content: recognizedText
}
],
Model: "deepseek-v3-0324"
}
const deepseekResult = await deepseekClient.ChatCompletions(deepseekParams)
console.log("deepseekResult", deepseekResult);
if (!deepseekResult || !deepseekResult.Choices) {
return {
success: false,
error: '汉字转换失败'
}
}
const characters = deepseekResult.Choices[0].Message.Content.split('')
console.log("characters", characters);
// 查询数据库获取汉字详情
const wordPromises = characters.map(char =>
charactersCollection.where({
character: char
}).get()
)
const wordResults = await Promise.all(wordPromises)
const matchedCharacters = wordResults
.filter(result => result.data && result.data.length > 0)
.map(result => result.data[0])
console.log("matchedCharacters", matchedCharacters);
return {
success: true,
data: {
recognizedText,
characters: matchedCharacters
}
}
} catch (err) {
console.error('Error:', err)
return {
success: false,
error: err.message || '处理失败'
}
}
}
本次小程序开发过程加入了AI接口的接入之后,对于以前看上去很智能的无法实现的功能可以轻松简单的实现了,搭配通讯云的其他模型和api能够实现很多非常常用的功能;再搭配上微信小程序的轻量前端,个人觉得对于个人开发者是友好的,同时对于想做产品人来说能够更快捷方便的验证自己的想法了。
希望您能喜欢,再上几张其他趣味挑战的截图
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有