main
HuangHai 2 days ago
parent b15811e3da
commit 721e5b5720

@ -0,0 +1,61 @@
import logging
import re
from openpyxl import load_workbook
from Util import LlmUtil
# 更详细地控制日志输出
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)
# 要处理的Excel
excel_file = r'D:\dsWork\dsProject\dsLightRag\Doc\T1、史校长资料\测试结果\100题测试结果.xlsx'
if __name__ == '__main__':
prompt = """
请针对下面这两段文字12进行评分最高分为10分最低分为0分每1分差别为一个档次
具体评分标准为
只要1中包含2完全相同或者含义相同的内容即从1可以推理出2即视为正确打10分
1中完全没有2表达的内容即视为错误打0分趋于中间的按照涵盖程度打分分越高越相似
请注意结果展示时请按照如下标准进行输出:
先展示分析过程然后展示最终得分最终得分x分,注意括号是必须要有的格式 x替换为具体的分数范围从0到10的整数
"""
wb = load_workbook(excel_file)
ws = wb.active # 获取第一个sheet
for row in range(2, 102): # 行号从2到101
# 提示词
query_text = prompt + "\n"
query_text = query_text + "下面将提供两段文字:\n"
query_text = query_text + "【1】\n"
O_content = ws['L' + str(row)].value
query_text = query_text + O_content + "\n"
query_text = query_text + "【2】\n"
D_content = ws['D' + str(row)].value
query_text = query_text + D_content + "\n"
question = ws['C' + str(row)].value # 获取问题
logger.info("问题" + str(row - 1) + ":" + question)
response = LlmUtil.get_llm_response(query_text)
# 【1】:O2,【2】:D2 内容
# 结果保存到 P2 (打分过程) Q2(通过正则表达式截取出的 【最终得分】)
# 使用正则表达式提取【最终得分】
match = re.search(r'【最终得分】:(\d+)分', response)
final_score = '0'
if match:
final_score = match.group(1)
# 保存到P2(打分过程)和Q2(最终得分)
ws['R' + str(row)] = prompt + "\n" + response # 提示词+大模型响应
ws['S' + str(row)] = final_score
logger.info("大模型响应:" + response)
logger.info("得分:" + final_score)
wb.save(excel_file)
wb.close()
logger.info("恭喜,所有任务处理完成!")

@ -0,0 +1,64 @@
import logging
import re
from openpyxl import load_workbook
from Util import LlmUtil
# 更详细地控制日志输出
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)
# 要处理的Excel
excel_file = r'D:\dsWork\dsProject\dsLightRag\Doc\T1、史校长资料\测试结果\100题测试结果.xlsx'
if __name__ == '__main__':
prompt = """
请针对下面这两段文字12进行评分最高分为10分最低分为0分每1分差别为一个档次
具体评分标准为
只要1中包含2完全相同或者含义相同的内容即从1可以推理出2即视为正确打10分
1中完全没有2表达的内容即视为错误打0分趋于中间的按照涵盖程度打分分越高越相似
请注意结果展示时请按照如下标准进行输出:
先展示分析过程然后展示最终得分最终得分x分x替换为具体的分数范围从0到10的整数
"""
wb = load_workbook(excel_file)
ws = wb.active # 获取第一个sheet
for row in range(2, 102): # 行号从2到101
if ws['S' + str(row)] and ws['S' + str(row)].value:
print("发现已评估完得分的问题,将跳过,得分:"+ws['Q' + str(row)].value)
continue
# 提示词
query_text = prompt + "\n"
query_text = query_text + "下面将提供两段文字:\n"
query_text = query_text + "【1】\n"
O_content = ws['L' + str(row)].value
query_text = query_text + O_content + "\n"
query_text = query_text + "【2】\n"
D_content = ws['D' + str(row)].value
query_text = query_text + D_content + "\n"
question = ws['C' + str(row)].value # 获取问题
logger.info("问题" + str(row - 1) + ":" + question)
response = LlmUtil.get_llm_response(query_text)
# 【1】:O2,【2】:D2 内容
# 结果保存到 P2 (打分过程) Q2(通过正则表达式截取出的 【最终得分】)
# 使用正则表达式提取【最终得分】
match = re.search(r'【最终得分】:(\d+)分', response)
final_score = '0'
if match:
final_score = match.group(1)
# 保存到P2(打分过程)和Q2(最终得分)
ws['R' + str(row)] = prompt + "\n" + response # 提示词+大模型响应
ws['S' + str(row)] = final_score
logger.info("大模型响应:" + response)
logger.info("得分:" + final_score)
wb.save(excel_file)
wb.close()
logger.info("恭喜,所有任务处理完成!")

@ -0,0 +1,20 @@
# pip install geogebra-ggb-api-python
from pygeogebra import GeoGebra
# 创建实例
ggb = GeoGebra()
# 绘制点、线、圆
point_A = ggb.add_point("A", (0, 0))
point_B = ggb.add_point("B", (2, 1))
line_AB = ggb.add_line("AB", point_A, point_B)
circle = ggb.add_circle("Circle", point_A, 3)
# 添加动态滑块
slider = ggb.add_slider("k", 0, 5, 1)
dynamic_point = ggb.add_point("P", (slider, slider**2)) # 抛物线上的点
# 导出为HTML或PNG
ggb.export("figure.html") # 交互式网页
ggb.export("figure.png", dpi=300) # 静态图片
Loading…
Cancel
Save