赞
踩
目录
3.2 x-ti-app-id和x-ti-secret-code的获取
4.3.3 UploadArrayBufferToAi.ts
在当今快速发展的科技时代,人工智能技术已经成为推动社会进步和产业升级的重要力量。特别是大模型技术的出现,不仅标志着人工智能领域的一个新纪元,也为各行各业带来了前所未有的创新机遇和挑战。在这样的背景下,中国大学生服务外包创新创业大赛组委会携手合合信息公司,共同发起了一项旨在激发大学生创新潜能、推动智能技术应用的大赛。
上海合合信息科技股份有限公司是一家人工智能及大数据科技企业,专注于智能文字识别、图像处理、自然语言处理(NLP)、知识图谱、大数据挖掘等前沿技术的研发和应用。公司自2006年成立以来,已经在智能文字识别领域深耕16年,积累了丰富的经验和技术优势。基于自主研发的智能文字识别及商业大数据核心技术,为全球C端用户和多元行业B端客户提供数字化、智能化的产品及服务。公司的B端服务已经覆盖了银行、证券、保险、政府、物流、制造、地产、零售等近30个行业的企业客户,其中包括《财富》杂志2020年发布的世界500强公司名单中的超过80家。在C端产品方面,截至2021年3月末,公司扫描全能王、名片全能王、启信宝3款APP在App Store与Google Play应用市场的全球用户累计首次下载量合计超过6亿C端APP2021年3月的月活合计约1.2亿。合合信息科技股份有限公司拥有强大的自主研发能力,拥有111项自主知识产权的发明专利,其中包括38项境外专利,Google Top Developer全球顶尖开发者。公司是行业内少有的同时在人工智能、大数据两个领域都具有核心自主研发技术的企业,并且在C端产品与B端服务方面都有完善的布局矩阵。此外,公司在国内、国际市场同时布局且均取得了规模化用户和产值。
TextIn
是上海合合信息科技股份有限公司旗下智能文字识别产品
官网地址:https://www.textin.com
为全球用户提供智能图像处理、文字表格识别、文档内容提取等功能
其提供的服务及其丰富,几乎可以满足多有开发者关于智能图像处理、文字识别等的需求。
最主要的是TextIn
提供了便利的API接口,其中API文档中更是提供了详细示例代码,
对于资历不深的开发者十分友好。
以下是数字奇点所使用的功能模块展示:
智能判断照片中主体文档的边缘进行切边,同时增强图像突出文字,支持识别背景复杂的文字内容,返回切边后的图像。
图片处理前:
图片处理后:
图片处理前:
图片处理后:
图片处理前:
图片处理后:
通过前沿的深度学习技术,对各种表格,图片,文档、证件、面单等多种通用场景进行快速、精准的检测和识别,支持简体中文/繁体中文/英文/数字/西欧主流语言/东欧主流语言等共52种语言,同时支持印刷体、手写体、倾斜、折叠、旋转等。
支持简体中文/繁体中文/英文/数字/西欧主流语言/东欧主流语言等共52种语言
同时支持倾斜、折叠、旋转等
图片处理前:
图片处理后:
支持印刷体
图片处理前:
图片处理后:
支持手写体
图片处理前:
图片处理后:
TextIn账号,并进入工作台
Textln官方网站的链接:https://www.textin.com
进入账号管理,在开发者信息中查看x-ti-app-id和x-ti-secret-code
点击我的机器人,选择公有云API(如果没有机器人则需先获取机器人),然后通过API集成可以进行API的调配。
API文档功能演示
TextIn 同时提供详细的API文档来方便使用者调用
在示例代码中还提供了多种主流的语言:curl、Java、C#、python、Node.js、PHP以及HTML
JAVA示例代码演示:
代码修改初始信息:x-ti-app-id、x-ti-secret-code、img_path、save_path
- import java.io.*;
- import java.net.HttpURLConnection;
- import java.net.URL;
- import java.io.IOException;
-
- public class Main {
- public static void main(String[] args) throws Exception {
- // 通用文字识别
- String url = "https://api.textin.com/ai/service/v2/recognize";
- // 请登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-app-id
- // 示例代码中 x-ti-app-id 非真实数据
- String appId = "c81f*************************e9ff";
- // 请登录后前往 “工作台-账号设置-开发者信息” 查看 x-ti-secret-code
- // 示例代码中 x-ti-secret-code 非真实数据
- String secretCode = "5508***********************1c17";
- BufferedReader in = null;
- DataOutputStream out = null;
- String result = "";
- try {
- byte[] imgData = readfile("example.jpg"); // image
- URL realUrl = new URL(url);
- HttpURLConnection conn = (HttpURLConnection)realUrl.openConnection();
- conn.setRequestProperty("connection", "Keep-Alive");
- conn.setRequestProperty("Content-Type", "application/octet-stream");
- conn.setRequestProperty("x-ti-app-id", appId);
- conn.setRequestProperty("x-ti-secret-code", secretCode);
- conn.setDoOutput(true);
- conn.setDoInput(true);
- conn.setRequestMethod("POST"); // 设置请求方式
- out = new DataOutputStream(conn.getOutputStream());
- out.write(imgData);
- out.flush();
- out.close();
- in = new BufferedReader(
- new InputStreamReader(conn.getInputStream(), "UTF-8"));
- String line;
- while ((line = in.readLine()) != null) {
- result += line;
- }
- } catch (Exception e) {
- System.out.println("发送 POST 请求出现异常!" + e);
- e.printStackTrace();
- }
- finally {
- try {
- if (out != null) {
- out.close();
- }
- if (in != null) {
- in.close();
- }
- } catch (IOException ex) {
- ex.printStackTrace();
- }
- }
- System.out.println(result);
- }
- public static byte[] readfile(String path)
- {
- String imgFile = path;
- InputStream in = null;
- byte[] data = null;
- try
- {
- in = new FileInputStream(imgFile);
- data = new byte[in.available()];
- in.read(data);
- in.close();
- }
- catch (IOException e) {
- e.printStackTrace();
- }
- return data;
- }
-
- }
在线的API调试
TextIn提供了在线的API调试平台
我们项目主要使用Textln提供的图片切片增强的API和通用文字识别的API接口,来实现对说明书的拍照存储与其的文字识别内容(部署在云端服务器中),再通过AI大模型底座来实现问答的交互,从而实现问答的交互功能。从而满足客户通过小程序完成本地上传/拍照上传说明书图片,通过Textln提供的图片切片增强的API,存储对应的图片,再通过使用通用文字识别的API接口,实现图片到文字的转变;需要时可同时调用说明书的图片与文字,可依据以存储的说明书的图片与文字,进行AI助手的问答,从而减轻使用者根据自身需求自主阅读说明书的时间。
下面我来用JavaScript语言举一个使用合合信息TextIn服务的例子:
创建index.ts定义了一系列常量和接口
- export const PC_DEVICE_WIDTH = 1280
-
- export const MAX_FONT_SIZE = 40
-
- export const DevToken =
- 'eyJhbGciOiJIUzUxMiJ9.eyJsb2dpbl91c2VyX2tleSI6ImI5NjIyMGVjL*********kZS1iMzM5LTdmYjgxNWQ3ODIzNiJ9.C0uziogLfCIfJ-7v7sJpVIICl6zU6aWgLOt-1Xn9nz9grAH766fClc0zjNf2FcN5xkw1L15GEK_AfQxx91nL1A'
-
- export const BaseURL = '后端网址'
-
- export interface SMSFace {
- id: number
- name: string
- categoryId: number
- title: string
- picUrls: string[]
- }
-
- export const AiInfo = {
- appId: '你的ID',
- secretCode: '你的密码',
- url: 'https://api.textin.com/ai/service/v2/recognize',
- }
-
使用异步函数,接受一个File
对象作为输入,并将该文件转换成一个ArrayBuffer
对象
- export function Base64ToArrayBuffer(file: File) {
- return new Promise((resolve, reject) => {
- var reader = new FileReader()
-
- reader.onload = function () {
- resolve(reader.result)
- }
-
- reader.onerror = function () {
- reject(reader.error)
- }
-
- reader.readAsArrayBuffer(file)
- })
- }
本质是我们调用合合信息TextIn提供的API过程
- import { AiInfo } from '@/constants'
-
- export function UploadArrayBufferToAi(fileData: any) {
- return new Promise((resolve) => {
- var xhr = new XMLHttpRequest()
- xhr.open('POST', AiInfo.url)
- xhr.setRequestHeader('x-ti-app-id', AiInfo.appId)
- xhr.setRequestHeader('x-ti-secret-code', AiInfo.secretCode)
-
- xhr.onreadystatechange = function () {
- if (xhr.readyState === 4 && xhr.status === 200) {
- let InfoList: string[] = []
- const { result } = JSON.parse(xhr.response)
- for (let i = 0; i < result.lines.length; i++) {
- InfoList.push(result.lines[i].text)
- }
- resolve(InfoList)
- }
- }
-
- xhr.send(fileData)
- })
- }
总的来说,TextIn服务为开发者提供了极大的便利,它不仅提供了丰富的功能,而且使用起来非常简单直观。其识别准确率非常高,几乎能够满足所有关于文本和图像处理的需求。强烈推荐给广大用户使用。
这里是官方网站的链接:https://www.textin.com
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。