跳到主要内容

Python SDK 快速入门

介绍

AskTable Python SDK 提供了一套简洁的接口,让您能够轻松地将数据分析和问答能力集成到您的应用中。通过本指南,您将了解如何使用 SDK 完成从数据源创建到智能问答的全流程操作。

其他参考:

注意

  • 若未安装 AskTable 的 Python SDK,请先安装 SDK,参考安装指南

使用示例

AskTable支持两种类型的数据源:文件类型(Excel或CSV)和数据库类型(如MySQL, PostgreSQL等)。

文件类型数据源使用示例

使用文件类型数据源时,需要完成以下步骤:

  1. 初始化SDK客户端
  2. 创建数据源
  3. 上传文件
  4. 构建元数据
  5. 创建机器人(Bot)
  6. 创建对话(Chat)
  7. 发送问题并获取回答

完整代码示例

  1. 初始化SDK
from asktable import Asktable

# 初始化SDK
api_key = 'API_KEY'

# 如果使用 SaaS
client = Asktable(api_key=api_key)

# 如果是本地部署
client = Asktable(base_url='http://192.168.3.5:8000/api', api_key=api_key)
  1. 创建数据源
datasource = client.datasources.create(
engine="excel",
name="example_excel"
)
  1. 上传文件
with open(file_path, "rb") as file_obj:
file_id = client.datasources.add_file(
datasource_id=datasource.id,
file=file_obj
)
  1. 创建元数据
meta = client.datasources.meta.create(
datasource_id=datasource.id,
name="example_meta"
)
  1. 创建机器人
bot = client.bots.create(
datasource_ids=[datasource.id],
name="example_bot"
)
  1. 创建对话
chat = client.chats.create(
bot_id=bot.id
)
  1. 发送问题获取回答
message = client.chats.messages.create(
chat_id=chat.id,
question="张三的成绩"
)
print(message.content.text)

数据库类型数据源示例

使用数据库类型数据源时,需要完成以下步骤:

  1. 初始化SDK客户端
  2. 创建数据源
  3. 构建元数据
  4. 创建机器人(Bot)
  5. 创建对话(Chat)
  6. 发送问题并获取回答

完整代码示例

  1. 初始化SDK
from asktable import Asktable

# 初始化SDK
api_key = 'API_KEY'

# 如果使用 SaaS
client = Asktable(api_key=api_key)

# 如果是本地部署
client = Asktable(base_url='http://192.168.3.5:8000/api', api_key=api_key)
  1. 创建数据源
datasource = client.datasources.create(
engine="mysql",
name="example_mysql",
access_config={
"host": "your_mysql_host",
"port": 3306,
"user": "your_username",
"password": "your_password",
"db": "your_database",
},
)
  1. 创建元数据
meta = client.datasources.meta.create(
datasource_id=datasource.id,
name="example_meta"
)
  1. 创建机器人
bot = client.bots.create(
datasource_ids=[datasource.id],
name="example_bot"
)
  1. 创建对话
chat = client.chats.create(
bot_id=bot.id
)
  1. 发送问题获取回答
message = client.chats.messages.create(
chat_id=chat.id,
question="张三的成绩"
)
print(message.content.text)