AIGC,全称为AI Generated Content,即人工智能生成内容,是利用人工智能技术自动生成文本、图像、音频、视频等多种类型内容的一种新型内容创作方式。
传统编程,作为软件开发的基础,强调架构设计的严谨性、标准化的操作流程,以及对细节的精确控制。它通常涉及明确的逻辑指令序列,以实现特定功能。
爬虫项目中两者的不同方式
编程首先得有需求,我们要明确需求。对于爬虫项目,如爬取豆瓣电影信息,这要求开发者手动编写逻辑来解析HTML页面,处理网络请求等。我们分析完成这样一个需求的步骤,通过伪代码这一形式把需求分步细化,无论怎样变革,这样的程序员思维是非常实用且重要的。
经典编程的操作
在开发一个后端项目时,开发者会使用如Node.js这样的技术栈,通过编写main.js这样的入口文件来组织和执行程序逻辑,可能包括数据库交互、API接口设计等。
模块加载。
const request = require('request-promise')
const cheerio = require('cheerio')
编写入口函数async function main(),并调用main()。
发送http请求,为了拿到html 。
const URL = "https://movie.douban.com/chart"
const html = await request({
url: URL
})
console.log(html);
将 html字符串加载到内存中let $ = cheerio.load(html)。
获取目标节点。
const movieNodes = $('#content .article .item')
const movieList = []
循环输出内容,保持优秀的编程习惯,用封装思想让我们的代码整洁高效。
for (let i = 0;i < movieNodes.length;i++) {
// 将一段电影的html解析,剥离出去
// 这段功能相对独立 可以复用的
movieList.push(getMovieInfo(movieNodes[i]))
}
编写getMovieInfo方法,实现封装。
const getMovieInfo = function(node) {
let movieInfo = {}
// 将tr加载进内存
let $$ = cheerio.load(node)
let title = $$('.pl2 a').text()
let pic = $$('.nbg img').attr('src')
let info = $$('p.pl').text()
let rating_nums = $$('.rating_nums').text()
movieInfo.title = title
movieInfo.pic = pic
movieInfo.info = info
movieInfo.rating_nums = rating_nums
return movieInfo
}
AI介入编程:优化与革新
[为何引入AI?] 面对日益复杂的需求和海量数据处理任务,传统编程方法往往要求大量重复性劳动和高度的手动调整。引入AI,尤其是自然语言处理(NLP)、机器学习(ML)和深度学习(DL)技术,旨在自动化这些流程,提高开发效率和创新能力。
[AIGC的角色:] 在经典编程中,AI可以接手那些模式化、流程性的任务,比如自动代码生成、智能错误检测与修复、数据分析预处理、甚至是基于上下文的代码建议。以爬虫为例,原本需要手动编写的HTML解析逻辑,现在可以借助AI工具如Cheerio进行简化,而更进一步,AI可以学习网页结构,自动生成解析规则,从而减少人工编写代码的工作量。
const request = require('request-promise')
const cheerio = require('cheerio')
const OpenAI = require('openai')
const client = new OpenAI({
// 凭证 密钥
apiKey: process.env.OPENAI_API_KEY,
baseURL: 'https://api.chatanywhere.tech/v1'
})
async function main() {
const URL = "https://movie.douban.com/chart"
const html = await request({
url: URL
})
console.log(html);
let $ = cheerio.load(html)
const movieNodes = $('#content .article .item')
const movieList = []
let movie_html = ''
for (let i = 0;i < 2;i++) {
movie_html += cheerio.load(movieNodes[i]).html()
}
// console.log(movie_html);
let prompt = `
${movie_html}
这是一段电影列表html,请获取电影名(name),封面链接(pictur),简介(info),评分(score),
评论人数(commentsNumber),请使用括号的单词作为属性名,以JSON的格式返回。
`
const chatCompleton = await client.chat.completions.create({
model: 'gpt-3.5-turbo', // 适合聊天的模型
messages: [
{
role: 'user',
content: prompt
}
]
})
console.log(chatCompleton.choices);
}
通过prompt将获取电影内容这一目标交给AI来完成,也就省去了自己编码获取的操作。或许看起来两者的代码量相差无几,但是可以想象,如果进行的操作更加复杂,不仅仅是循环获得电影的内容呢。
AI与传统编程的融合,意味着开发者能够从繁琐的低效工作中解放出来,专注于更高级别的逻辑设计和创新。大约三分之一的流程性代码工作被AI接手后,开发者能有更多时间投入到解决核心问题、优化用户体验及探索新技术上。这种转变不仅提升了个人的工作效率,也加速了团队的整体研发进度,推动了软件开发向更高层次的智能化迈进。
希望所写这些能够让你对AIGC有所认识,我们一起加油。