博客 / 詳情

返回

效能工具十之接入deepseek實現AI學習PDF文檔讀後感文件批量生成功能

前言

看文,看的是一種思路,希望筆者的文章能給諸位帶來一些靈感思路☺️☺️☺️

業務需求場景描述

  • 公司每個月都會安排員工學習一個pdf文檔(有點形式主義的學習)
  • 然後,根據文檔內容寫一篇500字左右讀後感txt
  • 員工都是把文檔丟給AI讓其幫忙寫讀後感
  • 一個員工每個月要花費10分鐘,幾十個員工,就累計是幾個小時的成本
  • 人越多,成本越高
  • 針對於這個情況,筆者思考,倒不如寫一個工具
  • 由專人在月末的時候,直接通過工具,點一點,一鍵生成幾十份甚至上百份的學後感
  • 如此這般,就能夠進行相應的提效

代碼實現

技術選型

  • 首先是pdf的文字提取,這裏使用FileReader去讀取需要學習的pdf文件(上傳pdf)
  • 然後,把讀取到的數據,交給pdf-dist中的pdf.js和pdf.worker.js
  • 這裏就可以拿到pdf中的所有文字信息了(包括頁碼數)
  • 再然後,把pdf中的文字信息作為user的內容
  • 再提前寫好系統級的提示詞內容
  • 丟給deepseek的接口返回給前端
  • 前端再通過file-saver.js下載對應的內容即可做到生成pdf學後感txt文本的功能
  • 生成多份,就批量請求一下接口,整體Promise.allSettled一下即可
  • 最終,再使用jszip把所有的txt打包成一個壓縮包,直接下載了

deepseek開放平台註冊API keys

地址:https://platform.deepseek.com/api_keys

截圖:

當然,需要充點兩塊錢,如下:

實際上,大模型的生成文字的token一般都不貴,筆者測算了一下,生成50篇500字的txt文,成本不到一毛錢

使用express框架通過openai包調用deepseek的服務

有了deepseek的API keys且賬户有錢後,就可以在服務端調用了,通過npm安裝openai這個包

  "dependencies": {
    "express": "^5.1.0",
    "openai": "^6.9.1"
  }
筆者這裏使用的是express

如下:

import express from 'express';
import OpenAI from "openai";

// 初始化 OpenAI
const openai = new OpenAI({
    baseURL: 'https://api.deepseek.com',
    apiKey: 'sk-27cae***********************1093', // 換成自己的
});

const systemContent = `系統級提示詞高權重,用於規範限定回答內容`;

app.post('/api/chat', async (req, res) => {
    try {
        const { content } = req.body;

        if (!content) {
            return res.status(400).json({ error: '請提供要學習的內容' });
        }

        const completion = await openai.chat.completions.create({
            messages: [
                { role: "system", content: systemContent },
                { role: "user", content: content },
            ],
            model: "deepseek-chat",
        });
        const result = completion.choices[0]?.message?.content;
        res.json({ result });
    } catch (error) {
        console.error('API 調用失敗:', error);
        res.status(500).json({ error: error.message || 'API 調用失敗' });
    }
});

編寫系統級提示詞

上述的systemContent可以根據實際業務情況,進行適當編寫

const systemContent =
`
你是一個熱愛中國的優秀員工。
所在的公司是xxx。
所在的部門是yyy。
仔細閲讀用户提供的學習內容材料,並返回一段學習學後感。

格式要求:
- 純文本格式,不要使用markdown
- 字數控制在400-600個字符之間
- 使用第一人稱"我"來敍述

內容要求:
1. 學後感要簡潔明瞭,邏輯清晰
2. 內容要符合實際
3. 要體現...
4. 要結合學習材料的具體內容,不能泛泛而談
5. 要實事求是,言之有物,避免空話套話
6. 注意分段落

多樣性要求:
- 每次生成都要使用不同的表達方式、不同的角度和不同的案例
- 避免使用重複的詞語、句子和段落結構
- 確保每次生成的學後感都是全新的內容

重要提醒:
- 返回的內容必須符合中國的法律法規
- 要結合學習材料的具體內容進行深入思考
- 不要使用緩存!
`;

快速理解什麼是提示詞?

  • ai交互的核心就是系統級提示詞(System Prompt)和用户提示詞(User Prompt)

如下表

維度 系統級提示詞 用户提示詞
生效範圍 全局生效(所有對話輪次) 僅當前 / 指定輪次生效
優先級 更高(覆蓋用户提示詞衝突項) 服從系統規則
核心目的 設定規則與角色 提出具體問題 / 需求
可見性 通常對用户不可見(後台配置) 用户主動輸入,完全可見

比如,有如下場景

  • 客服智能問答場景:系統提示詞定義 “語氣友好、優先解決用户問題、無法解答時引導轉人工”,用户僅需提問 “我的訂單為什麼沒發貨”,AI 就會按該規則響應;
  • AI創作場景:系統提示詞設定 “風格為懸疑短篇、字數 500 字以內、結尾留懸念”,用户僅需説 “以雨夜為背景寫一個故事”,AI 的輸出就會貼合這些要求。
系統級提示詞有點像cosplay的身份角色背景設定...

所以,上述systemContent才會定義成為那樣的

現在,有了接口了app.post('/api/chat', async (req, res) => { ... })

這樣的話,前端就可以做對應請求數據,下載操作了...

篇幅有限,不繼續贅述

總結

  • 看完本文,大家可記住這樣一句話:所有重複的、沒有技術含量的辦公操作,都可以考慮使用AI進行提效
  • 此外,大家可以思考一下,如何能把公司的一些業務場景給抽象出來,使用AI進行高效解決問題?
手工創作不易,感謝大家支持鼓勵☺️☺️☺️
user avatar
0 位用戶收藏了這個故事!

發佈 評論

Some HTML is okay.