前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >AI炒股:用硅基流动SiliconCloud批量总结研报

AI炒股:用硅基流动SiliconCloud批量总结研报

作者头像
AIGC部落
发布于 2024-09-25 06:59:01
发布于 2024-09-25 06:59:01
3410
举报
文章被收录于专栏:Dance with GenAIDance with GenAI

在deepseek中输入提示词:

你现在是一个Python编程专家,要调用siliconflow平台的Qwen2.5-7B-Instruct模型来总结文档,具体步骤如下:

打开文件夹:F:\AI自媒体内容\AI炒股\已经阅读\已经上传

读取里面所有的pdf文档;

用Qwen2.5-7B-Instruct模型总结pdf文档;

总结完后保存为一个docx文档,文件名在原pdf文档名后面加上“_总结”

siliconflow平台的基础URL: https://api.siliconflow.cn/v1

API密钥为:XXX

模型为:Qwen/Qwen2.5-7B-Instruct,上下文长度32K;

提示词为:总结下面这篇券商研究报告的核心内容,不需要总结“投资建议”、“风险提示”、“投资评级”、“免责声明”这些。输出部分包括:报告标题、报告发布日期、证券分析师姓名、研报所用的研究方法、数据来源、研报的核心逻辑和要点(这部分要不少于500字)、具体的股票投资标的(股票名称和股票代码)。

代码示例:

from openai import OpenAI

client = OpenAI(api_key="YOUR_API_KEY", base_url="https://api.siliconflow.cn/v1")

response = client.chat.completions.create(

model='alibaba/Qwen1.5-110B-Chat',

messages=[

{'role': 'user', 'content': "抛砖引玉是什么意思呀"}

],

stream=True

)

for chunk in response:

print(chunk.choices[0].delta.content, end='')

注意:模型有限速,RPM=1K TPM=50K, 为了解决这个问题,我们可以采取以下措施:增加请求间隔:在每次请求之间增加一定的延迟,以避免短时间内发送过多的请求。批量处理:将多个文档的总结任务分成多个批次,每个批次之间增加一定的延迟。错误重试:在遇到错误时,等待一段时间后重试请求。

如果pdf文档的内容超过模型的上下文长度(32K 字符),模型将无法处理整个文档。为了解决这个问题,我们可以将文档分块处理,确保每个块的长度不超过模型的上下文长度限制。

如果分块处理不当,可能会导致某些内容在多个块中重复出现,从而导致总结内容重复。

为了解决这个问题,我们可以采取以下措施:优化分块处理:确保每个块的内容尽可能独立,避免重叠。去重处理:在拼接总结内容时,进行去重处理,避免重复内容。检查模型输出:在调用模型时,检查输出内容,确保没有重复。

在把总结内容写入word时,要把### 、**等这些markdown符号转换成对应的word文档符号;

每一步都要输出信息到屏幕上

Deepseek生成的代码:

# -*- coding: utf-8 -*-

import os

import warnings

import re

from openai import OpenAI

from PyPDF2 import PdfReader

from docx import Document

from docx.shared import Pt

from docx.enum.text import WD_PARAGRAPH_ALIGNMENT

# 忽略PyPDF2的警告

warnings.filterwarnings("ignore", category=UserWarning, module="PyPDF2")

# 设置API密钥和基础URL

api_key = XXX

base_url = "https://api.siliconflow.cn/v1"

# 初始化OpenAI客户端

client = OpenAI(api_key=api_key, base_url=base_url)

# 定义文件夹路径

folder_path = r"F:\AI自媒体内容\AI炒股\已经阅读\已经上传"

# 定义模型的上下文长度限制

MAX_CONTEXT_LENGTH = 32000 # 32K characters

def split_text_into_chunks(text, max_length):

"""将文本分割成不超过指定长度的块"""

chunks = []

current_chunk = ""

current_length = 0

for line in text.splitlines():

if current_length + len(line) + 1 > max_length:

chunks.append(current_chunk.strip())

current_chunk = line

current_length = len(line)

else:

if current_chunk:

current_chunk += "\n" + line

else:

current_chunk = line

current_length += len(line) + 1

if current_chunk:

chunks.append(current_chunk.strip())

return chunks

def remove_duplicates(text):

"""去除文本中的重复内容"""

lines = text.splitlines()

seen = set()

unique_lines = []

for line in lines:

if line not in seen:

seen.add(line)

unique_lines.append(line)

return "\n".join(unique_lines)

def markdown_to_word(text):

"""将Markdown格式的文本转换成Word文档格式"""

# 替换标题

text = re.sub(r'^### (.*)', r'\1', text, flags=re.MULTILINE)

text = re.sub(r'^## (.*)', r'\1', text, flags=re.MULTILINE)

text = re.sub(r'^# (.*)', r'\1', text, flags=re.MULTILINE)

# 替换加粗

text = re.sub(r'\*\*(.*?)\*\*', r'\1', text)

# 替换列表

text = re.sub(r'^- (.*)', r'\1', text, flags=re.MULTILINE)

return text

# 遍历文件夹中的所有pdf文件

for filename in os.listdir(folder_path):

if filename.endswith(".pdf"):

# 读取PDF文档

pdf_path = os.path.join(folder_path, filename)

print(f"正在读取PDF文档: {pdf_path}")

try:

reader = PdfReader(pdf_path)

text = ""

for page in reader.pages:

text += page.extract_text()

except Exception as e:

print(f"读取PDF文档时出错: {e}")

continue

# 分块处理

chunks = split_text_into_chunks(text, MAX_CONTEXT_LENGTH)

# 总结每个块

summary_chunks = []

for i, chunk in enumerate(chunks):

print(f"正在总结文档: {filename} 的第 {i+1}/{len(chunks)} 块")

try:

response = client.chat.completions.create(

model='Qwen/Qwen2.5-7B-Instruct',

messages=[

{'role': 'user', 'content': f"总结下面这篇券商研究报告的核心内容,不需要总结“投资建议”、“风险提示”、“投资评级”、“免责声明”这些。输出部分包括:报告标题、报告发布日期、证券分析师姓名、研报所用的研究方法、数据来源、研报的核心逻辑和要点(这部分要不少于500字)、具体的股票投资标的(股票名称和股票代码)。\n{chunk}"}

],

stream=False

)

summary_chunks.append(response.choices[0].message.content)

except Exception as e:

print(f"总结文档时出错: {e}")

continue

# 拼接总结后的内容并去除重复

summary_content = "\n".join(summary_chunks)

summary_content = remove_duplicates(summary_content)

# 将Markdown格式的文本转换成Word文档格式

summary_content = markdown_to_word(summary_content)

# 创建新的文档并写入总结后的内容

new_doc = Document()

for line in summary_content.split("\n"):

if line.startswith("报告标题"):

p = new_doc.add_paragraph()

p.add_run(line).bold = True

p.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER

elif line.startswith("报告发布日期"):

p = new_doc.add_paragraph()

p.add_run(line).bold = True

elif line.startswith("证券分析师"):

p = new_doc.add_paragraph()

p.add_run(line).bold = True

elif line.startswith("研究方法和数据来源"):

p = new_doc.add_paragraph()

p.add_run(line).bold = True

elif line.startswith("核心逻辑和要点"):

p = new_doc.add_paragraph()

p.add_run(line).bold = True

elif line.startswith("具体的股票投资标的"):

p = new_doc.add_paragraph()

p.add_run(line).bold = True

else:

new_doc.add_paragraph(line)

# 保存总结后的文档

new_filename = filename.replace(".pdf", "_总结.docx")

new_doc_path = os.path.join(folder_path, new_filename)

new_doc.save(new_doc_path)

print(f"总结完成,保存为: {new_doc_path}")

print("所有文档总结完成!")

程序运行结果:

其中一个总结:

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-09-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 Dance with GenAI 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
基于Microsoft.Extensions.AI核心库实现RAG应用
之前我们了解 Microsoft.Extensions.AI 和 Microsoft.Extensions.VectorData 两个重要的AI应用核心库。基于对他们的了解,今天我们就可以来实战一个RAG问答应用,把之前所学的串起来。如果你觉得对你有帮助,可以V我50,毕竟今天是Crazy星期四。
郑子铭
2025/04/14
720
基于Microsoft.Extensions.AI核心库实现RAG应用
Python自动化办公之Word,全网最全看这一篇就够了
使用Python操作word大部分情况都是写操作,也有少许情况会用到读操作,在本次教程中都会进行讲解,本次课程主要用到以下4个库,请大家提前安装。
Python小二
2020/11/24
2.6K0
Python自动化办公之Word,全网最全看这一篇就够了
AI办公自动化:用通义千问Qwen-Long批量总结PDF长文档内容
Qwen-Long是在通义千问针对超长上下文处理场景的大语言模型,支持中文、英文等不同语言输入,支持最长1000万tokens(约1500万字或1.5万页文档)的超长上下文对话。配合同步上线的文档服务,可支持word、pdf、markdown、epub、mobi等多种文档格式的解析和对话。借助Qwen-Long可以批量总结长文档。
AIGC部落
2024/06/24
9570
AI办公自动化:用通义千问Qwen-Long批量总结PDF长文档内容
AI应用开发基座:Microsoft.Extensions.AI
微软在2024年11月就发布了新的AI核心库Microsoft.Extensions.AI,虽然目前还是一个预览版,但其可以大大简化我们的AI集成和开发工作。
郑子铭
2025/04/04
670
AI应用开发基座:Microsoft.Extensions.AI
100天精通Python丨办公效率篇 —— 12、Python自动化操作office-word(word转pdf、转docx、段落、表格、标题、页面、格式)
可以使用 Python 的 win32com 模块实现将 Word 文档批量转化为 PDF 格式。首先,需要安装 win32com 模块和 Word 应用程序(仅适用于 Windows 操作系统)。
不吃西红柿
2023/04/21
1.4K0
100天精通Python丨办公效率篇 —— 12、Python自动化操作office-word(word转pdf、转docx、段落、表格、标题、页面、格式)
利用python自动写docx报告
最近在做一些数据方面的东西。虽然处理 excel 很方便。有时候为了不写周报,可以用自动化来写。 比如可以从jira 里面捞数据。比如可以统计excel 里面数据,生成图表,生成doc, 自动发出来。
赵云龙龙
2020/08/10
2.6K0
Deepseek全自动制作哪吒英语动画台词本
制作英语动画台词本,如果用手工方式费时费力,非常繁琐,如果借助Deepseek等AI工具则可以几乎全部自动化。
AIGC部落
2025/02/18
1430
Deepseek全自动制作哪吒英语动画台词本
一款开源免费的.NET文档操作组件DocX(.NET组件介绍之一)
彭泽0902
2018/01/04
3.4K0
PDF转Word完全免费?这么好的事情我怎么不知道????
现在网络上大部分的PDF转Word都是收费的,基本都是按页收费,有了我们的python代码后,我们就可以完全免费的将PDF转成Word了,这么好的福利我们赶紧来了解一下吧!
我被狗咬了
2019/09/23
8900
PDF转Word完全免费?这么好的事情我怎么不知道????
python自动化高效办公第二期,带你项目实战【一】{excel数据处理、批量化生成word模板、pdf和ppt等自动化操作}
我们在读取文件的时候,excel的列是字母我们不容易直观看出来是第几列,下面对excel进行设置。
汀丶人工智能
2022/12/21
3K0
python自动化高效办公第二期,带你项目实战【一】{excel数据处理、批量化生成word模板、pdf和ppt等自动化操作}
Python办公自动化:"破解WPS会员"之文档拆分合并
看到标题是不是有点惊讶,博主怎么走上了很刑的路线?看完此篇文章,教你自己做一个无限使用永久免费的文档拆分合并小工具
小宇-xiaoyu
2025/01/14
1220
Python办公自动化:"破解WPS会员"之文档拆分合并
Word自动化(C# + Python)(持续更新中...)
目录 前言 读取Word内容 NPOI NPOI安装 NPOI提取Word内容 用Costura.Fody打包DLL python-docx 读取PDF内容 python-docx自动生成Word 全局字体 内容字体 单元格合并 最后 ----- 前言 Word就是那种很难用, 很丑陋, 但是你不得不用的东西, 在这一点上, 它甚至比Windows更甚(毕竟Gates是通过帮水果写Office才有机会接触Macintash和施乐的嘛, 你听过的, 两个小偷的故事). Windows可以用macOS + Pl
sean_yang
2019/10/19
1.9K0
开源免费且稳定实用的.NET PDF打印组件itextSharp(.NET组件介绍之八)
彭泽0902
2018/01/04
7.8K0
OpenAI手把手官方教学:如何用GPT-4创建会议纪要生成AI
本教程将介绍如何使用 OpenAI 的 Whisper 和 GPT-4 模型开发一个自动会议纪要生成器。该应用的功能是转录会议音频、总结讨论的内容、提取要点和行动项目以及执行情绪分析。
机器之心
2023/09/08
1.5K0
OpenAI手把手官方教学:如何用GPT-4创建会议纪要生成AI
零代码编程:用ChatGPT批量设置Word文件格式
文件夹中有很多txt文本文件,要转换成word文件,且要批量设置一些文件格式,方便后续的打印。
AIGC部落
2024/06/24
2260
零代码编程:用ChatGPT批量设置Word文件格式
Deepseek批量提取PDF中特点部分的文本
读取PDF文件:"F:\AI极简经济学【文字版】 (阿杰伊·阿格拉沃尔,乔舒亚·甘斯,阿维·戈著;闾佳译) (Z-Library).pdf"
AIGC部落
2025/02/03
5210
Deepseek批量提取PDF中特点部分的文本
零代码编程:用kimichat将srt字幕文件进行批量转换合并
文件夹里面有多个srt字幕文件,借助kimichat可以很方便的对其进行批量合并。
AIGC部落
2024/06/24
2270
零代码编程:用kimichat将srt字幕文件进行批量转换合并
Springboot输出PDF文件
有个人(死需求)跑过来跟你说,这些都给我输出成报告,pdf格式的,所以就有了下面这个,做一下笔记,以后有用直接过来拿。在网上找了一下,发现大家都是在用itext。iText是著名的开放项目,是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF或rtf的文档,而且可以将XML、Html文件转化为PDF文件。
用户3467126
2019/09/27
2.9K2
Springboot输出PDF文件
python_docx制作word文档
Python可以利用python-docx模块处理word文档,处理方式是面向对象的。也就是说python-docx模块会把word文档,文档中的段落、文本、字体等都看做对象,对对象进行处理就是对word文档的内容处理。
py3study
2020/01/15
3.1K0
python_docx制作word文档
利用大模型服务一线小哥的探索与实践
提升小哥作业效率,就需要了解小哥日常工作中有哪些作业动作,然后根据作业动作的特点,来分析大模型有什么样的机会来实现效率提升。通过调研和分析,小哥有143项作业动作,可分类为:揽收、派送、站内、辅助、客户服务五大类,其中22项动作是系统外的线下动作,其他动作中有69项被认为有大模型结合的机会。在69项中我们选取了小哥揽收信息录入、外呼、发短信、查询运单信息、聚合查询、知识问答、精准提示等场景,通过大模型与大数据、GIS、语音等技术的结合,为小哥提供高效、易用的作业工具。
京东技术
2024/07/04
1510
利用大模型服务一线小哥的探索与实践
推荐阅读
相关推荐
基于Microsoft.Extensions.AI核心库实现RAG应用
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档