|
|
|
@ -89,34 +89,40 @@ if __name__ == "__main__":
|
|
|
|
|
save_to_excel(_data, filename)
|
|
|
|
|
|
|
|
|
|
# 4、生成word报告
|
|
|
|
|
# 打印格式化的 JSON 数据
|
|
|
|
|
print(json.dumps(_data, ensure_ascii=False, indent=4))
|
|
|
|
|
|
|
|
|
|
prompt='''
|
|
|
|
|
请根据以下 JSON 数据,整理出一段话描述当前数据情况。要求:
|
|
|
|
|
1. 按学段(初中、小学、高中、学前)分别总结课程数量的分布情况。
|
|
|
|
|
2. 指出每个学段中课程数量最多的科目和课程数量最少的科目。
|
|
|
|
|
3. 分析不同学段之间课程数量的差异,并指出哪些科目在不同学段中表现突出。
|
|
|
|
|
4. 语言简洁明了,重点突出数据中的关键信息。
|
|
|
|
|
prompt = '''
|
|
|
|
|
请根据以下 JSON 数据,整理出2000字左右的话描述当前数据情况。要求:
|
|
|
|
|
1、以Markdown格式返回,我将直接通过markdown格式生成Word。
|
|
|
|
|
2、数据内容如下:
|
|
|
|
|
'''
|
|
|
|
|
prompt = prompt + json.dumps(_data, ensure_ascii=False)
|
|
|
|
|
|
|
|
|
|
# 初始化 OpenAI 客户端
|
|
|
|
|
client = OpenAI(
|
|
|
|
|
api_key=MODEL_API_KEY,
|
|
|
|
|
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
|
|
|
|
|
base_url=MODEL_API_URL,
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# 调用 OpenAI API 生成总结
|
|
|
|
|
# 调用 OpenAI API 生成总结(流式输出)
|
|
|
|
|
response = client.chat.completions.create(
|
|
|
|
|
model=MODEL_NAME,
|
|
|
|
|
messages=[
|
|
|
|
|
{"role": "system", "content": "你是一个数据分析助手,擅长从 JSON 数据中提取关键信息并生成简洁的总结。"},
|
|
|
|
|
{"role": "system", "content": "你是一个数据分析助手,擅长从 JSON 数据中提取关键信息并生成详细的总结。"},
|
|
|
|
|
{"role": "user", "content": prompt}
|
|
|
|
|
],
|
|
|
|
|
max_tokens=1500, # 控制生成内容的长度
|
|
|
|
|
temperature=0.7 # 控制生成内容的创造性
|
|
|
|
|
max_tokens=3000, # 控制生成内容的长度
|
|
|
|
|
temperature=0.7, # 控制生成内容的创造性
|
|
|
|
|
stream=True # 启用流式输出
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
# 提取生成的总结
|
|
|
|
|
summary = response.choices[0].message.content
|
|
|
|
|
print("数据总结:\n", summary)
|
|
|
|
|
# 初始化变量用于存储流式输出的内容
|
|
|
|
|
summary = ""
|
|
|
|
|
|
|
|
|
|
# 处理流式输出
|
|
|
|
|
for chunk in response:
|
|
|
|
|
if chunk.choices[0].delta.content: # 检查是否有内容
|
|
|
|
|
chunk_content = chunk.choices[0].delta.content
|
|
|
|
|
print(chunk_content, end="", flush=True) # 实时打印到控制台
|
|
|
|
|
summary += chunk_content # 将内容拼接到 summary 中
|
|
|
|
|
|
|
|
|
|
# 最终 summary 为完整的 Markdown 内容
|
|
|
|
|
print("\n\n流式输出完成,summary 已拼接为完整字符串。")
|
|
|
|
|