Tea也能喝出不一样的编程思想

169 阅读3分钟

Tea也能喝出不一样的编程思想

模块化方法是一种将复杂系统分解为较小、可管理的模块的设计方法。这些模块可以独立设计、开发和测试,然后组合在一起形成完整的系统。以下是模块化方法的一些特点和步骤:

  1. 系统分解:将系统分解为多个模块,每个模块具有明确的功能和接口。
  2. 模块设计:对每个模块进行详细设计,包括其内部结构、算法和数据结构
  3. 接口定义:定义模块之间的接口,包括输入和输出参数,以确保模块之间的通信和协作。
  4. 模块实现:使用适当的编程语言和技术实现每个模块。
  5. 模块测试:对每个模块进行单独测试,以确保其功能的正确性和可靠性。
  6. 系统集成:将各个模块组合在一起,进行系统集成测试,以确保整个系统的功能和性能。
  7. 维护和升级:可以独立地对模块进行维护和升级,而不会影响其他模块的功能。

让我们来一起泡杯茶吧

泡茶的步骤

  • 把水煮沸
  • 沸水浸泡茶叶
  • 把茶水倒进杯子
  • 加柠檬
<script>Tea = function (type) {
        this.type = type;
        console.log("准备泡一杯" + this.type);
      };
      //对象  prototype
      Tea.prototype.boilWater = function () {
        console.log("把水煮沸");
      };
      Tea.prototype.steepTeaBag = function () {
        console.log("用沸水浸泡茶叶");
      };
      Tea.prototype.pourInCup = function () {
        console.log("将茶水倒进杯子");
      };
      Tea.prototype.addLemon = function () {
        console.log("加柠檬");
      };

      //接口,模板方法接口
      Tea.prototype.init = function () {
        this.boilWater();
        this.steepTeaBag();
        this.pourInCup();
        this.addLemon();
      };

      // 当以new的方式被运行
      var greenTea = new Tea("绿茶");
      var wlTea = new Tea("乌龙茶");
      var Lemon = new Tea("柠檬茶");
    </script>
  • Tea 和绿茶之间没有血缘关系,Tea是原型对象

  • Tea 是可执行对象,构建我们的对象 this指向的这些属性就是实例的属性模板

  • Tea 通过protopyte 添加一些方法,都可以以它为原型的对象共享(public)

Tea 在这里被定义为一个函数,实际上是作为一个类(构造函数)来使用。

通过protptype添加一些方法被共享

Tea.prototype.boilWater = function () {
        console.log("把水煮沸");
      };
      Tea.prototype.steepTeaBag = function () {
        console.log("用沸水浸泡茶叶");
      };
      Tea.prototype.pourInCup = function () {
        console.log("将茶水倒进杯子");
      };
      Tea.prototype.addLemon = function () {
        console.log("加柠檬");
      };

用模块化方法,将方法进行组合和封装

//接口,模板方法接口
      Tea.prototype.init = function () {
        this.boilWater();
        this.steepTeaBag();
        this.pourInCup();
        this.addLemon();
      };


创建实例对象并调用接口

      var Lemon = new Tea("柠檬茶");

AI泡茶

话不多说,直接上代码

const OpenAI = require("openai");
const dotenv = require("dotenv");
dotenv.config();
const client = new OpenAI({

    apiKey: process.env.OPENAI_KEY,
    baseURL: 'https://api.chatanywhere.tech/v1'
})
const getChatResponse = async function (model, prompt) {
    const chatCompletion = await client.chat.completions.create({
        model: model, //适合聊天的模型 很多种
        messages: [
            {
                role: 'user',
                content: prompt
            }
        ]
    })
    return chatCompletion.choices[0].message.content;
}
const main = async () => {
    //AIGC 优势就是处理文本 ,生成内容
    const text = `泡一杯茶很容易。首先需要把水烧开
    在等待期间,哪一个杯子并把茶包放进去
    一旦水开了,就把它倒到茶包里面
    等待一会把茶叶浸泡,几分钟之后取出茶包
    如果你愿意,可以加一些糖或者牛奶调味
    就这样,您可以享受一杯美味的茶了
    `
    const prompt = `
    您将获得由三个引号括起来的文本。
    如果它包含一系列的指令,则需要按照以下格式重新编写这些指令,

    第一步 - ,,,
    第二步 - ,,,
    。。。
    第n步 - 。。。
    如果文本中不包含一指令,则直接写‘未提供步骤’
    """${text}"""

    `
    const result =await getChatResponse('gpt-3.5-turbo',prompt)
    console.log(result)
}
main();

环境准备

首先,我们需要为项目创建一个基础的Node.js环境。在命令行中执行npm init -ynpm i openainpm i dotenv,将快速初始化一个新的Node.js项目,将OpenAI的包和dotenv库添加到项目中,随后导入模块。(其中使用dotenv的来存储敏感信息,确保密钥不被直接暴露在源代码中或版本控制系统里)

1716456948645.png

将流程控制类问题 传统编程和 AIGC 都可以解决

对传统编程来说就是降维打击