diff --git a/AI/Text2Sql/YunXiao.py b/AI/Text2Sql/YunXiao.py index c618d581..20ea64ff 100644 --- a/AI/Text2Sql/YunXiao.py +++ b/AI/Text2Sql/YunXiao.py @@ -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) \ No newline at end of file + # 初始化变量用于存储流式输出的内容 + 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 已拼接为完整字符串。")