2025-05-03 20:29:32 +08:00
|
|
|
|
import openai
|
|
|
|
|
|
import time
|
|
|
|
|
|
import re
|
2026-09-18 09:24:01 +08:00
|
|
|
|
import sys
|
2025-05-03 20:29:32 +08:00
|
|
|
|
|
2025-05-03 20:47:02 +08:00
|
|
|
|
model = "Qwen/Qwen3-8B"
|
2025-05-03 20:29:32 +08:00
|
|
|
|
max_tokens = 500
|
|
|
|
|
|
|
2025-05-05 11:08:33 +08:00
|
|
|
|
output_format = """
|
|
|
|
|
|
score:
|
|
|
|
|
|
reason:
|
|
|
|
|
|
"""
|
|
|
|
|
|
|
2025-05-03 20:29:32 +08:00
|
|
|
|
def getDim(content, dim):
|
|
|
|
|
|
client = openai.OpenAI(base_url='https://api.siliconflow.cn/v1',
|
|
|
|
|
|
api_key="xxx")
|
|
|
|
|
|
time.sleep(3)
|
|
|
|
|
|
messages = []
|
|
|
|
|
|
messages.append({
|
|
|
|
|
|
"role": "system",
|
2026-09-18 09:24:01 +08:00
|
|
|
|
"content": "你是一位评分老师,请根据提供给你的评分标准对文本进行评分,结果仅仅输出分数,满分为10分,分数允许小数点后保留两位,并就当前维度给出评语,评语文本不要过长。"
|
2025-05-05 11:08:33 +08:00
|
|
|
|
"输出格式:"
|
|
|
|
|
|
f"{output_format}"
|
|
|
|
|
|
|
2025-05-03 20:29:32 +08:00
|
|
|
|
})
|
|
|
|
|
|
messages.append({
|
|
|
|
|
|
"role": "user",
|
|
|
|
|
|
"content": f"待评分内容:{content}"
|
|
|
|
|
|
f"评分标准:{dim}"
|
|
|
|
|
|
})
|
|
|
|
|
|
response = client.chat.completions.create(
|
|
|
|
|
|
model=model,
|
|
|
|
|
|
messages=messages,
|
|
|
|
|
|
max_tokens=max_tokens,
|
|
|
|
|
|
temperature=0.1
|
|
|
|
|
|
)
|
|
|
|
|
|
|
2025-05-05 11:08:33 +08:00
|
|
|
|
# print(response.choices[0].message.content)
|
|
|
|
|
|
# match = re.search(r'\d+', response.choices[0].message.content)
|
|
|
|
|
|
# if match:
|
|
|
|
|
|
# score = match.group()
|
|
|
|
|
|
# else:
|
|
|
|
|
|
# score = response.choices[0].message.content
|
|
|
|
|
|
# print(score)
|
2026-09-18 09:24:01 +08:00
|
|
|
|
|
|
|
|
|
|
# 去除多余的换行符
|
|
|
|
|
|
content = response.choices[0].message.content.strip()
|
|
|
|
|
|
return content
|
2025-05-03 20:29:32 +08:00
|
|
|
|
|
|
|
|
|
|
if __name__ == "__main__":
|
2025-05-05 11:10:07 +08:00
|
|
|
|
content = sys.argv[1]
|
|
|
|
|
|
dim = sys.argv[2]
|
2025-05-05 11:08:33 +08:00
|
|
|
|
result = getDim(content, dim)
|
|
|
|
|
|
print(result)
|