用DeepSeek在小程序开发中的别样用法

文章说明文章通过对我这段时间通过DeepSeek开发的汉字查询等知识工具类小程序的过程进行整理总结,希望能给大家带来一些收获和启发主要包括三部分:首先是对小程序功能进行简单说明然后是使用DeepSeek实现功能的案例,主要包括两个案例:拼音

用DeepSeek在小程序开发中的别样用法

文章说明

文章通过对我这段时间通过DeepSeek开发的汉字查询等知识工具类小程序的过程进行整理总结,希望能给大家带来一些收获和启发

主要包括三部分:

  1. 首先是对小程序功能进行简单说明
  2. 然后是使用DeepSeek实现功能的案例,主要包括两个案例:拼音查询汉字功能开发、语音输入查询汉字功能开发
  3. 最后是作为这么多年开发来说,自从有了DeepSeek对我开发方式改变和启发

功能概述

随着AI的越来越成熟,以前很多需要大量时间、大量人力做的事情现在都变得很简单;而我们的学习过程总是从0开始,比如:汉字的学习、常识的学习;虽然AI已经拥有了所有汉字写法、读音、含义的所有知识,但是对于现在的小孩子来说,他们还是需要一个字、一个拼音的学习,这个过程并不能省略,所以就想到能不能用AI做一些小工具来帮助其学习,然后就有了利用闲暇开发一款知识工具小程序的想法。

工具的功能主要包括这样几部分:

  1. 常识卡片,这部分包括大量的常识数据,主要用于小孩子启蒙学习、认识我们周围的食物
  2. 学习工具,现在主要是汉字工具,目前包括:通过拼音查询汉字、通过手写查询汉字、通过语音查询汉字、还有一个小黑板 可以让宝爸宝妈用手机进行演示和讲解
  3. 趣味挑战,这部分是一些汉字和数字游戏,目前包括:成语接龙、数独、四则运算练习

效果如下图所示:

在开发的时候都或多或少的用到了AI工具,汉字工具使用了大量的腾讯云提供的DeepSeek大模型,当然还有很多腾讯云的其他工具,比如:手写识别、语音识别等。

接下来会主要说说在开发汉字查询功能过程中,对大模型的多样化使用,会发现对大模型的使用不限于对话的方式

使用案例1

拼音查询汉字功能开发

界面如上所示,通过点击拼音首字母+对应首字母下的拼音来查询汉字,并找到要查询的汉字来获得汉字的读音、含义、组词、造句等信息

这部分的难点主要还是在汉字库的构建,以及可选拼音列表的生成;搜索了现有的汉字库,发现都不太适合该功能,因为组词、造句这些数据在大部分字典上并没有那么完整,而是在字含义的解释上,所以需要自己构建这部分内容,而如果人工对整个汉字进行组词、造句的构建恐怕还是需要不少时间和工作量;于是就想到了通过ai帮忙。

最先想到是用市面上的对话式AI程序进行构建,再尝试了几个app之后放弃,主要存在这几个问题

  1. 对话式AI对输入和输出的token有一定限制,并不能一次性生成
  2. 对于1万+的汉字来说,多次输入也不太可能

最后想到就是能不能使用腾讯云提供的AI接口进行批量处理,于是就进来找了下云产品,开通之后居然还赠送了10w的token,同时可以并发5个请求,于是用js脚本进行并发请求获取字典数据,单挑数据请求差不多10秒左右,总共1.6w的汉字数据差不多用了 10个小时全部完成,整体体验下来还是挺不错的

代码如下所示

这里使用的openai的兼容接口,还可以使用腾讯云的sdk进行使用

代码语言:javascript代码运行次数:0运行复制
const getWordExplanation = async (word) => {
    try {
        const completion = await openai.chatpletions.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;
    }
};

使用案例2

语音输入查询汉字功能开发

界面如上所示,通过点击下面的语音输入按钮进行语音输入,输入的内容其实有很多种,比如:

  1. 中国的国字怎么写?
  2. 西瓜
  3. 三个木是个什么字?

看上去还是挺智能的,不过实际都是调用的腾讯云提供的接口

  1. 腾讯云提供的语音识别的接口
  2. 腾讯云提供的deepseek v3的对话接口
  3. 根据返回的汉字查询获得对应汉字数据
  4. 然后显示在小程序上 功能实现非常简单,基本上也满足了小孩子对汉字查询的功能,确实比翻字典来的快了很多

这是微信云函数中的脚本,这里使用的是腾讯云的sdk,反正都非常方便

代码语言:javascript代码运行次数:0运行复制
// 云函数入口函数
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能够实现很多非常常用的功能;再搭配上微信小程序的轻量前端,个人觉得对于个人开发者是友好的,同时对于想做产品人来说能够更快捷方便的验证自己的想法了。

希望您能喜欢,再上几张其他趣味挑战的截图

发布者:admin,转转请注明出处:http://www.yc00.com/web/1748104906a4731687.html

相关推荐

  • 用DeepSeek在小程序开发中的别样用法

    文章说明文章通过对我这段时间通过DeepSeek开发的汉字查询等知识工具类小程序的过程进行整理总结,希望能给大家带来一些收获和启发主要包括三部分:首先是对小程序功能进行简单说明然后是使用DeepSeek实现功能的案例,主要包括两个案例:拼音

    4小时前
    30

发表回复

评论列表(0条)

  • 暂无评论

联系我们

400-800-8888

在线咨询: QQ交谈

邮件:admin@example.com

工作时间:周一至周五,9:30-18:30,节假日休息

关注微信