当前位置: 首页 > news >正文

FinRobot:一个使用大型语言模型进行金融分析的开源AI代理平台

文章目录

  • 前言
  • 一、生态系统
    • 1. 金融AI代理(Financial AI Agents)
    • 2. 金融大型语言模型(Financial LLMs)
    • 3. LLMOps
    • 4. 数据操作(DataOps)
    • 5. 多源LLM基础模型(Multi-Source LLM Foundation Models)
    • 6. Agent工作流
      • 1. 感知模块(Perception)
      • 2.大脑模块(Brain)
      • 3.行动模块(Action)
  • 二、示例代码解释
    • 1. demo
    • 2. 小弟各司其职
  • 三. 测试
    • 1. Market Forecaster Agent (Predict Stock Movements Direction)
    • 2.Financial Analyst Agent for Report Writing (Equity Research Report)
    • 3. 补充10-K干嘛的
  • 四. 总结

前言

FinRobot 是一个超越 FinGPT 范围的人工智能代理平台,代表为金融应用精心设计的全面解决方案。它整合了多种人工智能技术,远远不止是简单的语言模型。这种宏大的愿景突出了平台的多功能性和适应性,能够满足金融行业的多样化需求。
AI 代理的概念:
AI 代理是一种智能实体,它以大型语言模型作为“大脑”,感知环境、做出决策并执行行动。与传统人工智能不同,AI 代理具备独立思考的能力,并能够利用工具逐步实现既定目标。
本文主要讲明白,这东西有啥用,怎么构成的以及怎么用。

一、生态系统

示例:pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。
这张图展示了 FinRobot 生态系统,这是一个使用大型语言模型(LLMs)进行金融应用的开源AI代理平台。图中分为几个主要部分,每个部分都有特定的功能和作用。以下是对图中每个部分的详细分析:

1. 金融AI代理(Financial AI Agents)

这部分展示了FinRobot平台支持的不同类型的AI代理,这些代理用于执行特定的金融任务:
市场预测代理(Market Forecasting Agents):包括交易策略代理(Trading Strategist Agent)、多模态代理(Multimodal Agent)、全球股票市场代理(Global Stock Market Agent)。
文档分析与生成代理(Document Analysis & Generation Agents):包括收益报告分析代理(Earnings Report Analysis Agent)、财务报告生成代理(Financial Report Generation Agent)、风险评估代理(Risk Assessment)、报告分析代理(Report Analysis Agent)、股票研究报告生成代理(Equity Research Report Generation Agent)。

2. 金融大型语言模型(Financial LLMs)

这部分展示了支持FinRobot平台的不同类型的金融大型语言模型(LLMs):
金融多模态LLMs(Financial Multimodal LLMs)
金融强化学习(FinRL)
金融机器学习(FinML)
金融大型语言模型(FinGPT)

3. LLMOps

这部分展示了用于管理和优化大型语言模型的操作工具:
提示工程(Prompt Engineering)
持续集成/持续部署(CI/CD)
模型部署(Model Deployment)
模型评估(Model Evaluation)
指令调整(Instruction Tuning)
RLHF(Reinforcement Learning from Human Feedback)
智能调度器(Smart Scheduler)

4. 数据操作(DataOps)

这部分展示了用于处理和分析金融数据的工具和技术:
金融数据与金融自然语言处理(Financial Data & FinNLP)
市场新闻(Market News)
社交媒体(Social Media)
市场情绪(Market Sentiment)
金融比率(Financial Ratios)
FinRL-Meta
表格数据(Tabular Data)
Gym环境(Gym Env)
非结构化数据(Unstructured Data)
第三方API(Third Party API)
向量数据库(Vector Database)
RAG(Retrieval-Augmented Generation)
知识图谱(Knowledge Graph)

5. 多源LLM基础模型(Multi-Source LLM Foundation Models)

这部分展示了FinRobot平台支持的多种基础模型,这些模型提供了底层的语言处理能力:
Llama3
ChatGLM3
Qwen
Falcon
ChatGPT
Gemma
Baichuan
InternLM
Mistral

6. Agent工作流

在这里插入图片描述

1. 感知模块(Perception)

该模块通过复杂的手段捕捉并解释来自市场数据流、新闻和经济指标的多模态金融数据,将数据结构化以便进行深入分析。

2.大脑模块(Brain)

作为核心处理单元,该模块利用大型语言模型(LLMs)感知来自感知模块的数据,并通过金融思维链(Chain-of-Thought, CoT)流程生成结构化的指令。

3.行动模块(Action)

该模块执行来自大脑模块的指令,运用工具将分析洞察转化为可执行的结果。行动包括交易、调整投资组合、生成报告或发送警报,从而积极影响金融环境。

二、示例代码解释

1. demo

在这里插入图片描述
其中每一份报告都对应一个初级版本和一个高级版本,初级的主要是针对普通用户,也就是绝大部分散户。高级主要专家级别,主要服务对象是从事金融行业。
应用场景也可以根据需要在demo代码的基础上修改。
年度报告分析代理.ipynb
财务预测代理.ipynb
交易策略代理.ipynb
基于Matplotlib Finance的LLM代理.ipynb
基于简单移动平均交叉的LLM优化代理.ipynb

2. 小弟各司其职

每一个agent就代表一个打工者,每个具体的岗位就是name,system_message,就是该岗位需要负责哪些任务,也可以说是给agent的指令。description小弟的个人简介。model,根据需要可以设置不用大模型

agent_configs": [{"name": "financial_data_analyst","model": "gpt-4","system_message": "You are now in a group chat. As a financial_data_analyst, you are tasked with particular responsibilities that will need your analytical and Python programming skills. Be ready to:\n\n    1. Make use of Python to gather relevant data. This could be information on specific companies, such as the company profile, recent stock price fluctuations, market news, and financial basics. The Python code should be able to output this necessary information. For instance, it may need to browse or search the web, download/read a file or print the content of a webpage or a file.\n\n    2. Use the gathered data to provide a well-informed analysis of the company. This may involve understanding current positive developments and potential concerns. You may also need to make a rough prediction of the next week's stock price (e.g., up by 2-3%) and provide an elaborative summary of the reasons. This task may necessitate the use of both your data analysis skills and your language proficiency to effectively convey the outcomes of your analysis.\n\n    3. Ensure clarity when using Python to solve a task, specifically by explaining your plan beforehand. Indicate when you will use code and when you will use your language skills. For example, the code may be used to extract financial data so that you can utilize your language skills for the analysis part.\n\n    4. Eliminate the necessity for the user to make changes to your code. Make sure your Python code is complete and doesn't call for modifications by the user. Also, ensure the code can run independently and avoid including anything that could prompt the user to copy and paste the result.\n\n    5. Be diligent in checking the execution results returned by the user. If there is an error, fix it, and if the error can't be fixed or the task isn't solved, think of a different approach. You can then output the full corrected code once again. \n\n    6. At the end of your tasks, remember to verify your answers with evidence where possible. When you are confident that your work is complete and correct, reply with \"TERMINATE.\"\n\nRemember, when puzzled, it's ok to communicate the issue to your group chat manager who will help guide you through or assign someone else to tackle the task.","description": "A financial data analyst is a specialized professional who collects, monitors, and creates reports from complex data sets to help a business in decision-making processes. This position should be filled by someone with strong analytical skills, a solid understanding of financial market trends, and proficiency in data analysis tools like Microsoft Excel or SQL. They should also have a keen attention to detail and the ability to communicate complicated data in understandable ways."},{"name": "market_news_researcher","model": "gpt-4","system_message": "You are now in a group chat. Your task is to complete a market research study with other participants. As a market_news_researcher, you are expected to have strong skills in Python programming, financial analysis, market research, and the ability to analyze and interpret complex data.\n\n    1. Information Collection: Use your programming skills to gather relevant data. This may involve accessing financial data and market news from online sources, reading and downloading files, or retrieving the latest stock prices. Ascertain that the output of the data you need (for instance, company profile, stock price fluctuations, and market news about the specified company) is printed on your Python console. All required data should be gathered before attempting to solve the task based on your insights.\n        \n    2. Task Execution: Use your programming skills to conduct necessary financial analyses, interpret complex financial data, and predict stock price movements. Make sure your Python code outputs the results of your analyses and provides a clear explanation of your findings. You should also specify your predictions for next week's stock price and provide a summary of the reasoning behind your predictions.\n        \n    3. Planning: Clearly outline your plan before starting to perform your task. Communicate how you intend to collect and analyze the collected data, how you will program your Python code to predict future prices, and how you plan to execute your task step by step.\n        \n    4. Error Handling: If you encounter an error when executing your Python code, rectify the error and provide the corrected Python code. Ensure that the modified Python code is complete and doesn't require the user to make adjustments. If the error persists, rethink your approach, gather additional data if necessary, and devise an alternative strategy.\n        \n    5. Verification: After obtaining results, carefully verify your findings. If possible, provide supporting evidence in your response.\n        \nThe conversation concludes when your research is successfully completed and the task has been fully accomplished. At this point, reply \"TERMINATE\". Before ending the conversation, you must ensure that the user is fully satisfied with your analysis and predictions. If you are unsure or confused, you are encouraged to ask the group chat manager for assistance and let them choose another participant.","description": "A market news researcher is a professional who stays updated with all the latest developments and trends in the market. They should possess strong analytical and research skills, along with a good understanding of business and finance. They should also have excellent communication skills to convincingly explain and debate about their findings and analysis in a group chat."},{"name": "python_programmer","model": "gpt-4","system_message": "You are now in a group chat. You have been assigned a task along with other participants. As a Python programmer, your primary role is to program solutions for data collection, analysis, and estimation tasks related to a specified company's stock.\n\nWhen there is a need to gather information, such as a company's profile, stock price history, market news, and basic financials, utilize your coding skills to achieve this. Use python code to browse or search the web, download or read relevant files, or pull the desired data from financial websites. Instead of relying on others in the group to provide this information, your code should independently fetch it. Always use a single piece of robust, comprehensive code that the users can run without needing to modify anything.\n\nWith the collected data, analyze the current positive developments and potential concerns of the specified company. Use python programs to automate your data analysis where possible and compile your observations and inferences into a clear and concise summary.\n\nBased on the data and your analysis, develop a predictive model using Python to estimate the stock's price change for the next week. Explain your model's rationale and output a numerical estimate, e.g., \"up by 2-3%\". All code should be designed to execute as standalone programs and should avoid the use of charts or visualizations.\n\nOnce your code has achieved the task at hand, carefully verify its output against reliable sources. Include any evidence or references that support your findings.\n\nWhen encountering problems or uncertainties, engage with the group chat and ask for assistance from the group chat manager. Similarly, if a code execution returns errors or does not solve the task satisfactorily, diagnose the issue, correct your assumptions, gather additional necessary information and generate a new approach with python programs.\n\nUpon completion of your tasks, ensuring the satisfaction of user's needs and the correctness of your solutions, respond with \"TERMINATE\".","description": "A Python programmer is a highly skilled individual with expertise in Python, who can write, test, debug and improve Python code. They possess the ability to detect critical programming and logic errors, thereby contributing effectively to group discussions by providing accurate answers or code corrections. They require strong problem-solving skills, a firm understanding of data structures, algorithms, and software development principles in the Python language."},{"name": "stock_price_estimator","model": "gpt-4","system_message": "You are a diligent member of a team focused on stock price estimation. Using your knowledge on data sourcing and analytical skills, you will aid in gathering essential company information through programming in Python. Conduct thorough research on specific company profiles (e.g., AAPL), monitoring recent stock price fluctuations, keeping up-to-date with market news, and understanding financial fundamentals. \n\nBased on your analysis, you will aim to predict the next week's stock price with a rough estimate (e.g., up 2-3%). Notably, your role involves creating and executing standalone python programs, generating summary explanations of stock trend reasons without resorting to graphical chart representations.\n\nCarefully, step-by-step:\n\n1. Employ your Python coding skills to gather necessary information. You can accomplish this by scripting to search the web, download/read and print the content of files, pages, current time/date, and check the operating system specifics. Execute your scripts and share the output.\n\n2. Utilize your analytical language skills to prepare comprehensive reports detailing positive developments and potential concerns based on the data available.\n\n3. Use your attention to detail to meticulously check the execution results given by other team members. If there is an error, identify and correct it, then output the comprehensive and correct Python program. In case the analysis is not complete or an error is unfixable with the current data or approach, notify the team, gather additional information as needed, and propose a different method.\n\n4. After successfully analysing and estimating a stock\u2019s price movement, ensure to verify your estimations carefully. If possible, include convincing evidence in your report.\n\n5. Instigate the termination of a task phase once you're confident the task is complete, knowing that the final decision rests with the group chat manager. \n\n6. If stumped or uncertain, refrain from hesitation. Seek guidance from the group chat manager who will direct another participant to aid you.\n\nBear in mind; coding skills are limited to Python. You are encouraged to doubt previous messages or codes in the group chat and provide corrected code if there is no output after execution. Engage in healthy team communication, negotiate doubts and difficulties, and seek assistance when needed.","description": "A stock price estimator is a financial expert who specializes in financial modeling, data analysis and has a profound understanding of financial markets. The incumbent should have strong skills in Python for analyzing data and building prediction models, with the ability to scrutinize previous messages or code in a group chat and provide revisions if uncertainties appear. Familiarity with statistical modeling tools and concepts, such as regression, time-series analysis, as well as machine learning techniques, are substantial for this role."},{"name": "financial_report_writer","model": "gpt-4","system_message": "You are now in a group chat. Your role is to complete a task with other participants. As a financial report writer specialized in analyzing company stock performances, you will use your Python programming skills to collect, analyze, and summarize relevant data pertaining to a specified company's market position and stock price trends. \n\nYou are expected to perform the following functions:\n\n    1. Gather necessary information such as a company's profile, recent stock price fluctuations, market news, and financial basics about the company. You will leverage your Python programming skills to develop codes that download, read, and print the desired content from the web.\n\n    2. After collecting the relevant information, use your financial analytical skills to evaluate the company's current positive developments and potential concerns. Your evaluation should be based on the data you have gathered.\n\n    3. When your analysis is complete, give a rough estimate (e.g., up by 2-3%) for the next week's stock price. You should also provide a summary of the reasons for your prediction.\n\n    4. Make sure every Python program you create will execute on its own. Avoid designing programs that require the user to modify your code. Each Python program you suggest should not involve chart plotting.\n\n    5. If an error occurs while running the code, you should correct the error and output the corrected code again. If the error can't be fixed or if the task isn't solved even after the code runs successfully, use your analytical skills to identify the problem and come up with an alternative approach.\n\n    6. Verify your answer carefully before presenting it. Include evidence to validate your findings, where possible.\n\n    7. If you face any confusion during the task, seek assistance from the group chat manager. If you think your task is complete and satisfactory, please reply \"TERMINATE\".","description": "A financial report writer is a professional with strong analytical skills, expertise in financial data analysis and capable of creating concise, accurate reports. This position requires proficiency in financial software, a keen understanding of financial concepts and excellent writing skills to effectively compile and present financial data. They should also possess effective communication skills and the ability to question and clarify any doubtful financial data or information shared in the group chat."}

三. 测试

地址:
https://github.com/AI4Finance-Foundation/FinRobot
环境配置,更多介绍可以git上查看,运行代码前需要有三个key去配置,一个openai,2个和财经相关。
add your own finnhub-api “YOUR_FINNHUB_API_KEY”
add your own financialmodelingprep and sec-api keys “YOUR_FMP_API_KEY” and “YOUR_SEC_API_KEY” (for financial report generation)
这个都是私有,需要自己申请。

1. Market Forecaster Agent (Predict Stock Movements Direction)

市场预测代理(Market Forecaster Agent)是FinRobot平台中的一个功能,它能够分析公司的股票代码、最新财务数据和市场新闻,预测其股票走势。这一功能对于投资者和分析师来说非常有价值,因为它提供了对公司股票未来表现的洞察。

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 predicitonhuman_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."
)

运行代码以后,会先自动去下载一个NLTK 的 punkt 数据包(用于分词),然后它会自动解压,解压后的目录包含预训练的分词模型和相关元数据。

(autogen_env) root@autodl-container-f111409ec6-08df088d:~/autodl-tmp/FinRobot/test# python test1.py
[nltk_data] Downloading package punkt to /root/nltk_data...
[nltk_data]   Unzipping tokenizers/punkt.zip.
[nltk_data] Downloading package averaged_perceptron_tagger to
[nltk_data]     /root/nltk_data...

在这里插入图片描述
如果配置文件里没有api-key,打印出提示信息。

(autogen_env) root@autodl-container-f111409ec6-08df088d:~/autodl-tmp/FinRobot/test# python test1.py
[nltk_data] Downloading package punkt to /root/nltk_data...
[nltk_data]   Unzipping tokenizers/punkt.zip.
[nltk_data] Downloading package averaged_perceptron_tagger to
[nltk_data]     /root/nltk_data...
[nltk_data]   Unzipping taggers/averaged_perceptron_tagger.zip.
[autogen.oai.client: 03-01 02:40:35] {307} WARNING - The API key specified is not a valid OpenAI format; it won't work with the OpenAI-hosted model.
[autogen.oai.client: 03-01 02:40:35] {307} WARNING - The API key specified is not a valid OpenAI format; it won't work with the OpenAI-hosted model.
User_Proxy (to Market_Analyst):
Use all the tools provided to retrieve information available for NVDA upon 2025-03-01. Analyze the positive developments and potential concerns of NVDA with 2-4 most important factors respectively and keep them concise. Most factors should be inferred from company related news. Then make a rough prediction (e.g. up/down by 2-3%) of the NVDA stock price movement for next week. Provide a summary analysis to support your prediction.
utogen_env/lib/python3.10/site-packages/openai/_base_client.py", line 1033, in _requestreturn self._retry_request(File "/root/miniconda3/envs/autogen_env/lib/python3.10/site-packages/openai/_base_client.py", line 1111, in _retry_requestreturn self._request(File "/root/miniconda3/envs/autogen_env/lib/python3.10/site-packages/openai/_base_client.py", line 1043, in _requestraise APIConnectionError(request=request) from err
openai.APIConnectionError: Connection error.

分别在config_list和api_key里加入相应的值。
在这里插入图片描述
在这里插入图片描述
再次运行,可以看到已经出现Market_Analyst给出的信息,后面又给了一个错误信息,Error: FinnhubAPIException(status_code: 401): Invalid API key。官方介绍的文档里,提到3个key必须填,看来还漏了一个key,对于这份代码,Finnhub也是必须的。

(autogen_env) root@autodl-container-f111409ec6-08df088d:~/autodl-tmp/FinRobot/test# python test1.pyUser_Proxy (to Market_Analyst):Use all the tools provided to retrieve information available for NVDA upon 2025-03-01. Analyze the positive developments and potential concerns of NVDA with 2-4 most important factors respectively and keep them concise. Most factors should be inferred from company related news. Then make a rough prediction (e.g. up/down by 2-3%) of the NVDA stock price movement for next week. Provide a summary analysis to support your prediction.--------------------------------------------------------------------------------
Market_Analyst (to User_Proxy):***** Suggested tool call (chatcmpl-uY6H36uQN976z6im3mESZRAb4Zqbx): get_company_profile *****
Arguments: 
{"symbol": "NVDA"}
*********************************************************************************************
***** Suggested tool call (chatcmpl-uY6H36uQN976z6im3mESZRAb4Zqbx): get_company_news *****
Arguments: 
{"end_date": "2025-03-01", "start_date": "2025-02-01", "symbol": "NVDA"}
******************************************************************************************
***** Suggested tool call (chatcmpl-uY6H36uQN976z6im3mESZRAb4Zqbx): get_basic_financials *****
Arguments: 
{"symbol": "NVDA"}
**********************************************************************************************
***** Suggested tool call (chatcmpl-uY6H36uQN976z6im3mESZRAb4Zqbx): get_stock_data *****
Arguments: 
{"end_date": "2025-03-01", "start_date": "2025-02-01", "symbol": "NVDA"}
****************************************************************************************-------------------------------------------------------------------------------->>>>>>>> EXECUTING FUNCTION get_company_news...
Call ID: chatcmpl-uY6H36uQN976z6im3mESZRAb4Zqbx
Input arguments: {'end_date': '2025-03-01', 'start_date': '2025-02-01', 'symbol': 'NVDA'}
Finnhub client initialized>>>>>>>> EXECUTING FUNCTION get_stock_data...
Call ID: chatcmpl-uY6H36uQN976z6im3mESZRAb4Zqbx
Input arguments: {'end_date': '2025-03-01', 'start_date': '2025-02-01', 'symbol': 'NVDA'}
User_Proxy (to Market_Analyst):***** Response from calling tool (chatcmpl-uY6H36uQN976z6im3mESZRAb4Zqbx) *****
Error: FinnhubAPIException(status_code: 401): Invalid API key
*******************************************************************************

可以看到每次调完以后,都会根据token消耗费用。
在这里插入图片描述

2.Financial Analyst Agent for Report Writing (Equity Research Report)

金融分析师代理用于撰写报告(Equity Research Report)是一个专门用于分析公司年度报告的代理,它能够提取关键信息并生成摘要。该代理能够处理公司的10-K报告、财务数据和市场数据,输出股票研究报告。通过结合先进的LLMs,这个代理深入分析财务文件,如年报、SEC文件和收益电话会议记录,提取关键信息,识别主要的财务指标,突出显示需要进一步审查的趋势和差异

import os
import autogen
from textwrap import dedent
from finrobot.utils import register_keys_from_json
from finrobot.agents.workflow import SingleAssistantShadowllm_config = {"config_list": autogen.config_list_from_json("../OAI_CONFIG_LIST",filter_dict={"model": ["gpt-4-0125-preview"],},),"timeout": 120,"temperature": 0.5,
}
register_keys_from_json("../config_api_keys")# Intermediate strategy modules will be saved in this directory
work_dir = "../report"
os.makedirs(work_dir, exist_ok=True)assistant = SingleAssistantShadow("Expert_Investor",llm_config,max_consecutive_auto_reply=None,human_input_mode="TERMINATE",
)company = "Microsoft"
fyear = "2023"message = dedent(f"""With the tools you've been provided, write an annual report based on {company}'s {fyear} 10-k report, format it into a pdf.Pay attention to the followings:- Explicitly explain your working plan before you kick off.- Use tools one by one for clarity, especially when asking for instructions. - All your file operations should be done in "{work_dir}". - Display any image in the chat once generated.- All the paragraphs should combine between 400 and 450 words, don't generate the pdf until this is explicitly fulfilled.
"""
)assistant.chat(message, use_cache=True, max_turns=50,summary_method="last_msg")

运行代码,可以看到生成文相应的财务文档保存在report下面。

(autogen_env) root@autodl-container-f111409ec6-08df088d:~/autodl-tmp/FinRobot/test# python test2.py 
User_Proxy (to Expert_Investor):With the tools you've been provided, write an annual report based on Microsoft's 2023 10-k report, format it into a pdf.
Pay attention to the followings:
- Explicitly explain your working plan before you kick off.
- Use tools one by one for clarity, especially when asking for instructions. 
- All your file operations should be done in "../report". 
- Display any image in the chat once generated.
- All the paragraphs should combine between 400 and 450 words, don't generate the pdf until this is explicitly fulfilled.--------------------------------------------------------------------------------
Expert_Investor (to User_Proxy):To create an annual report based on Microsoft's 2023 10-K report and format it into a PDF, I will follow the steps outlined below:1. **Retrieve Key Sections from the 10-K Report**: I'll use specific tools to extract and analyze the following sections from Microsoft's 2023 10-K report:- Company Description- Business Highlights- Income Statement- Segment Analysis- Cash Flow Statement- Risk Assessment- Balance Sheet2. **Generate Visuals**: I'll create visuals for the following:- PE ratio and EPS performance over the past 4 years.- Share performance compared to the S&P 500 over the past year.3. **Combine Analysis into a Coherent Narrative**: I will synthesize the analyses from the income statement and segment analysis into a single coherent paragraph to provide a comprehensive overview of Microsoft's financial health and operational performance.4. **Check Text Length**: I will ensure all paragraphs combine between 400 and 450 words as required.5. **Compile the Report**: Once all the components are ready and meet the requirements, I will compile them into a PDF report, ensuring it includes all the necessary sections and visuals.6. **Display Visuals**: Any visuals generated will be displayed in the chat for review.7. **Review and Finalize**: Before finalizing the PDF, I will review all components to ensure accuracy and completeness.Let's start with the first step. I will begin by retrieving and analyzing the company description for Microsoft's 2023 fiscal year. This will give us an insight into Microsoft's industry, strengths, trends, and strategic initiatives.
***** Suggested tool call (chatcmpl-Wlsfv4sA6e8N1oOnL85B1yEydOIqI): analyze_company_description *****
Arguments: 
{"fyear":"2023","save_path":"../report/msft_company_description.txt","ticker_symbol":"MSFT"}
*****************************************************************************************************-------------------------------------------------------------------------------->>>>>>>> USING AUTO REPLY...>>>>>>>> EXECUTING FUNCTION analyze_company_description...
Call ID: chatcmpl-Wlsfv4sA6e8N1oOnL85B1yEydOIqI
Input arguments: {'fyear': '2023', 'save_path': '../report/msft_company_description.txt', 'ticker_symbol': 'MSFT'}
User_Proxy (to Expert_Investor):***** Response from calling tool (chatcmpl-Wlsfv4sA6e8N1oOnL85B1yEydOIqI) *****
Error: Too Many Requests. Rate limited. Try after a while.
*******************************************************************************--------------------------------------------------------------------------------
Expert_Investor (to User_Proxy):It seems there's a temporary issue with accessing the data due to rate limits. I'll wait a moment and then attempt to retrieve the company description for Microsoft's 2023 fiscal year again. Let's try once more.
***** Suggested tool call (chatcmpl-K1W8qPcmAhg2uLJHdJ3opX22HCt5x): analyze_company_description *****
Arguments: 
{"fyear":"2023","save_path":"../report/msft_company_description.txt","ticker_symbol":"MSFT"}
*****************************************************************************************************

3. 补充10-K干嘛的

10-K报告是美国上市公司根据美国证券交易委员会(SEC)的规定,每年必须提交的一份全面报告。这份报告详细披露了公司的财务状况、运营情况、管理层讨论与分析(MD&A)、公司治理结构、潜在风险因素以及审计过的财务报表等信息。
10-K报告的名称来源于美国证券交易委员会的表格10-K,它是上市公司年度报告的标准格式。这份报告对于投资者、分析师和其他利益相关者来说非常重要,因为它提供了对公司过去一年的全面了解,以及公司未来可能面临的机遇和挑战。
简而言之,10-K报告是一份详尽的年度报告,旨在为投资者提供评估公司价值和做出投资决策所需的关键信息。

四. 总结

FinRobot生态系统通过整合多种AI技术和大型语言模型,提供了一个全面的平台,用于开发和部署各种金融AI代理。这些代理能够执行从市场预测、文档分析到风险评估等多种金融任务,从而满足金融行业的多样化需求。


http://www.mrgr.cn/news/92667.html

相关文章:

  • AcWing 5933:爬楼梯 ← 递归 / 递推 / 高精度
  • 本地部署Deepseek+Cherry Studio
  • 自然语言处理(NLP):文本向量化从文字到数字的原理
  • PHP女程序猿学习Java的Day-10
  • 毕业项目推荐:基于yolov8/yolo11的野生菌菇检测识别系统(python+卷积神经网络)
  • Open3D的python API文档含义
  • Spring 循环依赖解析与解决方案
  • DeepSeek写俄罗斯方块手机小游戏
  • [Web 安全] 反序列化漏洞 - 学习笔记
  • 登录次数限制
  • 【每日八股】MySQL篇(四):索引(下)
  • Android OpenGLES2.0开发(十一):渲染YUV
  • 如何使用 Ollama 的 API 来生成文本
  • Qt互斥锁(QMutex)的使用、QMutexLocker的使用
  • ubuntu22.04系统如何自建2级ntp服务器
  • PySide(PyQT)重新定义contextMenuEvent()实现鼠标右键弹出菜单
  • 从“记住我”到 Web 认证:Cookie、JWT 和 Session 的故事
  • 【原创】Ubuntu 24搭建Ollama+ DeepSeek局域网服务器
  • 在VSCode 中使用通义灵码最新版详细教程
  • Trae根据原型设计稿生成微信小程序密码输入框的踩坑记录