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

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