一 写在前面
之前用智谱AI的Chatglm3-6b模型写过一个简单的论文阅读助手,可用来辅助论文阅读等。而像表格,如Excel、CSV文件等内容的分析,也是不可忽略的需要,因此本文同样使用Chatglm3-6b来搭建一个表格分析助手,用于快速分析表格的内容,提取有效的信息。
Chatglm3采用了全新的对话格式,除最基本的对话外,还支持工具调用和代码执行。简单来说,代码执行属于工具调用的子类,只是提示词不一样,而这两种功能是通过修改微调阶段的提示词来实现的。本文展示的模型作用类似代码执行,但是提示词略不一样,并且只用了最常见的对话提示词模板来完成该功能。
二 表格理解
读取表格非常简单,使用pandas库中的read_csv
或者read_excel
即可。
1 直接读取完整的表格内容
利用to_json
方法将df转化为一个json字符串
def read_from_csv(filename):
df = pd.read_csv(filename)
return df.to_json(force_ascii=False)
s = read_from_csv('/test_short.csv')
print(s)
'{"id":{"0":22501,"1":22502,"2":22503,"3":22504,"4":22505,"5":22506,"6":22507,"7":22508},"age":{"0":35,"1":26,"2":44,"3":36,"4":41,"5":24,"6":25,"7":33},"nr_employed":{"0":5205,"1":4925,"2":4947,"3":5203,"4":4992,"5":4993,"6":5155,"7":5034}}'
接着把上述表格内容的字符串放进提示词中
prompt = f"已知信息:{
s}\n\n请回答问题:age大于35的数量有多少?\n\n"
用了上述的提示词生成的python代码如下:
data = {
"id": {
"0": 22501, "1": 22502, "2": 22503, "3": 22504, "4": 22505, "5": 22506, "6": 22507, "7": 22508},
"age": {
"0": 35, "1": 26, "2": 44, "3": 36, "4": 41, "5": 24, "6": 25, "7": 33},
"nr_employed": {
"0": 5205, "1": 4925, "2": 4947, "3": 5203, "4": 4992, "5"