手把手教你搭建公式识别公众号

自媒体运营教程 产品运营 23

上次弄了个公式识别的公众号,有人问如何实现,今天趁着周末把整个流程讲下。其实我对开发的东西也是不大懂,弄那个公式识别的公众号完全是拼拼凑凑、误打误撞搞出来的。

技术的东西讲不了,就当是记流水账吧。希望对非技术的同学读起来也没有压力。强烈建议非技术同学阅读“三、准备”这个部分的内容。

一、需求

  1. 要做个东西,这个东西能够将图片中的数学公式识别出来,并转成LaTex代码。
  2. 这个东西要尽可能好用、方便使用。

二、方案

对于需求1,Mathpix已经可以实现,而且Mathpix提供了接口,所以直接调用Mathpix接口就好。

对于需求2,考虑到用户使用的情景是在电脑上写文档,所以这个东西是要在电脑上使用的。

怎样才算方便?最好的情况,就是用户指定好区域,这个东西马上就把正确的LaTex代码显示出来,而不需要中间的其他任何步骤。

怎样才算好用?“无需学习、无需安装、用完即走。”为了识别公式,如果中间还需要进行许多复杂、看起来很Geek的操作,才能实现,这肯定是不适合绝大多数科研小伙伴的。所以,这个东西最好就是用户不需要进行任何学习、也不需要安装任何其他软件、更不需要进行看不懂的配置。苦思冥想了60秒之后,就它了——微信公众号!简直完美!!!

三、准备

好吧,让我们冷静一下,想想要怎么搞。

整个事情大概是这样:

有个用户(叫做Pacoo吧)正在写东西,他想要把一篇文章中的公式用LaTex敲出来来。所以,他——

  • 按下键盘的 [Alt+A] (微信截图快捷键)、
  • 拖动鼠标截图、
  • 按下[Ctrl+V]将图片粘贴到公众号(叫做PACOO吧)。
  • 喝口水之后,
  • PACOO将截图中公式的LaTex源码回复给了Pacoo。

手把手教你搭建公式识别公众号-第1张图片-90博客网

额......想下要怎么弄——

  • 给微信公众号发图片这个事情微信已经帮我们做好了,只要你的电脑上有安装微信就好了。
  • 微信公众号收到一张图片之后,如何才能回复LaTex代码?

很显然,微信并不会帮你做这件事,所以你需要一个机器——因为叫人来做太贵了也不方便——来做这件事情(将图片变成LaTex代码)。这个机器其实是一台电脑(叫做 服务器(Server),因为它提供着公式识别的服务)。

相关影片资源迅雷下载推荐

租房app软件开发的前景与便捷

租房app软件开发,租房app平台开发,租房小程序系统开发租房app开发:188-020-76450 一、租房APP软件开发市场概述  针对用户的租房需求多元化,租房APP软件开发可以更好地提供便捷服务,以解决用户在租房方面的问 ...

软件开发,租房app软件开发的前景与便捷

服务器并不是天生就具有公式识别的能力的;但是,Mathpix具有公式识别的能力,所以,不妨把这件事情交给Mathpix来做,然后再给Mathpix一点点钱就好了。等下,服务器怎么把这件事情交出去?事情是这样:

Mathpix为了赚这个钱,他们提供一个“位置”给服务器,并且和服务器商量好,以后服务器想让Mathpix做公式识别这件事情,就把图片放到那个“位置”,Mathpix 会把识别好的LaTex代码返回到这个“位置”。这个"位置",叫做 接口(Interface)。也就是说,Mathpix提供了一个接口,服务器每次把图片发给那个接口,Mathpix 把LaTex返回到这个接口,通过这个接口,将 Mathpix 和 服务器 连接起来。而且,服务器不用管Mathpix 是怎么识别的,Mathpix 也不管 服务器 拿到LaTex之后要干嘛。一人给钱,一人干活,其他不管,这样很好,对吧?

还有最后一件事情,微信公众号 需要把图片发给服务器。因为用户Pacoo只是把图片发给了微信公众号,并没有发给服务器,所以需要微信把图片转发给 服务器,这样服务器才能通过接口让 Mathpix 做公式识别。整个流程就像下面这张图:


手把手教你搭建公式识别公众号-第2张图片-90博客网

因此,我们需要:

  1. 微信公众号
  2. 服务器
  3. Mathpix 接口

四、实现

(一)申请微信公众号

申请公众号教程](https://kf.qq.com/faq/120911VrYVrA151009eIrYvy.html)

(二)购买云服务器

服务器一般选择云服务器,国内的可以选择 阿里云 或者 腾讯云。当然也有别的云服务器。

阿里云购买云服务器流程](http://jingyan.baidu.com/article/8065f87f4cf998233124982b.html)

(三)申请Mathpix接口

在Mathpix 官网](https://mathpix.com/ocr) 注册,就能得到 接口 的 api_id 和 api_key 。注册需要信用卡。

(四)将 微信公众号后台 和 服务器相连

开启公众号开发者模式](https://developers.weixin.qq.com/doc/offiaccount/Getting_Started/Getting_Started_Guide.html)

(五)服务器后台开发

可以使用 WeRoBot 来开发,相当简单。

以下就是公式识别后台代码。

import werobot
import re
import os
import json
import pickle
import requests


robot = werobot.WeRoBot(token='your_token')

# 调用MathPix接口
def latex(args,timeout=30):
env = os.environ

headers = {
'APP_id': env.get('APP_ID', 'your_app_id'),
'app_key': env.get('APP_KEY', 'your_app_key'),
'Content-type': 'application/json'
}
service = 'https://api.mathpix.com/v3/latex'
r = requests.post(service,data=json.dumps(args), headers=headers, timeout=timeout)
return json.loads(r.text)


# 图片消息回复
@robot.image
def imageHandle(message):

print(message)
url = message.img
print(url)
r = latex({
'src': url,
"formats": [
"latex_styled",
]
})

try:
latexMsg = "$$\n"+r['latex_styled']+"\n$$"
except:
latexMsg = "你发的好像不是数学公式的图片,请重新发送~~~"
return latexMsg


# ========================================================

# 让服务器监听在 0.0.0.0:80
robot.config['HOST'] = '0.0.0.0'
robot.config['PORT'] = 80
robot.run()

P.S. 第四部分的内容写得太简略了...

相关影片资源迅雷下载推荐

抖音小程序开发语言是什么?抖音小程序开发用什么语言 ...

抖音小程序开发语言是什么?抖音小程序开发用什么语言?开发一个抖音小程序,需要后台系统的支持和前端应用程序的研发。后台系统是为了确保抖音小程序的正确运行逻辑和功能完成,而的前端应用是为了更好地展示功能特 ...

小程序开发,抖音小程序开发语言是什么?抖音小程序开发用什么语言 ...

企业网站建设与开发最低只要299元起,包含域名服务器,需要的联系QQ345424724,电话15516990022,18530226930

标签: 公众号开发 手把手教你搭建公式识别公众号

抱歉,评论功能暂时关闭!