目录
该API基于知识检索增强模式,增强大模型能力。使用文档解析和理解能力将企业私域文档和结构化数据构建为可供检索的知识,使大模型可检索私域知识用于知识问答和内容生成,高效构建更懂企业和业务的大模型。
1.Python包构成
下载的Demo包中含有两个python脚本,分别用于文档的上传和知识的问答,在使用两个脚本之前需要创建对应的工程,获取APPId和APISecret两个密钥控制台-讯飞开放平台 (xfyun.cn),点击立即购买可以0元购部分免费的资源。
2.文档的上传
文档的上传脚本支持提交本地文件和网络文件:
#提交本地文件
def get_files_and_body(self):
body = {
"url": "",
"fileName": "知识.docx",
"fileType": "wiki",
"needSummary": False,
"stepByStep": False,
"callbackUrl": "your_callbackUrl",
}
files = {'file': open('知识.docx', 'rb')}
return files, body
# 提交网络文件
def get_body(self):
body = {
"file": "",
"url": "文件网络地址 例如: https://xxx.xx.com/xxx.pdf",
"fileName": "文件名, 例如:xxx.pdf",
"fileType": "wiki",
"callbackUrl": "your_callbackUrl"
}
form = MultipartEncoder(
fields=body,
boundary='------------------' + str(random.randint(1e28, 1e29 - 1))
)
return form
具体参数设置详见文档上传 (xfyun.cn),将专业领域的知识记录在文档中,并通过上述的方式进行上传,获取到对应的数据ID,可以用于知识的问答。
3.知识的问答
第二个python脚本是文档问答的脚本,可以用于问题的回答。在这个脚本中需要设置fileIds和content两个参数,其中fileIds是上传的文档ID,content是需要问的问题。
def get_body(self):
dataJson = request.get_json()
data = {
"chatExtends": {
"wikiPromptTpl": "请将以下内容作为已知信息:\n<wikicontent>\n请根据以上内容回答用户的问题。\n问题:<wikiquestion>\n回答:",
"wikiFilterScore": 0.83,
"temperature": 0.5
},
"fileIds": [dataJson["fileID"]# "e41900a5959e47e58ba6f71c2ea515ce"
],
"messages": [
{
"role": "user",
"content": dataJson["userContent"]
}
]
}
return data
4.前端的调用
上述代码经我我处理可以用于接口的调用。这个调用是我在前端进行调用的。前端的部分代码为
const data = {
fileID:"464cb722e6215d3f",
userContent: inputValue
};
try {
const response = await this.$axios.post('http://ip:端口/questionAndAnswer', data);
console.log(response.data);
const mes = response.data["message"];
console.log(mes);
alert(mes);
// console.log(this.textarea)
// 在这里处理返回的数据,根据实际情况进行操作
} catch (error) {
console.error(error);
}
}
上述将python作为后台服务,在前端进行事件的处理,进而完成专业领域对话式的交互。
5.常见的错误
另外注意:需要在python添加下边代码段,解决前端调用过程中的跨域问题。
from flask_cors import CORS, cross_origin
app = Flask(__name__)
cors = CORS(app)
仅以此作为调用讯飞星火API的记录!!!