【用AI写周报,“卷死”同事】打造一款自动生成周报的微信小程序

2023-05-16

文章目录

  • 前言
  • 步骤1:创建一个ChatGPT账号
  • 步骤2:创建一个微信小程序并配置API。
  • 步骤3:在微信开发者工具中创建一个新的微信小程序项目
  • 步骤4:创建ChatGPT API云函数
  • 步骤5:创建UI界面
  • 步骤6:创建发送邮件的云函数
  • 步骤7:部署并测试
  • 总结
  • 写在最后

在这里插入图片描述

前言

在这里插入图片描述

作为一名打工人,每天提交日报、每周周报,成为公司考核的要求。可是作为一名程序猿,不知道大家有没有像我一样,下班之后都要绞尽脑汁去思考如何提交一份工作内容丰富的日报?而且想写出一份内容丰富、情文并茂的日报都会消耗大量时间。

今天就带大家基于OpenAI开发一个生成周报的微信小程序,只需通过AI就可以帮助大家在公司卷出新高度。

下面是实现微信小程序接入ChatGPT,根据前端、后端、设计师、产品、架构师等职位实现一个周报生成器的具体步骤和示例代码。

步骤1:创建一个ChatGPT账号

创建一个ChatGPT账号并获取API密钥。您需要访问ChatGPT官网(https://www.openai.com/)注册一个账号,并在控制台中创建一个API密钥。

步骤2:创建一个微信小程序并配置API。

您需要访问微信公众平台(https://mp.weixin.qq.com/)创建一个小程序,并在小程序后台中配置ChatGPT API密钥。具体步骤如下:

在小程序后台中打开开发设置,将服务端口配置为443,并在“服务器域名”中添加“api.openai.com”和“api.chat-api.com”

步骤3:在微信开发者工具中创建一个新的微信小程序项目

首先,您需要在微信开发者工具中创建一个新的微信小程序项目。然后,您可以使用微信开发者工具中的代码编辑器创建UI界面和逻辑。

步骤4:创建ChatGPT API云函数

在微信小程序中,您可以使用云开发来创建云函数。首先,您需要打开微信开发者工具中的云开发控制台,然后单击“函数服务”>“新建函数”。接下来,您可以选择Node.js作为运行环境,并输入以下代码:

const axios = require('axios');

exports.main = async (event) => {
  const { text, model } = event;

  const headers = {
    'Content-Type': 'application/json',
    'Authorization': `Bearer ${process.env.OPENAI_API_KEY}`,
  };

  const data = {
    'model': model,
    'prompt': text,
    'temperature': 0.5,
    'max_tokens': 256,
    'stop': ['\n'],
  };

  const response = await axios.post('https://api.openai.com/v1/engines/davinci-codex/completions', data, { headers });

  return response.data.choices[0].text.trim();
};

这是调用ChatGPT API的云函数代码。请确保将OPENAI_API_KEY替换为您自己的API密钥。

步骤5:创建UI界面

在微信小程序中,您可以使用WXML、WXSS和JavaScript来创建UI界面。以下是一个简单的示例,用于在前端页面中选择职位和输入工作内容:

wxml

<view class="container">
  <view class="title">请选择您的职位:</view>
  <view class="position-buttons">
    <button wx:for="{{positions}}" wx:key="{{item}}" bindtap="selectPosition">{{item}}</button>
  </view>
  <view wx:if="{{selectedPosition}}">
    <view class="title">本周工作:</view>
    <textarea bindinput="onWorkInput"></textarea>
    <view class="title">下周计划:</view>
    <textarea bindinput="onPlanInput"></textarea>
    <view class="title">问题与困难:</view>
    <textarea bindinput="onProblemInput"></textarea>
    <view class="title">周报预览:</view>
    <view class="report">{{report}}</view>
    <button class="send-button" bindtap="sendReport">发送到邮箱</button>
  </view>
</view>

javascript

Page({
  data: {
    positions: ['前端工程师', '后端工程师', '设计师', '产品经理', '测试工程师', '架构师'],
    selectedPosition: '',
    workContent: '',
    planContent: '',
    problemContent: '',
    report: '',
  },
  selectPosition(e) {
    this.setData({ selectedPosition: e.currentTarget.dataset.position });
  },
  onWorkInput(e) {
    this.setData({ workContent: e.detail.value });
    this.generateReport();
  },
  onPlanInput(e) {
    this.setData({ planContent: e.detail.value });
    this.generateReport();
  },
  onProblemInput(e) {
    this.setData({ problemContent: e.detail.value });
    this.generateReport();
  },
  generateReport() {
    const { selectedPosition, workContent, planContent, problemContent } = this.data;
    if (!selectedPosition || !workContent || !planContent || !problemContent) return;
    wx.cloud.callFunction({
      name: 'chatgpt',
      data: {
        text: `${selectedPosition}本周工作:${workContent}\n下周计划:${planContent}\n问题与困难:${problemContent}`,
        model: 'davinci-codex-002',
      },
      success: (res) => {
        this.setData({ report: res.result });
      },
      fail: console.error,
    });
  },
  sendReport() {
    const { report } = this.data;
    if (!report) return;
    wx.cloud.callFunction({
      name: 'sendReport',
      data: {
        report,
      },
      success: () => {
        wx.showToast({
          title: '发送成功',
          icon: 'success',
        });
      },
      fail: console.error,
    });
  },
});

步骤6:创建发送邮件的云函数

您可以使用第三方库如nodemailer来创建一个发送邮件的云函数。以下是一个简单的示例:

const nodemailer = require('nodemailer');

exports.main = async (event) => {
  const { report } = event;

  const transporter = nodemailer.createTransport({
    host: 'smtp.ethereal.email',
    port: 587,
    auth: {
      user: process.env.EMAIL_USER,
      pass: process.env.EMAIL_PASSWORD,
    },
  });

  const info = await transporter.sendMail({
    from: 'Weekly Report Generator <noreply@example.com>',
    to: process.env.EMAIL_TO,
    subject: 'Weekly Report',
    text: report,
  });

  return info.messageId;
};

请确保将EMAIL_USER、EMAIL_PASSWORD和EMAIL_TO替换为您自己的信息。

步骤7:部署并测试

您可以在微信开发者工具中使用“上传并部署”功能来部署您的小程序。

自测:选择您的职位、填写工作内容、下周计划和问题与困难,然后点击“生成周报”按钮,等待程序返回生成的周报。如果一切正常,您将看到一个包含周报的文本框。然后,您可以点击“发送周报”按钮,程序将使用您的邮箱发送周报。

总结

代码实现中还有一些细节需要注意,例如错误处理和数据验证。您可以根据您的需求进行修改和完善。

这是一个比较完整的实现,希望对您有所帮助!

写在最后

✨原创不易,希望各位大佬多多支持。

👍点赞,你的认可是我创作的动力。

⭐️收藏,感谢你对本文的喜欢。

✏️评论,你的反馈是我进步的财富。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【用AI写周报,“卷死”同事】打造一款自动生成周报的微信小程序 的相关文章

  • tomcat各版本下载地址

    https archive apache org dist tomcat
  • Android屏幕尺寸适配常见方案smallestWidth

    前言 介于目前的Android设备存在有不同的屏幕尺寸 xff0c 屏幕分辨率 xff0c 像素密度 xff0c Android应用在开发的过程必须要考虑到屏幕尺寸适配的问题 xff0c 以保证在不同尺寸的Android设备上都能够正常运行
  • 奇数阶魔方阵!

    import java util Scanner public class Test5 打印 魔方阵 所谓的魔方阵是指这样的方阵 xff0c 它的行 列 对角线元素之和均相等 以下是奇数阶魔方阵 xff01 xff01 xff01 xff0
  • 基于Python高光谱遥感影像处理实例

    前言 在写波段配准相关代码时经常需要用到tif影像的波段合成和分解 xff0c 虽然可以用ENVI才处理 xff0c 但是每次都要打开再设置一些参数有些麻烦 xff0c 所以本着 独立自主 自力更生 的原则就写了些脚本来处理这个需求 又写了
  • 基于SIFT的图像Matlab拼接教程

    前言 图像拼接技术 xff0c 将普通图像或视频图像进行无缝拼接 xff0c 得到超宽视角甚至360度的全景图 xff0c 这样就可以用普通数码相机实现场面宏大的景物拍摄 利用计算机进行匹配 xff0c 将多幅具有重叠关系的图像拼合成为一幅
  • PyTorch 进行多步时间序列预测详细教程

    一 前言 Encoder decoder 模型提供了最先进的结果 xff0c 可以对语言翻译等 NLP 任务进行排序 多步时间序列预测也可以视为 seq2seq 任务 xff0c 可以使用编码器 解码器模型 本文提供了一个Encoder d
  • PERSIANN 降雨数据使用教程

    一 前言 PERSIANN xff0c 使用人工神经网络从遥感信息中估算降水 xff0c 是一种基于卫星的降水检索算法 xff0c 可提供近乎实时的降雨信息 该算法使用来自全球地球同步卫星的红外 IR 卫星数据作为降水信息的主要来源 红外图
  • 基于Pyqt5快速构建应用程序详细教程

    一 介绍 图形用户界面 xff0c 更广为人知的名称是 GUI xff0c 是当今大多数个人计算机的一个特征 它为不同计算技能水平的用户提供了直观的体验 尽管 GUI 应用程序可能会使用更多资源 xff0c 但由于其点击式特性 xff0c
  • 基于Python的PROSAIL模型介绍以及使用

    1 介绍 PROSAIL是两种模型耦合得到的 SAIL是冠层尺度的辐射传输模型 xff0c 把冠层假设成是连续的且具有给定几何形状和密度的水平均匀分布的介质层 xff0c 从而模拟入射辐射与均匀介质之间的相互作用 xff0c 具体还是挺复杂
  • 关于VS中LNK1120与errorLNK2019问题

    最近遇到了该问题 xff0c 再查找了一些资料后 xff0c 发现了针对自己问题的解决方法 xff0c 贴出来让大家一起学习一下 其实如果这两个问题同时出现 xff0c 很可能不是链接库缺了lib xff0c 而是编译中添加的源没有被实例化
  • PCL—低层次视觉—点云分割(基于凹凸性)

    转自 xff1a http www cnblogs com ironstark p 5027269 html PCL 低层次视觉 点云分割 xff08 基于凹凸性 xff09 1 图像分割的两条思路 场景分割时机器视觉中的重要任务 xff0
  • 【ENVI入门系列】13.分类后处理

    原文地址 xff1a ENVI入门系列 13 分类后处理 作者 xff1a ENVI IDL中国 版权声明 xff1a 本教程涉及到的数据提供仅练习使用 xff0c 禁止用于商业用途 目录 分类后处理 1 概述 2 分类后处理 2 1 小斑
  • ENVI神经网络工具参数和使用方法

    原文地址 xff1a ENVI神经网络工具参数和使用方法 作者 xff1a pengheligis xff08 1 xff09 Activation xff1a 选择活化函数 对数 xff08 Logistic xff09 和双曲线 xff
  • Android中依赖版本统一管理

    前言 在Android的实际开发中 xff0c 我们会经常使用到多Module开发 xff0c 而当我们修改一些版本信息或者SDK升级时 xff0c 可能涉及多个Module都需要修改 显然逐个修改Module中的build gradle文
  • 详解使用pscp命令Linux文件上传与下载

    一 上传 2 开始 运行 cmd进入到 dos模式输入以下命令 以下是代码片段 xff1a pscp D java apache tomcat 5 5 27 webapps szfdc rardev 64 192 168 68 249 ho
  • 二进制的表白

    没能提起勇气对她进行表白 xff0c 只能寄托于0 1代码记录下对你的喜欢 01000101 01110110 01100101 01101110 00100001 01001001 00100000 01101100 01101111 0
  • java 去除或者替换字符串里面的数字或者字母

    package testPattern import java util regex Matcher import java util regex Pattern public class TestPattern 64 param args
  • python机器学习之scikit安装

    scikit是Python很容易上手的第三方库 下面介绍一下安装过程中遇到的问题 环境是 xff1a win32 43 python27 安装scikit需要安装numpy和scipy 很多教程都会选择使用easy install或者pip
  • 【Windows批处理】交互界面设计

    echo off cls title 终极多功能修复 menu cls color 0A echo span class token keyword echo span span class token operator span span
  • Mac下AndroidStudio报错macMissing essential plugin:org.jetbrains.android Please reinstall Android Studio

    在Mac环境下升级Android studio时报如下错误 xff1a Missing essential plugin org jetbrains android Please reinstall Android Studio from

随机推荐

  • Tensorflow中使用tfrecord方式读取数据

    前言 本博客默认读者对神经网络与Tensorflow有一定了解 xff0c 对其中的一些术语不再做具体解释 并且本博客主要以图片数据为例进行介绍 xff0c 如有错误 xff0c 敬请斧正 使用Tensorflow训练神经网络时 xff0c
  • Newtonsoft.Json解析json字符串处理(最清晰易懂的方法)

    需求 xff1a 假设有如下json字符串 xff1a 34 companyID 34 34 15 34 34 employees 34 34 firstName 34 34 Bill 34 34 lastName 34 34 Gates
  • linux 更改桌面程序图标的方法

    linux 更改桌面程序图标的方法 xff1a 打开个文本编辑器 xff0c 将图标拖到里面 xff1a 其中 xff1a Icon就是图标路径 xff0c 在里面输入你喜欢的图片就行了
  • Android独立Module运行

    前言 Android组件化中我们经常会将逻辑组件到各个Module中 xff0c 为了进一步提高开发效率 xff0c 避免不必要的编译时间浪费 xff0c 我们可以通过对Module中build配置进行进行设置 xff0c 以使各个业务单元
  • 对于人工智能,你有怎样的认识和理解?

    作为最初级的程序员 xff0c 对于高深的技术总是望尘莫及 xff0c 而高大上的人工智能更是让我们感觉遥远 xff0c 不过路都是一步步走出来的 xff0c 只要一直走 xff0c 总有触及到的一天 今天就来聊聊你对于人工智能的认识吧 x
  • 查看linux系统的glibc版本

    查看linux系统的glibc版本 getconf GNU LIBC VERSION span class token comment 或者 span ldd version
  • 嵌入式linux, CAN 驱动有关问题

    与can相关的文件有 1 linux3 0 1源码包中的 drivers net can mcp251x c与Kconfig文件 xff08 将mcp251x c中spi board info 中的 modalias 61 34 mcp25
  • OpenCV自学笔记1:Pycharm + OpenCV3 + Python3 配置记录

    Pycharm 43 OpenCV3 43 Python3 配置记录 引言 xff1a OpenCV 43 Python是开发计算机视觉的利器 xff0c 由于项目的需要 xff0c 最近在Windows系统上配置了OpenCV 43 Py
  • OC中ARC机制的理解和整理

    ARC的本质 ARC是编译器 xff08 时 xff09 特性 xff0c 而不是运行时特性 xff0c 更不是垃圾回收器 GC Automatic Reference Counting ARC is a compiler level fe
  • Spring框架的快速入门

    https blog csdn net yerenyuan pku article details 69663685 Spring的概述 什么是Spring xff1f 我们可以从度娘上看到这样有关Spring的介绍 xff1a 说得更加详
  • nltk包下载慢的解决方案(总结)

    nltk是常用的自然语言工具包 xff0c 但是由于默认的服务器是基于https的 xff0c 很难连接 在下载nltk包的尤其是使用nltk download 图像化界面的时候 xff0c 经常会碰到无法连接的情况 xff0c 或者连接很
  • word中使用正则表达式进行查找和替换

    xfeff xfeff 术语 开始前 xff0c 我们先定义一对术语 xff1a 通配符指的是您可以用来代表一个或多个字符的键盘字符 例如 xff0c 星号 通常代表一个或多个字符 xff0c 问号 通常代表单个字符 对我们来说 xff0c
  • Linux新版内核升级后问题

    环境 系统 Ubuntu 20 04 x64内核 5 15 0软件 python版iotop iotop 描述 升级最新内核 更新软件包 后 监控系统IO负载出了问题 异常信息 描述如下 CONFIG TASK DELAY ACCT not
  • .net core中使用缓存之MemoryCache(本机内存)

    环境 xff1a net core2 2 nugt包依赖 xff1a 1 Microsoft Extensions Caching Abstractions2 Microsoft Extensions Caching Memory 参考 x
  • flutter doctor出现 Unable to find bundled Java version

    错误 在安装flutter时执行flutter doctor时出现了如下错误 xff1a Android Studio version 2022 1 Unable to find bundled Java version 解决办法 检查下A
  • 调试串口工具的使用-取日志

    SecureCRT自动保存日志设置 H 主机名 xff08 连接主机的IP地址 xff09 Y 年份 M 月份 D 日 h 小时 m 分钟 s 秒 span class token operator span H span class to
  • Android导入kotlin库的相关问题

    1 Android output 输出日志乱码 双击shift xff0c 在里面输入如下 xff0c 并且点击第一个 可能该文件不存在 第一次需要创建 点击创建提示即可 然后在里面输入 Dfile encoding 61 UTF 8 最后
  • 关于鼠标在VirtualBOX与原始系统中自由切换的实现

    在VirtualBox在安装好centos7后发现鼠标不能自由地在虚拟机与外在系统中切换 xff0c 每次要回到外部系统总数要按 CTRL 43 ALT 43 DELETE 键不胜麻烦 想着能实现自由切换的话效率会提升好的 xff0c 心情
  • javascript进阶——Ajax

    传统的Web 页面和应用中 xff0c 用户每点击页面上的某个部分 xff0c 浏览器就会向服务器发出一个请求 xff0c 等待服务器做出响应 xff0c 然后返回一个完整新网页 xff0c 但在大多数情况下用户不得不忍受页面闪烁和长时间的
  • 【用AI写周报,“卷死”同事】打造一款自动生成周报的微信小程序

    文章目录 前言步骤1 xff1a 创建一个ChatGPT账号步骤2 xff1a 创建一个微信小程序并配置API 步骤3 xff1a 在微信开发者工具中创建一个新的微信小程序项目步骤4 xff1a 创建ChatGPT API云函数步骤5 xf