AI Agent 金融助理0-1 Tutorial 利用Python实时查询股票API的FinanceAgent框架构建股票(美股/A股/港股) AI Finance Agent

本文涉及的产品
交互式建模 PAI-DSW,每月250计算时 3个月
模型在线服务 PAI-EAS,A10/V100等 500元 1个月
模型训练 PAI-DLC,100CU*H 3个月
简介: 金融领域Finance AI Agents方面的工作,发现很多行业需求和用户输入的 query都是和查询股价/行情/指数/财报汇总/金融理财建议相关。如果需要准确的 金融实时数据就不能只依赖LLM 来生成了。常规的方案包括 RAG (包括调用API )再把对应数据和prompt 一起拼接送给大模型来做文本生成。稳定的一些商业机构的金融数据API基本都是收费的,如果是以科研和demo性质有一些开放爬虫API可以使用。这里主要介绍一下 FinanceAgent,github地址 https://github.com/AI-Hub-Admin/FinanceAgent

      最近在总结金融领域Finance AI Agents方面的工作,发现很多行业需求和用户输入的 query都是和查询股价/行情/指数/财报汇总/金融理财建议相关。其中LLM大语言模型擅长于总结文本,但是数据都是训练样本中的,不会实时更新,如果需要准确的 金融实时数据就不能只依赖LLM 来生成了。常规的方案包括 RAG (包括调用API )再把对应数据和prompt 一起拼接送给大模型来做文本生成。稳定的一些商业机构的金融数据API基本都是收费的,如果是以科研和demo性质有一些开放爬虫API可以使用,另外之前 yFinance的python包因为yahoo财经 yahoo finance 不再提供免费服务也不能继续使用了。

      这里主要介绍一下 FinanceAgent 这个 python库 (github地址 https://github.com/AI-Hub-Admin/FinanceAgent,pypi地址:https://pypi.org/project/FinanceAgent/),里面封装了基于公开网站和网页抓取来获得最新股票/指数行情数据。提供了比如 A股 (雪球 xueqiu.com),美股 (morningstar.com),港股 (hkex.com) 等全球股票市场访问的 Open API,抓取页面,解析结果统一接口的工作。


1. 调用雪球API获取A股实时股价


以A股为例,用户query 解析后的需求是,查询雪球数据来源的 贵州茅台(SH600519)和 招商银行 (SH600036) 两个股票代码的实时股价。

import FinanceAgent as fa
cn_stock_info_json = fa.api(symbol_list=['SH600519', 'SH600036'], market="CN_MAINLAND")


keys = ["symbol", "avg_price", "high", "low", "previous_close", "update_time", "market_capitalization", "pe_ratio", "source_url", "data_source"]    
print ("#### CN Shanghai and Shenzhen Stock Exchange LSE")
for stock_info in cn_stock_info_json:
    print ("-----------------------------------")
    for key in keys:
        value = stock_info[key] if key in stock_info else ""
        print (key + "|" + value)


得到的输出是


#### CN MAINLAND Stock Info
-----------------------------------
symbol|SH600036
avg_price|39.265919080336076 CNY
high|39.8 CNY
low|38.69 CNY
previous_close|38.43 CNY
update_time|2024-10-14 15:00:00
market_capitalization|9918.97 亿 CNY
pe_ratio|
source|XUEQIU.COM, https://xueqiu.com/S/SH600036
data_source|xueqiu.com
-----------------------------------
symbol|SH600519
avg_price|1602.5501242724608 CNY
high|1620.63 CNY
low|1581.17 CNY
previous_close|1604.99 CNY
update_time|2024-10-14 15:00:00
market_capitalization|20124.16 亿 CNY
pe_ratio|
source|XUEQIU.COM, https://xueqiu.com/S/SH600519
data_source|xueqiu.com


从开源代码中发现,代码库提供的数据来源是 雪球提供的API,包括页面 茅台(https://xueqiu.com/S/SH600036) 和 招商银行 (https://xueqiu.com/S/SH600519),具体的抓取和API解析都可以从这个文件里看到。接口返回的数据标准化后得到一个json,可以根据字段来获取数据,包括 https://github.com/AI-Hub-Admin/FinanceAgent/blob/main/src/FinanceAgent/stock/request_stock_price_cn.py



2. 调用港交所(HKEX)的网页API获取港股实时股价


假设用户的需求输入的问题是 "帮我查一下腾讯的股价和市值"。我们在准备给LLM大模型数据前,需要把 腾讯最新的 股价 (price) 市值 (market_cap)的信息查询到,再和prompt合并喂给大模型产出回答。


腾讯股票代码(700),快手的股票代码是(1024),港交所官网的地址在这里(https://www.hkex.com.hk/Market-Data/Securities-Prices/Equities/Equities-Quote?sym=700&sc_lang=en),港交所没有提供官方查询的API,因此代码库基于爬虫来实时更新 Token,模拟请求来抓取数据。


FinanceAgent库封装和调用API,获取Token等方法 fetch_clean_token_by_force() ,以及解析的过程。地址:https://github.com/AI-Hub-Admin/FinanceAgent/blob/main/src/FinanceAgent/stock/request_hk_stock_price_py3.py



import FinanceAgent as fa
hk_stock_info_json = fa.api(symbol_list=['700', '1024'], market="HK")

keys = ["symbol", "avg_price", "high", "low", "previous_close", "update_time", "market_capitalization", "pe_ratio", "source_url", "data_source"]       
print ("#### HongKong Stock Exchange LSE")
for stock_info in hk_stock_info_json:
    print ("-----------------------------------")
    for key in keys:
        value = stock_info[key] if key in stock_info else ""
        print (key + "|" + value)


返回结果包括

-----------------------------------
symbol|700
avg_price|436.000 HKD
high|440.800 HKD
low|424.000 HKD
previous_close|438.800 HKD
update_time|14 Oct 2024 18:33
market_capitalization|4,045.91 B HKD
pe_ratio|33.32
source|HKEX, https://www.hkex.com.hk/Market-Data/Securities-Prices/Equities/Equities-Quote?sym=700&sc_lang=en
data_source|hkex.com
-----------------------------------
symbol|1024
avg_price|49.650 HKD
high|50.950 HKD
low|47.600 HKD
previous_close|50.850 HKD
update_time|14 Oct 2024 18:33
market_capitalization|214.06 B HKD
pe_ratio|31.15
source|HKEX, https://www.hkex.com.hk/Market-Data/Securities-Prices/Equities/Equities-Quote?sym=1024&sc_lang=en
data_source|hkex.com


FinanceAgent 代码库和地址

https://github.com/AI-Hub-Admin/FinanceAgent

http://www.deepnlp.org/blog/chatgpt-stock-global-market

http://www.deepnlp.org/blog/fin-chatbot-first-spider-hkex

http://www.deepnlp.org/blog/financial-chatbot-chatgpt-1

http://www.deepnlp.org/blog/generative-ai-search-engine-optimization-how-to-improve-your-content

http://www.deepnlp.org/workspace/dialogue_visualization

http://www.deepnlp.org/workspace/agent_visualization

http://www.deepnlp.org/store/pub/pub-openai-o1

http://www.deepnlp.org/store/pub/pub-chatgpt-openai

http://www.deepnlp.org/blog/introduction-to-multimodal-generative-models

https://pypi.org/project/FinanceAgent/


相关文章
|
21天前
|
人工智能 API 开发工具
【重磅发布】 免费领取阿里云百炼AI大模型100万Tokens教程出炉,API接口实战操作,DeepSeek-R1满血版即刻体验!
阿里云百炼是一站式大模型开发及应用构建平台,支持开发者和业务人员轻松设计、构建大模型应用。通过简单操作,用户可在5分钟内开发出大模型应用或在几小时内训练专属模型,专注于创新。
468 88
【重磅发布】 免费领取阿里云百炼AI大模型100万Tokens教程出炉,API接口实战操作,DeepSeek-R1满血版即刻体验!
|
26天前
|
人工智能 JSON 自然语言处理
AI 程序员的4个分身 | 代码生成专家+注释精灵+API集成助手+智能调试伙伴
AI 程序员的4个分身 | 代码生成专家+注释精灵+API集成助手+智能调试伙伴
196 35
|
5天前
|
机器学习/深度学习 设计模式 API
Python 高级编程与实战:构建 RESTful API
本文深入探讨了使用 Python 构建 RESTful API 的方法,涵盖 Flask、Django REST Framework 和 FastAPI 三个主流框架。通过实战项目示例,详细讲解了如何处理 GET、POST 请求,并返回相应数据。学习这些技术将帮助你掌握构建高效、可靠的 Web API。
|
5天前
|
机器学习/深度学习 设计模式 测试技术
Python 高级编程与实战:构建自动化测试框架
本文深入探讨了Python中的自动化测试框架,包括unittest、pytest和nose2,并通过实战项目帮助读者掌握这些技术。文中详细介绍了各框架的基本用法和示例代码,助力开发者快速验证代码正确性,减少手动测试工作量。学习资源推荐包括Python官方文档及Real Python等网站。
|
25天前
|
人工智能 Rust 安全
DeepClaude:结合 DeepSeek R1 和 Claude AI 各自优势开发的 AI 应用平台,支持 API 调用和零延迟的即时响应
DeepClaude 是一个开源的 AI 应用开发平台,结合了 DeepSeek R1 和 Claude 模型的优势,提供即时响应、端到端加密和高度可配置的功能。
285 4
DeepClaude:结合 DeepSeek R1 和 Claude AI 各自优势开发的 AI 应用平台,支持 API 调用和零延迟的即时响应
|
5天前
|
人工智能 Java API
ai-api-union项目,适配各AI厂商api
本项目旨在实现兼容各大模型厂商API的流式对话和同步对话接口,现已支持智谱、豆包、通义、通义版DeepSeek。项目地址:[https://gitee.com/alpbeta/ai-api-union](https://gitee.com/alpbeta/ai-api-union)。通过`ChatController`类暴露两个接口,入参为`ChatRequest`,包含会话ID、大模型标识符和聊天消息列表。流式对话返回`Flux<String>`,同步调用返回`String`
68 2
|
5天前
|
机器学习/深度学习 设计模式 API
Python 高级编程与实战:构建微服务架构
本文深入探讨了 Python 中的微服务架构,介绍了 Flask、FastAPI 和 Nameko 三个常用框架,并通过实战项目帮助读者掌握这些技术。每个框架都提供了构建微服务的示例代码,包括简单的 API 接口实现。通过学习本文,读者将能够使用 Python 构建高效、独立的微服务。
|
5天前
|
消息中间件 分布式计算 并行计算
Python 高级编程与实战:构建分布式系统
本文深入探讨了 Python 中的分布式系统,介绍了 ZeroMQ、Celery 和 Dask 等工具的使用方法,并通过实战项目帮助读者掌握这些技术。ZeroMQ 是高性能异步消息库,支持多种通信模式;Celery 是分布式任务队列,支持异步任务执行;Dask 是并行计算库,适用于大规模数据处理。文章结合具体代码示例,帮助读者理解如何使用这些工具构建分布式系统。
|
21天前
|
存储 人工智能 程序员
通义灵码AI程序员实战:从零构建Python记账本应用的开发全解析
本文通过开发Python记账本应用的真实案例,展示通义灵码AI程序员2.0的代码生成能力。从需求分析到功能实现、界面升级及测试覆盖,AI程序员展现了需求转化、技术选型、测试驱动和代码可维护性等核心价值。文中详细解析了如何使用Python标准库和tkinter库实现命令行及图形化界面,并生成单元测试用例,确保应用的稳定性和可维护性。尽管AI工具显著提升开发效率,但用户仍需具备编程基础以进行调试和优化。
209 9
|
2月前
|
人工智能 开发者 Python
Chainlit:一个开源的异步Python框架,快速构建生产级对话式 AI 应用
Chainlit 是一个开源的异步 Python 框架,帮助开发者在几分钟内构建可扩展的对话式 AI 或代理应用,支持多种工具和服务集成。
241 9

热门文章

最新文章

推荐镜像

更多