来搞点Open一点东西吧!!

前言

根据上一篇文章:# 思维的转变:向AIGC时代迈出第一步https://juejin.cn/post/7367658043440037940 相信大家已经有了一个思维的大跳跃(当然如果有些忘记的话,我们可以先回去上一篇内容重新过一下哦),那么现在我们肯定是要对AIGC继续保持学习啦。毕竟AIGC的浪潮如此之汹涌,它不仅降低了编程门槛,还提升了开发效率等等好处,怎么能不心动呢?好咯,今天我们就来学习点open一点的东西吧。

面向未来:从传统编程到面向LLM编程的跨越

在计算机科学的历史长河中,编程范式的演进一直是推动技术革命的关键力量。从最初的机器语言、汇编语言,到后来广泛采用的面向过程编程(POP)、面向对象编程(OOP),每一步进化都让软件开发更加高效、灵活和可维护。如今,随着大型语言模型(LLM)的崛起,我们正站在一个新的编程范式变革的门槛上------面向LLM编程,这标志着人工智能与软件开发的深度融合,预示着编程的未来方向。

面向对象编程(OOP):曾经的辉煌

对于一些有编程基础的你们,我相信你们肯定知道面向对象编程的核心是什么,不过我还是要提一嘴哈哈哈。面向对象编程的核心思想在于抽象、封装、继承和多态,OOP鼓励开发者将现实世界中的事物抽象成对象,每个对象包含数据(属性)和操作数据的方法(行为)。

  • 抽象:提炼出问题域中的关键特征,形成类和对象的概念。
  • 封装:隐藏对象的内部实现细节,仅暴露必要的接口,增强模块间的独立性。
  • 继承:子类可以继承父类的属性和方法,减少代码重复,支持软件的层次结构设计。
  • 多态:允许使用父类接口引用子类对象,实现接口的多种表现形式,提高代码的灵活性。

面向LLM编程:编程范式的革新

近年来,随着机器学习特别是深度学习技术的飞速发展,大型语言模型成为人工智能领域的一颗璀璨新星。这些模型通过吸收互联网上海量文本数据进行训练,学会了理解、生成和推理自然语言,展示了令人惊叹的泛化能力。以OpenAI的通义千问为例,它不仅能回答问题、创作故事、编写代码,还能进行逻辑推理和情感交互,展现了AI在理解和生成复杂内容方面的巨大潜力。

面向LLM编程,是一种新兴的编程思维,它利用LLM的强大能力,将复杂的逻辑处理和内容生成任务委托给模型,而程序员更多地聚焦于定义问题、设定边界条件和调用LLM的服务。这种模式下,编程不再是直接编写详细的逻辑步骤,而是设计如何与智能体交互,以最自然的方式表达需求。

  • 指令驱动:开发者通过高级指令或自然语言描述任务,LLM自动解析并执行。
  • 人机协作:程序员与LLM共同参与问题解决,各司其职,相互补充。
  • 动态适应:LLM能够根据上下文和反馈动态调整输出,增强应用的智能性和适应性。
  • 快速迭代:减少编码时间,加速产品原型和功能的验证,促进快速迭代和创新。

首先,我们需要下载一下node nodejs.org/en 随后在命令行中输入node -v,来判断是否安装成功

如果是这样,那么恭喜你安装成功咯 之后我们打开vscode,新建一个文件夹chat,并在当前目录下快速创建了一个新的index.js项目,打开集成终端

在集成终端中输入npm init -y

npm init -y 是在Node.js环境下使用npm(Node Package Manager,节点包管理器)时的一个命令组合,用于快速初始化一个新的项目。具体来说:

  • npm init:这个命令会引导你创建一个package.json文件。package.json是Node.js项目的配置文件,里面包含了项目的基本信息,如名称、版本、描述、作者、入口文件、依赖包等。通常执行时,npm会提示你输入一系列问题来填充这些信息。

  • -y :这是一个选项,意思是自动接受所有默认值,无需用户逐一回答初始化过程中的提问。当你添加这个选项后,npm将直接使用默认配置生成package.json文件,跳过互动问答环节,这对于快速创建项目原型或者测试非常有用。

然后,我们再继续在终端中输入npm i openai

npm i openai 是一条在命令行中使用的npm(Node Package Manager,节点包管理器)命令,意在安装名为"openai"的安装包。这个命令是安装OpenAI API客户端库到你的项目中的快捷方式,允许你利用OpenAI的服务和模型(如GPT-3等)进行开发。具体来说:

  • npm inpm install 的简写形式,用于安装Node.js项目所需的依赖包。
  • openai 是你要安装的包的名称,这里指的是能够与OpenAI API交互的库。

执行这条命令后,npm会从npm registry查找名为"openai"的包,并将其下载到项目的node_modules目录中。

之后,拿到我们一开始创建的index.js,输入const OpenAi = require("openai");来调用OpenAI这个包。

javascript 复制代码
const OpenAi = require("openai"); //require关键字  导入该文档
//实例化OpenAI 配置ai
const client = new OpenAi({
  apiKey: "sk-0icNotaB0sMgI1xQmk5wAV4iXbgHSH9NV3zmAdI1OJPxFPBQ",
  baseURL: "https://api.chatanywhere.tech/v1",
});

其中:

  • apiKey是 凭证 、密钥 、算力收费( token)
  • baseURL 是 转发地址

PS:我的这个apiKey是免费的,但是可能由于大多人用了,或者过期了,导致无法使用。

OK,接下来我们来写一下主函数main:

ini 复制代码
async function main() {
  const prompt =
  `<tr class="item">
    <td width="100" valign="top">
            <a class="nbg" href="https://movie.douban.com/subject/35503073/" title="对你的想象">
                <img src="https://img1.doubanio.com/view/photo/s_ratio_poster/public/p2905327559.webp" width="75" alt="对你的想象" class="">
            </a>
    </td>
    <td valign="top">
        <div class="pl2">
            <a href="https://movie.douban.com/subject/35503073/" class="">
                对你的想象
                / <span style="font-size:13px;">关于你的想法 / 概念中的你</span>
            </a>
            <p class="pl">2024-03-16(西南偏南电影节) / 2024-05-02(美国网络) / 安妮·海瑟薇 / 尼古拉斯·加利齐纳 / 艾拉·鲁宾 / 安妮·玛莫罗 / 瑞德·斯科特 / 帕芮·马费尔德 / 乔丹·亚伦·霍尔 / 玛蒂尔达·吉安诺普洛斯 / Meg Millidge / 奇克·曼诺哈 / Ray Cham / Jaiden...</p>
                <div class="star clearfix">
                        <span class="allstar30"></span>
                        <span class="rating_nums">5.9</span>
                        <span class="pl">(21308人评价)</span>
                </div>
        </div>
    </td>
</tr>
这是一段电影的HTML,请获取电影名(name),封面链接(picture),简介(info),评分(score),评论人数(commentsNumber).请使用括号的单词作为属性名,用JSON的格式返回.
 `;
  const chatCompletion = await client.chat.completions.create({
    model: "gpt-3.5-turbo", //适合聊天的模型  
    messages: [
      {
        role: "user",
        content: prompt,
      },
    ],
  });
  console.log(chatCompletion.choices);
}
//运行主函数
main();
  • async function :表明main函数内部有异步任务 async + await
  • const prompt =:而prompt则是设置的一个提示词
  • model:是设置的一个大模型,这里用的是gpt-3.5-turbo,因为这个模型适合聊天

然后,就该实现一下了吧,一样的,打开集中终端输入node index.js

这里生成的content内容取决于你用messages传入的,我们也可以自己定义prompt字符串。

总结

欧克欧克,本章到此就结束了,这次我们将大模型直接融入代码中,这样是否又让你感到更加兴奋和期待了呢?将大型语言模型直接嵌入到代码中,确实是一个创新的实践,它打破了传统软件开发的界限,为应用程序增添了前所未有的灵活性和智能。 总之,大模型与代码的深度融合,无疑为技术进步和创新应用开辟了新纪元,让人既兴奋又充满期待。接下来的每一章,都可能是探索AIGC的一步,让我们继续携手前行,在AIGC的浪潮中共同创造更多的可能。

快去检查一下看看你的输出结果是不是和我一样呢?

如果我的文章对你有帮助的话,不妨点点赞点点关注,也可以在评论区告诉我哪些部分特别有用,或者还想了解更多信息的地方。当然有些的不好的地方,也欢迎各位大佬指正一下😁

相关推荐
春末的南方城市7 小时前
FLUX的ID保持项目也来了! 字节开源PuLID-FLUX-v0.9.0,开启一致性风格写真新纪元!
人工智能·计算机视觉·stable diffusion·aigc·图像生成
我算是程序猿11 小时前
用AI做电子萌宠,快速涨粉变现
人工智能·stable diffusion·aigc
哪 吒11 小时前
吊打ChatGPT4o!大学生如何用上原版O1辅助论文写作(附论文教程)
人工智能·ai·自然语言处理·chatgpt·aigc
AI绘画君14 小时前
Stable Diffusion绘画 | AI 图片智能扩充,超越PS扩图的AI扩图功能(附安装包)
人工智能·ai作画·stable diffusion·aigc·ai绘画·ai扩图
乔代码嘚17 小时前
AI2.0时代,普通小白如何通过AI月入30万
人工智能·stable diffusion·aigc
XiaoLiuLB18 小时前
ChatGPT Canvas:交互式对话编辑器
人工智能·自然语言处理·chatgpt·编辑器·aigc
学习前端的小z2 天前
【AIGC】ChatGPT提示词解析:如何打造个人IP、CSDN爆款技术文案与高效教案设计
人工智能·chatgpt·aigc
wgggfiy2 天前
chatgpt学术科研prompt模板有哪些?chatgpt的学术prompt有哪些?学术gpt,学术科研
论文阅读·人工智能·gpt·chatgpt·prompt·aigc
⊙月3 天前
CMU 10423 Generative AI:lec15(Scaling Laws 大规模语言模型的扩展法则)
人工智能·aigc
贪玩懒悦3 天前
用langchain+streamlit应用RAG实现个人知识库助手搭建
人工智能·ai·语言模型·langchain·aigc