提示词工程教程:任务分解

概述

本教程探讨了提示工程中的任务分解概念,重点介绍了分解复杂任务和链接提示中的子任务的技术。这些技术对于有效利用大型语言模型解决多步骤问题和执行复杂推理任务至关重要。

主题

随着人工智能语言模型变得越来越先进,它们处理复杂任务的能力也越来越强。然而,这些模型在获得清晰的分步说明时往往表现更好。任务分解是一种强大的技术,它使我们能够将复杂问题分解为更小、更易于管理的子任务。这种方法不仅可以提高模型的性能,还可以提高结果的可解释性和可靠性。

内容概要

  1. 分解复杂任务:分析并将复杂问题划分为更简单的子任务的技术。
  2. 链接子任务:按顺序连接多个子任务以解决更大问题的方法。
  3. 子任务的提示设计:为每个分解的子任务设计有效的提示。
  4. 结果整合:将各个子任务的输出结合起来形成一个综合的解决方案。

教案

本教程采用逐步的方式来演示任务分解:

  1. 问题分析:我们首先检查一个复杂的任务并确定其组成部分。
  2. 子任务定义:我们定义清晰、可管理的子任务,共同解决主要问题。
  3. 提示工程:对于每个子任务,我们创建有针对性的提示来指导 AI 模型。
  4. 顺序执行:我们实现了一系列提示,其中一个子任务的输出会输入到下一个子任务中。
  5. 结果综合:最后,我们将所有子任务的输出结合起来,形成一个综合解决方案。

在整个教程中,我们使用实际示例来阐明这些概念,展示如何将任务分解应用于分析、解决问题和创造性任务等各个领域。

结论

在本教程结束时,学习者将获得以下实用技能:

  • 分析复杂任务并将其分解为可管理的子任务
  • 为每个子任务设计有效的提示
  • 链接提示以引导 AI 模型完成多步骤推理过程
  • 整合多个子任务的结果来解决复杂问题

这些技能将使人工智能语言模型更有效地用于解决复杂问题,并提高人工智能辅助任务的整体质量和可靠性。

设置

首先,让我们导入必要的库并设置我们的环境。

python 复制代码
import os
from langchain_openai import ChatOpenAI
from langchain.prompts import PromptTemplate
from dotenv import load_dotenv

# Load environment variables
load_dotenv()

# Set up OpenAI API key
os.environ["OPENAI_API_KEY"] = os.getenv('OPENAI_API_KEY')

# Initialize the language model
llm = ChatOpenAI(model="gpt-4o-mini")

def run_prompt(prompt, **kwargs):
    """辅助函数通过语言模型运行提示。

    Args:
        prompt (str): 提示模板字符串。
        **kwargs: 用于填充提示模板的关键字参数。

    Returns:
        str: 模型的响应。
    """
    prompt_template = PromptTemplate(template=prompt, input_variables=list(kwargs.keys()))
    chain = prompt_template | llm
    return chain.invoke(kwargs).content

分解复杂任务

让我们从一项复杂的任务开始,并将其分解为子任务。我们将以分析一家公司的财务状况为例。

python 复制代码
complex_task = """
根据以下数据分析一家公司的财务状况:
- 收入:1000 万美元
- 净收入:200 万美元
- 总资产:1500 万美元
- 总负债:700 万美元
- 经营活动现金流:300 万美元
"""

decomposition_prompt = """
将分析公司财务状况的任务分解为 3 个子任务。对于每个子任务,提供其应完成的任务的简要说明。

任务:{任务}

子任务:
1. 
"""

subtasks = run_prompt(decomposition_prompt, task=complex_task)
print(subtasks)
plain 复制代码
### 子任务 1:评估盈利能力
**描述:**通过分析利润率和资产回报率 (ROA) 等关键指标来评估公司的盈利能力。这将涉及计算净利润率(净收入/收入)和 ROA(净收入/总资产)。目标是确定公司将收入转化为利润的效率以及如何利用其资产来创造收入。

### 子任务 2:评估流动性和偿付能力
**描述:**通过计算流动比率和负债权益比率来分析公司的流动性和偿付能力。流动比率可以从公司的经营现金流和总负债中得出,而负债权益比率(总负债/(总资产-总负债))将深入了解公司的财务杠杆。此子任务旨在评估公司履行短期义务的能力并了解债务相对于股权的水平。

### 子任务 3:检查现金流健康状况
**描述:**审查公司的经营活动现金流,以确定其从核心业务活动中产生现金的能力。这包括分析现金流利润率(经营活动现金流/收入)并将其与净收入进行比较,以评估盈利质量。目标是了解公司管理现金流的情况,以及它是否可以在不严重依赖外部融资的情况下维持运营并为增长提供资金。

在提示中链接子任务

现在我们有了子任务,让我们为每个子任务创建单独的提示并将它们链接在一起。

python 复制代码
def analyze_profitability(revenue, net_income):
    """分析公司的盈利能力。

    参数:
        revenue(浮点数):公司收入
        。net_income(浮点数):公司净收入。

    返回:
        str:公司盈利能力分析。
    """
    prompt = """
    根据以下数据分析公司的盈利能力:
    - 收入:$ {revenue}百万美元
    - 净收入:$ {net_income}百万美元

    计算利润率并对公司的盈利能力进行简要分析。
    """
    return run_prompt(prompt, revenue=revenue, net_income=net_income)
    
def analyze_liquidity(total_assets, total_liabilities):
    """分析公司的流动性。

    参数:
        total_assets(浮点数):公司总资产。total_liabilities 
        (浮点数):公司总负债。

    返回:
        str:对公司流动性的分析。
    """
    prompt = """
    根据以下数据分析公司的流动性:
    - 总资产:$ {total_assets}百万美元
    - 总负债:$ {total_liabilities}百万美元

    计算流动比率并对公司的流动性进行简要分析。
    """
    return run_prompt(prompt, total_assets=total_assets, total_liabilities=total_liabilities)

def analyze_cash_flow(cash_flow):
    """分析公司的现金流。

    参数:
        cash_flow(浮点数):公司经营活动的现金流。

    返回:
        str:公司现金流分析。
    """
    prompt = """
    根据以下数据分析公司现金流:
    - 经营活动现金流:$ {cash_flow}百万美元

    简要分析一下公司的现金流健康状况。
    """
    return run_prompt(prompt, cash_flow=cash_flow)

# Run the chained subtasks
profitability_analysis = analyze_profitability(10, 2)
liquidity_analysis = analyze_liquidity(15, 7)
cash_flow_analysis = analyze_cash_flow(3)

print("盈利能力分析:\n ", profitability_analysis)
print("\n流动性分析:\n ", liquidity_analysis)
print(" \n现金流分析:\n", cash_flow_analysis)
plain 复制代码
盈利能力分析:
 为了分析公司的盈利能力,我们可以使用提供的数据计算利润率。利润率是一个财务指标,表示转化为利润的收入百分比。它使用以下公式计算:

\[
\text{利润率} = \left( \frac{\text{净收入}}{\text{收入}} \right) \times 100
\]

给定以下值:
- 收入 = 1000 万美元
- 净收入 = 200 万美元

现在,将值代入公式:

\[
\text{利润率} = \left( \frac{2,000,000}{10,000,000} \right) \times 100
\]

计算结果如下:

\[
\text{利润率} = \left( 0.2 \right) \times 100 = 20\%
\]

### 公司盈利能力分析

20% 的利润率表示公司每产生 1 美元的收入,就保留 0.20 美元的利润。这通常被认为是较高的利润率,表明公司有效地管理了相对于收入的成本。

以下是基于该利润率考虑公司盈利能力的一些关键点:

1. **运营效率**:20% 的利润率表明公司可能对其运营费用有良好的控制,其中包括与生产、营销和管理相关的成本。

2. **行业比较**:为了进一步评估盈利能力,将此利润率与行业平均水平进行比较会很有帮助。如果行业平均水平较低,则表明该公司的表现优于同行。

3. **可持续性**:虽然 20% 的利润率很高,但必须考虑这种盈利水平是否能够长期持续。竞争压力、消费者需求变化和成本波动等因素都会影响未来的盈利能力。

4. **增长潜力**:公司还应评估如何利用盈利能力实现增长。这可能涉及将利润再投资于新产品、市场扩张或提高运营效率。

总之,该公司 20% 的利润率反映了稳固的盈利地位,但持续监控和战略规划对于维持和提高这一业绩至关重要。

流动性分析:
 要分析公司的流动性,我们可以从计算流动比率开始。流动比率是一种财务指标,用于衡量公司用短期资产偿还短期负债的能力。但是,由于我们没有流动资产和流动负债的具体值,因此我们可以从提供的总资产和总负债中得出一些见解。

### 给定数据:
- 总资产:1500万美元
- 总负债:700万美元

### 流动比率计算:
流动比率的计算公式如下:

\[
\text{流动比率} = \frac{\text{流动资产}}{\text{流动负债}}
\]

由于我们没有流动资产或流动负债的具体价值,我们可以关注总资产和总负债来了解公司的整体财务状况。

### 流动性分析:
1. **资产负债率**:这可以了解公司资产中由负债融资的比例。
   \[
   \text{资产负债率} = \frac{\text{总负债}}{\text{总资产}} = \frac{7 \text{百万}}{15 \text{百万}} \approx 0.467
   \]
   这表明该公司约 46.7% 的资产是通过债务融资的,这是一个合理的水平,但表明该公司确实承担了与其负债相关的一些风险。

2. **股权状况**:为了评估公司的股权状况,我们可以计算总股权:
   \[
   \text{总权益} = \text{总资产} - \text{总负债} = 15 \text{ 百万} - 7 \text{ 百万} = 8 \text{ 百万}
   \]
   这表明该公司拥有 800 万美元的稳固股本基础,表明财务状况相对稳定。

### 结论:
虽然我们缺乏具体的流动资产和流动负债数字来直接计算流动比率,但该公司的总资产和负债表明其整体流动性状况良好。该公司 46.7% 的资产由负债提供资金,且股本缓冲充足,因此该公司似乎有能力履行其义务。

为了进行更详细的流动性分析,获取流动资产和流动负债数字以直接计算流动比率将大有裨益。然而,根据现有数据,该公司似乎并未面临即时流动性困境。

现金流分析:
 根据提供的数据,该公司的经营现金流为 300 万美元。以下是对其现金流健康状况的简要分析:

1. **经营活动产生的现金流为正**:300 万美元的现金流表明公司从其核心业务活动中获得了足够的现金。这是一个积极的信号,因为它表明公司能够支付其运营费用并有可能再投资于增长机会。

2. **可持续性**:如果现金流数字长期稳定,则表明业务模式健康且可持续。运营现金流的一致性对于长期稳定至关重要。

3. **与现金需求比较**:要全面评估现金流健康状况,重要的是将此数字与公司的资本支出、债务偿还和其他财务义务的现金需求进行比较。如果经营现金流超过这些需求,则公司可能处于强势地位。

4. **运营效率**:强劲的运营现金流可以表明有效的管理和运营效率。分析其他指标(例如营业利润率和收入增长)可能会有所帮助,以更深入地了解运营绩效。

5. **改进空间**:如果公司有大量投资或处于增长阶段,可能需要评估 300 万美元是否足以支持其战略目标。此外,评估多个时期的现金流趋势可以洞察潜在的弱点或机会。

总之,虽然 300 万美元的经营现金流是一个积极的指标,但需要根据公司的财务义务和历史业绩进行全面评估,才能充分了解其现金流健康状况。

整合结果

最后,让我们整合子任务的结果,对公司的财务状况进行整体分析。

python 复制代码
def integrate_results(profitability, liquidity, cash_flow):
    """整合子任务的结果以提供整体分析。  
    

    Args:
        profitability(str):盈利能力分析。liquidity 
        (str):流动性分析。cash_flow 
        (str):现金流分析。

    返回:
        str:公司财务健康状况的总体分析。
    """
    prompt = """
    根据以下分析,对公司的财务健康状况进行总体评估:

    盈利能力分析:
{盈利能力}    

    流动性分析:
{流动性}    

    现金流分析:
{cash_flow}    

    总结要点,对公司的财务状况做出总体评价。
    """
    return run_prompt(prompt, profitability=profitability, liquidity=liquidity, cash_flow=cash_flow)

overall_analysis = integrate_results(profitability_analysis, liquidity_analysis, cash_flow_analysis)
print("整体财务状况分析: \n ", overall_analysis)
plain 复制代码
总体财务状况分析:
 ### 公司财务状况的总体评估

通过对盈利能力、流动性、现金流等的分析,对公司财务状况的要点及总体评价如下:

#### 盈利能力分析
- **利润率**:该公司的利润率为 20%,这意味着每收入 1 美元,公司就能获得 0.20 美元的利润。这通常被认为是强劲的表现。
- **运营效率**:利润率表明对运营费用的有效管理,使公司在其行业中占据有利地位。
- **可持续性考虑**:虽然当前利润率很高,但需要持续监控以确保其在市场波动和竞争压力下保持可持续性。

#### 流动性分析
- **资产负债率**:该比率约为 46.7%,表明该公司近一半的资产是通过债务融资的。这一水平是可控的,但确实表明由于依赖借入资本而存在一定的风险。
- **总股本**:该公司拥有 800 万美元的稳固股本基础,可缓冲负债并增强财务稳定性。
- **流动比率**:虽然由于缺乏具体的流动资产和流动负债数据而无法计算出准确的流动比率,但整体债务管理表明该公司并未面临流动性困境。

#### 现金流分析
- **经营活动现金流**:300 万美元的经营活动现金流表明公司从其核心业务活动中产生了足够的现金,这对于支付运营费用和潜在的再投资至关重要。
- **可持续性和比较**:现金流数字的长期一致性对于长期稳定性至关重要。进一步分析公司的现金需求和历史业绩可以提供更深入的见解。

### 总体评价
该公司的财务状况良好,盈利能力强,流动性水平可控,运营现金流为正。以下是总体情况:

1. **优势**:20%的利润率体现了有效的成本管理和运营效率。此外,稳健的股权状况表明财务基础稳定。
  
2. **风险**:依赖债务融资(债务与资产之比为46.7%)带来一定风险,凸显了有效的债务管理和监控利息义务的重要性。

3. **机会**:经营活动产生的正现金流为公司提供了再投资于增长和响应市场机会的能力。

4. **建议**:持续监控盈利能力、流动性比率和现金流趋势至关重要。此外,获取详细的流动资产和负债数据将增强流动性分析,并实现更全面的财务评估。

总之,虽然公司目前财务状况良好,但持续的战略规划和风险管理对于维持业绩和应对未来的潜在挑战至关重要。
相关推荐
测试老哥4 分钟前
Jmeter实战:编写博客标签模块增删改查自动化脚本和压测
自动化测试·软件测试·测试工具·jmeter·职场和发展·测试用例·压力测试
董董灿是个攻城狮23 分钟前
009:传统计算机视觉之边缘检测
人工智能·计算机视觉·cnn
视频砖家24 分钟前
Midjourney 应用:框架总结
人工智能·midjourney
Quz27 分钟前
OpenCV在现代社会中的应用
人工智能·opencv·计算机视觉
2401_8975796531 分钟前
AI赋能房地产:利用AI前端技术提升VR/AR浏览体验
前端·人工智能·vr
nuise_32 分钟前
李宏毅机器学习课程笔记02 | 机器学习任务攻略General Guide
人工智能·笔记·机器学习
代码小鬼才33 分钟前
关于量子神经网络的思考
人工智能·深度学习·神经网络
玉成22635 分钟前
Elasticsearch:聚合操作
大数据·elasticsearch·搜索引擎
南方财富1 小时前
影视投资人项亮月考察临汾腾讯视频精品微短剧基地
大数据·人工智能
Schwertlilien1 小时前
模式识别-Ch2-分类错误率
人工智能·分类·数据挖掘