XingYu-Zhong / ChineseStockGPT

A generative AI dialog system that can ask questions about the Chinese stock market.一个可以针对中国股市提问的生成式人工智能对话系统
Apache License 2.0
53 stars 8 forks source link

很牛的一个项目 #1

Closed Shane-Meng closed 6 months ago

Shane-Meng commented 6 months ago

我正在linux上部署,我想请教一下,有没有成型的 prompt 模板?

Shane-Meng commented 6 months ago

部署貌似不成功

访问部署服务器的 :5003,报错信息 Not Found The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.

root@rsshub:~/ChineseStockGPT# curl 192.168.199.10:5003
<!doctype html>
<html lang=en>
<title>404 Not Found</title>
<h1>Not Found</h1>
<p>The requested URL was not found on the server. If you entered the URL manually please check your spelling and try again.</p>

.env配置如下

openai_tool_model = gpt-4-turbo-preview
yaml_file_path = StockMarketAsisstant-master/openapi.yaml
stock_asisstants_url = "http://localhost:5003"
openaiapikey = sk-举例
pythonpath = /usr/bin/python3 

运行 python3 pyshellrun.py 终端返回信息如下

{'serve_zh_stock_history_data': '/zh_stock_history_data', 'serve_zh_stock_yjbb_em_data': '/zh_stock_yjbb_em_data', 'serve_zh_stock_news_em_data': '/zh_stock_news_em_data', 'serve_zh_stock_jgdy_tj_em_data': '/zh_stock_jgdy_tj_em_data', 'serve_zh_fund_report_stock_cninfo_data': '/zh_fund_report_stock_cninfo_data', 'serve_zh_macro_china_data': '/zh_macro_china_data', 'serve_zh_stock_zh_a_hist_min_em_data': '/zh_stock_zh_a_hist_min_em_data', 'serve_zh_stock_sse_summary_data': '/zh_stock_sse_summary_data', 'serve_zh_stock_szse_summary_data': '/zh_stock_szse_summary_data', 'serve_zh_stock_board_industry_name_em_data': '/zh_stock_board_industry_name_em_data', 'serve_stock_board_industry_name_em_list_data': '/zh_stock_board_industry_name_em_data', 'serve_zh_stock_board_concept_name_em_data': '/zh_stock_board_concept_name_em_data', 'serve_zh_stock_hot_tgb_data': '/zh_stock_hot_tgb_data', 'serve_zh_stock_hot_rank_em_data': '/zh_stock_hot_rank_em_data', 'serve_zh_stock_individual_fund_flow_rank_data': '/zh_stock_individual_fund_flow_rank_data', 'serve_zh_stock_market_fund_flow_data': '/zh_stock_market_fund_flow_data', 'serve_zh_stock_sector_fund_flow_rank_data': '/zh_stock_sector_fund_flow_rank_data', 'serve_zh_stock_sector_fund_flow_summary_data': '/zh_stock_sector_fund_flow_summary_data', 'serve_zh_stock_sector_fund_flow_hist_data': '/zh_stock_sector_fund_flow_hist_data'}
[{'type': 'function', 'function': {'name': 'serve_zh_stock_history_data', 'description': "获取中国股票的历史数据,symbol必须是纯数字,包括日期,开盘,收盘,最高,最低,成交量,成交额,振幅,涨跌幅,涨跌额,换手率等,start_date到end_date的时间超过一月period参数默认使用'weekly',超过一年period参数默认使用'monthly'", 'parameters': {'type': 'object', 'properties': {'symbol': {'type': 'string', 'description': '要搜索股票代码symbol,symbol必须是纯数字'}, 'period': {'type': 'string', 'description': "要搜索股票历史数据的时间类型,choice of {'daily', 'weekly', 'monthly'},只能是这三个中的一个,start_date到end_date的时间超过一月period参数默认使用'weekly',超过一年period参数默认使用'monthly'"}, 'start_date': {'type': 'string', 'description': "要搜索股票历史数据的开始查询的日期,不能是进两天的日期,格式是‘YYYYmmdd’,比如start_date='20210301'"}, 'end_date': {'type': 'string', 'description': "要搜索股票历史数据的结束查询的日期,格式是‘YYYYmmdd’,end_date='20210301'"}, 'adjust': {'type': 'string', 'description': "需要复权数据类型,默认返回不复权的数据,qfq返回前复权后的数据,hfq返回后复权后的数据,choice of {'qfq', 'hfq' , ''},只能是这三个中的一个"}}, 'required': ['symbol', 'period', 'start_date', 'end_date', 'adjust']}}}, {'type': 'function', 'function': {'name': 'serve_zh_stock_yjbb_em_data', 'description': '在需要公司的业绩数据时调用,可以获取中国公司股票的业绩报告数据,包括每股收益,营业收入-营业收入,营业收入-同比增长,营业收入-季度环比增长,净利润-净利润,净利润-同比增长,净利润-季度环比增长,每股净资产,净资产收益率,每股经营现金流量,销售毛利率,所处行业,最新公告日期', 'parameters': {'type': 'object', 'properties': {'symbol': {'type': 'string', 'description': '要搜索股票代码symbol,symbol必须是纯数字'}, 'date': {'type': 'string', 'description': '先获取当前日期,要搜索股票历史数据的开始查询的日期,格式是‘YYYYmmdd’,比如date="20200331", choice of {"XXXX0331", "XXXX0630", "XXXX0930", "XXXX1231"}; 从 20100331 开始,不能超过当前日期'}}, 'required': ['symbol', 'date']}}}, {'type': 'function', 'function': {'name': 'serve_zh_stock_news_em_data', 'description': '获取中国股票最近的个股新闻数据,包括新闻标题,新闻内容,发布时间,文章来源', 'parameters': {'type': 'object', 'properties': {'symbol': {'type': 'string', 'description': '要搜索股票代码symbol,symbol必须是纯数字'}, 'limit': {'type': 'string', 'description': '要搜索股票新闻历史数据前多少条数据,全部数据是不超过100条的'}}, 'required': ['symbol', 'limit']}}}, {'type': 'function', 'function': {'name': 'serve_zh_stock_jgdy_tj_em_data', 'description': '获取近期机构调研的数据,包括代码,名称,涨跌幅,接待机构数量,接待方式,接待人员,接待地点,接待日期,公告日期,每次最多只能获取50条数据', 'parameters': {'type': 'object', 'properties': {'date': {'type': 'string', 'description': '要搜索数据的开始查询的日期,要是没有数据可以试试日期在早点,格式是‘YYYY-mm-dd’,比如date="2018-09-28",'}, 'limit': {'type': 'string', 'description': '要搜索前多少条数据,最多20条'}}, 'required': ['date', 'limit']}}}, {'type': 'function', 'function': {'name': 'serve_zh_fund_report_stock_cninfo_data', 'description': '查看股票是否为基金季度重仓股,如果没有数据说明没有基金重仓这个股票,如果有数据,则包括序号,股票代码,股票简称,报告期,基金覆盖家数,持股总数,持股总市值', 'parameters': {'type': 'object', 'properties': {'date': {'type': 'string', 'description': '先获取当前日期,要搜索股票历史数据的开始查询的日期,格式是‘YYYYmmdd’,比如date="20200331", choice of {"XXXX0331", "XXXX0630", "XXXX0930", "XXXX1231"}; 从 20170331 开始,不能超过当前日期'}, 'symbol': {'type': 'string', 'description': '要搜索股票代码symbol,symbol必须是纯数字'}}, 'required': ['date', 'symbol']}}}, {'type': 'function', 'function': {'name': 'serve_zh_macro_china_data', 'description': '获取中国宏观经济数据,包括企业商品价格总指数-指数值,企业商品价格总指数-同比增长,企业商品价格总指数-环比增长,农产品-指数值,农产品-同比增长,农产品-环比增长,矿产品-指数值,矿产品-同比增长,矿产品-环比增长,煤油电-指数值,煤油电-同比增长,煤油电-环比增长,还有外商直接投资数据,包括当月,当月-同比增长,当月-环比增长,累计,累计-同比增长,还有社会融资规模增量统计,包括社会融资规模增量等等,如果没有数据,需要将开始日期调前一些', 'parameters': {'type': 'object', 'properties': {'start_date': {'type': 'string', 'description': '先获取当前日期,要搜索历史中国宏观数据的开始查询的日期,格式是‘YYYYmm’,比如date="202003"从201501开始,到当前月份的前三个月'}, 'end_date': {'type': 'string', 'description': '要搜索历史中国宏观数据的结束查询的日期,格式是‘YYYYmm’,比如date="202003"从201501开始'}}, 'required': ['start_date', 'end_date']}}}, {'type': 'function', 'function': {'name': 'serve_zh_stock_zh_a_hist_min_em_data', 'description': '获取中国股票的历史分时数据,symbol必须是纯数字,包括日期,开盘,收盘,最高,最低,成交量,成交额,最新价等,start_date到end_date的时间不能超过一天', 'parameters': {'type': 'object', 'properties': {'symbol': {'type': 'string', 'description': '要搜索股票代码symbol,symbol必须是纯数字'}, 'period': {'type': 'string', 'description': "要搜索股票历史数据的时间类型,period='5'; choice of {'1', '5', '15', '30', '60'}; 其中 1 分钟数据返回近 5 个交易日数据且不复权"}, 'start_date': {'type': 'string', 'description': '要搜索股票历史分时数据的开始查询的时间,格式是‘YYYY-MM-dd hh:mm:ss’,比如start_date="1979-09-01 09:32:00";先获取当前时间,不能超过当前的时间'}, 'end_date': {'type': 'string', 'description': '要搜索股票历史分时数据的结束查询的时间,格式是‘YYYY-MM-dd hh:mm:ss’,比如end_date="1979-09-01 09:32:00";先获取当前时间,不能超过当前的时间'}, 'adjust': {'type': 'string', 'description': "需要复权数据类型,默认返回不复权的数据,qfq返回前复权后的数据,hfq返回后复权后的数据,choice of {'qfq', 'hfq' , ''},只能是这三个中的一个"}}, 'required': ['symbol', 'period', 'start_date', 'end_date', 'adjust']}}}, {'type': 'function', 'function': {'name': 'serve_zh_stock_sse_summary_data', 'description': '获取最近日期的中国股票的股票市场总貌,(当前交易日的数据需要交易所收盘后统计)', 'parameters': {'type': 'object', 'properties': {}, 'required': []}}}, {'type': 'function', 'function': {'name': 'serve_zh_stock_szse_summary_data', 'description': '获取中国股票的市场总貌数据-证券类别统计有股票,基金,债券,期权等等,(当前交易日的数据需要交易所收盘后统计)', 'parameters': {'type': 'object', 'properties': {'date': {'type': 'string', 'description': "要搜索中国股票的市场总貌数据的开始查询的日期,格式是‘YYYYmmdd’,比如start_date='20210301' 当前交易日的数据需要交易所收盘后统计"}}, 'required': ['date']}}}, {'type': 'function', 'function': {'name': 'serve_zh_stock_board_industry_name_em_data', 'description': '获取具体的中国股票的行业板块数据,输入参数symbol获取单个行业的数据,输入start_rank和end_rank参数获取当前排名范围的数据,', 'parameters': {'type': 'object', 'properties': {'symbol': {'type': 'string', 'description': '要搜索具体的中国股票的当前行业板块数据的行业名称,要去serve_stock_board_industry_name_em_list_data找到近似的行业板块名称'}, 'start_rank': {'type': 'string', 'description': '要搜索中国股票的当前行业板块数据的起始排名,不能超过86,因为一共就86个行业'}, 'end_rank': {'type': 'string', 'description': '要搜索中国股票的当前行业板块数据的结束排名,不能超过86,因为一共就86个行业'}}, 'required': []}}}, {'type': 'function', 'function': {'name': 'serve_stock_board_industry_name_em_list_data', 'description': '获取具体的中国股票的行业名称列表数据,包括行业板块名称列表', 'parameters': {'type': 'object', 'properties': {}, 'required': []}}}, {'type': 'function', 'function': {'name': 'serve_zh_stock_board_concept_name_em_data', 'description': '获取中国股票的当前时刻排名第几概念板块数据,一共422个概念板块', 'parameters': {'type': 'object', 'properties': {'start_rank': {'type': 'string', 'description': '要搜索中国股票的当前行业板块数据的起始排名,不能超过86,因为一共就86个行业'}, 'end_rank': {'type': 'string', 'description': '要搜索中国股票的当前行业板块数据的结束排名,不能超过86,因为一共就86个行业'}}, 'required': ['start_rank', 'end_rank']}}}, {'type': 'function', 'function': {'name': 'serve_zh_stock_hot_tgb_data', 'description': '获取中国股票当前淘股吧里的热门股票,单次返回排名前 20 股票', 'parameters': {'type': 'object', 'properties': {}, 'required': []}}}, {'type': 'function', 'function': {'name': 'serve_zh_stock_hot_rank_em_data', 'description': '获取中国股票当前东方财富网站的热门股票,单次返回排名前 100 股票', 'parameters': {'type': 'object', 'properties': {}, 'required': []}}}, {'type': 'function', 'function': {'name': 'serve_zh_stock_individual_fund_flow_rank_data', 'description': '获取中国股票的个股资金流排名数据,包括主力流入资金,超大单净流入,大单流入资金,中单净流入,小单净流入等数据', 'parameters': {'type': 'object', 'properties': {'symbol': {'type': 'string', 'description': '要搜索股票代码symbol,symbol必须是纯数字'}, 'period': {'type': 'string', 'description': '是获取什么时期统计的,默认是当天的,period="今日"; choice {"今日", "3日", "5日", "10日"}'}}, 'required': ['symbol', 'period']}}}, {'type': 'function', 'function': {'name': 'serve_zh_stock_market_fund_flow_data', 'description': '获取中国股票的大盘资金流向最近数据,仅能查询最近三个月的数据,包括主力流入资金,超大单净流入,大单流入资金,中单净流入,小单净流入等数据,查询开始时间到结束时间不能超过一个月', 'parameters': {'type': 'object', 'properties': {'start_date': {'type': 'string', 'description': '要搜索股票大盘资金流向最近数据的开始查询的时间,格式是‘YYYY-MM-dd’,比如start_date="2023-02-20";先获取当前时间,从最近三个月开始,不能超过当前的时间'}, 'end_date': {'type': 'string', 'description': '要搜索股票大盘资金流向最近数据的结束查询的时间,格式是‘YYYY-MM-dd’,end_date="2023-02-20";先获取当前时间,从最近三个月开始,不能超过当前的时间'}}, 'required': ['start_date', 'end_date']}}}, {'type': 'function', 'function': {'name': 'serve_zh_stock_sector_fund_flow_rank_data', 'description': '获取中国股票的指定板块的指定期限的资金流排名数据,包括主力流入资金,超大单净流入,大单流入资金,中单净流入,小单净流入等数据', 'parameters': {'type': 'object', 'properties': {'sector_type': {'type': 'string', 'description': '选择要获取的板块默认sector_type="行业资金流";choice of {"行业资金流", "概念资金流","地域资金流"}'}, 'period': {'type': 'string', 'description': '是获取什么时期统计的,默认是当天的,period="今日"; choice {"今日", "3日", "5日", "10日"}'}}, 'required': ['sector_type', 'period']}}}, {'type': 'function', 'function': {'name': 'serve_zh_stock_sector_fund_flow_summary_data', 'description': '获取中国股票的指定行业的个股资金流数据,包括股票代码,主力流入资金,超大单净流入,大单流入资金,中单净流入,小单净流入等数据', 'parameters': {'type': 'object', 'properties': {'sector_type': {'type': 'string', 'description': '输入行业名称,要去serve_stock_board_industry_name_em_list_data找到近似的行业板块名称'}, 'period': {'type': 'string', 'description': '是获取什么时期统计的,默认是当天的,period="今日"; choice {"今日", "5日", "10日"}'}}, 'required': ['sector_type', 'period']}}}, {'type': 'function', 'function': {'name': 'serve_zh_stock_sector_fund_flow_hist_data', 'description': '获取中国股票的取指定行业的行业历史资金流数据,仅能查询最近三个月的数据,包括主力流入资金,超大单净流入,大单流入资金,中单净流入,小单净流入等数据,查询开始时间到结束时间不能超过一个月', 'parameters': {'type': 'object', 'properties': {'sector_type': {'type': 'string', 'description': '输入行业名称,要去serve_stock_board_industry_name_em_list_data找到近似的行业板块名称'}, 'start_date': {'type': 'string', 'description': '要搜索股票大盘资金流向最近数据的开始查询的时间,格式是‘YYYY-MM-dd’,比如start_date="2023-02-20";先获取当前时间,从最近三个月开始,不能超过当前的时间'}, 'end_date': {'type': 'string', 'description': '要搜索股票大盘资金流向最近数据的结束查询的时间,格式是‘YYYY-MM-dd’,end_date="2023-02-20";先获取当前时间,从最近三个月开始,不能超过当前的时间'}}, 'required': ['sector_type', 'start_date', 'end_date']}}}]
Traceback (most recent call last):
  File "/usr/local/bin/chainlit", line 5, in <module>
    from chainlit.cli import cli
  File "/usr/local/lib/python3.11/dist-packages/chainlit/__init__.py", line 24, in <module>
    from chainlit.action import Action
  File "/usr/local/lib/python3.11/dist-packages/chainlit/action.py", line 5, in <module>
    from chainlit.telemetry import trace_event
  File "/usr/local/lib/python3.11/dist-packages/chainlit/telemetry.py", line 12, in <module>
    from chainlit.config import config
  File "/usr/local/lib/python3.11/dist-packages/chainlit/config.py", line 469, in <module>
    config = load_config()
             ^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/chainlit/config.py", line 438, in load_config
    settings = load_settings()
               ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/chainlit/config.py", line 408, in load_settings
    features_settings = FeaturesSettings(**features_settings)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/pydantic/_internal/_dataclasses.py", line 135, in __init__
    s.__pydantic_validator__.validate_python(ArgsKwargs(args, kwargs), self_instance=s)
pydantic_core._pydantic_core.ValidationError: 1 validation error for FeaturesSettings
multi_modal
  Input should be a dictionary or an instance of MultiModalFeature [type=dataclass_type, input_value=True, input_type=bool]
    For further information visit https://errors.pydantic.dev/2.6/v/dataclass_type
Traceback (most recent call last):
  File "/root/ChineseStockGPT/StockMarketAsisstant-master/apiserver.py", line 384, in <module>
    serve(app, host="0.0.0.0", port=5003)
XingYu-Zhong commented 6 months ago

应该是python环境问题

你可以分成三块运行: 1.python StockMarketAsisstant-master/apiserver.py 2.python toTools.py 3.chainlit run chainlitweb.py -w

Shane-Meng commented 6 months ago

感觉执行第三个命令时出错了,我不懂python开发,可能问题出在哪里?怎么排查?我的python 应该是3.11版本

root@rsshub:~/ChineseStockGPT# chainlit run chainlitweb.py -w
Traceback (most recent call last):
  File "/usr/local/bin/chainlit", line 5, in <module>
    from chainlit.cli import cli
  File "/usr/local/lib/python3.11/dist-packages/chainlit/__init__.py", line 24, in <module>
    from chainlit.action import Action
  File "/usr/local/lib/python3.11/dist-packages/chainlit/action.py", line 5, in <module>
    from chainlit.telemetry import trace_event
  File "/usr/local/lib/python3.11/dist-packages/chainlit/telemetry.py", line 12, in <module>
    from chainlit.config import config
  File "/usr/local/lib/python3.11/dist-packages/chainlit/config.py", line 469, in <module>
    config = load_config()
             ^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/chainlit/config.py", line 438, in load_config
    settings = load_settings()
               ^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/chainlit/config.py", line 408, in load_settings
    features_settings = FeaturesSettings(**features_settings)
                        ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  File "/usr/local/lib/python3.11/dist-packages/pydantic/_internal/_dataclasses.py", line 135, in __init__
    s.__pydantic_validator__.validate_python(ArgsKwargs(args, kwargs), self_instance=s)
pydantic_core._pydantic_core.ValidationError: 1 validation error for FeaturesSettings
multi_modal
  Input should be a dictionary or an instance of MultiModalFeature [type=dataclass_type, input_value=True, input_type=bool]
    For further information visit https://errors.pydantic.dev/2.6/v/dataclass_type
XingYu-Zhong commented 6 months ago

建议换成3.10重新试一下

Shane-Meng commented 6 months ago

还是不行,除了python3 git pip 这三个包,运行这个程序还需要什么特殊的包么?

XingYu-Zhong commented 6 months ago

确保你使用的 Python 和 pydantic 库的版本与 chainlit 工具的要求相匹配。有时版本不兼容也会导致类似问题。

XingYu-Zhong commented 6 months ago

你可以先pip uninstall pydantic 然后pip uninstall chainlit 最后pip install chainlit

Shane-Meng commented 6 months ago

还是不行,不知问题出在哪里,我看你觉得例子是在widnows下,下午我研究下在windows下部署试试

Shane-Meng commented 6 months ago

windows上也run不起来,只能怀疑我的转发api有问题了,先关闭吧。

VedaTazrok commented 6 months ago

https://github.com/microsoft/TaskWeaver/issues/280 疑似是chainlit这个包的最新版本身出了问题,可以参考这个issue,但是我目前没试出正确的解决方法

VedaTazrok commented 6 months ago

https://github.com/Chainlit/chainlit/issues/904 找到答案了,卸载chainlit,重装 1.0.401 版本

Shane-Meng commented 6 months ago

确实可以了,谢谢 @VedaTazrok

Shane-Meng commented 6 months ago

现在的问题的确是我买的转发api不支持了,一个月20刀有些肉疼啊,等等它降价吧

Shane-Meng commented 6 months ago

对了,我突然想到了,可否在环境变量里加一个转发服务器的选项,这样,用转发api也可以使用这个产品了

XingYu-Zhong commented 6 months ago

可以开个pr

Shane-Meng commented 6 months ago

开不了,一点按钮就出现 Choose different branches or forks above to discuss and review changes. Learn about pull requests

franktrue commented 4 months ago

搞个交流群呢?~~~