」工欲善其事,必先利其器。「—孔子《論語.錄靈公》
首頁 > 程式設計 > 馴服電子郵件野獸:我的收件匣管理人工智慧之旅

馴服電子郵件野獸:我的收件匣管理人工智慧之旅

發佈於2024-11-06
瀏覽:346

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]刪除
最新教學 更多>
  • 如何根據 Python 中的條件取代清單中的值?
    如何根據 Python 中的條件取代清單中的值?
    Python 中根據條件替換清單中的值在Python 中,您可能會遇到需要操作清單中元素的情況清單,例如根據特定條件替換值。透過利用有效的技術,您可以有效地執行這些修改。 一種方法涉及利用列表理解。例如,如果您有一個列表[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10] 並且想要替...
    程式設計 發佈於2024-11-06
  • 如何使用 Docker Scratch 在 Golang 中建立靜態二進位檔案:CGO_ENABLED=0 和 -ldflags?
    如何使用 Docker Scratch 在 Golang 中建立靜態二進位檔案:CGO_ENABLED=0 和 -ldflags?
    在Golang 中建立靜態二進位檔案的標誌當使用Docker 暫存庫在Golang 中建立靜態二進位檔案時,必須包含CGO_ENABLED =0 和-ldflags '-extldflags "-static"' 標誌。雖然這兩個選項可能看起來多餘,但它們在實現靜...
    程式設計 發佈於2024-11-06
  • 我可以將行追加到 CSV 檔案而不覆蓋它嗎?
    我可以將行追加到 CSV 檔案而不覆蓋它嗎?
    在Python 中向現有CSV 檔案追加新行:一種更有效的方法當您需要使用附加行更新CSV文件時,您可能會考慮以下問題:問: 是否可以向現有CSV 文件添加新行,而無需覆蓋和重新創建文件? 答: 絕對!以下是將行追加到 CSV 檔案的更有效方法:您可以利用Python 中的 with 語句。 以下程...
    程式設計 發佈於2024-11-06
  • Nestjs、Firebase、GCloud。如何在 TypeScript 中快速設定 API 後端。
    Nestjs、Firebase、GCloud。如何在 TypeScript 中快速設定 API 後端。
    It's great that you decided to open this article. My name is Fedor, and I've been a full-stack developer on a permanent basis since the end of 2021. J...
    程式設計 發佈於2024-11-06
  • 如何在維護非同步操作的同時避免鍊式函數中的 jQuery Promise?
    如何在維護非同步操作的同時避免鍊式函數中的 jQuery Promise?
    在鍊式函數中迴避jQuery Promise儘管建議避免jQuery Promise,但開發人員在不使用jQuery 的情況下鏈接非同步jQuery 函數時可能會面臨挑戰Promise 處理機制,如.then() 或.when()。為了解決這個問題,請考慮以下方法:jQuery Promise 可以...
    程式設計 發佈於2024-11-06
  • 為什麼「repr」方法在 Python 中至關重要?
    為什麼「repr」方法在 Python 中至關重要?
    探討repr方法的意義在Python程式設計的脈絡中,repr 方法在將物件表示為字串方面起著關鍵作用。這種簡潔而詳細的表示有多種用途:repr的目的方法:repr的主要目標方法的目的是傳回一個物件的字串表示形式,該物件既是人類可讀的,而且重要的是,是明確的。這種表示法應該足以重新建立具有相同狀態和...
    程式設計 發佈於2024-11-06
  • 每個開發人員都應該了解可擴展和高效應用程式的頂級 React 設計模式
    每個開發人員都應該了解可擴展和高效應用程式的頂級 React 設計模式
    隨著 React 繼續主導前端生態系統,掌握其設計模式可以顯著提高應用程式的效率和可擴展性。 React 設計模式提供了組織和建置元件、管理狀態、處理 props 和提高可重複使用性的最佳實踐。在本部落格中,我們將探討一些關鍵的 React 設計模式,這些模式可以讓您的開發流程從優秀走向卓越。 ...
    程式設計 發佈於2024-11-06
  • 在 React 中建立無限滾動元件
    在 React 中建立無限滾動元件
    介绍 我们在应用程序和网页中看到无限滚动,尤其是希望我们滚动的社交媒体。虽然无意识地滚动不好,但构建自己的无限滚动是很棒的。作为开发人员,我们应该尝试重新创建我们在网上冲浪时看到的组件。它可以挑战您在实现某些组件时了解更多信息并跳出框框进行思考。 此外,如果您希望在应用程序中实现无...
    程式設計 發佈於2024-11-06
  • 在 React 中建立響應式會議圖塊的動態網格系統
    在 React 中建立響應式會議圖塊的動態網格系統
    In the era of remote work and virtual meetings, creating a responsive and dynamic grid system for displaying participant video tiles is crucial. Inspi...
    程式設計 發佈於2024-11-06
  • 使用 Spring Boot 和 Spring Cloud 開發微服務
    使用 Spring Boot 和 Spring Cloud 開發微服務
    微服務架構已成為建構可擴展和模組化系統的流行解決方案。透過微服務,您可以將單一應用程式分解為更小的、獨立的和專業的服務,這使得系統的維護和發展變得更加容易。在這篇文章中,我們將探討如何使用 Spring Boot 和 Spring Cloud 來創造健壯且有效率的微服務。 微服務簡介 微服務背後的...
    程式設計 發佈於2024-11-06
  • 克服 PHP DOM XML 解析中的挑戰:問題與解決方案
    克服 PHP DOM XML 解析中的挑戰:問題與解決方案
    簡化PHP DOM XML 解析:揭開要點當您瀏覽PHP DOM 函數的複雜性時,可能會出現某些障礙。為了解決這些挑戰,讓我們開始了解 DOM 的複雜性,並找出常見問題的解決方案。 問題1:使用xml:id 馴服ID當使用ID 來防止樹中出現重複頁面時,PHP 的DOM 遇到了一個難題:getEle...
    程式設計 發佈於2024-11-06
  • 密碼重設功能:使用 OTP 重設密碼
    密碼重設功能:使用 OTP 重設密碼
    後端 2. 重設密碼 轉向下一個 API。 PUT 上 /api/reset-password, req -> otp, email, 新密碼, res -> nocontent // controllers/passwordReset.go func Reset...
    程式設計 發佈於2024-11-06
  • 如何從全域站點套件繼承 Virtualenv 中的特定套件?
    如何從全域站點套件繼承 Virtualenv 中的特定套件?
    從全域網站套件繼承Virtualenv 中的特定套件為了增強虛擬環境(virtualenv) 的功能,您可能會想要從全域網站繼承特定套件網站套件目錄。這種方法允許您選擇性地將重要的程式庫合併到您的 virtualenv 中,而無需直接安裝它們。 繼承方法要實現這種繼承,請使用以下命令建立新的virt...
    程式設計 發佈於2024-11-06
  • 如何解決 EF6 中的“找不到 'MySql.Data.MySqlClient\'\”錯誤?
    如何解決 EF6 中的“找不到 'MySql.Data.MySqlClient\'\”錯誤?
    MySQL 實體框架的提供者註冊使用MySQL 和實體框架時,您可能會遇到錯誤「找不到Entity Framework提供者” 'MySql.Data.MySqlClient' ADO.NET 提供者。 「儘管安裝了最新的MySQL 連接器,您可能仍然會遇到此問題。出現此問題的原因是...
    程式設計 發佈於2024-11-06
  • 如何利用PHP防止郵件傳輸中的惡意輸入?
    如何利用PHP防止郵件傳輸中的惡意輸入?
    保護電子郵件傳輸的使用者輸入在PHP 中,必須在發送電子郵件之前清理使用者輸入,以防止惡意或有害內容外洩你的系統。考慮下面的簡單 PHP 郵件腳本的程式碼片段:<?php $to = "[email protected]"; $name = $_POST['name']; ...
    程式設計 發佈於2024-11-06

免責聲明: 提供的所有資源部分來自互聯網,如果有侵犯您的版權或其他權益,請說明詳細緣由並提供版權或權益證明然後發到郵箱:[email protected] 我們會在第一時間內為您處理。

Copyright© 2022 湘ICP备2022001581号-3