Skip to main content
Glama

baidu-ai-search

Official
by baidubce
README.md4.68 kB
# GBI 选表 ## 简介 GBI 选表:根据提供的多个 MySql 表名 以及 表名对应的描述信息,通过 query 选择一个或多个最合适的表来回答该 query。 一般的适用场景是,当有数据库有多个表的时候,但是实际只有1个表能回答该 query,那么,通过该能力将该表选择出来,用于后面的 问表 环节。 ### 功能介绍 GBI 选表,根据提供的多个 MySql 表名 以及 表名对应的描述信息,通过 query 选择一个或多个最合适的表来回答该 query。 一般的适用场景是,当有数据库有多个表的时候,但是实际只有1个表能回答该 query,那么,通过该能力将该表选择出来,用于后面的 问表 环节。 ### 特色优势 可直接通过上传Excel进行数据问答 ### 应用场景 1. 营销数据分析 2. 表格问答 ## 基本用法 下面是根据提供的表的描述信息以及 query 选择对应的表的示例。 ```python import logging import os import appbuilder from appbuilder.core.message import Message from appbuilder.core.components.gbi.basic import SessionRecord # 请前往千帆AppBuilder官网创建密钥,流程详见:https://cloud.baidu.com/doc/AppBuilder/s/Olq6grrt6#1%E3%80%81%E5%88%9B%E5%BB%BA%E5%AF%86%E9%92%A5 os.environ["APPBUILDER_TOKEN"] = "..." # 表的描述信息, key: 表名; value: 是表的描述 table_descriptions = { "supper_market_info": "超市营收明细表,包含超市各种信息等", "product_sales_info": "产品销售表" } # 生成问表对象 select_table = appbuilder.SelectTable(model_name="ERNIE-Bot 4.0", table_descriptions=table_descriptions) select_table_result_message = select_table(Message({"query": "列出超市中的所有数据"})) print(f"选的表是: {select_table_result_message.content}") ``` 选的表是: ['supper_market_info'] ## 参数说明 ### 初始化参数 - model_name: 支持的模型名字 ERNIE-Bot 4.0, ERNIE-Bot, ERNIE-Bot-turbo, Qianfan-Agent-Speed-8K - table_descriptions: 表的描述是个字典,key: 是表的名字, value: 是表的描述,例如: ``` { "supper_market_info": "超市营收明细表,包含超市各种信息等", "product_sales_info": "产品销售表" } ``` - prompt_template: prompt 模版, 必须包含如下: 1. {num} - 表的数量, 注意 {num} 有两个地方出现 2. {table_desc} - 表的描述 3. {query} - query 参考下面的示例: ``` 你是一个专业的业务人员,下面有{num}张表,具体表名如下: {table_desc} 请根据问题帮我选择上述1-{num}种的其中相关表并返回,可以为多表,也可以为单表, 返回多张表请用“,”隔开 返回格式请参考如下示例: 问题:有多少个审核通过的投运单? 回答: ```DWD_MAT_OPERATION``` 请严格参考示例只不要返回无关内容,直接给出最终答案后面的内容,分析步骤不要输出 问题:{query} 回答: ``` ### 调用参数 - message: message.content 是用户的问题,包含的key: query, session * query: 用户提出的问题 * session: SessionRecord 列表 #### SessionRecord 初始化参数 - query: 用户的问题 - answer: gbi_nl2sql 返回的结果 NL2SqlResult ### 返回值 识别的表名的列表例如: `["table_name"]` ## 调整 prompt 模版 有时候,我们希望定义自己的prompt, 选表支持 prompt 模版的定制化,但是必须遵循对应的 prompt 模版的格式。 ### 选表 prompt 调整 选表的 prompt template, 必须包含 1. {num} - 表的数量, 注意 {num} 有两个地方出现 2. {table_desc} - 表的描述 3. {query} - query, 参考下面的示例: ```python SELECT_TABLE_PROMPT_TEMPLATE = """ 你是一个专业的业务人员,下面有{num}张表,具体表名如下: {table_desc} 请根据问题帮我选择上述1-{num}种的其中相关表并返回,可以为多表,也可以为单表, 返回多张表请用“,”隔开 返回格式请参考如下示例: 问题:有多少个审核通过的投运单? 回答: ```DWD_MAT_OPERATION``` 请严格参考示例只不要返回无关内容,直接给出最终答案后面的内容,分析步骤不要输出 问题:{query} 回答: """ ``` ```python select_table4 = appbuilder.SelectTable(model_name="ERNIE-Bot 4.0", table_descriptions=table_descriptions, prompt_template=SELECT_TABLE_PROMPT_TEMPLATE) select_table_result_message4 = select_table4(Message({"query": "列出超市中的所有数据"})) print(f"选的表是: {select_table_result_message4.content}") ``` 选的表是: ['supper_market_info']

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/baidubce/app-builder'

If you have feedback or need assistance with the MCP directory API, please join our Discord server