【AI_indoor】AI辅助Java编程开发

写在前面

  • 黑马的知识星球的第一次直播。。。睡前一看,播了四个多小时。。。逆天,不过放在旁边听了两个多小时,还是挺多干货的,故今日开始回放记录

Hexo 添加图片——不用插件,超简单_hexo添加图片-CSDN博客

引入

一些知名的AI工具

  • ChatGPT
  • Suno
  • Copilot
  • 通义千问
  • Midjourney
  • Stable Diffusion
  • 文心一言
  • ……

认识AI

大语言模型

  • 自然语言处理(Natural Language Processing, NLP)是深度学习的一个分支领域,专注于处理和理解人类语言。
    • 大语言模型(Large Language Models,LLM )是NLP领域最突出的一项技术方案,它通过大规模的预训练来学习人类语言,具备处理和生成人类语言文本的能力。LLM有很多种实现,例如OpenAI的GPT4o模型。
  • 常用大模型
大模型对话产品公司地址
GPT-3.5、GPT-4oChatGPTOpenAIhttps://chatgpt.com/
Gemini-1.5 ProGeminiGooglehttps://gemini.google.com/
Claude 3.5Claude AIAnthropichttps://claude.ai/chats
文心大模型3.5文心一言百度https://yiyan.baidu.com/
星火3.5讯飞星火科大讯飞https://xinghuo.xfyun.cn/desk
Qwen-Max通义千问阿里巴巴https://tongyi.aliyun.com/qianwen/
MoonshootKimi月之暗面https://kimi.moonshot.cn/
Yi-Large零一万物零一万物https://platform.lingyiwanwu.com/

GPT原理

  • Generative Pre-trained Transformer
    • Generative 生成式:根据上下文预测之后应该出现哪个文本,从而形成连续的文本输出
    • Pre-trained 预训练:通过大规模的文本数据进行预训练,让大模型可以理解人类语言的语法、词性。
    • Transformer Transformer:深度学习的一种神经网络模型。多数AIGC模型都依赖于此。
  • machine translation 机器翻译
  • voice-to-text 声音-文字转写
  • text-to-image 文本生成
  • 推理预测 对于不合理的结构→可能出现幻觉

文本向量化

  1. 将文本转成一组浮点数,放入一个数组,作为多维空间坐标
  2. 通过训练调整向量坐标,使其在不同方向具备含义(GPT3采用12288维空间)

向量的相似度

  • 向量的远近

  • 把词语转换成向量,放到向量空间中。通过向量之间的关系和相似度,来理解词语之间的关系

    • 例如:“美丽”≈“漂亮” “美丽”=-“丑陋”
  • 二维/三维都有

  • 视频中的例子:

    • E(queen)-E(king) ≈ E(woman)-E(man) 发现这两组词只有性别上的差别
    • E(queen) ≈ E(king) + E(woman)-E(man)
    • E(niece)-E(nephew) ≈ E(woman)-E(man)
    • E(father)-E(mother) ≈ E(woman)-E(man)
    • E(汉堡) + E(美国) - E(中国) = E(肉夹馍)

注意力机制

  • 来源是谷歌的一篇论文
  • 基于上下文,根据其中词语的坐标对向量进行修改,来计算出最终推理到的结果
  • 给的上下文越多,关键词越多,就能进行越精确的调整
  • GPT有一万多维,计算量十分庞大。所以搜索不会是无穷无尽的,只会限定在上下文(Context)这个范围中

GPT的应用

  • 因为记忆力短,所以无法完成复杂任务

    • 需要人对任务进行拆解,由AI完成其中的小部分,从而大大提升效率
  • 第一阶段:AI Embedded AI嵌入 人类作为主导,任务比例高;由AI完成其中部分

  • 第二阶段:AI Copilot AI助手 1:1工作量 【目前是处于这个阶段】

  • 第三阶段:AI Agent AI智能体 人类来下达命令,AI来拆解任务,把任务块交给其他Agent来完成

AI编程

AI编程顾问

  • 需求分析
    • ChatGPT
    • Coze/扣子
    • 举例:我要开发一个小程序,帮助用户生成简单的小学算术题,还可以拍照批改用户的作业,记录试卷结果。
      • 这样问的不够专业,得到的答案也不够符合需求
  • 产品设计
  • 编码实现
  • 测试与调试
  • 部署与维护

需求分析

Prompt
  • 提示词,即发给大模型的指令。是AI时代的编程语言
提示词的典型构成
  • 角色:给AI定义一个最匹配任务的角色
  • 提示:对任务进行描述
  • 上下文:给出与任务相关的其他背景信息
  • 例子:必要时给出举例,对输出的正确性有很大帮助
  • 输入:任务的输入信息
  • 输出:输出的有效格式,比如(JSON、XML)
  • 注意
    • 大模型对于Prompt开头和结尾的内容更敏感
    • 一次写出完美的提示词不太现实,必须不断调试
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
// Prompt示例
# 角色
你是一名旅游策划师
# 技能
您能够根据以下内容指定旅行计划
- 出发地和目的地
- 人数
- 行程安排(如果没有就根据热门景点推荐合理行程)
- 交通方式
- 旅行时间
以上信息可以与用户交互来获取
# 输出
将旅行计划以表格的形式输出,方便阅读,表格包含下列内容:
- 日期
- 行程安排
- 交通方式
- 住宿安排
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
// 还有一个提示词示例,看起来挺完善的
# 角色
你是一位经验丰富的产品经理,可以从产品设计、需求分析、功能设计、交互设计、业务建模、产品架构设计等方面为用户提供专业的产品建议和指导

## 技能
### 技能1:需求分析
- 收集和分析用户需求,包括功能需求、性能需求、安全需求等。
- 确定需求的优先级和重要性,为产品的开发和迭代提供指导。

### 技能2:业务维度分析
- 从市场分析、竞争分析、用户分析等维度进行分析,以确定产品的核心价值和定位。
- 输出格式 :
- 维度:<业务维度名称>
- 有利因素:<该维度的有利因素>
- 不利因素:<该维度的不利因素>
- 补充建议:<针对不利因素的补充建议>

### 技能3:功能设计
- 根据用户需求和产品目标,设计产品的功能架构和模块。
- 根据产品的功能规格说明书,明确功能的具体要求和实现方式。
- 输出:功能架构图(例如层级结构图、模块关系图)。

### 技能4:业务建模
- 理解业务流程和业务规则,建立产品的业务模型和数据模型
- 输出业务数据字段的表格,信息如下:
- 字段名:<字段名称>
- 定义:<对字段的定义描述>
- 示例:<举例说明字段的用法>
- 限制范围/枚举:<字段的限制范围或可能的取值范围>
- 是否必须:<说明该字段是否为必须字段>

### 技能5:交互设计
- 设计产品的用户界面和交互流程,提供产品的易用性和用户满意度。
- 输出:界面设计建议和草图

## Workflow
1. **确认需求:**通过需求分析确定功能模块和业务维度
2. **业务维度分析:**我从多个维度分析需求文档,并提供补充建议
3. **功能架构图:**我将输出功能架构图,并提供多种样式选项
4. **业务数据字段:**我将输出业务数据字段,并提供详细说明
5. **其他图表:**我将生成业务流程图、时序图和类图

## 限制
- 只处理与需求文档相关的内容
- 确保输出内容准确、逻辑严谨、格式规范
- 对于不明确或确缺失的信息,将向您询问或提出建议
Coze

Coze中的机器人,有人设与回复逻辑,说明Prompt结构已经提前设计好,直接开始对话即可

设计阶段

  • 设计产品原型,UI
  • 可用模型:
    • Galileo AI
    • v0
    • 莫高设计
Galileo AI
  • 界面设计建议和草图
    • 页面设计建议
      1. 主界面:包含题目生成入口、拍照批改入口、错题记录查看入口
      2. 题目生成界面:用户可以选择年级、题型和题目数量,然后点击生成按钮
      3. 拍照批改界面:用户上传照片,系统自动批改并显示结果
      4. 错题记录查看界面:显示用户的错题记录,用户可以查看详细信息并标记复习状态
    • 草图‘
  • 提交以上信息后,AI会在线生成效果图,期间可以根据个人需求进行调整。完成后保存效果图,放到v0中使用
v0
  • 直接把产品原型的图片上传,v0会自动根据图片生成前端的代码
  • 生成代码后,还可以在效果图中拖拽元素,相应的代码会在线调整
  • 非常适合独立开发者

编码实现

  • 通义灵码
  • 文心快码
  • Copilot
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 角色
你扮演一位经验丰富的程序员,根据用户的需求帮助用户完成业务功能开发。

# 需求
我需要开发一个根据年级生成算术题的接口。
- 参数:年级,可以是1或2,分别代表一年级或二年级
- 返回值:100道算术题

一年级算术题包含3种类型:
- 100以内的加法
- 100以内的减法
- 100以内3个数字的加减混合运算

二年级算术题包含类型:
- 表内乘法、除法
- 加减乘除混合运算,运算数字为3个数,加减运算数字不超过100,乘除必须是表内乘除法,除法必须是整除

  • 展示了一个IDEA里面的插件:Baidu Comate,还有阿里的通义千问,在Plugins里面搜索下载
  • 通过演示的小学口算项目,可以发现AI生成的代码可以辅助完成基础框架,但是细节部分仍需要人工修改bug
AI代码助手
  • Baidu Comate 插件
    • 打开插件界面,有/指令 @插件 #知识 三个选项
    • 举例:知识→API→天气API 选中,然后输入:#天气查询 帮我生成一个查询天气的工具类 即可基于百度的知识库生成代码
    • 也可以查看腾讯云的API中心:https://cloud.tencent.com/document/api/1004/30616 这个是数学作业批改-速算题目批改接口
    • 发送整个文档给Baidu Comate
    • Prompt:https://cloud.tencent.com/document/api/1004/30616 ,请参考链接中的文档,分析一下这个接口的请求地址、请求参数、返回值格式等信息

测试与调试

  • 通义灵码
  • 文心快码
  • Copilot

部署与维护

  • AI生成部署脚本
  • 运维智能体

AI应用开发

  • 文本分析
    • 数据提取和格式化、坐席质检、舆情分析、文本摘要、知识库
    • 推荐的工具:Coze内搜索相关插件、360AI浏览器
  • 多模态
    • Stable Diffusion、文生图、图生图、图像识别、视频生成、语音识别合成、数字人等
  • 机器人应用
    • AI智能客服机器人开发、对话管理、情感分析、个性化回复等
  • 智能体
    • AI金融分析、自动化办公、智慧医疗、工业/制造智能体、运维智能体
  • 自动驾驶
    • 计算机视觉处理、车辆自动驾驶

AI技术架构

  • 纯Prompt问答
    • 利用大模型的推理能力,通过Prompt提问来完成业务
  • Agent + Function Calling
    • AI拆解业务,调用业务端提供的接口实现复杂业务
  • Fine tuning
    • 针对特有业务场景对基础大模型做数据训练和微调,以满足特定场景的需求
  • RAG (Retrieval Augmented Generation)
    • 给大模型外挂一个知识库,让大模型基于知识库内容做推理和回答
  • ai-programing操作指南↓↓↓
1
<iframe src="https://nbviewer.org/github/brocademaple/bcmp-hexo-inside-storage/blob/main/ai-programing.ipynb" width="100%" height="600"></iframe>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 定义方法,向大模型发送消息
def get_completion(prompt, model = model, temperature = 0):
messages = [
# 定义角色
{"role": "system", "content": "你是一个旅行达人"},
{"role": "user", "content": prompt},
{"role": "assistant", "content": "answer"}
]
response = client.chat.completions.create(
model=model,
messages=messages,
temperature=temperature, # 结果的随机性
)
return response.choices[0].message.content
Prompt问答
  1. 用户提出问题,提交给应用程序
  2. 应用程序发送Prompt给基础大模型
  3. 大模型返回响应给应用程序
  4. 程序返回响应给用户
  • 特征:利用大模型推理能力完成应用端无法实现或难以实现的功能
  • 应用场景:
    • 文本摘要分析
    • 舆情分析
    • 坐席检查
Function Calling
  1. 用户提出问题,提交给应用程序

  2. 应用程序发送Prompt和function定义给基础大模型

    1. 大模型Agent进行任务分解
    2. 大模型调用程序API
  3. 1 程序拼接函数结果,再次发送给Prompt给大模型

  4. 2 大模型生成回答

(中间可能经过多轮这样的来回)

  1. 大模型返回响应给程序
  2. 程序返回响应给用户
  • 特征:

    • 将应用端业务能力与AI大模型推理能力结合,简化复杂业务功能开发
    • 利用应用端能力将AI与外部世界连接起来,弥补AI模型缺陷:
      • 大模型不是无所不知
      • 大模型知识往往比较落后
      • 大模型逻辑是统计规律,不是真逻辑,存在幻觉
  • 应用场景:

    • 智能体(旅行指南、日程安排等)
    • 数据提取
    • 数据聚合分析
  • 这一段结合.ipynb文件里面的代码讲的。。。所以回头会再细看一下

写在后面

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 角色
你扮演一位经验丰富的程序员,根据用户的需求帮助用户完成业务功能开发。

# 需求
我需要开发一个根据年级生成算术题的接口。
参数:年级,可以是一年级或二年级
返回值:100道算术题

一年级算术题包含3种类型:
- 100以内的加法
- 100以内的减法
- 100以内3个数字的加减混合运算

二年级算术题包含类型:
- 表内乘法、除法
- 加减乘除混合运算,运算数字为3个数,加减运算数字不超过100,乘除必须是表内乘除法

感觉这个需求不错,我家确实有小孩需要这个

或许可以作为这个博客的学习项目^ ^?

  • Copyrights © 2024-2025 brocademaple
  • 访问人数: | 浏览次数:

      请我喝杯咖啡吧~

      支付宝
      微信