You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

54 lines
1.6 KiB

import json
import logging
import requests
from openpyxl import load_workbook
# 更详细地控制日志输出
logger = logging.getLogger('MathRag')
logger.setLevel(logging.INFO)
handler = logging.StreamHandler()
handler.setFormatter(logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s'))
logger.addHandler(handler)
def getAnswer(query_text):
# 根据问题查询知识库
url = "http://10.10.21.20:8100/api/chat"
headers = {
"Content-Type": "application/json"
}
data = {
"query": query_text,
"topic": "ChuZhongShuXue"
}
try:
response = requests.post(url, headers=headers, data=json.dumps(data))
response.raise_for_status()
return response.json().get("data").get("reply")
except requests.exceptions.RequestException as e:
logger.error(f"请求发生异常: {str(e)}")
return None
# 要处理的Excel
excel_file = r'D:\dsWork\dsProject\dsLightRag\Doc\T1、史校长资料\测试结果\100题测试结果.xlsx'
if __name__ == '__main__':
wb = load_workbook(excel_file)
ws = wb.active # 获取第一个sheet
# 读取C列第2行到101行的数据
idx = 1
for row in range(2, 102): # 行号从2到101
query_text = ws[f'C{row}'].value
logger.info("问题{}:{}".format(idx, query_text))
# 知识库作答
rag_answer = getAnswer(query_text)
logger.info("成功完成问题{}:{}".format(idx, query_text))
# 回写到Excel表中
ws['O'+str(idx+1)] = rag_answer
idx = idx + 1
# 保存修改
wb.save(excel_file)
wb.close()