很急很急!快快认识AIGC!

296 阅读3分钟

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有所认识,我们一起加油。