项目简介
FinRobot是由AI4Finance基金会开发的一个开源AI代理平台,专为金融应用设计。这个平台使用大型语言模型(LLMs)作为核心技术,致力于通过智能代理解决复杂的金融问题。它包括多层架构,如金融AI代理层、金融LLMs算法层、LLMOps和DataOps层,以及多源LLM基础模型层,支持多样化的金融分析和操作,如市场预测、文件分析和交易策略。此外,FinRobot还具有智能调度器,优化模型的集成和选择。
生态系统
FinRobot生态系统的整体架构分为四个独特的层次,每个层次都旨在处理金融AI处理和应用的特定方面:
金融AI代理层:现在,金融AI代理层包括金融链式思考(CoT)提示功能,增强了复杂分析和决策能力。市场预测代理、文件分析代理和交易策略代理利用CoT将金融挑战分解为逻辑步骤,将他们的先进算法和领域专业知识与金融市场的动态演变相结合,以提供精确、可操作的洞察。
金融LLMs算法层:金融LLMs算法层配置和使用专门调整的模型,针对特定领域和全球市场分析。
LLMOps和DataOps层:LLMOps层实施多源集成策略,为特定的金融任务选择最合适的LLMs,使用一系列最先进的模型。
多源LLM基础模型层:这个基础层支持各种通用和专用LLM的即插即用功能。
工作流程
感知模块:该模块捕捉并解释来自市场数据源、新闻和经济指标的多模态金融数据。它采用先进技术对数据进行结构化,以便进行全面分析。
大脑模块:作为核心处理单元,该模块从感知模块接收数据,并利用大型语言模型(LLMs)及金融思维链(CoT)过程生成结构化指令。
行动模块:该模块执行来自大脑模块的指令,应用工具将分析洞察转化为可行的结果。行动包括交易、投资组合调整、生成报告或发送警报,从而积极影响金融环境。
智能调度器
智能调度器是确保模型多样性并优化每个任务最适合的LLM的选择和整合的核心。
导向代理:该组件指挥任务分配过程,确保根据代理的性能指标和特定任务的适用性来分配任务。
代理注册:管理代理的注册并跟踪系统内代理的可用性,促进高效的任务分配过程。
代理适配器:定制代理功能以适应特定任务,提高其在整个系统中的性能和集成度。
任务管理器:管理和存储为各种金融任务定制的不同的通用及精细调整的基于LLM的代理,定期更新以确保其相关性和效果。
DEMO
1.市场预测代理(预测股票走向)
输入一个公司的股票代码、近期基本财务数据和市场新闻,预测其股票走势。
·输入
import autogen
from finrobot.utils import get_current_date, register_keys_from_json
from finrobot.agents.workflow import SingleAssistant
·配置
# Read OpenAI API keys from a JSON file
llm_config = {
"config_list": autogen.config_list_from_json(
"../OAI_CONFIG_LIST",
filter_dict={"model": ["gpt-4-0125-preview"]},
),
"timeout": 120,
"temperature": 0,
}
# Register FINNHUB API keys
register_keys_from_json("../config_api_keys")
·运行
company = "NVDA"
assitant = SingleAssistant(
"Market_Analyst",
llm_config,
# set to "ALWAYS" if you want to chat instead of simply receiving the prediciton
human_input_mode="NEVER",
)
assitant.chat(
f"Use all the tools provided to retrieve information available for {company} upon {get_current_date()}. Analyze the positive developments and potential concerns of {company} "
"with 2-4 most important factors respectively and keep them concise. Most factors should be inferred from company related news. "
f"Then make a rough prediction (e.g. up/down by 2-3%) of the {company} stock price movement for next week. Provide a summary analysis to support your prediction."
)
·结果
2. 财务分析代理用于撰写报告(股权研究报告)
输入一个公司的10-k表格、财务数据和市场数据,输出一个股权研究报告。
·输入
import os
import autogen
from textwrap import dedent
from finrobot.utils import register_keys_from_json
from finrobot.agents.workflow import SingleAssistantShadow
·配置
llm_config = {
"config_list": autogen.config_list_from_json(
"../OAI_CONFIG_LIST",
filter_dict={
"model": ["gpt-4-0125-preview"],
},
),