先总结一下AI编程小助手已具备的能力,目前AI小助手已经可以利用本地知识库和在线大模型(我们用的是qwen)生成可测试,可执行代码的能力(具体流程参考从让AI给你写代码(9.1)),并具备一定的知识库扩展能力(让AI给你写代码(9.3):一点改进,支持扩展本地知识库)
支持用户逐步丰富代码及相关描述。
但目前面临的问题有两方面:
1) 提示驱动(prompt)只能利用外部库(例如akshare),还不具备利用本地资源的能力,而外部库只能解决获得金融市场各种数据的能力,但数据再加工,快速读取,形成中间数据集就需要本地代码解决,如果每次都靠语言驱动重新生成本地代码,无论是代码稳定性,代码资产的复用性都不好,效率都很低, 因此我们需要进一步发展promt利用本地/外部资源的能力。
2) 更进一步,代码功能复杂化导致prompt也变得复杂,会带来稳定性,准确性和可执行性一系列问题,最终可能会使得AI编程效率低到还不如传统的硬编码,必须发展出一种方法,克服或者至少缓解这个问题,使得AI助手可以逐步形按较为简单的prompt成生成复杂代码的能力,使得编码用户能够更加聚焦于功能本身开发,而不是复杂繁琐的调试。
解决思路可以参照接口化编程的思想,具体如下:我们已经知道如果把中文提示(prompt)看成是一种中文编码方式,那么在线大模型(LLM)就充当了中文编码解释器的作用,把中文需求转换为标准代码,更进一步,利用提示工程驱动LLM的方法基于代码生成一个标准化接口(interface)和一个调用该接口的标准化需求prompt,保存到本地知识库, 并把该标准化接口对应的代码,保存到代码库; 那么下次利用中文提示开发时,就可以在提示中直接引用该接口完成指定的工作,LLM生成代码后,可以通过import方式直接调用该接口执行,然后可以再次驱动LLM基于新代码生成一个标准化接口(interface)和一个调用该接口的标准化需求prompt,以此类推,就可以逐步集成生成代码,利用接口访问,综合调用本地和外部资源,完成执行一些复杂功能,并且调用方便,具备“一句话”匹配本地知识库调用相关接口的能力。
升级后的小助手总体架构如下:
升级后的小助手分为两类主要功能:
- 蓝色部分——prompt匹配本地接口库,调用匹配到的接口方法,驱动对应代码库中的接口方法代码执行获得结果
- 红色部分——prompt驱动大模型生成新的接口方法的代码和调用提示的过程,具体如下,prompt中描述需要干的工作并完成该工作需要调用接口方法名,输入值和输出值,然后驱动LLM输出代码,并执行,然后再利用LLM驱动分析新的代码,获得接口函数(方法)名,代码功能说明,入参和返回值(出参),然后利用上述要素生成简单接口描述; 再有人工判断是否要存储接口函数及描述,如果需要还可以修改接口描述,然后分别把的代码存储到接口库中,并把接口描述存储到本地接口库中。
下面,我们先通过一个例子来看看工作流程和功能
基础配置:
1)本地库用的向量持久化工具: ES 7.9
2)本地库匹配使用的embedding: 抱脸虫HuggingFaceEmbeddings的paraphrase-multilingual-MiniLM-L12-v2
3)LLM 还是选qwen-max
以上和之前一致
4) 本地接口知识库: es_repository-interface
初始配置了4个接口方法的描述
1- akshare库的stock_zh_a_spot_em接口,获取全市场行情
2- akshare库的stock_zh_a_hist接口,获取历史行情
3- 本地pythonRepository库的getReportDataLocal接口,获得指定日期的全市场报业绩报表数据(本地)
4- 本币pythonRepository库的CalAnnualRatio接口,根据指定日期和增长率,换算成年增长率
备注: 3是把akshare的报表下载库函数包装后,进行下载并指定调用打开方法(报表包含季报),4是把季报数据进行年化处理
- 本地代码库: pythonRepository目录:
其中fetch_stock_financial_reports.py对应的getReportDataLocal接口代码(3)
calculate_annual_growth_rate.py对应的是CalAnnualRatio接口(4)
下面我们逐步利用以上资产,让AI小助手为我们编写更加复杂功能的代码
任务简介
第一步: 获取沪深300指数的成份股列表,并返回这些股票的代码
【用户-提出需求】:
请输入您的问题:获得沪深300成份股列表,生成getHS300List(),无入参,按akshare库的index_stock_cons(symbol="000300")接口获得沪深300成份股生成df_hs300_list,其中列名重新定为[‘股票代码‘、‘股票简称’、‘纳入日期’],打印并返回df_hs300_list['股票代码']
【AI-判断是否和本地库匹配,不匹配】
raw_code:: 与上下文无关。
【AI-提交给LLM生成代码】
根据您的要求,以下是使用akshare库获取沪深300成份股列表,并按照指定方式处理数据的Python代码示例:
```python
import akshare as ak
def getHS300List():
# 使用akshare的index_stock_cons接口获取沪深300成份股数据
df_hs300 = ak.index_stock_cons(symbol="000300")
# 重命名列名
df_hs300.columns = ['股票代码', '股票简称', '纳入日期']
# 打印df_hs300的股票代码列
print(df_hs300['股票代码'])
# 返回股票代码列
return df_hs300['股票代码']
# 调用函数
getHS300List()
这段代码首先导入了`akshare`库,并定义了一个函数`getHS300List`来获取沪深300指数的成份股列表。通过调用`ak.index_stock_cons(symbol="000300")`接口获取数据,然后重命名DataFrame的列名,并打印及返回股票代码列。
【AI-执行代码,并返回结果】
开始执行...
0 600415
1 300418
2 600161
3 688082
4 688009
...
295 000425
296 000157
297 000063
298 000001
299 000002
Name: 股票代码, Length: 300, dtype: object
执行成功: None
result:: {'exec_res': None, 'code': '\nimport akshare as ak\n\ndef getHS300List():\n # 使用akshare的index_stock_cons接口获取沪深300成份股数据\n df_hs300 = ak.index_stock_cons(symbol="000300")\n \n # 重命名列名\n df_hs300.columns = [\'股票代码\', \'股票简称\', \'纳入日期\']\n \n # 打印df_hs300的股票代码列\n print(df_hs300[\'股票代码\'])\n \n # 返回股票代码列\n return df_hs300[\'股票代码\']\n\n# 调用函数\ngetHS300List()\n', 'exec_succ': True}
【AI-询问是否将接口代码保存的到代码库(接口仓库),用户回复 yes】
是否需要将接口函数保存到接口仓库?(y/n): y
【AI-需求入库】
开始存需求库
prompt::
请根据
import akshare as ak
def getHS300List():
# 使用akshare的index_stock_cons接口获取沪深300成份股数据
df_hs300 = ak.index_stock_cons(symbol="000300")
# 重命名列名
df_hs300.columns = ['股票代码', '股票简称', '纳入日期']
# 打印df_hs300的股票代码列
print(df_hs300['股票代码'])
# 返回股票代码列
return df_hs300['股票代码']
# 调用函数
getHS300List()
所示代码起一个合适英语文件名
file_name:: fetch_HS300_constituents.py
文件保存成功
m_name:: fetch_HS300_constituents
保存接口函数成功
【AI-分析代码形成接口描述建议】
module_name:: pythonRepository.fetch_HS300_constituents
导入接口函数成功
raw_doc:: ```
主要功能: 获取沪深300指数的成份股列表,并返回这些股票的代码。
函数名: getHS300List
入参: 无
返回值: 返回一个包含沪深300指数所有成份股股票代码的Series对象。
code_desc(接口方法提示建议):: 获取沪深300指数的成份股列表,并返回这些股票的代码。可以使用pythonRepository库的getHS300List接口,入参无,返回值是返回一个包含沪深300指数所有成份股股票代码的Series对象。使用python编码,打印返回值,代码格式为```python...```
【AI-询问是否要讲接口描述插入接口知识库 - 用户回复 yes】
是否需要将接口需求插入知识库?(y/n): y
{'name': 'node-1', 'cluster_name': 'elasticsearch', 'cluster_uuid': 'F6X7HlMMS-eYJlzY8Tg3Mw', 'version': {'number': '7.9.2', 'build_flavor': 'default', 'build_type': 'tar', 'build_hash': 'd34da0ea4a966c4e49417f2da2f244e3e97b4e6e', 'build_date': '2020-09-23T00:45:33.626720Z', 'build_snapshot': False, 'lucene_version': '8.6.2', 'minimum_wire_compatibility_version': '6.8.0', 'minimum_index_compatibility_version': '6.0.0-beta1'}, 'tagline': 'You Know, for Search'}
需求插入知识库成功
本轮处理完毕-处理完毕
处理完之后本地接口库(知识库)
新增了getHS300List接口描述,对应代码库如红框所示
验证: 我们尝试用简单的中文提示来匹配本地知识库,调用本地代码库的getHS300List接口获取300成份股指数
【用户-提出中文要求】
请输入您的问题:获得沪深300成份股列表
【AI-匹配本地库成功】
raw_code:: 与上下文有关。
根据提供的信息,要获得沪深300指数的成份股列表并返回这些股票的代码,你可以使用`pythonRepository`库中的`getHS300List`接口。这个接口无需任何输入参数,它会返回一个包含沪深300指数所有成份股股票代码的`Series`对象。以下是使用Python进行此操作的示例代码:
```python
from pythonRepository import getHS300List
# 调用getHS300List接口获取沪深300指数成份股列表
hs300_stock_codes = getHS300List()
# 打印返回的股票代码列表
print(hs300_stock_codes)
请注意,实际使用时需要确保你的环境中已经安装了`pythonRepository`这个库,如果未安装,可以通过pip等包管理工具进行安装。此外,上述代码中的库名和函数名需确认在实际环境中是否存在且正确,因为“pythonRepository”看起来像是一个示例或虚构的库名,实际应用中可能需要替换为正确的库名,如`tushare`、`akshare`等,这些库通常提供了获取市场数据的功能。
【AI-执行】
开始执行...
0 600415
1 300418
2 600161
3 688082
4 688009
...
295 000425
296 000157
297 000063
298 000001
299 000002
Name: 股票代码, Length: 300, dtype: object
0 600415
1 300418
2 600161
3 688082
4 688009
...
295 000425
296 000157
297 000063
298 000001
299 000002
Name: 股票代码, Length: 300, dtype: object
0 600415
1 300418
2 600161
3 688082
4 688009
...
295 000425
296 000157
297 000063
298 000001
299 000002
Name: 股票代码, Length: 300, dtype: object
执行成功: None
result:: {'exec_res': None, 'code': '\nfrom pythonRepository import getHS300List\n\n# 调用getHS300List接口获取沪深300指数成份股列表\nhs300_stock_codes = getHS300List()\n\n# 打印返回的股票代码列表\nprint(hs300_stock_codes)\n', 'exec_succ': True}
【AI-取文件名,并判断不是函数(没有def特征)】
所示代码起一个合适英语文件名
file_name:: fetch_HS300_stocks.py
不是函数
【AI-分析代码,但用户确认不入库】
raw_doc:: ```
主要功能: 获取沪深300指数的成份股列表。
函数名: getHS300List
入参: 无
返回值: 返回一个列表,包含沪深300指数的所有成份股代码。
code_desc:: 获取沪深300指数的成份股列表。可以使用pythonRepository库的getHS300List接口,入参无,返回值是返回一个列表,包含沪深300指数的所有成份股代码。使用python编码,打印返回值,代码格式为```python...```
是否需要将接口需求插入知识库?(y/n): n
不插入知识库
是否需要将接口需求插入知识库?(y/n): n
不插入知识库
本轮处理完毕
我们先归纳一下驱动AI编写本地接口的步骤:
- 中文编写需求,类似于详细设计,中间步骤需明确调用知识库已有接口方法
- AI会生成标准代码,并尝试执行,并会给代码自动起文件名,并保存到临时目录
- 然后AI会分析代码,归纳为一个判断,4个要素—— 一个判断是,代码是不是(接口)函数; 4个要素是,1) 功能说明, 2) 函数名 3) 入参 4)返回值, 并在4要素的基础上拼接一段 “接口提示”
- AI 会咨询用户,1) 代码是否保存到本地代码库, 2) 是否把接口提示存入本地接口库,用户如果觉得运行的满足要求,可以选择是,当然如果接口提示不合理,还可以人工修改; 否则选择否。
- 最后用户可以通过中文提示匹配本地接口库,调用新接口生成验证代码,看看是否能得到预想而结果,来验证是否准确
第二步: 在第一步的基础上,让AI小助手完成复杂功能,按输入的日期,计算年化每股收益(EPS)
1) 中文编写需求,类似于详细设计,中间步骤需明确调用知识库已有接口方法
请输入您的问题:请给出python代码,引入本地库pythonRepository计算沪深300成份股业绩增长,
生成genHS300EPS函数,入参是指定报表日期report_date,使用getReportDataLocal(report_date="20240331")接口,
获得业绩报表df_report,然后用同样的接口按前一年报表日期(last_report_datee="20230331")获得业绩报表df_last_report;
再使用getHS300List()获得股票代码列表stock_list并打印;然后遍历stock_list,
按每个股票代码('股票代码'),分别在业绩报表df_report和df_last_report中获得对应的每股收益('每股收益'),
然后按{report_date}_每股收益和上一年的{last_report_date}_每股收益,计算每股收益的增长率ratio,
再使用CalAnnualRatio(report_date,ratio)计算年化每股收益增长率,遍历完成后按[股票代码,{last_report_date}_每股收益,{report_date}_每股收益,
每股收益增长率,年化每股收益增长率]转换成Dataframe格式的df_eps,并打印结果然后返回df_eps
这里使用了getReportDataLocal,getHS300List、CalAnnualRatio所有的本地接口
2.1 ) AI生成代码
raw_code:: 根据提供的上下文,信息是相关的。这里是一个基于您的要求实现的Python代码示例,它引入了`pythonRepository`本地库来计算沪深300成份股的业绩增长,并生成了`genHS300EPS`函数。请注意,此代码示例假设`pythonRepository`库已经包含了所提到的所有方法(如`getReportDataLocal`, `getHS300List`, 以及`CalAnnualRatio`),并且这些方法的功能正如您描述的那样工作。
```python
import pandas as pd
from pythonRepository import getReportDataLocal, getHS300List, CalAnnualRatio
def genHS300EPS(report_date):
"""
计算沪深300成份股的业绩增长。
参数:
report_date (str): 报表日期,格式为"YYYYMMDD"。
"""
# 获取当前报表日期的业绩报表
df_report = getReportDataLocal(report_date=report_date)
# 获取上一年同一时期的业绩报表
last_report_date = str(int(report_date[:4]) - 1) + report_date[4:]
df_last_report = getReportDataLocal(report_date=last_report_date)
# 获取沪深300成份股的股票代码列表并打印
stock_list = getHS300List()
print("沪深300成份股列表:", stock_list)
# 初始化一个DataFrame用于存储结果
results = []
for stock_code in stock_list:
# 获取当前报表和上一年报表的每股收益
current_eps = df_report[df_report['股票代码'] == stock_code]['每股收益'].values[0]
last_eps = df_last_report[df_last_report['股票代码'] == stock_code]['每股收益'].values[0]
# 计算每股收益增长率
ratio = (current_eps - last_eps) / last_eps
# 计算年化每股收益增长率
annual_growth_rate = CalAnnualRatio(report_date, ratio)
# 将结果添加到列表中
results.append([stock_code, last_eps, current_eps, ratio, annual_growth_rate])
# 转换为DataFrame
df_eps = pd.DataFrame(results, columns=['股票代码', f'{last_report_date}_每股收益', f'{report_date}_每股收益', '每股收益增长率', '年化每股收益增长率'])
# 打印结果并返回
print(df_eps)
return df_eps
# 示例调用
genHS300EPS("20240331")
这段代码首先定义了一个`genHS300EPS`函数,该函数接收一个报表日期作为参数,然后按照您的要求执行一系列操作:获取指定日期及上一年同期的业绩报表、获取沪深300成分股列表、计算每只股票的每股收益增长率和年化增长率,并最终将所有数据整合到一个DataFrame中输出和返回。请注意,实际应用时需确保`pythonRepository`库可用且正确实现了上述提及的方法。
2.2) AI执行代码
开始执行...
从本地加载数据。
序号 股票代码 股票简称 每股收益 ... 每股经营现金流量 销售毛利率 所处行业 最新公告日期
0 1 301552 科力装备 0.7100 ... 0.478079 41.920010 玻璃玻纤 2024-06-27
1 2 873805 双达股份 0.0300 ... -0.113605 30.416262 None 2024-06-26
2 3 873731 纬诚科技 0.1600 ... -0.168320 43.817607 None 2024-06-26
3 4 833755 扬德环能 0.0600 ... 0.078080 38.176760 None 2024-06-26
4 5 301099 雅创电子 0.2300 ... 0.109560 19.059485 贸易行业 2024-06-26
... ... ... ... ... ... ... ... ... ...
5609 5610 300076 GQY视讯 -0.0002 ... -0.054076 23.557389 光学光电子 2024-04-10
5610 5611 002644 佛慈制药 0.0360 ... -0.031478 31.096057 中药 2024-04-10
5611 5612 603058 永吉股份 0.0970 ... -0.053076 40.440418 造纸印刷 2024-04-09
5612 5613 600873 梅花生物 0.2600 ... -0.010329 19.331521 食品饮料 2024-04-09
5613 5614 000818 航锦科技 0.0700 ... -0.163269 11.821246 化学原料 2024-04-03
[5614 rows x 16 columns]
从本地加载数据。
序号 股票代码 股票简称 每股收益 ... 每股经营现金流量 销售毛利率 所处行业 最新公告日期
0 1 301099 雅创电子 0.1300 ... -0.744205 18.405659 贸易行业 2024-06-26
1 2 874232 晶华光学 -0.0400 ... -1.156202 30.990060 None 2024-06-25
2 3 873760 华兴股份 0.1400 ... -0.006184 16.052689 None 2024-06-25
3 4 873739 大鹏工业 0.2500 ... -0.264696 27.887279 None 2024-06-25
4 5 873688 宇星股份 0.1000 ... -0.500923 16.154411 None 2024-06-25
... ... ... ... ... ... ... ... ... ...
5840 5841 836161 一万节能 0.0922 ... -0.334162 15.076727 None 2023-04-21
5841 5842 834701 鑫考股份 0.0800 ... -0.332865 37.305867 None 2023-04-20
5842 5843 400066 R鹍鹏1 -0.0197 ... -0.001599 -109.743796 None 2023-04-20
5843 5844 400210 博天5 0.0100 ... 0.069445 31.338692 None 2023-04-18
5844 5845 871484 聚合电力 0.0000 ... -0.182208 31.577320 None 2023-04-04
中间步骤
...
报告日期为20240331,对应的增长率为0.19827586206896552,年化增长率为0.7931034482758621
报告日期为20240331,对应的增长率为0.1999999999999999,年化增长率为0.7999999999999996
报告日期为20240331,对应的增长率为0.7500000000000001,年化增长率为3.0000000000000004
...
股票代码 20230331_每股收益 20240331_每股收益 每股收益增长率 年化每股收益增长率
0 600415 0.2200 0.1300 -0.409091 -1.636364
1 300418 0.1800 -0.1500 -1.833333 -7.333333
2 600161 0.1600 0.1900 0.187500 0.750000
3 688082 0.3000 0.1800 -0.400000 -1.600000
4 688009 0.0600 0.0600 0.000000 0.000000
.. ... ... ... ... ...
295 000425 0.1290 0.1350 0.046512 0.186047
296 000157 0.1000 0.1100 0.100000 0.400000
297 000063 0.5600 0.5700 0.017857 0.071429
298 000001 0.6500 0.6600 0.015385 0.061538
299 000002 0.1251 -0.0305 -1.243805 -4.975220
执行成功: None
result::...
2.3) 起一个文件名,并保存到临时目录
所示代码起一个合适英语文件名
file_name:: calculate_HS300_EPS_Growth.py
储存代码:: /home/cfets/gitea/myAIassistant/testtool/calculate_HS300_EPS_Growth.py
文件保存成功
3.1) AI分析代码
code_prompt::
按代码
import pandas as pd
from pythonRepository import getReportDataLocal, getHS300List, CalAnnualRatio
...
分析代码功能,以markdown格式输出,输出包含‘‘‘接口函数名、代码功能说明、入参、返回值说明’’’等4项内容,每项以##开头
raw_interface_desc:: ```markdown
## 接口函数名
genHS300EPS
## 代码功能说明
此函数计算沪深300指数成分股在指定报告日期的每股收益(EPS)增长情况,包括每股收益增长率及年化每股收益增长率。首先,它获取当前报告期与上一报告期的财务数据;接着,基于这些数据计算每只成分股的业绩增长指标;最后,汇总这些信息至一个DataFrame中并返回。
## 入参
- `report_date` (str): 报表日期,格式为"YYYYMMDD"。表示要分析的财务报告的日期,用于确定当前报告期以及对比的上一报告期。
## 返回值说明
函数返回一个Pandas DataFrame,其中包含以下列:
- `股票代码`: 成分股的股票代码。
- `{last_report_date}_每股收益`: 上一报告期的每股收益。
- `{report_date}_每股收益`: 当前报告期的每股收益。
- `每股收益增长率`: 当前报告期相较于上一报告期每股收益的增长比例。
- `年化每股收益增长率`: 根据`CalAnnualRatio`函数计算得出的年化每股收益增长率。
此外,函数在执行过程中会打印出沪深300成分股列表及最终计算的每股收益增长情况的DataFrame,便于直接查看结果。
接口函数说明: 此函数计算沪深300指数成分股在指定报告日期的每股收益(EPS)增长情况,包括每股收益增长率及年化每股收益增长率。首先,它获取当前报告期与上一报告期的财务数据;接着,基于这些数据计算每只成分股的业绩增长指标;最后,汇总这些信息至一个DataFrame中并返回。可以使用pythonRepository库的genHS300EPS接口,入参是`report_date`(str)报表日期,格式为"YYYYMMDD"。表示要分析的财务报告的日期,用于确定当前报告期以及对比的上一报告期。,返回值是函数返回一个PandasDataFrame,其中包含以下列`股票代码`成分股的股票代码。`{last_report_date}_每股收益`上一报告期的每股收益。`{report_date}_每股收益`当前报告期的每股收益。`每股收益增长率`当前报告期相较于上一报告期每股收益的增长比例。`年化每股收益增长率`根据`CalAnnualRatio`函数计算得出的年化每股收益增长率。此外,函数在执行过程中会打印出沪深300成分股列表及最终计算的每股收益增长情况的DataFrame,便于直接查看结果。使用python编码,打印返回值,代码格式为```python...```
产生了一个新的接口方法:genHS300EPS接口
4 ) 用户确认保存代码,并修改genHS300EPS接口提示说明,然后插入本地接口库
请确认分析内容接口函数说明是否准确,如果准确请输入y,否则请输入更改内容::
计算沪深300指数成分股在指定报告日期的业绩增长情况,包括上一年度与当前年度的每股收益(EPS)、每股收益增长率以及年化每股收益增长率。可以使用pythonRepository库的genHS300EPS接口,入参是`report_date`(str)当前报告期的日期,格式为\"YYYYMMDD\",,返回值是`df_eps`(DataFrame)返回一个DataFrame对象,包含以下列`股票代码`沪深300指数成分股的股票代码、`{last_report_date}每股收益`上一报告期的每股收益。`{report_date}每股收益`当前报告期的每股收益。`每股收益增长率`从上一报告期到当前报告期的每股收益增长率,使用python编码,打印返回值,代码格式为```python...```
是否需要将接口需求插入知识库?(y/n): y
需求插入知识库成功
本轮处理完毕
查看本地接口库(知识库),框住的就是新增genHS300EPS接口提示
查看已入库的 genHS300EPS代码
5) 验证
请输入您的问题:计算沪深300指数成分股在指定报告日期的业绩增长情况,指定日期为20240331
根据提供的信息,要计算沪深300指数成分股在指定报告日期(例如20240331)的业绩增长情况,您可以参考以下Python代码示例。请注意,实际执行此代码需要确保您已经安装了相应的pythonRepository库并且该库中确实包含了genHS300EPS这个接口。此代码是一个基于您描述的逻辑构建的示例,并未在真实的环境中测试过。
```python
from pythonRepository import genHS300EPS
# 指定报告日期
report_date = "20240331"
# 调用接口计算业绩增长情况
df_eps = genHS300EPS(report_date)
# 打印返回的DataFrame信息
print(df_eps)
这段代码首先定义了报告日期变量`report_date`为"20240331",然后调用了`genHS300EPS`函数并将报告日期作为参数传递。函数执行后,会返回一个包含沪深300指数成分股在该报告日期业绩增长情况的DataFrame对象,最后通过`print`函数打印出这个DataFrame的内容。
请确保在实际应用前验证库的可用性及函数的正确性,并适当处理可能出现的异常情况。
执行情况
开始执行...
0 600415
1 300418
2 600161
3 688082
4 688009
...
Name: 股票代码, Length: 300, dtype: object
从本地加载数据。
序号 股票代码 股票简称 每股收益 ... 每股经营现金流量 销售毛利率 所处行业 最新公告日期
0 1 301552 科力装备 0.7100 ... 0.478079 41.920010 玻璃玻纤 2024-06-27
1 2 873805 双达股份 0.0300 ... -0.113605 30.416262 None 2024-06-26
2 3 873731 纬诚科技 0.1600 ... -0.168320 43.817607 None 2024-06-26
3 4 833755 扬德环能 0.0600 ... 0.078080 38.176760 None 2024-06-26
4 5 301099 雅创电子 0.2300 ... 0.109560 19.059485 贸易行业 2024-06-26
... ... ... ... ... ... ... ... ... ...
5609 5610 300076 GQY视讯 -0.0002 ... -0.054076 23.557389 光学光电子 2024-04-10
5610 5611 002644 佛慈制药 0.0360 ... -0.031478 31.096057 中药 2024-04-10
5611 5612 603058 永吉股份 0.0970 ... -0.053076 40.440418 造纸印刷 2024-04-09
5612 5613 600873 梅花生物 0.2600 ... -0.010329 19.331521 食品饮料 2024-04-09
5613 5614 000818 航锦科技 0.0700 ... -0.163269 11.821246 化学原料 2024-04-03
...
报告日期为20240331,对应的增长率为0.19969040247678016,年化增长率为0.7987616099071206
报告日期为20240331,对应的增长率为0.31764705882352945,年化增长率为1.2705882352941178
报告日期为20240331,对应的增长率为-0.06372549019607855,年化增长率为-0.2549019607843142
报告日期为20240331,对应的增长率为-0.08860759493670883,年化增长率为-0.35443037974683533
...
股票代码 20230331_每股收益 20240331_每股收益 每股收益增长率 年化每股收益增长率
0 600415 0.2200 0.1300 -0.409091 -1.636364
1 300418 0.1800 -0.1500 -1.833333 -7.333333
2 600161 0.1600 0.1900 0.187500 0.750000
3 688082 0.3000 0.1800 -0.400000 -1.600000
4 688009 0.0600 0.0600 0.000000 0.000000
.. ... ... ... ... ...
295 000425 0.1290 0.1350 0.046512 0.186047
296 000157 0.1000 0.1100 0.100000 0.400000
297 000063 0.5600 0.5700 0.017857 0.071429
298 000001 0.6500 0.6600 0.015385 0.061538
299 000002 0.1251 -0.0305 -1.243805 -4.975220
...
执行成功: None
result:: {'exec_res': None, 'code': '\nfrom pythonRepository import genHS300EPS\n\n# 指定报告日期\nreport_date = "20240331"\n\n# 调用接口计算业绩增长情况\ndf_eps = genHS300EPS(report_date)\n\n# 打印返回的DataFrame信息\nprint(df_eps)\n', 'exec_succ': True}
...
是否需要生成接口函数说明,如果需要请输入Y/y,否则请输入N/n ::n
本轮处理完毕
至此已成功验证 genHS300EPS接口方法
下一篇我们将比较详细介绍改进后的AI小助手代码,后续我将采取,进展和思路分析,案例分析将继续采用免费分享交流,相关源代码及详细说明会使用VIP服务,请大家继续理解支持,谢谢