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

本文涉及的产品
Serverless 应用引擎 SAE,800核*时 1600GiB*时
应用实时监控服务ARMS - 应用监控,每月50GB免费额度
简介: 在现代企业中,周报是一个重要的沟通和管理工具。然而,手动编写周报是一项繁琐的任务,往往需要花费大量时间和精力。因此,利用人工智能技术来自动化周报生成是一个值得探究的方向。本文将介绍如何通过微信小程序接入ChatGPT,根据前端、后端、设计师、产品、测试和架构师等职位自动生成周报,并提供完整的代码实现。

前言

image.png

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

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

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

步骤1:创建账号

创建一个ChatGPT账号并获取API密钥。您需要访问ChatGPT官网注册一个账号,并在控制台中创建一个API密钥。

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

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

在小程序后台中打开开发设置,将服务端口配置为443,并在“服务器域名”中添加对应的服务域名。

步骤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:部署并测试

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

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

总结

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

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


✍创作不易,求关注😄,点赞👍,收藏⭐️

相关文章
|
20天前
|
人工智能 前端开发 JavaScript
《AIGC+软件开发新范式》--04.我们团队来了一位新同事, 主动要求帮忙敲代码!欢迎 AI 001 号
在AI 热度持续上升的当下,阿里云推出AI智能编码助手—通义灵码。通义灵码是一款基于阿里云通义代码大模型打造的智能编码助手,基于海量优秀开源代数据集和编程教科书训练,为开发者带来高效、流畅的编码体验。
|
2月前
|
人工智能 前端开发 JavaScript
我们团队来了一位新同事,主动要求帮忙敲代码!欢迎 AI 001号
这位新同事不一般!下载量已经超过200万,每天生产的代码,有数百万行被程序员采纳,已经成长为中国目前最受欢迎的AI编程工具。
|
2月前
|
人工智能
欢迎新同事!AI 001号
欢迎新同事!AI 001号
50 0
|
2月前
|
人工智能 小程序 算法
探索AI动画与小程序的应用创新-产品面对面系列直播第四期
探索AI动画与小程序的应用创新-产品面对面系列直播第四期
87 6
|
10月前
|
人工智能 自然语言处理 Java
用AI提高代码质量,同事对我的代码赞不绝口~
在当今软件开发领域,代码质量被视为至关重要的因素,因为它直接影响到软件的可维护性、可扩展性和可靠性。尽管有人担忧AI技术的快速发展可能会取代初级程序员的工作,但我们应该认识到提升自身技能和成长是关键。
|
2月前
|
人工智能 小程序 搜索推荐
【利用AI让知识体系化】从理论层面了解微信小程序(二)
【利用AI让知识体系化】从理论层面了解微信小程序
|
2月前
|
人工智能 小程序 前端开发
【利用AI让知识体系化】从理论层面了解微信小程序(一)
【利用AI让知识体系化】从理论层面了解微信小程序
|
8月前
|
人工智能 自然语言处理 Java
AI时代的代码自动生成工具:每个开发人员必须掌握的基本能力
随着人工智能技术的不断发展,越来越多的行业开始尝试将AI技术应用于实际业务中。其中,代码自动生成工具便是AI技术在软件开发领域中的重要应用之一,也倒逼着每一个开发人员学习使用。有专家曾公开表示,利用AI工具辅助软件开发将成为开发人员的基本技能,否则终将被淘汰。
|
9月前
|
人工智能 自然语言处理 小程序
AI智能导诊系统源码,支持以公众号、小程序、App 等形式接入
智能导诊系统是一种基于人工智能和大数据技术开发的医疗辅助软件,它能够通过对患者的症状、病史等信息进行计算分析,快速推荐科室和医生。通过简单的描述自身症状,系统即可找到最适合的科室
|
11月前
|
人工智能 小程序 机器人
AI配音 | 接近真人发音的机器人,小程序上线了!
而这一次,给大家带来的是小程序和更多播讲人的上线,合成更加方便,直接手机就能完成。
292 0