《我用 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 文件,而不会正常显示数据。
具体见我之前的文章《超级个体必备——云开发之【个人域名】》,这里就不展开了。
具体效果可以访问下面的地址查看:
如果有收获,请
关注我
,给你一个不一样的视角~公众号、知乎、掘金、CSDN 同名,欢迎关注~