借助讯飞官方go语言的例子,编译为可执行文件后,借用aardio的管道功能,读取输入输出数据,不在需要管复杂的参数转换和生成。只需要给出数据,就可以返回结果。以下是我自己的用法,各位可以自行修改使用
讯飞文档地址:https://www.xfyun.cn/doc/spark/Web.html
import console;
import process.popen
import goexcel
//只支持xlsx,win7及以上系统
filename = ..io.fullpath("C:\Users\Lcx\Desktop\费用统计.xlsx");
// 打开/创建文件
result = goexcel.openExcel(filename);
// 获取工作表名称数组
sheets = goexcel.getSheetNames(filename)
//console.varDump(sheets)
//接数据库
import mysql.client;
console.showLoading(" 正在连接数据库" )
var dbClient,err = mysql.client(
server = "//////"; //数据库服务器,可省略默认为localhost
uid = "/////";//用户名,可省略默认为root
pwd = "////";
);
if(!dbClient){
console.log("数据库连接失败")
return console.logPause(err);
}
//选择数据库
dbClient.selectDb("emlog")
var gid = dbClient.query(`SELECT gid FROM emlog_blog ;`);
n = gid.getTable()
for(k,v in n ){
if(k<201){
continue
}
console.log(k)
var titl_content = dbClient.query(`SELECT title, content FROM emlog_blog WHERE gid = `+v.gid+`;`);
var tcTable = titl_content.getTable()
console.log(tcTable[1].title)
conurl = tcTable[1].content
var question = "提取以下文本中的施工费、材料费、费用合计金额,按照施工费:xxx.xx元,材料费:xxx.xx元,合计xxx.xx元的格式返回数据,如果没有材料费,合计金额就是施工费。文本内容如下:"++conurl
//console.varDump(question)
var prcs = process.popen(`C:\Users\Lcx\Desktop\星火大模型\Sparkdemo.exe -appid=【appid】 -apiKey=【apiKey】 -apiSecret=【apiSecret】 -domain=lite -temp=0.1 -topK=1 -maxTokens=200 -q="`+question+`"`)
prcs.codepage = 65001
prcslog = prcs.readAll()
//console.varDump(prcslog)
施工费 = string.match(prcslog,"施工费[::]\s*(\d+)元",1)
材料费 = string.match(prcslog,"材料费[::]\s*(?:(\d+)元|无)",1)
合计金额 = string.match(prcslog,"合计金额[::]\s*(\d+)元",1)
//在表写入内容
goexcel.writeCell(filename,sheets[1],"A"++k,tcTable[1].title)
goexcel.writeCell(filename,sheets[1],"B"++k,施工费)
goexcel.writeCell(filename,sheets[1],"C"++k,材料费)
goexcel.writeCell(filename,sheets[1],"D"++k,合计金额)
//console.log(施工费,材料费,合计金额)
//console.pause()
if(k%200 = 0){
// 保存文件
goexcel.saveExcel(filename)
剩余 = #n-k
console.log("保存完成"++k++"条,剩余" ++ 剩余 ++ "条。");
//console.pause(true);
}
}
// 保存文件
goexcel.saveExcel(filename)
//关闭excel文件
goexcel.closeExcel(filename)
console.pause();
go文件是修改后可以编译为exe文件的源码,压缩包内是官方例子,exe文件是打包后的exe文件。