ACP(三):讓大模型能夠回答私域知識問題

讓大模型能夠回答私域知識問題

未經過特定訓練答疑機器人,是無法準確回答“我們公司項目管理用什么工具”這類內部問題。根本原因在于,大模型的知識來源于其訓練數據,這些數據通常是公開的互聯網信息,不包含任何特定公司的內部文檔、政策或流程。

你可以把大模型想象成一臺剛出廠的超級計算機:它的CPU(推理能力)極其強大,硬盤(模型權重)里預裝了海量的通用知識。但對于你公司的“內部資料”,它的硬盤里是空白的。

面對這個問題,最直觀的解決思路就是:在運行時,把公司的內部知識臨時告訴它

初步方案:在提示詞中“喂”入知識

你可以來驗證這個思路:將公司項目管理工具的說明文檔,直接添加給模型的指令(System Prompt)中,作為背景知識提供給它。

💡 公司使用的項目管理 軟件資料可以docs/內容開發工程師崗位指導說明書.pdf文件中找到。


user_question = "我是軟件一組的,請問項目管理應該用什么工具"knowledge = """公司項目管理工具有兩種選擇:1. **Jira**:對于軟件開發團隊來說,Jira 是一個非常強大的工具,支持敏捷開發方法,如Scrum和Kanban。它提供了豐富的功能,包括問題跟蹤、時間跟蹤等。2. **Microsoft Project**:對于大型企業或復雜項目,Microsoft Project 提供了詳細的計劃制定、資源分配和成本控制等功能。它更適合那些需要嚴格控制項目時間和成本的場景。在一般情況下請使用Microsoft Project,公司購買了完整的許可證。軟件研發一組、三組和四組正在使用Jira,計劃于2026年之前逐步切換至Microsoft Project。
"""response = get_qwen_stream_response(user_prompt=user_question,# 將公司項目管理工具相關的知識作為背景信息傳入系統提示詞system_prompt="你負責教育內容開發公司的答疑,你的名字叫公司小蜜,你要回答學員的問題。"+ knowledge,temperature=0.7,top_p=0.8
)for chunk in response:print(chunk, end="")
你好!根據公司的規定,目前軟件研發一組正在使用Jira進行項目管理。盡管公司計劃在2026年之前逐步切換到Microsoft Project,但在那之前,你們組仍然可以繼續使用Jira。如果你有任何關于Jira的使用問題或需要幫助,請隨時告訴我。同時,如果有任何關于未來切換到Microsoft Project的準備或培訓需求,也可以提前告知,我會盡力提供支持。

在提示詞中加入相關的背景知識,大模型確實能夠準確回答關于公司內部工具的問題。然而,當你試圖將更多的公司文檔(例如幾十頁的員工手冊、上面頁的技術規范)都用這種方式“喂”給大模型時,一個新的、更嚴峻的挑戰出現了。

核心瓶頸:有限的上下文窗口

大模型接收我們輸入(包括指令、問題和背景知識)的地方,被稱為上下文窗口(Context Window)。你可以把它理解為計算機的“內存RAM”——它的容量是有限的。
你無法將整個公司的知識庫(成百上千份文檔)一次性塞進這個有限的窗口里。一旦輸入內容超過模型的最大限制,就會導致錯誤。
這引出了一個核心問題:你需要對放入上下文窗口的內容進行篩選和管理

解決之道:上下文工程(Context Engineering)

簡單粗暴地將信息塞進上下文,除了會超出窗口限制外,還會帶來一系列“隱性”問題:

1.效率低:上下文越長,大模型處理所需的時間就越長,導致用戶等待增加時間。
2.成本高:大部分模型是按輸入和輸出的文本量計費的,冗長的上下文意味著更高的成本。
3.信息干擾:如果上下文中包含了大量與當前問題無關的信息,就像在開卷考試時給了考生一本錯誤科目的教科書,反而會干擾模型的判斷,導致回答質量下降。

成功的關鍵不在于“喂”給模型多少知識,而在于“喂”得有多準
如何在正確的時間,將最相關、最精準的知識,動態地加載到大模型有限的上下文窗口中?———這門系統性地設計、構建和優化上下文的實踐,就是上下文工程(Context Engineering)

上下文工程(Context Enginnering)的核心技術
1.RAG(檢索增強生成):從外部知識庫(如公司文檔)中檢索信息,為模型提供精準的回答依據。
2.Prompt(提示詞工程):通過精心設計的指令,精確地引導模型的思考方式和輸出格式。
3.Tool(工具使用):賦予模型調用外部工具(如計算器、搜索引擎、API)的能力,以獲取實時信息或執行任務。
4.Memory(記憶機制):為模型建立長短期記憶,使其能夠在連續對話中理解歷史上下文。

在這里插入圖片描述

RAG(檢索增強生成)

RAG(Retrieval-Augmented Generation,檢索增強生成)就是實現上下文工程的強大技術方案。它的核心思想是:在用戶提問時,不再將全部知識庫硬塞給大模型,而是先自動檢索出與問題最相關的私有知識片段,然后將這些精準的片段與用戶問題合并后,一同傳給大模型,從而生成最終的答案。這樣既避免了提示詞過長的問題,又能確保大模型獲得相關的背景信息。
構建一個RAG應用通常會分為兩個階段

  • 第一階段:建立索引
    在這里插入圖片描述

    建立索引是為了將私有知識文檔或片段轉換為可以高效檢索的形式。通過將文件內容分割并轉化為多維向量(使用專用Embedding模型),并結合向量存儲保留文本的語義信息,方便進行相似度計算。向量化使得模型能夠高效檢索和匹配相關內容,特別是在處理大規模知識庫時,顯著提高查詢的準確性和響應速度。

  • 第二階段:檢索與生成
    在這里插入圖片描述

檢索生成是根據用戶的提問,從索引中檢索相關的文檔片段,這些片段會與提問一起輸入到大模型生成最終的回答。這樣大模型就能夠回答私有知識問題了。
總的來說,基于RAG結構的應用,既避免了將整個參考文檔作為背景信息輸入而導致的各種問題,又通過檢索提取出了與問題最相關的部分,從而提高了大模型輸出的準確性與相關性。


user_question = "我是軟件一組的,請問項目管理應該用什么工具"knowledge = """公司項目管理工具有兩種選擇:1. **Jira**:對于軟件開發團隊來說,Jira 是一個非常強大的工具,支持敏捷開發方法,如Scrum和Kanban。它提供了豐富的功能,包括問題跟蹤、時間跟蹤等。2. **Microsoft Project**:對于大型企業或復雜項目,Microsoft Project 提供了詳細的計劃制定、資源分配和成本控制等功能。它更適合那些需要嚴格控制項目時間和成本的場景。在一般情況下請使用Microsoft Project,公司購買了完整的許可證。軟件研發一組、三組和四組正在使用Jira,計劃于2026年之前逐步切換至Microsoft Project。
"""response = get_qwen_stream_response(user_prompt=user_question,# 將公司項目管理工具相關的知識作為背景信息傳入系統提示詞system_prompt="你負責教育內容開發公司的答疑,你的名字叫公司小蜜,你要回答學員的問題。"+ knowledge,temperature=0.7,top_p=0.8
)for chunk in response:print(chunk, end="")
你好!根據公司的規定,目前軟件研發一組正在使用Jira進行項目管理。盡管公司計劃在2026年之前逐步切換到Microsoft Project,但在那之前,你們組仍然可以繼續使用Jira。如果你有任何關于Jira的使用問題或需要幫助,請隨時告訴我。同時,如果有任何關于未來切換到Microsoft Project的準備或培訓需求,也可以提前告知,我會盡力提供支持。
案例分析

小明開發寫作助手遇到以下兩個場景,他應該如何解決問題?
場景 🅰? 生成內容缺乏創意:每次讓模型寫一篇關于“人工智能發展”的文章時,生成的內容都非常相似。
場景 🅱? 生成內容偏離主題:讓模型寫一份技術文檔時,生成的內容經常加入一些不相關的內容。
請問:
1.這兩個場景的問題產生的原因可能是什么?
2.應該如何調整 temperature 或 top_p 參數來解決這些問題

🎯 場景A解決方案 
🔍 原因分析
temperature 值過低(如0.3),導致模型選擇單一,生成內容缺乏多樣性。
?? 參數調整temperature = 0.7~0.9  # 提升創意性
top_p = 0.9            # 增大選詞范圍🎯 場景B解決方案 
🔍 原因分析
temperature 過高(如1.2)或 top_p 過大?? 參數調整temperature = 0.5~0.7  # 降低隨機性
top_p = 0.7~0.8        # 聚焦高概率詞
🌟 調參小技巧
每次調整幅度建議 ±0.2,通過AB測試觀察效果變化。 如果需要兼顧場景A和場景B,推薦組合:temperature=0.6 + top_p=0.8

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/web/96845.shtml
繁體地址,請注明出處:http://hk.pswp.cn/web/96845.shtml
英文地址,請注明出處:http://en.pswp.cn/web/96845.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用Xterminal連接Linux服務器

使用Xterminal連接Linux服務器(VMware虛擬機)的步驟如下,前提是虛擬機已獲取IP(如 192.168.31.105)且網絡互通: 一、準備工作(服務器端確認)確保SSH服務已安裝并啟動 Linux服務器需要…

ChatBot、Copilot、Agent啥區別

以下內容為AI生成ChatBot(聊天機器人)、Copilot(副駕駛)和Agent(智能體/代理)是AI應用中常見的三種形態,它們在人機交互、自動化程度和任務處理能力上有著顯著的區別。特征維度ChatBot (聊天機器…

2025 年大語言模型架構演進:DeepSeek V3、OLMo 2、Gemma 3 與 Mistral 3.1 核心技術剖析

編者按: 在 Transformer 架構誕生八年之際,我們是否真的見證了根本性的突破,還是只是在原有設計上不斷打磨?今天我們為大家帶來的這篇文章,作者的核心觀點是:盡管大語言模型在技術細節上持續優化&#xff0…

基于Matlab GUI的心電信號QRS波群檢測與心率分析系統

心電信號(Electrocardiogram, ECG)是臨床診斷心臟疾病的重要依據,其中 QRS 波群的準確檢測對于心率分析、心律失常診斷及自動化心電分析系統具有核心意義。本文設計并實現了一套基于 MATLAB GUI 的心電信號處理與分析系統,集成了數…

1臺SolidWorks服務器能帶8-10人并發使用

在工業設計和機械工程領域,SolidWorks作為主流的三維CAD軟件,其服務器部署方案直接影響企業協同效率。通過云飛云共享云桌面技術實現多人并發使用SolidWorks時,實際承載量取決于硬件配置、網絡環境、軟件優化等多維度因素的綜合作用。根據專業…

String、StringBuilder和StringBuffer的區別

目錄一. String:不可變的字符串二.StringBuilder:可變字符串三.StringBuffer:線程安全的可變字符串四.總結在 Java 開發中,字符串處理是日常編碼中最頻繁的操作之一。String、StringBuilder 和 StringBuffer 這三個類雖然都用于操…

Power Automate List Rows使用Fetchxml查詢的一個bug

看一段FetchXML, 這段查詢在XRMtoolbox中的fech test工具里執行完全ok<fetch version"1.0" mapping"logical" distinct"true" no-lock"false"> <entity name"new_projectchange"> <link-entity name"sy…

Letta(MemGPT)有狀態AI代理的開源框架

1. 項目概述Letta&#xff08;前身為 MemGPT&#xff09;是一個用于構建有狀態AI代理的開源框架&#xff0c;專注于提供長期記憶和高級推理能力。該項目是MemGPT研究論文的實現&#xff0c;引入了"LLM操作系統"的概念用于內存管理。核心特點有狀態代理&#xff1a;具…

除了ollama還有哪些模型部署方式?多樣化模型部署方式

在人工智能的浪潮中&#xff0c;模型部署是釋放其強大能力的關鍵一環。大家都知道ollama&#xff0c;它在模型部署領域有一定知名度&#xff0c;操作相對簡單&#xff0c;受到不少人的青睞。但其實&#xff0c;模型部署的世界豐富多樣&#xff0c;今天要給大家介紹一款工具&…

Linux系統學習之進階命令匯總

文章目錄一、系統信息1.1 查看系統信息&#xff1a;uname1.2 查看主機名&#xff1a;hostname1.3 查看cpu信息&#xff1a;1.4 當前已加載的內核模塊: lsmod1.5 查看磁盤空間使用情況: df1.6 管理磁盤分區: fdisk1.7 查看目錄或文件磁盤使用情況: du1.8 查看I/O使用情況: iosta…

算法面試(2)------休眠函數sleep_for和sleep_until

操作系統&#xff1a;ubuntu22.04 IDE:Visual Studio Code 編程語言&#xff1a;C11 算法描述 這兩個函數都定義在 頭文件中&#xff0c;屬于 std::this_thread 命名空間&#xff0c;用于讓當前線程暫停執行一段時間。函數功能sleep_for(rel_time)讓當前線程休眠一段相對時間&…

貪心算法應用:5G網絡切片問題詳解

Java中的貪心算法應用&#xff1a;5G網絡切片問題詳解 1. 5G網絡切片問題概述 5G網絡切片是將物理網絡劃分為多個虛擬網絡的技術&#xff0c;每個切片可以滿足不同業務需求&#xff08;如低延遲、高帶寬等&#xff09;。網絡切片資源分配問題可以抽象為一個典型的優化問題&…

Android WorkManager的概念和使用

1. WorkManager基礎與核心概念 1.1 WorkManager概述 WorkManager是Android Jetpack架構組件庫的核心成員&#xff0c;專為管理可靠的后臺任務而設計。它提供了一套統一的API&#xff0c;用于調度需保障執行的延遲型異步任務&#xff08;如數據同步、日志上傳&#xff09;&…

容器使用卷

1.創建一個卷并讓容器掛載該卷1.創建一個卷[roothost1 ~]# docker volume create test-vol test-vol2.列出本地 Docker 主機上的卷[roothost1 ~]# docker volume ls DRIVER VOLUME NAME local test-vol3.查看該卷的詳細信息[roothost1 ~]# docker volume inspect test-v…

高數基礎知識(下)②

文章目錄七、微分方程7.3 高階線性微分方程7.3.1 線性微分方程的解的結構7.3.2 常系數齊次線性微分方程7.3.3 常系數非齊次線性微分方程八、多元函數微分學8.1 偏導數8.2 全微分8.3 基本定理8.4 復合函數微分法8.5 隱函數微分法8.6 多元函數的極值8.6.1 無條件極值8.6.2 條件極…

從0°到180°,STM32玩轉MG996R舵機

1.MG996R舵機的性能參數參數數值產品型號MG995/MG996R產品重量55 g工作扭矩13 kgcm反應速度53-62 R/M使用溫度-30C ~ 55C死區設置4 微秒插頭類型JR、FUTABA 通用轉動角度180&#xff08;左90&#xff0c;右90&#xff09;舵機類型數碼舵機使用電壓3.0 - 7.2 V工作電流100 mA結構…

[frontend]mermaid code2image

hello everyone, welcome to my bolg, here i will introduce something interesting, and if you are interested it, please just let me know. follow me and send me a message are both avaiable. what is mermaid? Mermaid 是一個工具&#xff0c;它能讓你用簡單的文字代…

Jakarta EE 在 IntelliJ IDEA 中開發簡單留言板應用的實驗指導(附完整代碼)

Jakarta EE 在 IntelliJ IDEA 中開發簡單留言板應用的實驗指導(附完整代碼) 摘要:實驗基于Jakarta EE 9+(兼容Tomcat 10+)、Maven作為構建工具,并在IntelliJ IDEA 2023.2(Community版免費)中進行。項目使用Maven Archetype WebApp模板生成基礎結構,然后升級到J…

JavaScript經典面試題一(JavaScript基礎)

目錄 一、JavaScript中的變量提升 1. 機制 2. 示例 3. 注意事項 4. 總結 二、var、let和const的區別。 1. 作用域&#xff08;Scope&#xff09; 2. 變量提升&#xff08;Hoisting&#xff09; 3. 重新賦值和重新聲明 4. 示例 示例1&#xff1a;作用域和塊級行為 示…

數據庫造神計劃第七天---增刪改查(CRUD)(3)

&#x1f525;個人主頁&#xff1a;尋星探路 &#x1f3ac;作者簡介&#xff1a;Java研發方向學習者 &#x1f4d6;個人專欄&#xff1a;《從青銅到王者&#xff0c;就差這講數據結構&#xff01;&#xff01;&#xff01;》、 《JAVA&#xff08;SE&#xff09;----如此簡單&a…