RMB SDK.
Project description
元数据大脑 Reliable Meta Brain(RMB)
Feature (功能)
- DataSource 支持 Excel/CSV/MySQL
- 支持以对话方式查询数据
- 支持多轮对话
- 支持更新 Meta(字典/同义词),以识别意图,提高准确率
- 提供Restful API & Python SDK
- Excel的跨表关联查询
- Meta增强(获取数据样例便于生成准确的包含常量的Query语句,比如需要让LLM知道是sex='男'还是sex=1)
Backlog(计划)
- 支持微信文档中的表格
- 支持飞书、钉钉表格、Airtable表格
- 支持跨数据源(MySQL+MySQL,MySQL+Hive)的联合查询
Installation(安装)
- 安装客户端
pip install rmb-client
rmb-client -a https://api.rmb.datamini.ai/ -t token01
- 安装&运行服务端
方法1:通过pip
$ pip install rmb-server
$ rmb-server -h
$ rmb-client -a https://api.rmb.datamini.ai/ -t token01
方法2:通过docker(推荐) 镜像维护在 hub.docker.com
$ docker run -d -p 5000:5000 datamini/rmb-server
管理
多租户管理
支持多个租户,每个租户可以查看自己的数据源、对话等信息。
租户可以创建、禁用、删除自己的Token。
一个租户可以有多个Token,可以查看每个Token最后一次使用时间。
客户端
APIs(API 接口)
可以打开 rmb-server 的服务地址查看
认证方法
需要在 Header 中增加 Authorization 字段,值为 Bearer <token>
,其中 <token>
为用户的 Token。
Python Client SDK(Python客户端SDK)
- 运行
- 命令行方式
$ rmb-client -a https://api.rmb.datamini.ai/ -t token01
-- RMB 客户端(0.7.19)初始化完成!
-- 连接服务器(-a): http://127.0.0.1:5000
-- 使用Token (-t): token1
-- 您可以使用 'rmb' 来访问RMB,比如:通过 'rmb.datasources' 来查询数据源列表
完整的使用方法,请参考帮助文档:https://pypi.org/project/rmb-client/
Python 3.11.4 (main, Jun 7 2023, 00:34:59) [Clang 14.0.3 (clang-1403.0.22.14.1)]
Type 'copyright', 'credits' or 'license' for more information
IPython 8.18.1 -- An enhanced Interactive Python. Type '?' for help.
>>> rmb.datasources.last.ask('你好')
- import module 方式
$ python
>>> from rmbclient import RMB
>>> rmb = RMB(api_url='https://api.rmb.datamini.ai/', token='token01')
>>> rmb.version
- 使用
# 注册数据源
>>> ds = rmb.datasources.register(
ds_type="MySQL",
ds_name="我的MySQL库",
ds_access_config={
"host": "localhost",
"port": 3306,
"user": "root",
"password": ""
}
)
# 创建对话
>>> chat = rmb.chats.create([ds.id])
# 问问题
>>> answer = chat.ask("你好")
# 查看答案
>>> answer
[OK-2s] 你好!有什么数据分析问题可以帮助您解答吗?
>>> answer.to_dict()
{'status': 'OK',
'elapsed_time': 2,
'answer': '你好!有什么数据分析问题可以帮助您解答吗?',
'structure_queries': ''}
# 查看对话列表
>>> rmb.chats
id created datasource_ids human_msgs ai_msgs latest_msg
chat_E90pdsNUlDE7wo8gsjahf 2024-01-06 12:10:00 ['ds_1ZAoAyIn1ph0lldief4cP5'] 2 2 2024-01-07 01:26:48
chat_ql7vWZEIqafqg9dMAaNpi 2024-01-07 05:35:03 ['ds_S0tdSsWcuB2HxEA1BQICE'] 0 0
chat_1SfzrRkiIlKyvHtOTbX7qW 2024-01-07 05:46:21 ['ds_6tWxUjnKbK2JwJRmLuPTj9'] 4 4 2024-01-07 05:50:59
chat_2WEHFozMZPFQhYkqLwvufZ 2024-01-07 10:34:15 ['ds_5Jydks0MbCJ3atBIHBC98'] 1 1 2024-01-07 10:35:02
# 查看数据源列表
>>> rmb.datasources
id created_at name type
ds_6UluWoysMyTq2WW4gELTj6 2024-02-03T17:49:30 分公司季度销售汇总 Excel
ds_3miP820AAD6CnjmjOf6ADY 2024-02-03T19:45:41 学生成绩表汇总 Excel
ds_37XgrMJFUvqvNEfEBI3FH2 2024-02-03T20:32:11 前5名生产与排名 Excel
# 获取某个数据源
>>> ds2 = rmb.datasources.get("ds_4s7gIoeonfWXQavRuP5wJ0")
# 获取最新的数据源
>>> ds2 = rmb.datasources.last
# 获取该数据源的"RMB中维护的"元数据(AI直接使用的元数据)
>>> ds2.meta
ds_4s7gIoeonfWXQavRuP5wJ0 共有:1 Schema (e_mall_2), 7 Tables, 27 Fields.
Schemas Tables Fields(known/all)
e_mall_2(电子商城数据库) zzzz(未知) 1/1
e_mall_2(电子商城数据库) users(用户信息表) 5/5
e_mall_2(电子商城数据库) ttttt1(未知) 1/1
e_mall_2(电子商城数据库) products(产品信息表) 5/5
e_mall_2(电子商城数据库) orders(订单信息表) 4/4
e_mall_2(电子商城数据库) order_details(订单详情表) 4/4
e_mall_2(电子商城数据库) job(职位信息表) 7/7
# 获取该数据源的"运行时"元数据(即最新的实时元数据)
>>> ds2.meta_runtime
参与开发
本地环境启动
- 先
git clone ...
- 编辑配置文件 在目录
rmbserver/config/
下,执行cp default.py custom.py
然后编辑custom.py
文件 - 启动服务
python rmbserver/run.py [<host> <port>]
- 运行客户端
python rmbclient/cli.py [-a http://localhost:5000/ -t token01]
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distributions
No source distribution files available for this release.See tutorial on generating distribution archives.
Built Distribution
rmb_client-0.9.4-py3-none-any.whl
(25.6 kB
view hashes)
Close
Hashes for rmb_client-0.9.4-py3-none-any.whl
Algorithm | Hash digest | |
---|---|---|
SHA256 | 95863b24df25857f0302c6da3d0696eb0d48fa3263aa5e4f535a3c689b3e6204 |
|
MD5 | 3c7daa075148e0dca104fbc3c275810f |
|
BLAKE2b-256 | 97df1687213a75022f529b2e6c111b4d208efc3e283ab336c215e2c4067cad59 |