Python Client SDK(Python客户端SDK)
APIs(API 接口)
API 接口列表: https://api.asktable.com/
认证方法
需要在 Header 中增加 Authorization 字段,值为 Bearer <token>,其中 <token> 为用户的 Token。
注意:新用户请联系 contact@datamini.ai 获得token。
使用方式
-
命令行CLI
$ rmb-client -t <token> -- RMB 客户端(0.7.19)初始化完成! -- 连接服务器(-a): https://api.asktable.com/ -- 使用Token (-t): token01 -- 您可以使用 '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. In [1]: rmb.datasources.latest.ask('你好') Out[1]: [OK-4s]|| 你好!有什么可以帮助你的吗?
-
Python SDK
from rmbclient import RMB rmb = RMB(api_url='https://api.asktable.com/', token='token01') rmb.version
使用示例
以下示例使用命令行CLI方式演示。
注册数据源
-
注册 MySQL 数据源,这个地址必须是RMB Server可访问的
rmb.datasources.register( ds_type="mysql", ds_access_config={ "host": "localhost", "port": 3306, "user": "root", "password": "" } )
-
注册一个可下载的文件(Excel或CSV)
rmb.datasources.register( ds_type="csv", ds_access_config={ "location_url": "https://example.com/path/to/myfile.csv", "location_type": "http", } )
-
上传并注册一个本地的文件(Excel或CSV)
In [69]: rmb.datasources.create_from_local_file(local_file_path="/Users/jeffrey/code/DataMini/rmb/sample_data/tests/test_chart.xlsx", direct_to_oss=True) Out[69]: <ds_mrQq88Pu2DaBLCUZwgBAO: 月销售数据 >
查找数据源
-
所有数据源
In [54]: rmb.datasources Out[54]: id created_at name type ds_1MEd5IA392sgt7mw5PcwgV 2024-01-21T17:09:18 高校讲师工作量汇总 excel ds_5DuPVZbOo5iRx9ZRWNtDCj 2024-01-22T15:44:52 求公式数据汇总 excel ds_2Vl6Y5bypIJE0J19ulmiBL 2024-01-28T19:03:02 2024天津公务员招考 excel ds_3IrvrL6oFd1SIQ6FEKUPCn 2024-02-03T11:34:45 学生成绩总览 excel ds_2TDFez0l0qiSwFLsGvRKvV 2024-02-25T14:40:14 杭州房产信息 csv
-
最新的数据源
In [55]: rmb.datasources.latest Out[55]: <ds_2TDFez0l0qiSwFLsGvRKvV: 杭州房产信息 >
-
根据ID精确查找
In [56]: rmb.datasources.get('ds_2TDFez0l0qiSwFLsGvRKvV') Out[56]: <ds_2TDFez0l0qiSwFLsGvRKvV: 杭州房产信息 >
-
根据Name查找(可能重名,返回List)
In [57]: rmb.datasources.get(name='杭州房产信息') Out[57]: [<ds_25vqFPq3wAgzcCVGoygBOO: 杭州房产信息 >, <ds_2eGWHUvUbWN0AAbke0aKIb: 杭州房产信息 >, <ds_2TDFez0l0qiSwFLsGvRKvV: 杭州房产信息 >]
管理某个数据源
-
查看 RMB 中的Meta(即AI使用的Meta,在RMB中所保存的Meta)
In [58]: ds = rmb.datasources.latest In [59]: ds.meta Out[59]: ds_2TDFez0l0qiSwFLsGvRKvV 共有:1 Schema (杭州房产信息), 1 Table (杭州房产信息.杭州房产信息), 19 Fields. Schemas Tables Fields(known/all) 杭州房产信息 杭州房产信息 19/19
-
查看运行时的Meta(即原文件或者原数据库中最新的Meta)
In [61]: ds.meta_runtime Out[61]: ds_2TDFez0l0qiSwFLsGvRKvV 共有:1 Schema (杭州房产信息), 1 Table (杭州房产信息.杭州房产信息), 19 Fields. Schemas Tables Fields(known/all) 杭州房产信息 杭州房产信息 0/19
-
同步Meta(即将运行时的Meta同步到RMB中的Meta)
In [60]: ds.meta.sync() Out[60]: True
-
查看示例问题
In [62]: ds = rmb.datasources.latest In [63]: ds.sample_questions Out[63]: '- 查询杭州房产的平均总价\n- 统计各区域房产数量 \n(为了方便沟通,您可以直接指定列名:城市, 区域, 子区域, 小区, 总价, 单价, 户型, 楼层, 建筑面积, 套内面积, 装修, 梯户比例, 电梯, 别墅类型, 挂牌日期, 产权, 房屋用途, 房龄, 链接)'
-
删除
In [64]: ds = rmb.datasources.latest In [65]: ds.delete() Out[65]: True
开始对话
-
直接对数据源进行提问
In [52]: ds = rmb.datasources.latest In [53]: ds.ask("你好") Out[53]: [OK-3s] 你好!请问有什么可以帮助您的吗?
-
创建一个对话,然后提问
In [47]: ds = rmb.datasources.latest In [48]: ds Out[48]: <ds_2TDFez0l0qiSwFLsGvRKvV: 杭州房产信息 > In [49]: chat = rmb.chats.create([ds.id]) In [50]: answer = chat.ask("你好") In [51]: answer.to_dict() Out[51]: {'status': 'OK', 'elapsed_time': 2, 'answer_text': '你好!有什么可以帮助你的吗?', 'answer_file_url': None, 'answer_image_url': None, 'structure_queries': []}
查看对话
-
查看所有对话
In [40]: rmb.chats Out[40]: 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
-
获取最后一个对话
In [41]: rmb.chats.latest Out[41]: <Chat chat_6LYoQImReUun8gR8q32LZm [2024-02-06 06:33:47]>
-
根据ID查找对话
In [44]: rmb.chats.get('chat_1SfzrRkiIlKyvHtOTbX7qW') Out[44]: <Chat chat_1SfzrRkiIlKyvHtOTbX7qW [2024-01-07 05:46:21]>
-
查看某个对话的历史消息
In [43]: rmb.chats.latest.messages Out[43]: id created role content msg_1x0t6ch4KzZiSPFDbrL1iC 2 hours 59 minutes ago human 将B列的数据拆分为姓名、手机号和地址三列 msg_5D5bdJ2vBYjhpjlVuqyN5N 2 hours 59 minutes ago ai [OK-22s] 很抱歉,由于元数据中并未提供包含电话号码和地址的字段信息,我们无法直接从数据库中分割列B的数据为姓名、电话号码和地址三个独立的列。如果您能提供更详细的数据格式或者具体的分割规则,我们可能会有其他方式来帮助您处理这个问题。 msg_1rnZp94PzQeMetZxV2W3VC 2 hours 57 minutes ago human 看起来好像可以按照换行来拆分 msg_1igXXP1VBMSVx2iW8DENVt 2 hours 57 minutes ago ai [OK-34s] 已经根据您的要求将B列的数据拆分为姓名、手机号和地址三列。您可以查看处理好的数据。 [File:https://0vc.cc/KcZzK]
删除对话
删除某个对话
```python
In [45]: chat = rmb.chats.latest
In [46]: chat.delete()
Out[46]: True
```
Metadata
Release files for rmb-client 0.11.12
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| rmb_client-0.11.12-py3-none-any.whl | Python 3 | none | any | Details |
Release files / rmb_client-0.11.12-py3-none-any.whl
| Download URL | rmb_client-0.11.12-py3-none-any.whl |
|---|---|
| Size | 27.0 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5b50df48a94f27ba93718fbdce3dbe67f3e40ca600eaeba60bbc677addebc56a
|
|
BLAKE2b-256 checksum How to use checksums |
403ef76183bcecc642c30a8d28aac597bd80eb7f1275bb2b63013618c1a0127a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/4.0.2 CPython/3.11.7
|