”工欲善其事,必先利其器。“—孔子《论语.录灵公》
首页 > 编程 > 驯服电子邮件野兽:我的收件箱管理人工智能之旅

驯服电子邮件野兽:我的收件箱管理人工智能之旅

发布于2024-11-06
浏览:225

Taming the Email Beast: My AI-Powered Adventure in Inbox Management

是否曾经感觉您的收件箱是一个数字九头蛇,为您回复的每个人发送两封新电子邮件? ??好吧,科技爱好者们,我决定用秘密武器来对付这个怪物:人工智能! ??️

尤里卡时刻

想象一下:现在是凌晨 3 点,我周围都是空咖啡杯☕☕☕,盯着一个数量可与国会图书馆相媲美的收件箱。就在那时,我突然想到——如果人工智能可以击败国际象棋大师,它肯定可以帮助我理清这个电子邮件迷宫,对吗?

输入 AI 电子邮件低语者

因此,我卷起袖子,投入到创建人工智能驱动的电子邮件处理系统中。可以把它想象成有一个不知疲倦、超级聪明、从不要求喝咖啡休息的实习生。以下是这个数字奇迹的工作原理:

  1. 全视之眼 ?️:使用强大的 GPT-4,我们的 AI 朋友扫描传入电子邮件的速度比您说“您收到邮件了!”还要快

  2. 排序帽 ?:然后它将每封电子邮件分类为“产品查询”或“订单请求”。这就像霍格沃茨,但用于电子邮件!

  3. 订单主控 ?:对于订单请求,它会比您单击“添加到购物车”更快地提取详细信息,并检查我们是否有足够的库存来履行订单。

  4. 圆滑的谈话者?:根据电子邮件类型和订单状态,它会制作个性化的回复,这会让莎士比亚嫉妒(好吧,如果莎士比亚从事电子商务)。

  5. 查询Queller ❓:对于产品查询,它发送自动回复的速度比您说“我们很快就会回复您”的速度还要快。

秘密酱料(又名技术堆栈)

对于所有编码行家来说,以下是我们人工智能厨房中正在烹饪的食物:

  • 主课:Python? (因为谁不喜欢代码中的好蛇?)
  • 特殊成分:OpenAI 的 GPT-4(语言模型中的 Gordon Ramsay)
  • 配菜:熊猫? (用于数据处理,而不是用于咀嚼竹子)
  • 调料:Google Sheets API(因为电子表格是数据存储的无名英雄)

让我们深入研究一些代码片段,看看它实际上是如何工作的!

1. 邮件分类

以下是我们如何使用 GPT-4 对传入电子邮件进行分类:

def classify_email(email_body: str) -> str:
    prompt = (f"Classify the following email as either a 'product inquiry' or an 'order request'. "
              "An 'order request' must include explicit purchase intent, such as specifying quantity, shipping details, or mentioning a transaction."
              "General questions or interest in a product should be classified as a 'product inquiry'.\n\n"
              f"Email: {email_body}\n\nClassification:")
    response = client.chat.completions.create(
        model="gpt-4",
        messages=[{"role": "user", "content": prompt}]
    )

    classification = response.choices[0].message.content.strip().lower()
    if "order request" in classification:
        return "order request"
    elif "product inquiry" in classification:
        return "product inquiry"
    else:
        return "unclassified"

2. 订单处理

对于订单请求,我们提取详细信息并更新库存:

def process_order(email_id: str, orders: List[Dict], products_df: pd.DataFrame) -> Tuple[List[Dict], pd.DataFrame]:
    order_status = []
    for order in orders:
        product_id = order['product_id']
        quantity = order['quantity']

        product = products_df[products_df['product_id'] == product_id].iloc[0]
        current_stock = int(product['stock'])

        if current_stock >= quantity > 0 and current_stock > 0:
            status = "created"
            products_df.loc[products_df['product_id'] == product_id, 'stock'] -= quantity
        else:
            status = "out of stock"

        order_status.append({
            'email_id': email_id,
            'product_id': product_id,
            'quantity': quantity,
            'status': status
        })

    return order_status, products_df

3. 响应生成

最后,我们根据电子邮件类型和订单状态生成个性化回复:

def generate_response(email_name: str, classification: str, order_status: List[Dict], products_df: pd.DataFrame) -> str:
    if classification.lower() == "order request":
        context = "Order Summary:\n"
        for order in order_status:
            product = products_df[products_df['product_id'] == order['product_id']].iloc[0]
            context  = f"Customer name:{email_name} Product: {product['name']}, Quantity: {order['quantity']}, Status: {order['status']}\n"

        prompt = f"""Generate a professional response for the following order:

{context}

If any items are out of stock, suggest alternatives or waiting for restock.
Ensure the tone is professional and enhances the customer experience.

Response:"""
    else:
        prompt = f"""Customer name:{email_name} \n Generate a professional response for a product inquiry. 
Inform the customer that we've received their inquiry and will get back to them with more detailed information shortly. 
Ensure the tone is professional and enhances the customer experience.

Response:"""

    response = client.chat.completions.create(
        model="gpt-4",
        messages=[{"role": "user", "content": prompt}]
    )
    return response.choices[0].message.content.strip()

尤里卡时刻:我学到了什么

  1. 速度刺激 ⚡:快速确认电子邮件让客户比免费送货更满意(几乎)。

  2. 准确性为王?:微调人工智能提示就像教机器人跳舞一样——需要练习,但当它起作用时,那就太棒了。

  3. 库存俄罗斯方块?:实时库存检查使我们无法承诺无法交付的独角兽。

  4. 个人风格?:人工智能生成的个性化回复让客户感觉很特别,而我们又不会变成读心术者。

  5. 期待意外?:强大的错误处理使我们免于数字化面孔植物的次数比我愿意承认的要多。

证据就在布丁中(或者在本例中是收件箱)

在测试数据集上释放我们的人工智能电子邮件管理员之后:

  • ?电子邮件响应时间比不带降落伞的跳伞运动员下降得更快(减少 80%)
  • ?订单处理准确度像火箭一样猛增(提高了 95%)
  • ?在编码期间,客户满意度的增加超过了我咖啡摄入量的增加(40% 提升)

人工智能电子邮件传奇的下一步是什么?

虽然这个项目是我的宠物实验(没有真正的宠物参与编码过程),但它打开了一个充满可能性的世界。想象一下客户服务忍者、电子商务奇才或生产力专家拥有如此人工智能的力量!

大结局

这种人工智能驱动的电子邮件冒险比狂看《硅谷》的所有季节更有趣(相信我,我已经做到了)。虽然它还没有准备好接管世界(甚至你的整个收件箱......),但它展示了人工智能如何改变我们处理数字通信的方式。

现在,我问你们,我的科技爱好者们:你们在项目中与人工智能共舞了吗?纠结于技术来提高生产力?我想在下面的评论中听到你的胜利(或搞笑的失败)故事!

记住:愿您的代码没有错误,并且您的收件箱为零! ??

你可知道? ?第一个电子邮件系统由 Ray Tomlinson 于 1971 年发明。如果他现在看到我们使用人工智能来管理电子邮件,他可能会说,“你已经……先进了!”

版本声明 本文转载于:https://dev.to/biswajitfsd/taming-the-email-beast-my-ai-powered-adventure-in-inbox-management-5fc?1如有侵犯,请联系[email protected]删除
最新教程 更多>
  • 如何在Chrome中居中选择框文本?
    如何在Chrome中居中选择框文本?
    选择框的文本对齐:局部chrome-inly-ly-ly-lyly solument 您可能希望将文本中心集中在选择框中,以获取优化的原因或提高可访问性。但是,在CSS中的选择元素中手动添加一个文本 - 对属性可能无法正常工作。初始尝试 state)</option> < op...
    编程 发布于2025-05-05
  • 为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    为什么Microsoft Visual C ++无法正确实现两台模板的实例?
    在Microsoft Visual C 中,Microsoft consions用户strate strate strate strate strate strate strate strate strate strate strate strate strate strate strate st...
    编程 发布于2025-05-05
  • 如何实时捕获和流媒体以进行聊天机器人命令执行?
    如何实时捕获和流媒体以进行聊天机器人命令执行?
    在开发能够执行命令的chatbots的领域中,实时从命令执行实时捕获Stdout,一个常见的需求是能够检索和显示标准输出(stdout)在cath cath cant cant cant cant cant cant cant cant interfaces in Chate cant inter...
    编程 发布于2025-05-05
  • 图片在Chrome中为何仍有边框?`border: none;`无效解决方案
    图片在Chrome中为何仍有边框?`border: none;`无效解决方案
    在chrome 在使用Chrome and IE9中的图像时遇到的一个频繁的问题是围绕图像的持续薄薄边框,尽管指定了图像,尽管指定了;和“边境:无;”在CSS中。要解决此问题,请考虑以下方法: Chrome具有忽略“ border:none; none;”的已知错误,风格。要解决此问题,请使用以下...
    编程 发布于2025-05-05
  • 为什么HTML无法打印页码及解决方案
    为什么HTML无法打印页码及解决方案
    无法在html页面上打印页码? @page规则在@Media内部和外部都无济于事。 HTML:Customization:@page { margin: 10%; @top-center { font-family: sans-serif; font-weight: bo...
    编程 发布于2025-05-05
  • C++成员函数指针正确传递方法
    C++成员函数指针正确传递方法
    如何将成员函数置于c 的函数时,接受成员函数指针的函数时,必须同时提供对象的指针,并提供指针和指针到函数。需要具有一定签名的功能指针。要通过成员函数,您需要同时提供对象指针(此)和成员函数指针。这可以通过修改Menubutton :: SetButton()(如下所示:[&& && && &&华)...
    编程 发布于2025-05-05
  • 如何在JavaScript对象中动态设置键?
    如何在JavaScript对象中动态设置键?
    在尝试为JavaScript对象创建动态键时,如何使用此Syntax jsObj['key' i] = 'example' 1;不工作。正确的方法采用方括号: jsobj ['key''i] ='example'1; 在JavaScript中,数组是一...
    编程 发布于2025-05-05
  • 如何在Java字符串中有效替换多个子字符串?
    如何在Java字符串中有效替换多个子字符串?
    在java 中有效地替换多个substring,需要在需要替换一个字符串中的多个substring的情况下,很容易求助于重复应用字符串的刺激力量。 However, this can be inefficient for large strings or when working with nu...
    编程 发布于2025-05-05
  • 在Java中如何为PNG文件添加坐标轴和标签?
    在Java中如何为PNG文件添加坐标轴和标签?
    如何用java 在现有png映像中添加轴和标签的axes和labels如何注释png文件可能具有挑战性。与其尝试可能导致错误和不一致的修改,不如建议在图表创建过程中集成注释。使用JFReechArt import java.awt.color; 导入java.awt.eventqueue; 导入...
    编程 发布于2025-05-05
  • PHP未来:适应与创新
    PHP未来:适应与创新
    PHP的未来将通过适应新技术趋势和引入创新特性来实现:1)适应云计算、容器化和微服务架构,支持Docker和Kubernetes;2)引入JIT编译器和枚举类型,提升性能和数据处理效率;3)持续优化性能和推广最佳实践。 引言在编程世界中,PHP一直是网页开发的中流砥柱。作为一个从1994年就开始发展...
    编程 发布于2025-05-05
  • Python高效去除文本中HTML标签方法
    Python高效去除文本中HTML标签方法
    在Python中剥离HTML标签,以获取原始的文本表示 仅通过Python的MlStripper 来简化剥离过程,Python Standard库提供了一个专门的功能,MLSTREPERE,MLSTREPERIPLE,MLSTREPERE,MLSTREPERIPE,MLSTREPERCE,MLST...
    编程 发布于2025-05-05
  • `console.log`显示修改后对象值异常的原因
    `console.log`显示修改后对象值异常的原因
    foo = [{id:1},{id:2},{id:3},{id:4},{id:id:5},],]; console.log('foo1',foo,foo.length); foo.splice(2,1); console.log('foo2', foo, foo....
    编程 发布于2025-05-05
  • 哪种方法更有效地用于点 - 填点检测:射线跟踪或matplotlib \的路径contains_points?
    哪种方法更有效地用于点 - 填点检测:射线跟踪或matplotlib \的路径contains_points?
    在Python Matplotlib's path.contains_points FunctionMatplotlib's path.contains_points function employs a path object to represent the polygon.它...
    编程 发布于2025-05-05
  • FastAPI自定义404页面创建指南
    FastAPI自定义404页面创建指南
    response = await call_next(request) if response.status_code == 404: return RedirectResponse("https://fastapi.tiangolo.com") else: ...
    编程 发布于2025-05-05
  • eval()vs. ast.literal_eval():对于用户输入,哪个Python函数更安全?
    eval()vs. ast.literal_eval():对于用户输入,哪个Python函数更安全?
    称量()和ast.literal_eval()中的Python Security 在使用用户输入时,必须优先确保安全性。强大的Python功能Eval()通常是作为潜在解决方案而出现的,但担心其潜在风险。本文深入研究了eval()和ast.literal_eval()之间的差异,突出显示其安全性含义...
    编程 发布于2025-05-05

免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。

Copyright© 2022 湘ICP备2022001581号-3