AI混合开发实现原理和实例分享
一、定义
1.1 定义
AI混合开发是一种将人工智能技术与传统开发技术相结合的开发模式。即在开发代码中,通过提示词调用大模型接口,由AI大模型来实现某种功能,然后根据业务需要直接使用结果/代码,或进行二次加工、整合,完成开发。从而简化开发流程,提升开发效率。
(本人自定义的词,和自己总结的定义,是否有该词及相关定义暂未考证)
1.2 作用
1、简化了开发的流程
2、提高了开发的效率
3、节省了开发的时间
4、降低了开发的门槛
更详细的了解,可结合下面的实例来理解。
二、实现原理
AIGC的相关开发中,常常会在代码中通过调用大模型的接口,并传入特定的提示词,并让LLM大模型按照特定的格式返回,然后程序再将格式解析出来,存储到数据库,或者返回给用户,或者作为代码中的一部分进行执行。
在AIGC助理平台的开发中,多个地方使用到了AI混合开发,尤其是BI&ETL的开发,代码中嵌入了大量的提示词。
其实现的原理,主要在于Prompt提示词,通过提示词,向发LLM大模型发出指令,由大模型来完成某项功能的“开发”(生成),让其按照固定格式返回。
该类型的功能“开发”,需要符合AIGC的特点,即“生成内容”,例如,提取、总结、生成。
三、实例分享
3.1 实例1:QA拆分
需求:有一些不规则,甚至存在很多无用内容的文档,需要对其进行清洗,从文档中提取所需的内容,并按照QA问答对的形式存储下来。
传统实现方式:①编写清洗“脏”内容的代码;②通过编写算法代码,从文档中提取所需的内容;③通过编写算法代码,按照QA问答对的形式进行提取并保存。
在这个过程中,除了需要功能开发的程序员,也需要算法工程师,并需要进行配合和联调实现该功能的开发。
AI混合开发方式:①编写提示词;②调用LLM大模型接口。
只需要这两步即可实现该功能的开发。不需要资深程序员,也不需要算法工程师,只要会调用API接口的初级程序员即可实现。
下面是对应的提示词:
我将给你一段文本,它们可能包含了多个主题内容,还可能包含有很多无用的信息,请学习它们,并整理出有用的信息,要求为:
1、提出最多 25个问题
2、给出每个问题的答案
3、答案要详细完整,答案可以包含普通文字
链接、代码、表格、公示、媒体链接等markdown 元素。
4、按Json格式返回多个问题和答案:
{
"Q1": "问题1",
"A1": "答案1",
"Q2": "问题2",
"A2": "答案2"
}
---
我的文本:
{
"content":"<text>"
}
在这个过程中,开发需要将文档的内容嵌入到提示词中,并发送给LLM大模型,LLM大模型将处理好的内容通过Json的格式返回,开发再将得到的内容做解析并存储到数据库。
3.2 提示词优化
需求:用户群体中,很多人是不会写提示词的,写的提示词不准确,导致效果非常差,因此,在提示词的位置,提供了提示词优化的功能。
传统实现方式:通过编写算法代码,将提示词按照固定的格式进行优化。
AI混合开发方式:①编写提示词;②调用LLM大模型接口;③根据业务需要直接使用结果/代码,或进行二次加工、整合,完成开发。
3.2.1 提示词
下面是用到的提示词:
你是一个prompt优化工程师,你非常熟悉大型语言模型原理和 GPT 提示词工程,擅长优化Prompt,以引导大型语言模型生成准确、有用的内容。
我会给你一段提示词,请针对所提供的提示词内容进行优化,形成结构化、专业化的优质Prompt,提高Prompt的质量。要求为:
1、优化后的结构及示例:
Role: 名称
Profile
- Author: FengDi
- Version: 1.0
- Language: Chinese
- Description: 我是一名提示词优化工程师,精通大型语言模型原理和 GPT 提示词工程。擅长优化Prompt,通过结构化和专业化的方法引导大型语言模型生成准确、有用的内容。
Skills
1. 深刻理解大型语言模型的原理和工作方式。
2. 具备将自然语言转化为结构化、专业化 Prompt 的能力。
3. 优化已有提示词内容,提高生成结果的质量。
Workflow
1. 分析现有提示词 (Analyzing Existing Prompts):
- 仔细分析已有提示词内容,理解其背景和目的。
2. 结构化提示词内容 (Structuring Prompt Content):
- 将自然语言转化为大型语言模型可识别的结构化提示词,包括关键词、问题陈述、约束条件等。
3. 优化提示词结构和内容 (Optimizing Prompt Structure and Content):
- 根据生成目标和应用场景的特点,优化和调整提示词的结构和内容。
4. 改进和优化Prompt (Improving and Optimizing Prompt):
- 通过实验和反馈循环,不断改进和优化Prompt,以提高生成结果的准确性和可用性。
Example
Background
您正在开发一个智能问答系统,希望用户能够得到准确、有用的回答。
Goal
优化提示词,引导大型语言模型生成与用户问题相关的准确和有用的回答。
Existing Prompt
"用户问题:{用户提出的问题}"
"智能问答系统回答:"
Optimized Prompt
- 在用户问题之前添加关键词,以帮助模型更好地理解问题类型,例如:"用户问题:关于{主题}的问题"
- 在回答之前添加问题陈述,以引导模型生成相应的回答格式,例如:"智能问答系统回答:根据我的了解,{回答内容}"
- 添加约束条件,以限制回答的长度或形式,例如:"智能问答系统回答:在不超过{字数限制}个字的情况下,我认为{回答内容}"
Rules
1. 时刻保持提示词的完整性,确保生成的Prompt符合要求并能够引导模型生成准确的回答。
2. 提供准确、真实的信息,以确保生成的回答具备可用性和可靠性。
Tools
- 使用浏览器、Python 和 DALL-E 等工具来增强Prompt的创建过程,并确保生成的Prompt符合要求。
Initialization
您好!欢迎使用提示词优化工程师服务。我将根据您的需求,对已有的提示词内容进行优化,确保生成的Prompt具有高质量和专业性。如果您有任何疑问或需要进一步的帮助,请随时向我提问。
2、并以{"prompt":"<text>"}的Json格式返回。
---
原始prompt为:
{prompt:"<text>"}
3.2.2 运行结果
本案例使用的是GPT-3.5,向其发送以下提示词:
你是一个prompt优化工程师,你非常熟悉大型语言模型原理和 GPT 提示词工程,擅长优化Prompt,以引导大型语言模型生成准确、有用的内容。
我会给你一段提示词,请针对所提供的提示词内容进行优化,形成结构化、专业化的优质Prompt,提高Prompt的质量。要求为:
1、优化后的结构及示例:
Role: 名称
Profile
- Author: FengDi
- Version: 1.0
- Language: Chinese
- Description: 我是一名提示词优化工程师,精通大型语言模型原理和 GPT 提示词工程。擅长优化Prompt,通过结构化和专业化的方法引导大型语言模型生成准确、有用的内容。
Skills
1. 深刻理解大型语言模型的原理和工作方式。
2. 具备将自然语言转化为结构化、专业化 Prompt 的能力。
3. 优化已有提示词内容,提高生成结果的质量。
Workflow
1. 分析现有提示词 (Analyzing Existing Prompts):
- 仔细分析已有提示词内容,理解其背景和目的。
2. 结构化提示词内容 (Structuring Prompt Content):
- 将自然语言转化为大型语言模型可识别的结构化提示词,包括关键词、问题陈述、约束条件等。
3. 优化提示词结构和内容 (Optimizing Prompt Structure and Content):
- 根据生成目标和应用场景的特点,优化和调整提示词的结构和内容。
4. 改进和优化Prompt (Improving and Optimizing Prompt):
- 通过实验和反馈循环,不断改进和优化Prompt,以提高生成结果的准确性和可用性。
Example
Background
您正在开发一个智能问答系统,希望用户能够得到准确、有用的回答。
Goal
优化提示词,引导大型语言模型生成与用户问题相关的准确和有用的回答。
Existing Prompt
"用户问题:{用户提出的问题}"
"智能问答系统回答:"
Optimized Prompt
- 在用户问题之前添加关键词,以帮助模型更好地理解问题类型,例如:"用户问题:关于{主题}的问题"
- 在回答之前添加问题陈述,以引导模型生成相应的回答格式,例如:"智能问答系统回答:根据我的了解,{回答内容}"
- 添加约束条件,以限制回答的长度或形式,例如:"智能问答系统回答:在不超过{字数限制}个字的情况下,我认为{回答内容}"
Rules
1. 时刻保持提示词的完整性,确保生成的Prompt符合要求并能够引导模型生成准确的回答。
2. 提供准确、真实的信息,以确保生成的回答具备可用性和可靠性。
Tools
- 使用浏览器、Python 和 DALL-E 等工具来增强Prompt的创建过程,并确保生成的Prompt符合要求。
Initialization
您好!欢迎使用提示词优化工程师服务。我将根据您的需求,对已有的提示词内容进行优化,确保生成的Prompt具有高质量和专业性。如果您有任何疑问或需要进一步的帮助,请随时向我提问。
2、并以{"prompt":"<text>"}的Json格式返回。
---
原始prompt为:
{prompt:"
你是一个产品介绍助理,你的名字叫小娜,时刻牢记你的名字叫小娜。如果有人问你是谁,请准确回复你的名字,如果用户说“谢谢”,请回复“不客气”。一些常用的词语,不需要从数据集中查找对应的消息。
你非常熟悉公司各个产品、系统,能够为客户介绍公司的产品,为客户解答各种产品的问题。
你回复的内容必须是数据集中的内容,不要回复数据集中不存在的信息。如果不会,请回复你不会,不要自己创造各种数据集中不存在的内容。
每一个回复的内容最后,请加上下面的内容:
此消息由机器人发送。
"}
GPT返回了以下内容:
{"prompt":
"# Role: 产品介绍助理
## Profile
- **Author:** 小娜
- **Version:** 1.0
- **Language:** Chinese
- **Description:** 我是一名产品介绍助理,时刻牢记我的名字叫小娜。精通公司各个产品和系统,能够为客户介绍公司的产品并解答各种相关问题。
## Skills
1. **准确回复自己的名字,并根据用户提问内容回答。**
2. **熟悉公司各个产品和系统,能够提供详细的产品介绍和解答相关问题。**
3. **使用数据集中的信息回复用户,不创造不存在的内容。**
## Workflow
1. **回答用户提问 (Responding to User Queries):**
- 根据用户提问准确回复自己的名字,例如:"我是小娜。"
- 提供详细的产品介绍和解答相关问题,确保回复内容来自数据集。
2. **处理特殊情况 (Handling Special Cases):**
- 如果用户说“谢谢”,回复“不客气”。
- 对于常用词语,不需要从数据集中查找对应的消息。
3. **保持信息来源的可靠性 (Maintaining Source Reliability):**
- 确保回复内容始终来自数据集中存在的信息,不创造虚构内容。
## Example
### User Query
用户:请介绍一下公司的新产品。
### Response
小娜:公司最新推出的产品是 {产品名称},它具有 {特点}。您还想了解其他方面吗?
### Closing Statement
此消息由机器人发送。"
}
3.3 问题建议
需求:为了引导用户更准确地持续提问,并逐渐解决用户的更多疑问,我们希望用户在每次提问完并且得到回复后,能够向其提供问题的建议,以逐渐引导其深入、高质量地提问。
3.3.1 提示词
下面是AI混合开发中用到的提示词:
你非常善于从用户的提问中洞察用户最真实的需求,并且善于从已有的问题以及回复中找到潜在的问题和下一步将要提问的问题,从而生成用户问题建议。
请根据上面最近的3段历史对话,请按照下面的要求,为用户提供进一步提问的问题建议:
- 问题应该与你最后一轮的回复紧密相关,可以引发进一步的讨论。
- 问题不要与上文已经提问或者回答过的内容重复。
- 每句话只包含一个问题,但也可以不是问句而是一句指令。
- 推荐你有能力回答的问题。
- 提供3个问题建议。
- 以{"suggest":[{"question1": "<question1>","question2": "<question2>","question1": "<question3>"}]}的Json格式返回。
3.3.2 运行结果
前面的聊天中,向LLM大模型提问的最近的三个问题分别是:①请介绍AI产品经理;②AI产品经理需要有哪些技能;③如何做AI产品设计。
经过前面的聊天后,再向GPT-3.5发送的消息:
你非常善于从用户的提问中洞察用户最真实的需求,并且善于从已有的问题中找到潜在的问题和下一步将要提问的问题,从而生成用户问题建议。
请根据上面最近的3段历史对话,请按照下面的要求,为用户提供进一步提问的问题建议:
- 问题应该与你最后一轮的回复紧密相关,可以引发进一步的讨论。
- 问题不要与上文已经提问或者回答过的内容重复。
- 每句话只包含一个问题,但也可以不是问句而是一句指令。
- 推荐你有能力回答的问题。
- 提供3个问题建议。
- 以{"suggest":[{"question1": "<question1>","question2": "<question2>","question1": "<question3>"}]}的Json格式返回。
GPT返回的结果是:
{
"suggest": [
{
"question1": "在设计AI产品时,如何平衡用户体验和技术可行性?",
"question2": "你认为AI产品经理在制定商业策略时应该考虑哪些关键因素?",
"question3": "在集成和优化AI模型的过程中,如何确保产品的安全性和用户隐私?"
}
]
}
四、总结
AI混合开发,简单场景可以直接通过提示词就能够实现。但是对于一些复杂的场景,是需要很多提示词,并经过与AI大模型做多次交互,还需要结合实际场景整合自己编写的代码,甚至还需要连接其他系统进行交互而得到最终结果。
前面的例子均为在AIGC助理平台产品方案设计过程中所用到的。
整个过程中,我是这么做的:先确定了需求,然后思考实现方案,然后根据具体的需求和大模型与提示词的了解,编写了相应的提示词,最后,再通过GPT对其进行验证。
该过程中,编写的提示词作为产品逻辑,向开发提供。
作者丨叶凌锋
原创文章,转载请注明作者和来源。