AI 工作流设计手册_小报童_

AI 工作流设计手册介绍

专栏作者:艾木和大圣,两位热爱 AI Agent 技术的软件工程师,AI 开源社区《通往 AGI 之路》共创作者,《成为 Agent 工程师之 Coze
实战》课程作者。\n\n本专栏会分享我们打造 AI 工作流提效的心得,包括但不限于:AI 工作流设计技巧、 LLM 基础认知、提示词技巧、RAG 技术以及
AI 时代的编程思维等主题。\n\n内容形式是简短的、碎片化的。\n\n期望你可以梳理出你个人的工作流,并对每个环节利用 AI 进行优化,打造专属于自己的
AI 工作流。\n\n限时 99 元,每周至少更新一篇内容,持续一年。

名称 作者 读者数量 内容数量 更新时间
AI 工作流设计手册 艾木 × 大圣 328人 11篇 2024-10-27

最近更新

AI 编程|使用 Cursor AI 的意识与工作流

我上周做了一次主题为《与 Cursor AI 一起玩代码》的直播分享,这篇内容可以看作是那次分享的伴随笔记。

最近,随着 Cursor 的出圈,AI 编程也跟着火起来了。像 Curs......

AI编程|用LLM编写Coze代码节点

本文归属于AI编程系列文章,该系列介绍请参考:成为Agent工程师之AI编程

引言

前面我们讲了很多的编程理论和基础知识,这一章开始,我们就正式进入到AI编程的实战阶段。

前面我们讲过:对于普通人而言,AI时代的编程更多的是在现有框架或平台的约束下实现特定功能

在AI时代的编程我分为三个场景

  1. 编写一个特定的方法,用来实现特定输入到特定输出的转换

  2. 编写一个逻辑简单的产品 ,例如Chrome插件,用来提高自身的效率

  3. 编写一个产品,涉及到页面展示,后台复杂逻辑处理以及数据存储,用来进行售卖

第三种可能是好多人畅想的,期望利用AI可以像程序员一样开发各种复杂系统。

这里我要跟大家泼一盆冷水,在未来很长的一段时间内,普通人 利用AI编程做出生产级别可用 的复杂系统都是非常困难的。除非你自学编程知识,达到了程序员的级别

PS:这里大家不要抬杠,贪吃蛇这种游戏还有简单的Chrome插件都不是生成级别可用的复杂系统,这最多算个玩具或者说Demo

但是第一种和第二种却是实实在在可以实现的,而且是具有生产价值的。

当下AI Agent概念非常火,而以Coze为代表的等AI Agent平台也逐渐兴起。

Coze平台的出现给了普通人打造一款轻量级产品的可能性,Coze中有丰富的插件以及功能节点,让非编程人士可以像搭积木一样实现某个具体的功能。

同样的,Coze中也提供了代码节点,我们可以通过代码节点编写代码,实现特定的功能,从而让我们的工作流更加稳定和强大

Coze中的代码节点使用就是一个非常典型的AI编程的应用场景,本文我们就以这个为案例来讲解AI编程的应用场景:编写一个特定的方法,用来实现特定输入到特定输出的转换


这里我默认你已经了解了如下的知识点

  • 你对Python这门编程语言有基本的认知与了解

  • 你了解了编程的中很重要的一个概念JSON,并且能熟练运用

  • 你了解了Coze的使用,并知道其代码节点是怎么一回事

  • 你已经看到我的关于《理解输入、处理和输出的框架》这篇文章

Coze的代码节点

Coze中目前支持两种编程语言Python和Javascript教程全部以Python为语言进行讲解

我们先来看下Coze代码节点中的模版代码

async def main(args: Args) -> Output:
    params = args.params
    ret: Output = {
        "key0": params['input'] + params['input'],
        "key1": ["hello", "world"],
        "key2": {
            "key21": "hi"
        },
    }
    return ret

我们来分析下这个代码模版

  • 对于 async def main(args: Args) - > Output: 这一段代码你根本不用管,这是Coze要求的一种规范,你只要遵循在这个规范下写代码即可

  • params = args.params 这行代码非常重要,这代表着如何获取输入 ,这里的args.params就是获取输入的JSON结构,然后传递给params这个变量供后续使用

  • 而下面这段代码则是在构建输出

    • ret: Output = { "key0": params['input'] + params['input'], "key1": ["hello", "world"], "key2": { "key21": "hi" }

分析完Coze的代码节点,你会发现它非常契合我们前面讲到的输入、处理和输出的框架

我把上述的代码模版再抽象一层如下,你会对这个模版的理解会更加清晰

async def main(args: Args) -> Output:
    # 从args中获取输入参数
    params = args.params
    
    # 在此处理输入并生成输出所需要的数据
    
    # 构建输出JSON
    ret: Output = {
        # 在此构建输出JSON
    }
    
    # 返回结果
    return ret

AI与人的分工

分析完Coze的代码节点格式,在开始使用AI辅助我们编程之前,我们要理解AI和人的分工边界

看完上面抽象出来的代码模版,我想答案已经呼之欲出了:

  • 人定义清楚输入和输出的JSON格式

  • 人用自然语言描述由输入转成输出的处理逻辑

  • AI则负责根据输入+输出的格式以及人描述的处理逻辑,生成可以执行的代码

这里需要特别注意的是,你生成的完整代码必须符合Coze的模版规范

既然要利用AI编程,并且还对输出有一定的要求,那我们可以编写一个提示词来辅助我们

为了排版美观,我把编写的提示词放在了附录中,大家可以自行参考。(提示词非常好懂,无需讲解)

编程案例

为了让大家学会使用这个提示词,我这里举两个实际的场景。

PS:由于Claude是目前公认编程能力最强的AI,所以AI编程建议使用Claude。但是由于费用限制,国内的智谱和豆包也还行,具体我没有做大量的测试,请在使用过程中自行测试

字符串转数组

输入

{
   "input": "徐州#杭州#贵州"
}

输出

{
    "result": [
        "徐州",
        "杭州",
        "贵州"
    ]
}

处理逻辑

输入是用#分割的中文字符串,帮我转成字符串数组输出

使用提示词生成的代码(Claude大模型)

async def main(args: Args) -> Output:
    # 从args中获取输入参数
    params = args.params
    
    # 获取输入字符串
    input_string = params['input']
    
    # 使用split方法将字符串分割成列表
    result_list = input_string.split('#')
    
    # 构建输出JSON(必须是字典格式)
    ret: Output = {
        "result": result_list
    }
    
    return ret

两个数组合并

这个案例取自我的《Coze实战课程》中的儿童绘本

输入:

{
    "imageInputList": [
        {
            "code": 0,
            "data": {
                "images": [
                    {
                        "image_url": "https://s.coze.cn/t/CimtF2Uq9AyhVbo0/"
                    }
                ]
            },
            "log_id": "202409162345450CB01612D96016D1FDE4",
            "msg": "success"
        },
        {
            "code": 0,
            "data": {
                "images": [
                    {
                        "image_url": "https://s.coze.cn/t/Ctch3b7aHPVn8n4g/"
                    }
                ]
            },
            "log_id": "202409162345450CB01612D96016D1FDE4",
            "msg": "success"
        }
    ],
    "storyList": [
        {
            "desc": "小猴子皮皮🐒在井边玩耍,它看到井里有一个圆圆的月亮。皮皮惊讶地叫道:“哇!月亮怎么掉进井里了?”它赶紧找来小伙伴们,一起想办法把月亮捞出来。小猴子们围在井边,好奇又兴奋。",
            "prompt": "一群好奇的小猴子围在一个古老的井边,井水清澈映着夜空中的圆月,小猴子皮皮表情惊讶,手指着井中的月亮,其他猴子们也露出好奇和兴奋的神情,背景是宁静的森林夜晚,星光闪烁。",
            "title": "1. 月亮掉进井里了?🌕"
        },
        {
            "desc": "小猴子们决定用长长的树枝去捞月亮。皮皮小心翼翼地把树枝伸进井里,可是每次树枝一碰到水面,月亮就碎了。皮皮困惑了:“月亮怎么捞不起来呢?”小伙伴们也皱起了眉头,但它们没有放弃。",
            "prompt": "小猴子皮皮和其他小猴子正尝试用一根长长的树枝从井中捞起月亮的倒影,水面波光粼粼,每次树枝触碰水面,月亮的倒影就碎裂开来,小猴子们的表情从兴奋转为困惑,但仍然坚持不懈,背景是夜晚的森林,井边有温馨的灯光。",
            "title": "2. 捞月亮大作战🐒🌊"
        }
    ]
}

输出:

{
    "resultList": [
        {
            "desc": "小猴子皮皮🐒在井边玩耍,它看到井里有一个圆圆的月亮。皮皮惊讶地叫道:“哇!月亮怎么掉进井里了?”它赶紧找来小伙伴们,一起想办法把月亮捞出来。小猴子们围在井边,好奇又兴奋。",
            "prompt": "一群好奇的小猴子围在一个古老的井边,井水清澈映着夜空中的圆月,小猴子皮皮表情惊讶,手指着井中的月亮,其他猴子们也露出好奇和兴奋的神情,背景是宁静的森林夜晚,星光闪烁。",
            "title": "1. 月亮掉进井里了?🌕",
            "imageUrl": "https://s.coze.cn/t/CimtF2Uq9AyhVbo0/"
        },
        {
            "desc": "小猴子们决定用长长的树枝去捞月亮。皮皮小心翼翼地把树枝伸进井里,可是每次树枝一碰到水面,月亮就碎了。皮皮困惑了:“月亮怎么捞不起来呢?”小伙伴们也皱起了眉头,但它们没有放弃。",
            "prompt": "小猴子皮皮和其他小猴子正尝试用一根长长的树枝从井中捞起月亮的倒影,水面波光粼粼,每次树枝触碰水面,月亮的倒影就碎裂开来,小猴子们的表情从兴奋转为困惑,但仍然坚持不懈,背景是夜晚的森林,井边有温馨的灯光。",
            "title": "2. 捞月亮大作战🐒🌊",
            "imageUrl": "https://s.coze.cn/t/Ctch3b7aHPVn8n4g/"
        }
    ]
}

处理逻辑:

将两个数组imageInputList和storyList可以合并成一个数组输出

使用提示词生成的代码(Claude)

PS:此代码没有经过任何人为修改,是直接可用的代码

async def main(args: Args) -> Output:
    # 从输入参数中获取imageInputList和storyList
    params = args.params
    image_input_list = params['imageInputList']
    story_list = params['storyList']
    
    # 创建结果列表
    result_list = []
    
    # 确保image_input_list和story_list长度相同
    if len(image_input_list) != len(story_list):
        raise ValueError("imageInputList和storyList的长度不一致")
    
    # 合并两个列表的信息
    for image_input, story in zip(image_input_list, story_list):
        # 从image_input中提取图片URL
        image_url = image_input['data']['images'][0]['image_url']
        
        # 创建新的字典,包含story的所有信息和图片URL
        result_item = {
            "desc": story['desc'],
            "prompt": story['prompt'],
            "title": story['title'],
            "imageUrl": image_url
        }
        
        # 将新创建的字典添加到结果列表中
        result_list.append(result_item)
    
    # 构建并返回输出JSON(字典格式)
    ret: Output = {
        "resultList": result_list
    }
    
    return ret

注意:代码写完之后,代码节点的输出设置一定要设置为和输出一样的JSON格式

写在最后

这篇文章以Coze的代码节点为例,提供了一种利用AI辅助编程的思路。

这里我更想表达的是:

  • 要清楚AI编程的能力边界,AI和人应该如何分工

  • 以Coze为代表的AI Agent平台的出现,让我们不必编写完整的系统代码也能构建产品

  • AI编程的一个应用场景:编写一个特定的方法,用来实现特定输入到特定输出的转换

AI编程之路道阻且长,但是既然决定踏上这条路,那就不要心急,多练,多想。厚积薄发

看完如果觉得有启发,请帮忙点个有启发呀~

附录

提示词

# Coze代码节点生成器

作者:大圣
版本:1.0.0
用途:你是一个专业的Python开发者,负责为Coze平台创建代码节点。请根据用户提供的输入和输出JSON格式,生成符合Coze代码节点规范的Python代码。

### 输入格式

用户将提供以下信息:

1. 输入JSON格式
2. 输出JSON格式
3. 所需的处理逻辑描述(可选)

### 输出要求

生成的代码必须:

1. 遵循Coze代码节点的模板结构
2. 正确处理输入参数
3. 返回符合指定格式的输出,**必须是字典格式**
4. 实现用户描述的处理逻辑(如果提供)
5. 包含通俗易懂的注释,适合编程小白理解
6. 保持简洁,尽量不依赖第三方库(除非绝对必要)

### 代码模板

```python
async def main(args: Args) -> Output:
    # 从args中获取输入参数
    params = args.params
    
    # 在此处理输入并生成输出
    
    # 构建输出JSON(必须是字典格式)
    ret: Output = {
        # 在此构建输出字典
    }
    
    return ret
```

### 示例

#### 输入

输入JSON格式:
```json
{
    "text": "string",
    "number": "integer"
}
```

输出JSON格式:
```json
{
    "processed_text": "string",
    "doubled_number": "integer"
}
```

处理逻辑:将输入的文本转为大写,将数字翻倍。

#### 输出

```python
async def main(args: Args) -> Output:
    # 从输入参数中获取文本和数字
    params = args.params
    input_text = params['text']
    input_number = params['number']
    
    # 处理文本:将其转换为大写
    processed_text = input_text.upper()
    
    # 处理数字:将其翻倍
    doubled_number = input_number * 2
    
    # 构建并返回输出JSON(字典格式)
    ret: Output = {
        "processed_text": processed_text,
        "doubled_number": doubled_number
    }
    
    return ret
```

#### 代码解释

以下是对上述代码的逐行解释:

1. `async def main(args: Args) -> Output:`: 这是函数定义。它是异步的,接受一个`args`参数,并返回`Output`类型的结果。

2. `params = args.params`: 从`args`中获取输入参数。

3. `input_text = params['text']`: 从参数中提取文本输入。
   `input_number = params['number']`: 从参数中提取数字输入。

4. `processed_text = input_text.upper()`: 使用`upper()`方法将输入文本转换为大写。

5. `doubled_number = input_number * 2`: 将输入数字乘以2,实现翻倍。

6. `ret: Output = {...}`: 创建一个字典作为输出,包含处理后的文本和翻倍后的数字。这里确保返回值是一个字典格式,符合Coze的要求。

7. `return ret`: 返回处理结果,这个结果是一个字典。

### 注意事项

1. 确保代码能够处理所有输入参数
2. 使用类型提示以增强代码的可读性和健壮性
3. 如果需要导入Python标准库模块,请在代码开头添加必要的import语句
4. 如果处理逻辑复杂,可以创建辅助函数来提高代码的可读性和可维护性
5. 添加清晰、简洁的注释,解释代码的功能和原理,使编程新手也能理解
6. 在代码生成后,提供详细的逐行解释,帮助用户理解代码的每个部分
7. 尽量使用Python标准库,避免不必要的第三方依赖
8. **始终确保返回值 `ret: Output` 是一个字典格式,这是Coze代码节点的要求**

现在,请提供你的输入和输出JSON格式,以及所需的处理逻辑(如果有),我将为你生成相应的Coze代码节点,并附上详细解释。

AI编程|理解输入、处理和输出的框架

本文归属于AI编程系列文章,该系列介绍请参考:成为Agent工程师之AI编程

引言

对于普通人而言,AI时代的编程更多的是在现有框架或平台的约......

AI编程|工程师思维

本文归属于AI编程系列文章,该系列介绍请参考:成为Agent工程师之AI编程

引言

在《从零理解编程》章节中,我们探讨了编程的本质和目的。

AI编程|从零理解编程

引言

在讲AI编程之前,我们必须要先对编程这个概念有一定的了解。

这一章,我们就用通俗易懂的语言来讲解下编程是什么?

为什么要编程

......

AI编程|成为Agent工程师之AI编程

本文是AI编写系列文章的开篇

引言

为什么有这个教程

我和艾木目前有一个付费课程:《成为Agent工程师之Coze实战》,我们的愿景是在AI时代人人都能成为Agent工程师。

成为Agent工程师一直有一个绕不开的话题,就是编程。

目前随着AI编程工具Cursor的火爆,AI编程又一次进入了人们的视野。

我试用后发现,虽然这类工具短时间内无法让普通人像程序员一样自由的开发各类软件程序,但是在掌握一定使用技巧的情况下,已经可以写出一些复杂的、能实现特定功能的代码了

我不想讲什么未来已来,但是AI编程真的是一件非常有意思的事情。

而且我自己接下来也会花一部分精力投入到AI编程中,作为一名后端程序员,AI编程让我看到了成为一名全栈程序员的捷径。

如果能在学习的过程中将其记录下来并且分享出去,帮助更多的人,无疑是一件非常有成就感的事情

所以在2024年的中秋,继Coze之后,我决定开启一个新的系列教程:AI编程

教程的特点

这个系列教程会有如下特点:

1. 这个系列分享的是AI编程 ,不是传统的编程,目的不是将你变成程序员,而是让你多一项可以不断成长的技能

2. 不会仅仅局限于AI编程工具的使用,而是希望可以用一些通俗易懂的文章将编程的一些基础概念讲清晰

3. 我会试着讲一些思维层面 的理论知识,而这是一些普适性的方法论

4. 学完之后不要想着可以开发各类软件程序,你可能仅仅是对编程有了一些基本的了解 而已

5. AI编程不同于AI绘画,AI写作,这是一个长周期的事情 ,如果你真正的对此感兴趣,道阻且长,任重道远

6. 此教程以教学和实操为主,不会教任何变现的事情

这个教程主要面向两类人:

  1. 编程新手 :如果你从未接触过编程,不用担心。教程的目标并不是把你培养成传统意义上的程序员,也不是为了帮你找一份程序员的工作。我想带给你一项在AI时代非常有用的新技能:借助AI进行编程。这样,你就能把自己的想法变成现实,无论是创建一个简单的应用,还是优化工作流程。

  2. 初级程序员 :如果你已经有一些编程基础,这个课程会帮你更进一步。你将学习如何与AI合作,大幅提高编码效率和创新能力。这不仅能让你的工作更有效率,还能为你的职业发展带来新的机会。

我对AI编程的理解

AI编程的核心是人与AI的协作。

在这个过程中,最关键的是理解人与AI的界限:哪些是我们需要掌握的基本能力,哪些可以交给AI来做,以及如何有效地指导AI协助我们工作。

记住,在AI编程中,你不需要成为编码专家。

你需要的是成为一个会思考、会表达、会与AI合作的创造者

同时,我的这个系列的教程并不仅仅带你学习AI编程工具的使用,我认为那没有任何帮助。

我希望可以讲一些AI编程的元能力,那样无论出多少工具,在你眼里都一样。

有句话与大家分享:技术的进步不是在替代人类,而是在给每个人更强大的创造力。

教程的公开范围

  1. 《成为Agent工程师之Coze实战》和《AI工作流设计手册》付费产品的同学免费观看

  2. 我会视情况而定免费公开一些章节

  3. 我会按照节奏逐步将教程开源在WayToAGI社区

编程基础:与AI协作的前提

虽然我们的目标是学习AI编程,但在开始与AI协作之前,我们需要对编程的核心概念有基本的了解。

你可能会问:"既然有AI帮忙,为什么还需要学习这些基础知识呢?"

这个问题很好,让我们来探讨一下为什么掌握编程基础如此重要。

有效沟通的基础

在日常工作中,大家可能不止一次心里暗骂过自己的领导:“什么玩意,什么都不懂,还瞎指挥”

如果你连编程基本的概念都不知道,却总想着去指挥AI帮你编程,那我相信AI可能也在心里骂你

所以了解编程的基本概念,是你和AI有效沟通的基础

理解问题的能力

编程思维不仅仅是写代码,更是一种解决问题的方法。

了解基础概念能帮助你更好地分析问题,将复杂的任务分解成更小、更容易管理的部分。

这种能力在与AI协作时尤为重要,因为你需要清晰地表达你的需求。

辨别和纠正错误

即使是最先进的AI也可能犯错。

如果你对编程一无所知,你可能无法识别AI生成的代码中的错误或不合理之处。

基本的编程知识能让你成为一个更好的"把关人",确保最终的结果符合你的预期。

提高学习效率

有了基础知识,你学习新概念和技术的速度会大大提高。

这也是我一直强调的知其然,知其所以然,而编程的基本概念就是为了让你知其所以然

这在快速发展的AI领域尤为重要,因为你需要不断学习和适应新的工具和方法。


我专门写这一章的目的是告诉大家:

学习没有捷径,AI可以极大的提高我们的能力上限,但是基础的认知学习是谁都无法替代的。

目录大纲

为了让大家有一个全局的视角,我先草拟一个大纲

  • 此大纲可能随着教程的编写有所改动,而且教程的编写不一定完全按照大纲的顺序

  • 请不要被这个目录大纲劝退,你可能会看到接近10篇的理论和基础知识

    • 理论篇也就两篇,这个可以跳过,但是我不建议

    • 基础篇有5篇,这个如果你跳过了,你学不会AI编程。

    • 教程的目的是为了教会,而不是为了炫技,我也知道上来讲Cursor实现一个贪吃蛇游戏你可能会很爽,但是这个没有多大用呀。

    • 对基础篇进行讲解的时候不会讲干巴巴的理论知识,会针对Coze平台的各个工作流节点作为教学案例展开

    • 进阶篇是相对高阶一些的内容,可以在实操过程中遇到了对应问题再看

    • 实操篇一般都是大家感兴趣的,我就不说啥了

开篇

对教程的由来,特点以及目录大纲做一些全面的说明

理论篇

让非编程同学理解编程到底是在干什么?

分享我认为在编程时最重要的方法论:工程师思维

基础篇

  • 03|AI编程的学习平台:Coze

Coze是一个非常适合用来学习AI编程基础的平台,他可以让很多概念具象化

介绍了一个简单但十分强大的编程框架:输入、处理和输出

  • 05|了解Python是什么

通过B站的一个3小时的神级教程,让你对Python有基本的了解

  • 06|数据的桥梁:理解与应用JSON

通过Coze的插件使用,让你编程概念中的JSON的含义与作用

  • 07|数据的载体:理解与应用变量

通过Coze的变量节点的简介,让你理解编程中的变量的作用

  • 08|数据的多样性:理解数据类型

了解编程中基本的数据类型以及其用途

进阶篇

  • 09|理解分支和选择

利用Coze的选择器节点,理解编程中一个重要的范式:if...else

  • 10|理解并应用循环

利用Coze的循环节点,理解编程中一个重要的范式:循环

  • 11|程序之间的通信:API

了解并应用程序之间通信的手段之一:API接口

实操篇

利用大模型帮你完成Coze的代码节点的编写

  • 13|用LLM自定义Coze的插件基础篇

利用大模型和AI工具帮你完成Coze的自定义插件

  • 14|用LLM编写小红书笔记抓取插件

利用大模型和AI工具完成小红书笔记抓取的插件,打造小红书写作工作流

  • 15|用LLM编写音频转文字插件

利用大模型和AI工具+外部API打造自己的视频转文字插件

  • 16|......

实操篇我还没有想好,目前的AI编程工具有Cursor、MarsCode等,具体有哪些教学案例,要随着AI的发展进度找更多的灵感,我还是希望可以找一些更加实用的案例,例如Chrome插件等

写在最后

这里也不给情绪价值了,AI编程确实是一块难啃的骨头,我在计划这个教程的时候也想过可能会费力不讨好。

但这不仅仅是一个教程,而是我学习过程中的一个沉淀,它最起码对我是有价值的

最后,分享两句话给大家

  • 做难而正确的事情

  • 读十遍不如实践一遍,实践十遍不如分享一遍

与诸位共勉!

LLM基础认知|为什么需要思维链(Chain-of-thought)?

来源:www.youtube.com/watch?v=bZQun8Y4L2A (Andrej Karpathy)

LLMs need tokens to th......

不要被AI工具迷了眼

这是本周的第二篇AI碎碎念

老样子,这篇免费加餐

写在前面

最近,一位刚毕业的同学向我倾诉了他的困惑:

"我想学AI,但看到那么多知识,我不知道学什么,学什么有用"。

"一开始非常憧憬学AI,到这段时间我开始迷茫"

"各种软件层出不穷,我现在还在学习机器学习,python "

"又看见一堆AI绘画方面的课程,现在就是知道了大部分AI的相关信息,可是这个信息的遮蔽性也很大"

我想这番话应该也是很多人的困惑,尤其是初次结识AI的同学。

在这个AI迅速发展的时代,我们该如何应对?如何在信息洪流中找到自己的方向?

这篇文章我想谈谈我的看法,当然我们不会只聊虚的理论。

在文末我会附上我的AI学习路径,希望对你有帮助

一、走出工具的迷宫

现在,AI工具如雨后春笋般涌现。每天都有新的应用问世,承诺能解决这样那样的问题。

面对琳琅满目的选择,很多人感到无所适从,甚至产生了"不学就会被淘汰"的恐慌。

但请记住,工具终究只是工具。

重要的不是你掌握了多少种AI应用,而是你能否找到真正适合自己需求的工具,并善用它们来提升自己的能力。

与其盲目追逐每一个新出现的AI工具,不如静下心来思考:

我真正需要的是什么?哪些工具能够帮助我更好地完成工作,以及提升生活质量?

二、用需求来驱动学习

在开始学习AI之前,不妨先问问自己:

“我为什么要学?是为了跟上潮流,还是解决实际问题?”

以需求为导向的学习往往更有针对性和持久性。

比如我的职业是程序员,那我的需求就是能够日常帮助我写代码片段以及SQL

再比如我的另一个需求是做课程,在课程中我需要使用大量的通俗易懂的案例帮助我的学员理解,自己想出示例是一件很痛苦的事情

结合我上述的两个需求,我发现Claude是一款很适合我的工具,那我就每月付178RMB购买了Pro版本,至于什么腾讯元宝、还有360的A助手等这些我都不关注,不是他们不够强,是因为Claude已经足够满足我的使用

而我要学习的就是提示词工程以及Claude工具的使用

我的另外一个需求是帮助我的2岁女儿学习AI,那么Claude显然是不行的。

所以我要学习Coze这类平台,既帮助了我学习AI Agent,又能让我为女儿搭建各种有意思的智能体,辅助她的学习和成长

记住,不是工具产生需求,而是需求决定工具。

当你明确了自己的需求,你会发现学习的方向突然清晰起来。

三、养成用AI提升效率的习惯

想要真正理解AI的价值,最好的方式就是将其应用到日常工作中。

仔细审视你的工作流程,找出那些耗时又重复的任务。也许是数据整理,也许是文档校对,又或是日程安排。

这些看似简单的环节,恰恰是AI大显身手的地方。

从小处着手,逐步将AI融入你的工作流。

你会惊喜地发现,那些曾经让你头疼的琐事,现在可以轻松搞定。

而你也能将更多精力投入到真正需要创造力和洞察力的工作中。

四、重塑学习方法:与AI协作

AI时代的学习,不仅是学习使用AI,更是学会与AI协作。这需要我们重新思考学习的本质。

  • 培养提问的能力 :AI很擅长回答问题,但提出好问题的能力仍然属于人类。学会提出精准、有洞察力的问题,这将大大提高你使用AI工具的效率。

  • 强化批判性思维 :面对AI给出的答案,我们需要有能力进行判断和验证。这要求我们不断累积知识,培养独立思考的能力。

  • 保持创造力 :AI可以协助我们完成很多任务,但真正的创新仍然需要人类的想象力和洞察力。培养自己的创造力,这将是你在AI时代立于不败之地的关键。

五、掌握AI工具的核心思路

上面是一些理论感悟,这里是我对开篇那位同学的正面回答

面对繁杂的工具,你该如何取舍

AI时代的元能力:提示词

提示词(Prompts)是与AI工具交互的桥梁。

学会编写有效的提示词,就像学会了与AI沟通的语言。这不仅仅是掌握一些技巧,更是一种思维方式的转变。

好的提示词应该清晰、具体,且富有上下文。

它要求我们学会将抽象的想法转化为明确的指令。

这种能力不仅在使用AI时有用,在日常沟通和问题解决中也大有裨益。

练习编写提示词,这些对文生文、文生图以及文生视频都有作用!

所以如果你的提示词不到家,或者你本身的沟通能力就比较弱,我建议你先集中花费半个月的时间来学习提示词

我自己的提示词学习资料:提示词学习资料

工作流思维

在AI时代,单一的工具使用已经远远不够。

我们需要学会构建完整的工作流程,将多个AI工具有机地结合起来,以实现更复杂的目标。

这种工作流思维要求我们具备系统性思考的能力。

我们需要学会分析问题,将大任务拆分成小步骤,然后为每个步骤选择最合适的工具。

例如,在一个内容创作的工作流中,你可能会使用一个AI工具来生成初始想法,另一个工具来扩展内容,再用一个工具来进行文字润色,最后用AI辅助工具来创建配图。

掌握了工作流思维,你就能够更加灵活地运用AI工具,真正发挥它们的潜力。

这里我推荐一本书:《金字塔原理》这是讲结构化思维的,但是对于构建工作流同样有用

同时我也推荐我们的体系化AI Agent课程:成为Agent工程师课程介绍(购买赠送该专栏)

培养核心素养

工具的使用固然重要,但更重要的是背后的素养。

以AI绘画和视频工具为例,掌握使用方法只是第一步。真正能够创作出优秀作品的,是那些具备艺术素养的人。

这种素养包括对美的感知能力,对构图、色彩、节奏的理解,以及传达情感和思想的能力。这些都是AI无法完全替代的人类特质。

因此,在学习AI工具的同时,更要注重培养自己的核心能力:

  • 审美能力:培养对美的感知和鉴赏能力。

  • 创意思维:锻炼发散性思考,培养独特的创意。

  • 叙事能力:学会讲述引人入胜的故事。

  • 文化素养:广泛涉猎不同领域的知识,丰富自己的文化底蕴。

  • 同理心:理解受众需求,创作能引起共鸣的作品。

记住,AI工具是为增强人类能力而存在的,而不是取代人类的创造力。

真正的高手,是那些能够将自身素养与AI工具完美结合的人。

我举两个我自己的例子

反例:

我曾经尝试着按照一套SOP自己部署搭建SD,想要帮助我女儿搞一套写真出来,然后再考虑进行收费。我在五一假期期间闭关3天,最终以失败告终....

我总结的教训:我对AI绘画,AI视频是没有自己的审美的,这不是我的长处,就算AI工具用的再6,也没有太大作用

正例:

我学习Coze,然后只凭借一个关于Coze基础教程的分享就具备了一定的影响力,这里面很关键的一环就是我是程序员,我有编程思维。

六、构建个人知识体系

在学习任何一门新知识的时候,本质都是在沉淀自己的知识体系,如果你没有一套行之有效的知识管理体系。

你最终辛苦学习的内容最终都可能不会内化成知识。

所以我强烈建议你看下我的知识管理体系。

B站视频:这个视频是管理我是如何管理我的知识的。分享时长1个半小时

我的知识管理体系

视频中提到的对应文档地址:

01|Arc浏览器,效率提升利器

03|利用飞书搭建自己的知识库

04|PARA方法论,打造持续升级的知识管理体系

写在最后

在AI工具层出不穷的今天,最重要的不是掌握某一特定工具,而是培养适应性强、持续学习的能力。

提示词技巧、工作流思维(编程思维)、核心素养的培养,以及个人知识体系的构建。

这些都是在AI时代立于不败之地的关键。

记住,AI工具终究是工具,真正创造价值的是运用这些工具的你。

保持好奇心,不断学习和实践,念念不忘,必有回响

PS:如果文章对你有帮助,帮忙点个启发呀,也欢迎留言一起讨论

附录

学习AI:重塑自我的旅程

最近几个月一直都在输出技术性的干货,好久没有静下心来总结

就在昨晚我还在利用Coze辅助我讲解RAG的时候,突然想到我学习AI,到底在学习什么?

为什么我会对AI这么感兴趣?AI给我带来了什么?

这篇文章没有技术干货,想写一点感性的东西,希望能对你有所启发


引言

人工智能已经成为当今最热门的话题之一,越来越多的人开始投入到AI学习的浪潮中。

然而,在我们热切地学习这项新技术时,是否曾停下脚步思考过:

当我们在学习AI时,我们到底在学习什么?

仔细想来,学习AI可能比我们想象的更有深度和意义。

它不仅仅是在学习一系列技术和代码,更像是在学习一种与未来对话的方式。

更有趣的是,在深入学习AI的过程中,我们可能在不经意间获得了关于自己的新认知。

为什么会有这样的感触?

因为AI是所有新技术产品中最像人类的。它试图模仿人类的思维过程、决策能力和创造力。

而在学习AI的过程中,我有时候会有种照镜子的感觉。

这种感觉源于我在AI中看到了人类的某些方面的反映,比如记忆与遗忘

因此整个学习AI的过程,我愿把它称之为重塑自己的旅程

1. 学习提示词:沟通的艺术

1.1 明确表达的重要性

我还记得首次与AI对话时那种困惑的感觉,我发现AI很傻,并不能满足我的诉求

直到学习了如何编写清晰、具体的提示词。

而提示词的本质就是在学习如何准确表达自己的想法。

而回顾日常生活,我们会发现有多少误会是因为表达不清而造成的。

因此,当我们努力思考如何让AI理解意图时,我们实际上在提升自己的沟通技能。

我们学会了如何组织语言,如何将复杂的想法拆解成简单的部分,这些都是优秀沟通者的必备技能。

1.2 同理心和上下文

AI还教会了我一个重要的课题:如何站在对方的角度思考。

为了让AI理解我的意图,我会不断的考虑它的"思维方式",并且提供足够的上下文。

这不正是我们在人际交往中常说的"换位思考"吗?

当我们开始思考"如果我是AI,我需要什么信息才能理解这个问题"时,我们实际上是在培养自己的同理心。

而同理心是我在分享时非常强大的一个能力。

几乎所有人都会说我的分享通俗易懂,那是因为我总会从读者或者听众的角度去考虑

1.3 迭代和反馈

任何事情都不是一蹴而就的,沟通与协作是一个不断调整和改进的过程。

我们编写的第一版提示词可能并不完美,AI的回答可能不尽如人意。

但这没关系,我会根据AI的反应来调整自己的提问,并通过多次尝试来获得我想要的结果。

这个过程,其实就是我们在人际交往中应该采用的方式。

我们需要学会倾听反馈,根据对方的反应来调整我们的表达方式。

沟通从来不是一蹴而就的,而是一个不断优化的过程。

因此,当我们在反复修改提示词,试图让AI理解我们的意思时,我们实际上是在学习一项非常实用的生活技能。

比如当我与艾木初次合作时,我也会有担心,我们的沟通是不是会出现很多问题,但是当你用一个迭代的过程去看待这件事情的时候,一切问题又都显得那么微不足道


2. 设计工作流:重塑工作方式

在我学习和应用AI的过程中,我开始不知不觉地重新审视自己的工作方式。

AI对我来说,不再仅仅是一种技术,它正在悄然改变我思考问题和处理任务的方式。

这种改变,最直接的体现就是我开始更加关注"工作流"的概念。

2.1 认识工作流的重要性

工作流,本质上是完成一项任务的标准化流程。

在接触AI之前,我已经建立了自己的工作习惯,但很少有意识地去思考和优化这些流程。

然而,AI的出现,让我开始重新审视这些习以为常的工作方式。

我现在非常喜欢使用Arc浏览器的工作空间,当我用工作流的视角去审视Arc浏览器的工作空间时,我会发现每个工作空间都是我的一个工作流

  1. 上班相关的网站会有独立的工作空间,不会跟我的副业和兴趣产生冲突

  2. 我日常的一个主要工作就写课程教程或者分享内容,我会专门的建立一个工作空间,里面收藏的工具只会跟我的课程制作相关

1. Coze(提供一些专业知识的输入,提供一些通俗易懂的案例)

2. 飞书套件(录制视频教程、编写文档)

3. Claude(润色文章)

以我写分享文章为例,我的工作流是这样的:

  1. 选题:确定文章的主题

  2. 确定大纲:使用Claude 给一版大纲,帮我找到思路,然后进行人工调整

  3. 撰写:人工编写,不考虑任何标点、段落和行文流畅性,仅仅保证输出核心观点

  4. 教学案例:我会使用Coze制作教学案例,保证教程的通俗易懂 。例如我要讲解RAG的query改写知识,以前的方法是在文档中生硬的嵌入一些案例。而我可以使用Coze制作一个教学机器人,让读者亲身体验RAG中不同query改写方案的特点

  5. 润色:将文章丢给Claude进行润色,保留观点和行文节奏,着重优化标点、段落和上下文衔接

  6. 发布

在AI出现之前,这个流程中的每一步都需要我花费大量时间和精力。

但现在,当我有意识地构建这个工作流,并将AI工具嵌入其中时,我的效率不仅得到了巨大的提升,而且文章的质量也得到了保障,尤其是以前写文章时的卡顿问题,在AI出现之后,几乎不存在了

2.2 工作流思维的延伸

一旦我开始有意识地构建和优化工作流,这种思维方式就自然而然地延伸到了我生活和工作的其他方面。

我开始有意识做如下事情:

  1. 系统化思考:面对任何任务,我首先思考的不是立即开始,而是如何将其拆解为可管理的步骤。

  2. 识别重复性工作:我对日常工作中的重复性任务变得敏感,总是思考如何将其自动化。

  3. 持续优化:我不再满足于固定的工作方式,而是不断寻找改进的机会,尝试新的工具和方法。

  4. 关注效率与质量平衡:在追求效率的同时,我也更加注重如何保证甚至提升工作质量。

并且在这个迭代的过程中,我也有了一些深刻的认识:

  1. 技术是工具,思维是关键:AI工具固然强大,但真正的变革在于我如何思考和组织我的工作。

  2. 效率不是目的,是手段:提高效率的最终目的是为了让我有更多时间和精力关注真正重要的事情。

  3. 适应变化的能力至关重要:在AI时代,最宝贵的能力不是掌握某项具体的技能,而是能够快速学习和适应新事物的能力。

  4. 创造力的重要性凸显:当常规性工作越来越多地被AI取代,我意识到人类的创造力将变得更加珍贵。

AI的到来,让我开始不断思考效率、工作流程

这种思考本身,就是AI对我生活最深远的影响。

它不仅改变了我的工作方式,更重塑了我的思维模式。

在这个过程中,我不断提炼自己的工作流,不断反思和优化,最终实现的不仅是工作效率的提升,更是自我的成长和进化。


3. 拥抱AI,无需焦虑

在学习和应用AI的过程中,我经常听到周围的人表达对AI的焦虑。

有人担心AI会取代人类的工作,有人急于学习AI以求在职场中保持竞争力。

然而,经过一段时间的深入学习和思考,我逐渐形成了自己的看法。

3.1 AI不是赚钱的捷径,而是能力的放大器

有很多人学习AI是为了赚钱。

但仔细观察后,我发现那些通过AI赚到钱的人,其实并不是因为AI才开始赚钱的。

AI只是让他们原有的赚钱能力得到了放大。

赚钱是一种能力,跟AI并没有太大关系

这让我意识到,如果本身没有相关的业务或技能基础,一味地想着如何通过学习AI来赚钱可能并不明智。

相反,我开始思考如何利用AI来提升自己的效率和能力。

我发现,当我能够熟练地使用AI来提高自己的工作效率时,我对AI的理解也变得更加深入,甚至开始有了一些创新的想法。

所以我的建议是,不要一开始就把注意力放在如何用AI赚钱上。

相反,可以从自身入手,思考如何利用AI提升自己的效率。

例如:

  1. 在写作时,我使用AI辅助生成大纲、扩展内容,这大大加快了我的写作速度。

  2. 在学习新知识时,我让AI为我总结关键点,帮助我更快地理解复杂的概念。

通过这些小小的尝试,逐渐掌握了驾驭AI的能力。

而这种能力,正是在未来可能为我们带来更多机会的关键。

3.2 兴趣驱动,AI带来的无限可能

"兴趣是最好的老师",这句老话在AI时代依然适用。

我发现,当我带着兴趣去学习AI时,学习过程变得轻松而愉快。

更有趣的是,AI又反过来帮助我拓展了兴趣的范围。

通过AI,我发现自己可以尝试更多以前认为遥不可及的事情。这种体验让我感到无比兴奋。

我有一个2月的女儿,之前我会很焦虑该怎么去更好的陪伴她成长。

现在有了AI,我可以通过AI帮我生成睡前故事,我可以帮助她制作绘本,我可以给她制作一个AI对话玩具。我再也不用担心跟她没有共同话题

包括她以后的学习,我也完全不用担心,而我要做的就是多带她做AI做不了的事情,例如运动,例如三观的构成

至于学英语,学数学,学画画等,这些统统都变得不重要

通过学习和使用AI,我感觉自己正在做以下几件事:

  1. 突破原有的能力限制,尝试新的可能。

  2. 将更多的时间投入到真正需要人类创造力的工作中。

  3. 加速学习和成长,不断拓展自己的知识面。

  4. 培养跨学科思维,将不同领域的知识融会贯通。

这些体验让我意识到,AI的真正价值不在于它能帮我们赚多少钱,而在于它能怎样拓展我们的人生可能性。

它就像一把钥匙,为我们打开了一扇扇原本紧闭的大门。


总结

愿我们都能在这个AI时代玩得开心,学得轻松,活得精彩!

LLM基础认知|输入、输出以及上下文长度

通过上一篇内容,我们已经从 API 层面了解了“大语言模型的上下文”究竟是什么。

所谓“上下文”指得就是我们传给 LLM 的消息列表。而当我们通过 API......

awesome-xiaobot

返回 首页