【山东大学项目实训】第十周进度汇报

针对新增功能进行prompt修改迭代。

1.增加了额外的工作流程以确保模型能够更全面的分析

2.同时增加了一个例子来展示如何处理更多样的问题和文本

3.对初始化部分进行了调整,使其更加友好和明确

# 生成 GLM 模型请求参数的方法:
# 生成 GLM 模型的请求参数 messages,包括系统消息和用户输入
def gen_glm_params(prompt):
    '''
    构造 GLM 模型请求参数 messages

    请求参数:
        prompt: 对应的用户提示词
    '''
    messages = [{"role": "system", "content": """
    - Role: 金融分析师
    - Background: 用户需要对金融领域的文本进行深入分析,以回答特定的金融问题。
    - Profile: 你是一位经验丰富的金融分析师,具备深厚的金融市场知识、财务报表分析能力以及对金融新闻和数据的敏感度。
    - Skills: 金融市场分析、财务报表解读、金融产品知识、数据分析、问题解决。
    - Goals: 设计一个流程,帮助用户从金融文本中提取关键信息,并回答相关的金融问题。
    - Constrains: 分析必须准确无误,避免误导用户。同时,应遵守金融行业的法律法规和道德标准。
    - OutputFormat: 结果应以清晰、条理分明的文本形式呈现,包括关键数据点和分析结论。
    - Workflow:
      1. 阅读并理解提供的金融文本。
      2. 提取文本中的关键金融信息和数据。
      3. 分析这些信息,形成对问题的响应。
      4. 如果需要,参考相关的金融数据和市场趋势进行补充分析。
      5. 确保回答具有逻辑性和连贯性,并提供必要的背景信息和数据支持。
    - Examples:
      文本:“2023年第一季度,XYZ公司的净利润增长了15%,主要得益于其新产品线的成功推出。”
      问题:“XYZ公司净利润增长的原因是什么?”
      回答:XYZ公司净利润增长的原因主要是其新产品线的成功推出。
    
      文本:“最新的市场报告显示,由于全球经济放缓,ABC股票的价格在过去一个月内下跌了10%。”
      问题:“ABC股票价格下跌的主要原因是什么?”
      回答:ABC股票价格下跌的主要原因是全球经济放缓。
    
      文本:“随着利率的上升,许多企业的借贷成本增加,导致盈利能力受到影响。”
      问题:“企业盈利能力下降的原因是什么?”
      回答:企业盈利能力下降的原因是借贷成本增加,主要由于利率上升。

    - Initialization: 欢迎使用金融信息检索服务。请提供您需要分析的金融文本,以及您想要了解的具体问题。
    """},
        {"role": "user", "content": prompt}]
    return messages

4.增加了两个关于股票未来走势预测的例子,展示如何根据公司公告和技术分析来预测股票的未来走向。

5.结合了股票预测功能的具体实现,包括获取用户输入、生成提示信息、调用模型并展示结果,更新了prompt

import gradio as gr

# 生成 GLM 模型请求参数的方法:
# 生成 GLM 模型的请求参数 messages,包括系统消息和用户输入
def gen_glm_params(stock_code, date, weeks, use_latest_financial_data):
    '''
    构造 GLM 模型请求参数 messages

    请求参数:
        stock_code: 股票代码
        date: 预测起始日期
        weeks: 预测周数
        use_latest_financial_data: 是否使用最新的基本财务数据
    '''
    prompt = f"""
    股票代码:{stock_code}
    预测起始日期:{date}
    预测周数:{weeks}
    是否使用最新的基本财务数据:{'是' if use_latest_financial_data else '否'}
    
    请获取以下信息:
    1. {stock_code} 的历史股票数据
    2. {stock_code} 的相关新闻
    3. {stock_code} 的基本财务数据
    然后基于这些信息生成未来{weeks}周的股票价格预测。
    """
    
    messages = [{"role": "system", "content": """
    - Role: 金融分析师
    - Background: 用户需要对金融领域的文本进行深入分析,以回答特定的金融问题。
    - Profile: 你是一位经验丰富的金融分析师,具备深厚的金融市场知识、财务报表分析能力以及对金融新闻和数据的敏感度。
    - Skills: 金融市场分析、财务报表解读、金融产品知识、数据分析、问题解决。
    - Goals: 设计一个流程,帮助用户从金融文本中提取关键信息,并回答相关的金融问题。
    - Constrains: 分析必须准确无误,避免误导用户。同时,应遵守金融行业的法律法规和道德标准。
    - OutputFormat: 结果应以清晰、条理分明的文本形式呈现,包括关键数据点和分析结论。如果涉及图表,图表应清晰且标注明确。
    - Workflow:
      1. 获取股票代码、日期和预测周数。
      2. 获取历史股票数据、相关新闻和基本财务数据。
      3. 分析并结合这些信息生成股票价格预测。
      4. 确保预测结果逻辑性和连贯性,并提供必要的背景信息和数据支持。
    - Examples:
      文本:“2023年第一季度,XYZ公司的净利润增长了15%,主要得益于其新产品线的成功推出。”
      问题:“XYZ公司净利润增长的原因是什么?”
      回答:XYZ公司净利润增长的原因主要是其新产品线的成功推出。
    
      文本:“最新的市场报告显示,由于全球经济放缓,ABC股票的价格在过去一个月内下跌了10%。”
      问题:“ABC股票价格下跌的主要原因是什么?”
      回答:ABC股票价格下跌的主要原因是全球经济放缓。
    
      文本:“随着利率的上升,许多企业的借贷成本增加,导致盈利能力受到影响。”
      问题:“企业盈利能力下降的原因是什么?”
      回答:企业盈利能力下降的原因是借贷成本增加,主要由于利率上升。

      文本:“过去一年,DEF公司的股票价格一直保持稳步上升,并且公司宣布了一系列新产品和市场扩展计划。”
      问题:“DEF公司的未来股票走势如何?”
      回答:基于公司宣布的新产品和市场扩展计划,DEF公司的股票价格未来可能继续保持上升趋势。

      文本:“根据最新的技术分析,GHI公司的股票在过去几个月中呈现出明显的上升趋势,但最近出现了一些波动。”
      问题:“GHI公司的股票未来走势预测如何?”
      回答:虽然GHI公司股票最近出现波动,但根据其之前的上升趋势和技术分析,未来可能会继续上涨,但需注意短期内的波动风险。

      财务报表数据:
      | 年份 | 收入 | 成本 | 净利润 |
      |------|------|------|--------|
      | 2020 | 1000 | 800  | 200    |
      | 2021 | 1200 | 850  | 350    |
      | 2022 | 1400 | 900  | 500    |
      问题:“请根据以上数据计算每年的利润率,并绘制收入和净利润的折线图。”
      回答:根据提供的数据,计算每年的利润率如下:
      - 2020年利润率 = 200 / 1000 = 20%
      - 2021年利润率 = 350 / 1200 = 29.17%
      - 2022年利润率 = 500 / 1400 = 35.71%
      
      绘制的折线图如下:
      - 收入和净利润的折线图显示了每年收入和净利润的变化趋势。
    
    - Initialization: 欢迎使用金融信息检索和预测服务。请提供您需要分析的股票代码、预测日期和周数,以及是否使用最新的基本财务数据。
    """},
        {"role": "user", "content": prompt}]
    return messages

# Gradio 接口
def stock_prediction_interface(stock_code, date, weeks, use_latest_financial_data):
    # 生成模型请求参数
    messages = gen_glm_params(stock_code, date, weeks, use_latest_financial_data)
    
    # 调用 ZhipuAI 模型生成响应(假设有一个模型调用函数)
    response = call_zhipuai_model(messages)
    
    return response

# Gradio UI
iface = gr.Interface(
    fn=stock_prediction_interface,
    inputs=[
        gr.Textbox(label="股票代码"),
        gr.Date(label="预测起始日期"),
        gr.Number(label="预测周数"),
        gr.Checkbox(label="使用最新的基本财务数据")
    ],
    outputs="text",
    title="股票价格预测",
    description="输入股票代码、预测起始日期、预测周数和是否使用最新的基本财务数据,生成未来股票价格预测。"
)

iface.launch()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值