Skip to main content

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方式演示。

注册数据源

  1. 注册 MySQL 数据源,这个地址必须是RMB Server可访问的

    rmb.datasources.register(
        ds_type="mysql",
        ds_access_config={
            "host": "localhost",
            "port": 3306,
            "user": "root",
            "password": ""
        }
    )
    
  2. 注册一个可下载的文件(Excel或CSV)

    rmb.datasources.register(
        ds_type="csv",
        ds_access_config={
            "location_url": "https://example.com/path/to/myfile.csv",
            "location_type": "http",
        }
    )
    
  3. 上传并注册一个本地的文件(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: 月销售数据 >
    

查找数据源

  1. 所有数据源

    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
    
  2. 最新的数据源

    In [55]: rmb.datasources.latest
    Out[55]: <ds_2TDFez0l0qiSwFLsGvRKvV: 杭州房产信息 >
    
  3. 根据ID精确查找

    In [56]: rmb.datasources.get('ds_2TDFez0l0qiSwFLsGvRKvV')
    Out[56]: <ds_2TDFez0l0qiSwFLsGvRKvV: 杭州房产信息 >
    
  4. 根据Name查找(可能重名,返回List)

    In [57]: rmb.datasources.get(name='杭州房产信息')
    Out[57]: 
    [<ds_25vqFPq3wAgzcCVGoygBOO: 杭州房产信息 >,
     <ds_2eGWHUvUbWN0AAbke0aKIb: 杭州房产信息 >,
     <ds_2TDFez0l0qiSwFLsGvRKvV: 杭州房产信息 >]
    

管理某个数据源

  1. 查看 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
    
  2. 查看运行时的Meta(即原文件或者原数据库中最新的Meta)

    In [61]: ds.meta_runtime
    Out[61]: 
    ds_2TDFez0l0qiSwFLsGvRKvV 共有:1 Schema (杭州房产信息), 1 Table (杭州房产信息.杭州房产信息), 19 Fields. 
    
    Schemas       Tables        Fields(known/all)
    杭州房产信息  杭州房产信息  0/19
    
  3. 同步Meta(即将运行时的Meta同步到RMB中的Meta)

    In [60]: ds.meta.sync()
    Out[60]: True
    
  4. 查看示例问题

    In [62]: ds = rmb.datasources.latest
    
    In [63]: ds.sample_questions
    Out[63]: '- 查询杭州房产的平均总价\n- 统计各区域房产数量 \n(为了方便沟通,您可以直接指定列名:城市, 区域, 子区域, 小区, 总价, 单价, 户型, 楼层, 建筑面积, 套内面积, 装修, 梯户比例, 电梯, 别墅类型, 挂牌日期, 产权, 房屋用途, 房龄, 链接)'
    
  5. 删除

    In [64]: ds = rmb.datasources.latest
    
    In [65]: ds.delete()
    Out[65]: True
    

开始对话

  1. 直接对数据源进行提问

    In [52]: ds = rmb.datasources.latest
    
    In [53]: ds.ask("你好")
    Out[53]: [OK-3s] 你好!请问有什么可以帮助您的吗?
    
  2. 创建一个对话,然后提问

    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': []}
    

查看对话

  1. 查看所有对话

    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
    
  2. 获取最后一个对话

    In [41]: rmb.chats.latest
    Out[41]: <Chat chat_6LYoQImReUun8gR8q32LZm [2024-02-06 06:33:47]>
    
  3. 根据ID查找对话

    In [44]: rmb.chats.get('chat_1SfzrRkiIlKyvHtOTbX7qW')
    Out[44]: <Chat chat_1SfzrRkiIlKyvHtOTbX7qW [2024-01-07 05:46:21]>
    
  4. 查看某个对话的历史消息

    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)

Table of built distributions (wheels) for rmb-client 0.11.12
File Interpreter ABI Platform
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

Release history Release notifications | RSS feed

This release

0.11.12 This release

1 release file

0.11.11

1 release file

0.11.10

1 release file

0.11.9

1 release file

0.11.8

1 release file

0.11.7

1 release file

0.11.6

1 release file

0.11.5

1 release file

0.11.4

1 release file

0.11.3

1 release file

0.11.2

1 release file

0.9.5

1 release file

0.9.4

1 release file

0.9.3

1 release file

0.9.2

1 release file

0.8.3

1 release file

0.8.2

1 release file

0.8.0

1 release file

0.7.19

1 release file

0.7.14

1 release file

0.7.13

1 release file

0.7.12

1 release file

0.7.11

1 release file

0.7.9

1 release file

0.7.7

1 release file

0.7.6

1 release file

0.7.4

1 release file

0.4.9

1 release file

0.4.8

1 release file

0.4.7

1 release file

0.4.6

2 release files

0.3.15

2 release files

0.3.14

2 release files

0.3.13

2 release files

0.3.11

2 release files

0.2.1

2 release files

0.2

2 release files

0.1

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page