我创建了一个用来生成报告的应用,首先定义了一个用户输入参数 data(传入 json 格式的参考数据),之后大模型利用该参考数据生成报告。
发布后,我不想再通过对话的方式来引导生成报告。我想直接就通过 api 的方式调用我的这个应用,直接返回生成的报告,我在尝试的过程中,上述用户输入参数 data 放在请求的哪一部分呢,怎么写,我尝试如下方式,显示并没有获取到该参数:
if __name__ == '__main__':
url = "http://xxx:10101/api/application/2e516bd4-0922-11f0-ae88-0242ac120003/chat/completions"
headers = {
"accept": "application/json",
"AUTHORIZATION": "Bearer application-asdfasdfsadfsadfasdf"
}
data = {
"model": "DeepSeek-R1-Distill-Qwen-32B",
"messages": [
{
"role": "user",
"content": "请帮我生成 安全运营报告"
}
],
'data': '''
[
{
"version": 3.1,
"idcid": "A2.B1.B2-20090001",
"logid_patrollog": "2025030029",
"commandid": 20228159,
"houseid": 1017,
"companyinfo": "xx安全科技公司",
"proto": "HTTP",
"domain": null,
"url": "aHR0cD2FsbEluZm8vY2FsbFN1bW1hcnkvc2F2ZUNhbGxTdW1tYXJ5",
"eventtypeid": 200,
"eventtypeinfo": "数据传输保护级别低",
"eventsubtypeid": 1,
"eventsubtypeinfo": "重要数据明文传输",
"srcip": "18.23.60.226",
"srccountry": "中国",
"srcprovice": "安徽省",
"destip": "161.191.42.84",
"destcountry": "中国",
"destprovice": "安徽",
"srcport": 20915,
"destport": 84,
"filetype": "json",
"filesize": 0.28,
"datanum": 1,
"attachment": "4543113_8222_001.zip",
"gathertime": "2025-03-25 09:29:19",
"timestamp": "2025-03-25 09:37:00",
"logid_resultlog": "20250029",
"assetsip": "161.191.42.84",
"assetsname": null,
"datalevelid": 1,
"datalevelinfo": "个人一般信息",
"datacontenttype": "个人姓名",
"datacontentnum": 1,
"isuploadfile": "上报",
"curtime": "2025-03-25 09:29:19",
"sensitive_num_level": "低",
"dt": "2025-03-25 00:00:00+08",
"minio_path": "http://xxx:10101/minioDownload/api/v1/buckets/public/objects/download?prefix=/deb81c58-d78d-4921-af88-0c63b301f837.zip&version_id=null",
"rn": 1
}
]
'''
}
response = requests.post(url, headers=headers, json=data)
# 打印响应内容
print(response.json()) # 如果响应是 JSON 格式
我想到的另一个方式,就是直接使用 langchain 调用接口,将 data 信息也作为历史对话传给大模型,那这样 maxkb 在这个过程中貌似没有作用了。