快来围观!我自制的 AI 周报小能手:自动收集整理周报,一键发送邮件

前言

上篇文章分享了《跟着我的步骤,轻松打造出 AI 智能体》,很多朋友都比较感兴趣,咨询我问 “AI 小白能学吗?” 我感觉问题不大,完全可以,只要把要做的事情屡明白了,遇到的卡点问题直接问 GPT 就好了,当然也可以找我加入交流群,我们一起学习进步。

这篇文章,我将分享一下我制作的一款实用工具 - 「AI 周报助手」。

废话不多好,直接进入主题。

设计背景

作为职场人的我们,应该都门清,编写周报是一个耗时的过程,尤其是对于那些需要管理多个项目和任务的团队成员来说,真的就像绣花一样,费时又费力。

周报往往需要汇总来自不同团队成员或部门的信息,手动整合这些信息往往效率低下,而且还很容易出错。

周报的格式也是一个优先需要关注的点,尤其是在远程工作和团队成员分布在不同地点的情况下,保证数据的标准化也蛮重要。

最最主要的是,没人爱干这活,这是一件重复且没有太多创造性的任务,怎么办,这时候该 AI 出场了,AI 大哥任劳任怨,让 AI 大哥把这活干了吧。

完成后的效果

Alice-工作周报

- 完成了客户管理系统的新功能开发。
- 协助解决了内部数据库的性能问题。
- 准备下周的客户培训材料。

Bob-工作周报

- 优化了营销活动的数据分析流程。
- 与Alice合作,提高了客户管理系统的用户体验。
- 计划下周开始新的市场调研项目。

Carol-工作周报

- 完成了营销活动的初步数据分析报告。
- 参与了客户管理系统的界面设计。
- 下周将专注于完善数据分析报告,并准备市场调研的问卷。

汇总-工作周报

尊敬的团队成员及管理层:

本周,我们团队取得了以下主要成就:

- Bob优化了营销活动的数据分析流程,并与Alice合作提高了客户管理系统的用户体验。
- Carol完成了营销活动的初步数据分析报告,并参与了客户管理系统的界面设计。
- Alice完成了客户管理系统的新功能开发,并协助解决了内部数据库的性能问题。

团队克服了多项挑战,实现了以下关键成果:

- 营销活动的数据分析流程得到显著优化,提高了报告的准确性及效率。
- 客户管理系统的用户体验得到提升,界面设计更加人性化。
- 新开发的系统功能将增强我们的客户服务能力,数据库性能问题得到有效解决。

下周,我们将专注于以下计划:

- Bob将启动新的市场调研项目。
- Carol将进一步完善数据分析报告,并准备市场调研问卷。
- Alice将准备客户培训材料,以提升客户满意度。

感谢大家的辛勤工作与卓越贡献。让我们期待下周更多的进展和成功!

设计思路

  1. 收集来自不同团队成员或部门的周报信息;

  2. 交给大模型只能处理;

  3. 将整合完成的周报发送邮件;

实现过程

我是使用 crewAI 框架去实现的,具体步骤可参考这篇文章《跟着我的步骤,轻松打造出 AI 智能体》,篇幅有限,这篇文章只写核心代码,不用担心,需要完整代码的可以找我免费获取。

核心代码

@CrewBase
class WeeklyReportAssistantCrew():
    """WeeklyReportAssistant crew"""
    agents_config = 'config/agents.yaml'
    tasks_config = 'config/tasks.yaml'

    @agent
    def writer(self) -> Agent:
        return Agent(
            config=self.agents_config['writer'],
            tools=[send_email_tool],
            verbose=True,
            llm=llm,
            function_calling_llm=function_calling_llm,
            allow_delegation=True

        )

    @task
    def writer_task(self) -> Task:
        return Task(
            config=self.tasks_config['writer_task'],
            agent=self.writer(),
            output_file='mail.md'
        )

    @crew
    def crew(self) -> Crew:
        """Creates the WeeklyReportAssistant crew"""
        return Crew(
            agents=self.agents,  # Automatically created by the @agent decorator
            tasks=self.tasks,  # Automatically created by the @task decorator
            verbose=2,
            manager_llm=function_calling_llm,
            # process=Process.hierarchical, # In case you wanna use that instead https://docs.crewai.com/how-to/Hierarchical/
        )

agents.yaml

writer:
  role: >
    周报整理员
  goal: >
    提高团队的周报整理效率,确保所有成员的周报按时提交并得到有效整理。
  backstory: >
    你是一位资深的周报整理员,旨在帮助团队成员管理日常工作报告,并从中生成周报。
// 框架对 Agent 的解析

class CrewAgentParser(ReActSingleInputOutputParser):
    """Parses ReAct-style LLM calls that have a single tool input.

    Expects output to be in one of two formats.

    If the output signals that an action should be taken,
    should be in the below format. This will result in an AgentAction
    being returned.

    Thought: agent thought here
    Action: search
    Action Input: what is the temperature in SF?

    If the output signals that a final answer should be given,
    should be in the below format. This will result in an AgentFinish
    being returned.

    Thought: agent thought here
    Final Answer: The temperature is 100 degrees
    """

tasks.yaml

writer_task:
  description: >
    我需要你根据{reports}来整理一份周报。
    每位成员的日报已经包含了他们的工作亮点、挑战、以及下周计划。
    请确保周报能够清晰地展示每位成员的贡献,同时突出团队的整体进展和关键成果,并且格式清晰、专业。
    请在周报中包含一个简短的引言,概述本周的主要成就,并以正式而积极的语言风格结束,提供下周的展望。
    确保使用正式的语言和适当的语调,以适应团队和管理层的阅读。
    发送邮件的content参数请保证是汇总完毕的周报内容。

  expected_output: >
    整理后的周报

小结

  • 大模型可以自由选择,例如:OpenAI、GLM、Baichuan、Qianfan、使用自己的本地私有化大模型也可以,我使用的 GLM-4。

  • tools 可以自定义编码去实现,使用一个或多个工具都可以。

  • 如果你的场景比较复杂,可以定义多个 Agent、多个 Task ,可以自定义编排,Task 与  Task 之间可以使用上下文传递。

  • 这里面的核心还是提示词、提示词、提示词,重要事情说三遍。

这个案例比较简单,也比较粗糙,还有很多需要优化的点,仅仅只是流程跑通了。

感兴趣的,需要完整代码的可以找我,我整理后发你。

54d914c2cdaf35115ffd623093b78855.jpeg

84a41ffd0337d89ce98e5024e19c0022.jpeg

加我微信时,请备注“AI”,谢谢。持续分享 AIGC、大模型,个人 GitHub 9K+ Star,欢迎关注。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/477398.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

oracle 19c单机版本补丁升级

文章目录 一、补丁包概述二、备份opatch三、替换高版本opatch四、打DB补丁1、关闭数据库2、关闭监听3、解压补丁4、冲突检测5、补丁空间检查6、执行补丁升级7、将更新内容加载到数据库8、最后查看数据库版本9、卸载补丁包 一、补丁包概述 补丁升级包 链接:https://…

GStreamer简单看看

主要是现在弄摄像头,要用到这东西。所以学学。 最权威主页:GStreamer: open source multimedia framework 大概看了下,好像命令也不难。 gst-launch-1.0 v4l2src device/dev/video0 ! video/x-raw,formatYUY2,width640,height480,framerat…

Java-SSM电影购票系统

Java-SSM电影购票系统 1.服务承诺: 包安装运行,如有需要欢迎联系(VX:yuanchengruanjian)。 2.项目所用框架: 前端:JSP、layui、bootstrap等。 后端:SSM,即Spring、SpringMvc、Mybatis等。 3.项目功能点: 3-1.后端功能: 1.用户管…

【漏洞复现】Arris 路由器 basic_sett 信息泄露漏洞

免责声明:文章来源互联网收集整理,请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失,均由使用者本人负责,所产生的一切不良后果与文章作者无关。该…

小车侧方位停车过程的动态模拟matlab仿真

目录 1.课题概述 2.系统仿真结果 3.核心程序与模型 4.系统原理简介 5.完整工程文件 1.课题概述 小车侧方位停车过程的动态模拟matlab仿真。仿真得到小车的停车动画,小车移动的xy轴坐标以及角度变换。 2.系统仿真结果 3.核心程序与模型 版本:MATLA…

Linux系统资源管理

Linux系统资源命令 在Linux中查看系统资源常用命令有哪些 在Linux中,系统资源是指计算机硬件、软件和网络设备等可以利用的一切物质和能量。Linux中的系统资源包括: CPU(中央处理器):用于处理计算机中的指令和数据的…

opencv各个模块介绍(2)

Features2D 模块:特征检测和描述子计算模块,包括SIFT、SURF等算法。 Features2D 模块提供了许多用于特征检测和描述子匹配的函数和类,这些函数和类可用于图像特征的提取、匹配和跟踪。 FeatureDetector:特征检测器的基类&#xf…

AI应用开发-基于python的知识图谱技术

AI应用开发相关目录 本专栏包括AI应用开发相关内容分享,包括不限于AI算法部署实施细节、AI应用后端分析服务相关概念及开发技巧、AI应用后端应用服务相关概念及开发技巧、AI应用前端实现路径及开发技巧 适用于具备一定算法及Python使用基础的人群 AI应用开发流程概…

19 反向迭代器

反向迭代器和正向迭代器相反,比如一个数组内容是1,2,3,4,5。正向迭代器就是按顺序输出,反向迭代器是5,4,3,2,1,顺序倒着。想要第一个输出5,需要反向迭代器rbegin在5的位置,判断输出完的条件,rend在头节点的位置就行,只…

【go从入门到精通】select条件控制

作者简介: 高科,先后在 IBM PlatformComputing从事网格计算,淘米网,网易从事游戏服务器开发,拥有丰富的C,go等语言开发经验,mysql,mongo,redis等数据库,设计模…

【八股】ThreadLocal原理

1. Thread.java 我们首先打开Thread.java源码,看到里面有一个ThreadLocalMap类型的变量threadLocals 2. ThreadLocal.java -> getMap(thread t) 然后ThreadLocal.java里面有一个getMap函数,传入的是线程,返回的是线程里面的ThreadLoca…

mysql无法看到3306端口监听

参考:https://blog.csdn.net/shumeigang/article/details/103902459 mysql> show global variables like ‘port’; 是0 原因是我的my.cnf有话: skip-network 或 注释掉,然后重新启动下数据库,运行netstat -an|grep 3306 就可以看到了

学习笔记Day13:Linux进阶

Linux进阶 Vim——Linux自带的文本编辑器 功能强大 命令模式 使用 vim <file>进入后的默认模式可以上下左右移动光标 方向键/hjkl快速到所在行的开头^/末尾$向下移动30行30j&#xff08;上左右同&#xff09;上下翻页Ctrlf向上&#xff0c;Ctrlb向下翻页快速回到文件第…

docker 进入容器内部命令

docker容器运行了&#xff0c;怎么进入容器内部查看内部的文件情况呢&#xff1f; 答&#xff1a;可以通过docker exec 的命令查看。 docker exec --help 可以查看命令介绍 &#xff1a; docker exec -it XXX /bin/bash XX为容器ID 进入容器内部 /bin/bash是需要添加的 不…

MT管理器 使用手册

MT管理器 论坛&#xff1a;https://bbs.binmt.cc/ 使用技巧系列教程&#xff1a;https://www.52pojie.cn/thread-1259872-1-1.html MT管理器 使用手册 &#xff1a;https://mt2.cn/guide/&#xff1a;https://www.bookstack.cn/read/mt-manual/80b8084f6be128c0.md&#xff…

vue学习日记15:普通组件的注册使用

一、概念 &#xff08;1&#xff09;局部注册 &#xff08;2&#xff09;全局注册 二、实践 1.局部注册 &#xff08;1&#xff09;代码 步骤&#xff1a;创建组件 导入 注册 使用 src文件夹下面仅仅保留这两个即可 其他两个文件夹可以删除 在src下面建立components文件夹…

刷题DAY30 | LeetCode 332-重新安排行程 51-N皇后 37-解数独

332 重新安排行程&#xff08;hard&#xff09; 给你一份航线列表 tickets &#xff0c;其中 tickets[i] [fromi, toi] 表示飞机出发和降落的机场地点。请你对该行程进行重新规划排序。 所有这些机票都属于一个从 JFK&#xff08;肯尼迪国际机场&#xff09;出发的先生&…

Qt 不同数据类型转换

一.不同类型数据转换示例&#xff1a; #include <QGuiApplication> #include <QQmlApplicationEngine> #include <QJsonDocument> #include <QJsonObject> #include <QDebug>int main(int argc, char *argv[]) {QCoreApplication::setAttribute…

【C语言】linux内核pci_enable_device函数和_PCI_NOP宏

pci_enable_device 一、注释 static int pci_enable_device_flags(struct pci_dev *dev, unsigned long flags) {struct pci_dev *bridge;int err;int i, bars 0;/** 此时电源状态可能是未知的&#xff0c;可能是由于新启动或者设备移除调用。* 因此获取当前的电源状态&…

【Flask】Flask项目结构初识

1.前提准备 Python版本 # python 3.8.0 # 查看Python版本 python --version 安装第三方 Flask pip install flask # 如果安装失败&#xff0c;可以使用 -i&#xff0c;指定使用国内镜像源 # 清华镜像源&#xff1a;https://pypi.tuna.tsinghua.edu.cn/simple/ 检查 Flask 是…