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.

52 lines
1.6 KiB

1 week ago
import json
import logging
import requests
1 week ago
from openpyxl import load_workbook
1 week ago
# 更详细地控制日志输出
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,
1 week ago
"topic": "ChuZhongShuXue"
1 week ago
}
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
1 week ago
# 要处理的Excel
1 week ago
excel_file = r'D:\dsWork\dsProject\dsLightRag\Doc\T1、史校长资料\测试结果\100题测试结果.xlsx'
1 week ago
if __name__ == '__main__':
1 week ago
wb = load_workbook(excel_file)
ws = wb.active # 获取第一个sheet
# 读取C列第2行到101行的数据
for row in range(2, 102): # 行号从2到101
1 week ago
query_text = ws[f'C{row}'].value
1 week ago
logger.info("问题{}:{}".format(row - 1, query_text))
1 week ago
# 知识库作答
rag_answer = getAnswer(query_text)
1 week ago
logger.info("成功完成问题{}:{}".format(row - 1, query_text))
1 week ago
# 回写到Excel表中
1 week ago
ws['O' + str(row)] = rag_answer
1 week ago
# 保存修改
wb.save(excel_file)
1 week ago
wb.close()