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

简介: 金融领域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/


相关文章
|
7月前
|
人工智能 测试技术 API
构建AI智能体:二、DeepSeek的Ollama部署FastAPI封装调用
本文介绍如何通过Ollama本地部署DeepSeek大模型,结合FastAPI实现API接口调用。涵盖Ollama安装、路径迁移、模型下载运行及REST API封装全过程,助力快速构建可扩展的AI应用服务。
2271 7
|
7月前
|
存储 机器学习/深度学习 人工智能
构建AI智能体:三、Prompt提示词工程:几句话让AI秒懂你心
本文深入浅出地讲解Prompt原理及其与大模型的关系,系统介绍Prompt的核心要素、编写原则与应用场景,帮助用户通过精准指令提升AI交互效率,释放大模型潜能。
1269 6
|
存储 人工智能 自然语言处理
AI经营|多Agent择优生成商品标题
商品标题中关键词的好坏是商品能否被主搜检索到的关键因素,使用大模型自动优化标题成为【AI经营】中的核心能力之一,本文讲述大模型如何帮助商家优化商品素材,提升商品竞争力。
1729 62
AI经营|多Agent择优生成商品标题
|
机器学习/深度学习 人工智能 自然语言处理
Gemini 2.0:谷歌推出的原生多模态输入输出 + Agent 为核心的 AI 模型
谷歌最新推出的Gemini 2.0是一款原生多模态输入输出的AI模型,以Agent技术为核心,支持多种数据类型的输入与输出,具备强大的性能和多语言音频输出能力。本文将详细介绍Gemini 2.0的主要功能、技术原理及其在多个领域的应用场景。
1504 20
Gemini 2.0:谷歌推出的原生多模态输入输出 + Agent 为核心的 AI 模型
|
人工智能 自然语言处理 前端开发
Director:构建视频智能体的 AI 框架,用自然语言执行搜索、编辑、合成和生成等复杂视频任务
Director 是一个构建视频智能体的 AI 框架,用户可以通过自然语言命令执行复杂的视频任务,如搜索、编辑、合成和生成视频内容。该框架基于 VideoDB 的“视频即数据”基础设施,集成了多个预构建的视频代理和 AI API,支持高度定制化,适用于开发者和创作者。
1116 9
Director:构建视频智能体的 AI 框架,用自然语言执行搜索、编辑、合成和生成等复杂视频任务
|
机器学习/深度学习 人工智能 算法
Meta Motivo:Meta 推出能够控制数字智能体动作的 AI 模型,提升元宇宙互动体验的真实性
Meta Motivo 是 Meta 公司推出的 AI 模型,旨在控制数字智能体的全身动作,提升元宇宙体验的真实性。该模型通过无监督强化学习算法,能够实现零样本学习、行为模仿与生成、多任务泛化等功能,适用于机器人控制、虚拟助手、游戏角色动画等多个应用场景。
474 4
Meta Motivo:Meta 推出能够控制数字智能体动作的 AI 模型,提升元宇宙互动体验的真实性
|
人工智能 自然语言处理 JavaScript
Agent-E:基于 AutoGen 代理框架构建的 AI 浏览器自动化系统
Agent-E 是一个基于 AutoGen 代理框架构建的智能自动化系统,专注于浏览器内的自动化操作。它能够执行多种复杂任务,如填写表单、搜索和排序电商产品、定位网页内容等,从而提高在线效率,减少重复劳动。本文将详细介绍 Agent-E 的功能、技术原理以及如何运行该系统。
1333 5
Agent-E:基于 AutoGen 代理框架构建的 AI 浏览器自动化系统
|
人工智能 自然语言处理 数据挖掘
田渊栋团队新作祭出Agent-as-a-Judge!AI智能体自我审判,成本暴跌97%
田渊栋团队提出Agent-as-a-Judge框架,利用智能体自身评估其他智能体的性能,不仅关注最终结果,还能提供中间反馈,更全面准确地反映智能体的真实能力。该框架在DevAI基准测试中表现出色,成本效益显著,为智能体的自我改进提供了有力支持。
502 7
|
Python 机器学习/深度学习 人工智能
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣
【10月更文挑战第1天】本文通过构建一个简单的强化学习环境,演示了如何创建和训练智能体以完成特定任务。我们使用Python、OpenAI Gym和PyTorch搭建了一个基础的智能体,使其学会在CartPole-v1环境中保持杆子不倒。文中详细介绍了环境设置、神经网络构建及训练过程。此实战案例有助于理解智能体的工作原理及基本训练方法,为更复杂应用奠定基础。首先需安装必要库: ```bash pip install gym torch ``` 接着定义环境并与之交互,实现智能体的训练。通过多个回合的试错学习,智能体逐步优化其策略。这一过程虽从基础做起,但为后续研究提供了良好起点。
2551 4
手把手教你从零开始构建并训练你的第一个强化学习智能体:深入浅出Agent项目实战,带你体验编程与AI结合的乐趣

热门文章

最新文章

推荐镜像

更多