Introdução geral
O FinRobot é uma plataforma de inteligência de IA de código aberto desenvolvida pela AI4Finance Foundation e projetada para análise financeira. Ela não só abrange modelos de linguagem tradicionais, mas também incorpora uma variedade de tecnologias de IA, com o objetivo de fornecer uma solução abrangente para o setor financeiro. O FinRobot foi originalmente projetado para simplificar e otimizar o processo de análise financeira e para melhorar a precisão e a eficiência da análise por meio de tecnologias avançadas de IA. Suas principais funções incluem interpretação de tendências de mercado, previsão econômica e fornecimento de estratégia de investimento, etc. É adequado para todos os tipos de instituições financeiras e investidores individuais.
Lista de funções
- Análise de tendências de mercadoMonitoramento e análise da dinâmica do mercado em tempo real e fornecimento de previsões de tendências e recomendações de investimentos.
- Previsões econômicasUso de big data e algoritmos de IA para prever indicadores macroeconômicos.
- Ofertas de estratégias de investimentoGeração de estratégias de investimento personalizadas com base em dados históricos e análise de mercado.
- Processamento de dados multimodaisIntegração de dados de mercado, notícias e indicadores econômicos para análise multidimensional.
- biblioteca de código aberto (OSSL)Fornecimento de uma biblioteca rica de código-fonte aberto para dar suporte ao desenvolvimento secundário e às extensões de funcionalidade.
Projeto de arquitetura FinRobot
1. ecossistema FinRobot
O FinRobot usa uma arquitetura de quatro camadas, com cada camada otimizada para tarefas de IA financeira.
- Camada de agente de IA financeiraAgente de previsão de mercado: Inclui agentes de previsão de mercado, agentes de análise de documentos, agentes de estratégia de negociação, etc., com suporte para prompts financeiros da Cadeia de Pensamento (CoT).
- Camada Algorítmica do LLM FinanceiroSuporte ao ajuste de LLM específico do domínio financeiro para aprimorar o conhecimento especializado da análise financeira.
- Camada de LLMOps e DataOpsIntegração de dados de várias fontes: fornece integração de dados de várias fontes e oferece suporte à adaptação dinâmica de vários modelos LLM.
- Camada de modelo básico LLM de várias fontesSuporte a Plug-and-Play: O modelo LLM exige adaptação flexível a diferentes tarefas.
2. fluxo de trabalho do agente de IA
O fluxo de trabalho do agente FinRobot consiste em três componentes principais:
- PercepçãoAcesso a dados de mercado, notícias e indicadores econômicos para análise multimodal.
- Pensamento (cérebro)Gerar decisões de negociação usando LLM combinado com uma abordagem de pensamento de cadeia financeira.
- AçãoExecute negociações, ajuste portfólios, gere relatórios ou envie alertas.
3. sistema de despacho inteligente
O FinRobot usa Agendador inteligente sistema de agendamento para garantir que as tarefas possam ser atribuídas ao agente de IA mais adequado.
- Agente DiretorAtribuir agentes com base nas características da tarefa.
- Registro de agenteGerencie os registros de agentes e acompanhe seu status.
- Adaptador de agenteAjuste da funcionalidade do agente para melhorar a adequação à tarefa.
- Gerenciador de tarefasArmazena e gerencia a execução de tarefas para agentes de IA.
Usando a Ajuda
Etapas de instalação
(1) Criando um ambiente Python
conda create --name finrobot python=3.10 conda activate finrobot
(2) Clonagem da base de código
git clone https://github.com/AI4Finance-Foundation/FinRobot.git cd FinRobot
(3) Instalação de dependências
pip install -U finrobot # 或者从源码安装 pip install -e .
(4) Configuração da chave de API
# 修改 OAI_CONFIG_LIST_sample 文件 mv OAI_CONFIG_LIST_sample OAI_CONFIG_LIST vi OAI_CONFIG_LIST # 添加 OpenAI API Key # 修改 config_api_keys_sample 文件 mv config_api_keys_sample config_api_keys vi config_api_keys # 添加 Finnhub、SEC-API、FinancialModelingPrep API Key
2) Exemplos de aplicativos
(1) Agente de previsão de mercado: previsão de movimentos de preços de ações
import autogen from finrobot.utils import get_current_date, register_keys_from_json from finrobot.agents.workflow import SingleAssistant # 读取 OpenAI API 配置 llm_config = { "config_list": autogen.config_list_from_json("../OAI_CONFIG_LIST"), "timeout": 120, "temperature": 0, } # 注册 API 密钥 register_keys_from_json("../config_api_keys") # 运行预测 company = "NVDA" assistant = SingleAssistant("Market_Analyst", llm_config, human_input_mode="NEVER") assistant.chat(f"分析 {company} 近期市场动态,并预测未来一周股价走势。")
no final
(2) Agente de análise financeira: geração automática de relatórios financeiros
import os import autogen from finrobot.utils import register_keys_from_json from finrobot.agents.workflow import SingleAssistantShadow # 配置 LLM 参数 llm_config = { "config_list": autogen.config_list_from_json("../OAI_CONFIG_LIST"), "timeout": 120, "temperature": 0.5, } # 注册 API 密钥 register_keys_from_json("../config_api_keys") # 创建工作目录 work_dir = os.path.join("..", "report") os.makedirs(work_dir, exist_ok=True) # 初始化智能助手 assistant = SingleAssistantShadow("Expert_Investor", llm_config, human_input_mode="TERMINATE") # 设定公司和年份 company = "Microsoft" fyear = "2023" # 生成报告请求 message = f"请基于 {company} {fyear} 年的财务数据撰写年度分析报告,并导出 PDF。" # 运行助手并处理异常 try: assistant.chat(message, use_cache=True, max_turns=50, summary_method="last_msg") print(f"报告已成功生成并保存至 {work_dir}") except Exception as e: print(f"生成报告时出错: {e}")
no final
Análise da posição financeira (CoT financeiro):
- Coleta de dados preliminares: relatórios 10-K, dados de mercado, índices financeiros
- Analisar demonstrações financeiras: balanço patrimonial, demonstração de resultados, demonstração de fluxo de caixa
- Visão geral e desempenho da empresa: descrição da empresa, destaques do negócio, análise do segmento
- Avaliação de riscos: avaliação de riscos
- Visualização do desempenho financeiro: gráficos de preço-lucro (índice PE) e lucro por ação (EPS)
- Sintetizar as descobertas em parágrafos: integrar todas as partes em um resumo coerente
- Gerar relatórios em PDF: use ferramentas para gerar arquivos PDF automaticamente
- Garantia de qualidade: verificação da contagem de palavras