实习期工作总结
爬虫工作总结
项目概述
本项目是一个基于 Python 的综合性数据采集系统,主要针对金融、经济数据进行自动化抓取。项目采用模块化设计,每个目标网站对应一个独立的爬虫模块,便于管理和维护。
项目结构分析
-
整体架构
项目采用统一的模块化结构,每个数据源网站都有对应的独立文件夹,包含以下标准组件:
spiders/
- 爬虫逻辑实现目录items/
- 数据模型定义目录utils/
- 工具函数目录- main.py - 爬虫启动入口
- setting.py - 配置文件
- README.md - 模块说明文档
- CHECK_DATA.md - 数据校验说明
-
主要数据源模块
- TradingView (tradingview/)
- 目标网站:https://www.tradingview.com/
- 采集内容:交易观点、新闻流、市场摘要图标、财经日历
- 数据分类:新闻、市场摘要、财经日历等
- MQL5 (mql5/)
- 目标网站:https://www.mql5.com/
- 采集内容:财经日历、事件信息
- 特点:支持中英文双语数据采集
- 金十数据 (jin10/)
- 目标网站:https://www.jin10.com/
- 采集内容:市场快讯、头条新闻、财经日历、事件信息
- TRADAYS (tradays.com/)
- 目标网站:https://www.tradays.com/
- 采集内容:中英文财经日历数据
- 政府统计数据网站
- 国家统计局(stats.gov.cn):中国宏观经济数据
- 国家数据(ons.gov.uk):英国官方统计数据
- 欧盟统计局(ec.europa.eu):欧洲统计数据
- 香港政府统计处(censtatd.gov.hk):香港统计数据
- TradingView (tradingview/)
技术实现特点
-
核心框架
项目基于
feapder
框架开发,该框架提供了完整的爬虫解决方案,包括:- 多种爬虫类型支持(AirSpider、Spider、BatchSpider)
- 分布式任务处理
- 数据去重机制
- 命令行参数控制
-
数据存储
项目采用 PostgreSQL 数据库存储采集数据,具有以下特点:
- 每个模块定义了明确的数据表结构
- 支持数据去重(通过唯一索引)
- 包含数据来源、语言、采集时间等元信息
- 支持 JSON/JSONB 格式存储扩展信息
-
代码组织
- 模块化设计:每个网站独立成模块,互不干扰
- 统一入口:通过 main.py 统一管理各爬虫的启动
- 配置分离:通过 setting.py 管理各模块配置
- 文档齐全:每个模块都有详细的 README 说明
各模块功能详情
-
TradingView 模块
该模块是功能最全面的模块之一,包含:
- 新闻采集(中英文)
- 市场观点采集
- 财经日历数据
- 市场摘要图标信息
-
MQL5 模块
专业的财经日历数据采集模块:
- 支持完整的财经事件信息采集
- 包含事件影响、数据来源等详细信息
- 支持中英文双语数据
-
金十数据模块
国内重要的金融数据源:
- 市场快讯(重要新闻实时推送)
- 头条新闻
- 财经日历和事件数据
-
TRADAYS 模块
国际财经日历数据采集:
- 支持中英文双语采集
- 包含详细事件影响信息
-
政府统计模块
各国官方经济数据采集:
- 中国国家统计局数据
- 英国官方统计数据
- 欧盟统计局数据
- 香港政府统计数据
项目优势
- 结构清晰:模块化设计,易于扩展和维护
- 功能完整:涵盖主流金融数据源
- 技术先进:采用成熟的爬虫框架
- 数据规范:统一的数据存储格式和元信息
- 文档完善:每个模块都有详细的说明文档
AI 工作总结
项目概述
star-ai-agent 是一个基于人工智能技术的智能文档处理和对话系统,主要利用了RAG(检索增强生成)技术和大语言模型,能够对多种格式的文档进行处理、存储和检索,并基于文档内容与用户进行智能对话。该系统通过向量数据库实现文档的语义搜索功能,为用户提供智能化的文档管理和AI助手服务。
技术架构
-
核心技术栈
- Web框架: FastAPI - 高性能的Python Web框架,支持异步编程
- AI框架: LangChain - 构建大语言模型应用的框架
- 向量数据库: PGVector (PostgreSQL扩展) - 存储和检索文档向量表示
- 嵌入模型: 支持多种嵌入模型,包括HuggingFace、OpenAI和Ollama
- 聊天模型: 支持多种大语言模型,包括DeepSeek、OpenAI等
-
文档处理能力
系统支持处理多种文档格式,包括:
- Microsoft Word文档 (docx, doc)
- Microsoft Excel电子表格 (xls, xlsx)
- PDF文档 (pdf)
- 文本文件 (txt)
- CSV数据文件 (csv)
- Markdown文档 (md)
核心功能模块
-
文档上传与处理
- 支持单个文件上传并自动提取内容
- 自动检测文件编码,确保各种编码格式的文本文件都能正确处理
- 为每个文档生成唯一标识符,支持自定义ID
- 清理文档内容中的特殊字符(如NUL字节),确保数据库存储的稳定性
-
向量存储服务
- 使用PGVector作为向量数据库,提供高效的向量存储和检索
- 支持文档的增删改查操作
- 实现文档的向量嵌入和语义搜索功能
-
相似性搜索
- 提供基于语义的文档检索功能
- 支持返回相关性得分,帮助用户评估搜索结果的相关程度
- 支持过滤条件,实现更精确的搜索
-
文档管理
- 支持文档的添加、删除和更新操作
- 更新操作采用"先删除再添加"的策略,确保数据一致性
-
AI聊天功能
- 支持与大语言模型进行对话交互
- 支持多种模型类型(DeepSeek、OpenAI等)
- 支持基于文档内容的上下文问答(RAG)
- 可配置模型参数(温度、最大令牌数等)
系统特点
-
异步处理
系统充分利用FastAPI和LangChain的异步特性,提供高性能的API服务,能够同时处理多个请求。
-
多模型支持
系统支持多种嵌入模型,包括本地模型(HuggingFace)和云模型(OpenAI、Ollama),用户可以根据需求选择合适的模型。
-
编码兼容性
通过自动检测文件编码,系统能够正确处理各种编码格式的文档,避免了因编码问题导致的文档处理失败。
-
模块化设计
项目采用模块化设计,将API层、服务层、配置层和工具层分离,提高了代码的可维护性和可扩展性。
应用场景
- 企业知识库管理: 企业可以将内部文档上传到系统中,通过语义搜索快速查找相关信息
- 智能客服: 构建基于FAQ(常见问题解答)文档的智能问答系统
- 学术研究: 对大量研究文献进行管理和语义检索
- 智能助手: 用户可以与AI进行对话,基于上传的文档内容进行问答
未来工作计划
在未来的工作中,我计划从以下几个方面继续提升自己:
-
技术深度拓展:
- 深入学习爬虫框架的底层原理,提升反爬虫技术的应对能力
- 掌握更多AI相关的技术和工具,如模型微调、模型部署等
- 学习更多Web开发技术,提升全栈开发能力
-
项目优化改进:
- 优化现有爬虫项目的性能和稳定性
- 完善AI项目的功能,增加更多实用特性
- 提升代码质量和系统架构设计能力
-
新技术探索:
- 关注AI领域的最新发展,学习应用新技术
- 探索数据可视化技术,让数据更有价值
- 学习云原生技术,提升系统部署和运维能力
-
软技能提升:
- 提高沟通表达能力,更好地与团队协作
- 加强项目管理能力,学会合理安排时间和资源
- 培养产品思维,从用户角度思考技术实现
个人工作感受
通过这段时间的实习,我对爬虫技术和AI应用开发有了更深入的理解和实践经验。在参与爬虫项目的过程中,我学会了如何分析网站结构、处理反爬机制、设计合理的数据存储方案。同时,在AI项目中,我接触到了前沿的RAG技术和大语言模型应用,掌握了FastAPI、LangChain等现代开发框架。
实习期间最大的收获是理解了实际项目开发中的复杂性和挑战性。与学习阶段的小项目不同,实际工作中需要考虑代码的可维护性、系统的稳定性、数据的一致性等多个方面。我也学会了如何更好地与团队成员协作,如何编写清晰的文档,以及如何有效地解决技术问题。
此外,我还提高了自主学习和解决问题的能力。在面对新的技术挑战时,我学会了如何快速查找资料、分析问题并找到合适的解决方案。
不过在实习过程中,我也发现了自身的一些不足之处。首先,我在沟通表达方面还有待提高,特别是在与同事交流技术问题时,有时不能清晰准确地表达自己的想法。其次,我在项目初期对任务的评估不够准确,导致在时间安排上有些紧张。最后,面对一些复杂的技术难题时,我偶尔会陷入细节中,缺乏从整体角度思考问题的能力。
针对这些问题,我制定了相应的改进计划。首先,我会多参与团队讨论和技术分享,锻炼自己的表达能力。其次,我会学习项目管理相关知识,提高任务评估和时间规划能力。最后,我会培养系统性思维,学会从更高层次分析和解决问题。