文因云

文档与支持

金融问答API

一:产品说明

文因金融问答API是一款能够帮助您快速构建功能丰富、交互性强的金融问答机器人,目前提供公司、人物和行业等多个维度的基本信息查询,数据来源包括公开发布的上市公司公告、研报和新闻。

二:授权说明

  • 阿里云市场授权:本授权适合于在阿里云市场有账号的用户,在阿里云市场购买产品即可获得授权。推荐使用阿里云调用API。商品连接
  • 自主开发授权:通过token授权,token价格,调用地址,具体购买方式请发送邮件到:cloudservice@memect.co 电话号码:13146982978。调用API时通过header传递token
curl 'https://example.memect.cn/qaapi/qa/v2?qid=123'  \
-H 'token: <your token>'

三:主要功能

1 公司查询 通过文因金融问答API,可以查询上市A股企业和新三板企业的公司基本面信息,包括:财务数据(营业收入、净利润等,详情见附1)、财务变动原因、股价、市值、换手率、高管职位(不完全列表见附1)、子公司、产品、十大股东、欠款人(更多见附1)。数据主要来自上市企业和新三板企业的历年发布的公告。 示例:

* 四维图新的市值
* 四维图新的股价
* 四维图新的净利润
* 万科董事长
* 恒邦股份营收

2 行业查询 基于文因金融问答API,可以快速查找行业信息,目前支持的信息包括行业百科、行业上下游、行业市场规模。数据主要来自上市公司和新三板企业公告和近两年发布的研究报告。 示例:

* 计算机行业市场规模
* 人工智能市场规模
* 网络游戏上下游
* 钢化玻璃

3 人物查询 基于文因金融问答API,可以查询上市公司高管人物简历和关联关系,查询方式包括人名、公司+人名、公司+职位。数据主要来自上市公司和新三板企业公告。 示例:

* 万科董事长
* 万科王石
* 宋安澜

4 公司筛选 通过文因金融问答API,可以通过自然语言进行公司筛选和搜索,目前支持的筛选条件包括:行业(细分行业、概念)、板块(新三板、A股)、地区(行政区域规划)。支持按照财务指标和市值等信息进行排序。 示例:

* 浦东新区的公司
* 浦东新区的体育公司
* 浦东新区的新三板公司
* 浦东新区的市值最高的新三板公司
* 浦东新区净利润最高的新三板公司

五:API详情

ABC
API列表请求类型类型
/qaapi/qa/v2Post收费
/qaapi/qa/v2Get收费

1 创建问题 通过调用/qaapi/qa/{version} API的post请求,可以向机器人创建一个问题,因为机器人的处理是异步的,所以post请求后,并不会马上返回对应的答案,而是返回一个对应的问题id,这个问题id是用户用来获取问题答案的唯一标识,用户注意在本地保管好。

ABC
参数说明示例
授权必须,详情参见授权部分
question必须,需要查询的问题万科王石
  • 自主开发示例
curl 'https://example.memect.cn/qaapi/qa/v2' \
-H 'token: <your token>' \
-d '{
"question": "万科王石"
}'
  • 阿里云市场示例:
curl -i -k -X POST 'https://memect0005.market.alicloudapi.com/qaapi/qa/v2'  -H 'Authorization:APPCODE <your appcode>' -H 'Content-Type:application/json; charset=utf-8' --data '{
"question": "万科王石"
}' -H 'Content-Type:application/json; charset=UTF-8'
  • 返回数据说明
ABC
参数说明示例
qid问题id,用来标识问题,在获取问题的任何信息都需要提供该id
  • 返回数据示例
{
"errCode": 0,
"response": {
    "qid": "15110116921533"
    }
}

2 获取答案 通过调用/qaapi/qa/{version} 接口的get请求,可以向机器人查询对应问题的答案和状态。

ABC
参数说明示例
授权必须,详情参见授权部分
qid必须,通过该API的post方法获取
  • 自行开发示例:
curl 'https://example.memect.cn/qaapi/qa/v2?qid=<your qid>' \
    -H 'token: <your token>'
  • 阿里云市场调用API示例:
curl -i -k --get --include 'https://memect0005.market.alicloudapi.com/qaapi/qa/v2?qid=15143619627860'  -H 'Authorization:APPCODE <your appcode>'
  • 返回数据说明
ABC
参数说明示例
answer列表,返回的问题列表见答案格式说明部分
cost数值,回答问题时间0.01
suggestion列表,查询建议"万科的董事长", "万科财务总监"
score数值,标识问题回答的可信度,当该值小于1时,说明机器人对问题理解或者回答有问题0.234
is_finished布尔值,标识机器人是否全部回答完。true标识全部回答完,false标识没有全部回答完。TRUE
question_type字符串,用于标注问题分类,目前支持两种分类:chat和query;考虑到query分类会进一步细化,所以建议使用chat来对标注问题类型。chat
content列表,每个元素都以字典形式存在,元素顺序表示答案出现顺序,在前的表示先出现的答案。content中的元素会包括以下几种类型:answer、full_report、image_url、data、report。详细说明见下文 “答案数据格式介绍”见下方代码演示
answer_logic布尔值,用来说明是否有真正意义上回答这个问题,还是给出了没有答案的返回。TRUE/ FALSE
  • 返回数据示例
{
    "errCode": 0,
    "response": {
          "cost ": 0.1,
          "score": 1,
          "suggestion ": [],
          "is_finished": true,
          "question_type":"query",
          "content": [
                {
                    "answer": [
"郁亮先生,1965年出生,汉族,中国国籍,郁亮先生,1965年出生,郁先生1990年加入万科,1994年起任公司董事,1996年任公司副总经理,1999年任公司常务副总经理兼财务负责人,2001年起任公司总裁至今。加入万科之前,郁先生曾供职于深圳外贸集团。郁先生目前兼任中城联盟投资管理股份有限公司董事,曾任上海美特斯邦威服饰股份有限公司(深圳证券交易所上市公司,股票代码:002269)独立董事。"
]
}
]
}
}
 

3 答案数据格式介绍 答案是指获取到的答案数据中被content包围起来的部分,这部分以列表形式存在,一般包含一到多个元素,其中每一个元素包含一个到多个不同的键。

ABC
键名类型说明
answer列表列表中的每个元素都是字符串,每一个都是一个自然段落,开发者可以将这些段落合并起来,也可以分开展示。
full_report字典PDF报告链接,其中包含两个key:url和name,url是表示这份报告的链接,name表示这份报告的文件名。开发者可以直接修改链接中的pdf后缀为pptx获取ppt报告。
image_url字符串表示一张图片,开发者可以通过这个链接获取图片。这里的链接如果是不完整的,开发者可以自行使用https://example.memect.cn 拼一个完整的链接。
report字符串表示data数据的purple id,可以根据这个id来拼接 一个完整的链接重新获取这份报告的数据,一般用来生成可分享的报告页面和图片二维码。与data键共同存在。拼接方法为:https://example.memect.cn/getanswer/
data字典与report键共同存在。数据用来渲染一份报告,包括以下键:layout、data、title、notice。layout和data都是列表,而且等长。layout中的对应的字符串表示data中对应元素的展现方式。详情见报告数据格式介绍。title是这份报告的标题。notice是这份报告中出现时,bot在聊天界面出现的回答(即answer的内容),此处方便开发者在分享页面使用。

answer示例

"content": [
    {
        "answer": [
            "万科A的挂牌日期是1991年01月29日。"
        ]
    }
]

full_report示例

"content": [
    {
        "full_report": {
            "url": "https://example.memect.cn/6e992d98f45f/a.pdf",
            "name": "万科A(000002)_文因互联_一键生成报告_20171124.pdf"
        }
    }
]

Image_url示例

"content": [
    {
        "image_url": "/qaapi/static/5c7cd5530f.png"
    }
]

report和data示例

"content": [
    {
        "answer": [
            "万科的高管有哪些"
        ],
        "report": "sadasdasdas",
        "data": {
            "layout": [
                "text"
            ],
            "data": [
                [
                    "你好"
                ]
            ],
            "title": "这是报告页",
            "notice": "万科A从业务属性判断,类似的A股企业有中国宝安(000009)"
        }
    }
]

4 报告数据格式介绍 报告数据指答案数据介绍中的data中的layout和data的说明。以下两个表格分别说明layout和data分别有哪些类型。

  • layout类型说明
ABC
类型值类型说明
table字典表格
middletable字典表格,下一版将弃用,这类型和table的展现方式一样
text列表文本
chart字典图表
mschart字典图表,下一版将弃用。
logic字典用来展示一些小的逻辑推理结果
  • data类型说明

  • table格式说明

table是一个字典类型的数据,包括以下键:

ABC
类型说明
head字符串列表每个元素表示表头显示的字符串
rows列表每个元素是一个列表,子列表中的每个元素作为单元格显示内容
align字符串列表每个元素用来建议开发者每列如何水平对齐,包括left、center、right三个对齐方式
width数值列表每个元素用来建议开发者每一列的宽度,这个宽度仅表示比例,开发者需要根据比例自行计算
height数值列表每个元素建议
merge列表表示该合并的单元格,每个元素都是列表,每个列表四个元素,分别表示起始行、终止行、起始列、终止列(坐标从0开始)。

示例:

{
 "rows": [
  [
   "",
   "收入(亿元)",
   "占比(%)"
  ],
  [
   "房地产",
   "655.23",
   "95.62"
  ],
  [
   "物业管理",
   "29.99",
   "4.38"
  ]
 ],
 "head": [
  "",
  "2017-06-30",
  "2017-06-30"
 ],
 "width": [
  1.4,
  3.7,
  3.1
 ],
 "merge": [
  [0, 1, 0, 0]
 ]
}
  • middletable格式说明

与table一致,会在下一版本中弃用。

  • text格式说明

元素是字符串或字符串组成的列表,每一个字符串是一段应该展示的文本。

  • chart格式说明

  • mschart格式说明

与chart一致,会在下一版中弃用。

  • logic说明

5 错误码说明: 返回数据

* errCode
    * 数值,数值为0时表示请求正确。
    * 表示返回的错误码
* response
    * 字典
    * 返回内容
ABC
错误代码详细描述状态码
0请求成功200
1000用户未授权401
1001非法参数400
1002没有找到请求的资源404
1003数据库错误400
1004解析 json 失败400
9000系统错误,比如请求了无效的方法等400
9999未知错误400

联系方式

contact@memect.co
联络人:13146199749
北京市朝阳区圣世一品B5-6A