《我用 AI 给孩子出“珠心算”练习题》后续:我用“云函数”线上化了

42 阅读2分钟

《我用 AI 给孩子出“珠心算”练习题》后续:我用“云函数”线上化了

之前写了一篇《成功案例:我用 AI 给孩子出“珠心算”练习题》。

用 AI 给孩子出 5 以内的加减法,主要是训练孩子的手法和数感。

现在差不多每天都坚持,睡前 10 道题,大概 2、 3 分钟。

但是每次我都得运行一遍程序,或者跟 AI 提问一次。

然后把结果发到手机上,还挺麻烦的。

干脆我直接把它封装成 HTTP API,直接能用网络访问不就得了。

开搞~

改造代码

把之前文章当中生成的代码稍微改动一下就可以了。

主要就是把函数最后的 print 改成 return 就可以了。

另外,我还稍微加了点难度,数字变为 5~8 个,中间计算结果为 0~5,具体代码如下:

import random

def generate_abacus_problems():
    problems = []
    answers = []

    for _ in range(10):
        while True:  # 用于重复尝试生成符合条件的计算式
            num_count = random.randint(5, 8)  # 随机生成数字个数
            numbers = [random.randint(1, 4) for _ in range(num_count)]  # 生成随机数
            operators = [random.choice(['+', '-']) for _ in range(num_count - 1)]  # 随机选择运算符

            # 构建计算式
            expression = str(numbers[0])
            result = numbers[0]
            valid = True

            for op, num in zip(operators, numbers[1:]):
                if op == '+':
                    result += num
                else:
                    result -= num

                # 检查中间结果是否在0~4范围内
                if result < 0 or result > 5:
                    valid = False
                    break

                expression += f"{op}{num}"

            if valid:
                problems.append(expression + "=")
                answers.append(result)
                break

    return '\n'.join(problems) + "\n\n答案:" + str(answers)

创建云函数

我这里用的是阿里云的“函数计算”,创建一个 python 环境的函数即可,具体步骤我就不写了,把我用的一些配置写出来供大家参考。

事件函数:内置运行时 python 3.10;示例代码:处理 HTTP 请求。

创建完成之后,直接把函数复制过去,然后把 handler 函数改成下面这样就行了:

def handler(event, context):
    logger = logging.getLogger()
    logger.info("receive event: %s", event)
    
    return generate_abacus_problems()

是不是 so easy!

绑定域名

其实还差最后一步,那就是给刚才的云函数绑定自定义域名

否则,你访问它给的默认链接,只会下载一个 json 文件,而不会正常显示数据。

具体见我之前的文章《超级个体必备——云开发之【个人域名】》,这里就不展开了。

具体效果可以访问下面的地址查看:

api.zldlwq.top/abacus

如果有收获,请关注我,给你一个不一样的视角~

公众号、知乎、掘金、CSDN 同名,欢迎关注~