【NLP 66、實踐 ? 基于Agent + Prompt Engineering文章閱讀】

你用什么擦干我的眼淚

莎士比亞全集

工業紙巾

還是你同樣泛紅的眼睛

????????????????????????????????—— 4.19

一、?【核心函數】定義大模型調用函數 call_large_model

prompt:用戶傳入的提示詞(如 “請分析這篇作文的主題”),指導模型執行任務

client:ZhipuAI客戶端實例,用于發起 API 請求,api_key需從智譜 AI 官網申請

model:指定使用智譜 AI 的glm-3-turbo模型(支持對話式交互)。

messages:輸入格式為列表,每個元素是包含role(角色,此處為user)和content(內容,即prompt)的字典,符合智譜 AI 對話模型的輸入規范。

response:模型返回的原始響應。

response_text:提取第一個生成結果的文本內容。

ZhipuAI():初始化智譜 AI(ZhipuAI)的客戶端實例,用于與智譜 AI 的大模型服務進行交互,支持調用模型 API 發送請求并獲取響應。

參數名類型是否必填默認值描述
api_key字符串智譜 AI 的 API 密鑰,用于身份驗證(需從智譜 AI 官網申請,示例中為占位符)

chat.completions.create():調用智譜 AI 的大模型(如glm-3-turbo)生成響應,支持對話式交互,傳入對話歷史和提示詞,獲取模型的文本生成結果。

參數名類型是否必填默認值描述
model字符串指定使用的模型名稱(如glm-3-turbo
messages列表 [字典]對話歷史列表,每個元素包含role(角色)和content(內容)
temperature浮點型0.7控制生成文本的隨機性(值越高越隨機,范圍:0-1)
max_tokens整數1000生成文本的最大 tokens 數(控制輸出長度)
top_p浮點型1.0核采樣參數,與temperature共同控制隨機性
def call_large_model(prompt):client = ZhipuAI(api_key="填寫你自己的智譜API")response = client.chat.completions.create(model="glm-3-turbo",messages=[{"role": "user", "content": prompt}])response_text = response.choices[0].message.contentreturn response_text

二、主題分析函數 language_optimization_agent

article_text:待分析的文章內容(從文件讀取或用戶輸入)

prompt_analysis:提示詞拼接結果,格式為 “請分析這篇作文的主題:[文章內容]”,明確告知模型任務是提取文章主題。

language_optimization_suggestions:模型生成的主題描述(如 “文章主題是:人與寵物的溫情陪伴”)

call_large_model():大模型調用

def language_optimization_agent(article_text):prompt_analysis = "請分析這篇作文的主題:" + article_textlanguage_optimization_suggestions = call_large_model(prompt_analysis)return language_optimization_suggestions

三、定義內容豐富函數 content_enrichment_agent

article_text:待分析的文章內容(從文件讀取或用戶輸入)

theme_analysis_result:通過language_optimization_agent得到的主題分析結果(如 “寵物陪伴與成長”)。

prompt_content:提示詞結構為 “根據主題 [主題結果],提出可擴展的內容點 [文章內容]”,引導模型結合主題給出具體擴展方向(如 “增加寵物互動細節”)。

content_enrichment_suggestions:模型生成的內容豐富建議(如 “可補充寵物生病時的照顧細節”)

call_large_model():大模型調用

def content_enrichment_agent(article_text, theme_analysis_result):# 根據文章分析結果構建提示詞prompt_content = f"請閱讀下面這篇文章,根據主題{theme_analysis_result},為該文章提出可以進一步擴展和豐富的內容點" + article_textcontent_enrichment_suggestions = call_large_model(prompt_content)return content_enrichment_suggestions

四、定義可讀性優化函數

article_text:待分析的文章內容(從文件讀取或用戶輸入)

theme_analysis_result:通過language_optimization_agent得到的主題分析結果(如 “寵物陪伴與成長”)。

prompt_readablity:提示詞結構為 “根據主題 [主題結果],總結主旨為 30 字以內通俗語言 [文章內容]”,明確任務是簡潔概括。

readability_suggestions:模型生成的主旨總結(如 “講述與金毛寵物大福的相遇、成長及相互陪伴的溫暖故事”)。

call_large_model():大模型調用

def readability_agent(article_text, theme_analysis_result):# 根據文章分析結果構建提示詞prompt_readability = f"請閱讀下面這篇文章,根據主題{theme_analysis_result},將文章主旨大意總結成三十字以內通俗易懂的話:" + article_textreadability_suggestions = call_large_model(prompt_readability)return readability_suggestions

五、定義仿寫文章函數?imitate_article_agent

article_text:待分析的文章內容(從文件讀取或用戶輸入)

theme_analysis_result:通過language_optimization_agent得到的主題分析結果(如 “寵物陪伴與成長”)。

prompt_imitate:提示詞結構為 “根據主題 [主題結果],仿寫同主題文章 [文章內容]”,引導模型模仿原文風格和主題生成新內容。

imitate_article_suggestions:?模型生成的仿寫文章(如以其他寵物為對象,重復 “相遇 - 成長 - 陪伴” 的敘事結構)。

call_large_model():大模型調用

def imitate_article_agent(article_text, theme_analysis_result):# 根據文章分析結果構建提示詞prompt_imitate = f"請閱讀下面這篇文章,根據主題{theme_analysis_result},請參照同樣主題仿寫一篇相似的文章:" + article_textimitate_article_suggestions = call_large_model(prompt_imitate)return imitate_article_suggestions

六、讀取文件并調用函數

open():打開一個文件并返回文件對象,用于讀取、寫入或操作文件內容,支持處理不同編碼和模式的文件。

參數名類型是否必填默認值描述
file字符串文件路徑(絕對路徑或相對路徑,如"F:/.../《我的寵物》.txt"
mode字符串"r"打開模式(如"r"只讀,"w"寫入,"a"追加等)
encoding字符串None文件編碼(如"utf-8"處理中文,"gbk"等)
errors字符串None編碼錯誤處理方式(如"ignore"忽略錯誤)

read():從已打開的文件對象中讀取內容,返回字符串(文本文件)或字節數據(二進制文件),支持按指定長度讀取。

參數名類型是否必填默認值描述
size整數-1讀取的字節數或字符數:
-?-1(默認):讀取全部內容
- 正數:讀取指定長度

article:?存儲從文本文件中讀取的文章內容,作為后續函數(如主題分析、內容豐富)的輸入數據,類型為字符串。

with open("F:/人工智能NLP/NLP/HomeWork/demo14.3_Prompt優化+Agent優化文章/《我的寵物》.txt", "r", encoding="utf-8") as file:article = file.read()
print("文章主題是:",language_optimization_agent(article))
print("————————————————————————————————————————————————————————————————————————————————————")
print("文章內容點是:",content_enrichment_agent(article, language_optimization_agent(article)))
print("————————————————————————————————————————————————————————————————————————————————————")
print("文章主旨大意是:",readability_agent(article, language_optimization_agent(article)))
print("————————————————————————————————————————————————————————————————————————————————————")
print("仿寫文章是:",imitate_article_agent(article, language_optimization_agent(article)))

七、完整代碼

代碼運行流程

┌─────────────────────────────┐
│      主程序開始              │
└──────────┬──────────────────┘│├─1. 讀取文件│    ├─文件路徑: F:/人工智能NLP/.../《我的寵物》.txt│    └─存儲內容到變量 `article`│├─2. 執行語言優化分析│    ├─調用 `language_optimization_agent(article)`│    │    ├─構造Prompt: 分析主題│    │    └─調用大模型 → 返回主題結果│    └─打印結果: "文章主題是:{主題}"│├─3. 執行內容擴展分析│    ├─調用 `content_enrichment_agent(article, 主題)`│    │    ├─構造Prompt: 基于主題擴展內容│    │    └─調用大模型 → 返回擴展建議│    └─打印結果: "文章內容點是:{建議}"│├─4. 執行可讀性分析│    ├─調用 `readability_agent(article, 主題)`│    │    ├─構造Prompt: 總結主旨(30字內)│    │    └─調用大模型 → 返回摘要│    └─打印結果: "文章主旨大意是:{摘要}"│└─5. 執行仿寫分析├─調用 `imitate_article_agent(article, 主題)`│    ├─構造Prompt: 基于主題仿寫│    └─調用大模型 → 返回仿寫文章└─打印結果: "仿寫文章是:{仿寫內容}"
from zhipuai import ZhipuAIdef call_large_model(prompt):client = ZhipuAI(api_key="填寫你自己的智譜API")response = client.chat.completions.create(model="glm-3-turbo",messages=[{"role": "user", "content": prompt}])response_text = response.choices[0].message.contentreturn response_textdef language_optimization_agent(article_text):prompt_analysis = "請分析這篇作文的主題:" + article_textlanguage_optimization_suggestions = call_large_model(prompt_analysis)return language_optimization_suggestionsdef content_enrichment_agent(article_text, theme_analysis_result):# 根據文章分析結果構建提示詞prompt_content = f"請閱讀下面這篇文章,根據主題{theme_analysis_result},為該文章提出可以進一步擴展和豐富的內容點" + article_textcontent_enrichment_suggestions = call_large_model(prompt_content)return content_enrichment_suggestionsdef readability_agent(article_text, theme_analysis_result):# 根據文章分析結果構建提示詞prompt_readability = f"請閱讀下面這篇文章,根據主題{theme_analysis_result},將文章主旨大意總結成三十字以內通俗易懂的話:" + article_textreadability_suggestions = call_large_model(prompt_readability)return readability_suggestionsdef imitate_article_agent(article_text, theme_analysis_result):# 根據文章分析結果構建提示詞prompt_imitate = f"請閱讀下面這篇文章,根據主題{theme_analysis_result},請參照同樣主題仿寫一篇相似的文章:" + article_textimitate_article_suggestions = call_large_model(prompt_imitate)return imitate_article_suggestionswith open("F:/人工智能NLP/NLP/HomeWork/demo14.3_Prompt優化+Agent優化文章/《我的寵物》.txt", "r", encoding="utf-8") as file:article = file.read()
print("文章主題是:",language_optimization_agent(article))
print("————————————————————————————————————————————————————————————————————————————————————")
print("文章內容點是:",content_enrichment_agent(article, language_optimization_agent(article)))
print("————————————————————————————————————————————————————————————————————————————————————")
print("文章主旨大意是:",readability_agent(article, language_optimization_agent(article)))
print("————————————————————————————————————————————————————————————————————————————————————")
print("仿寫文章是:",imitate_article_agent(article, language_optimization_agent(article)))

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

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

相關文章

黑馬Java基礎筆記-1

JVM,JDK和JRE JDK是java的開發環境 JVM虛擬機:Java程序運行的地方 核心類庫:Java已經寫好的東西,我們可以直接用。 System.out.print中的這些方法就是核心庫中的所包含的 開發工具: javac(編譯工具)、java&…

PR第一課

目錄 1.新建 2.PR內部設置 3.導入素材 4.關于素材窗口 5.關于編輯窗口 6.序列的創建 7.視頻、圖片、音樂 7.1 帶有透明通道的素材 8.導出作品 8.1 打開方法 8.2 導出時,需要修改的參數 1.新建 2.PR內部設置 隨意點開 編輯->首選項 中的任意內容&a…

Xcode16 調整 Provisioning Profiles 目錄導致證書查不到

cronet demo 使用的 ninja 打包,查找 Provisioning Profiles 路徑是 ~/Library/MobileDevice/Provisioning Profiles,但 Xcode16 把該路徑改為了 ~/Library/Developer/Xcode/UserData/Provisioning Profiles,導致在編譯 cronet 的demo 時找不…

【更新完畢】2025華中杯C題數學建模網絡挑戰賽思路代碼文章教學數學建模思路:就業狀態分析與預測

完整內容請看文末最后的推廣群 先展示文章和代碼、再給出四個問題詳細的模型 基于多模型下的就業狀態研究 摘要 隨著全球經濟一體化和信息技術的迅猛發展,失業問題和就業市場的匹配性問題愈加突出。為了解決這一問題,本文提出了一種基于統計學習和機器學…

[HOT 100] 1964. 找出到每個位置為止最長的有效障礙賽跑路線

文章目錄 1. 題目鏈接2. 題目描述3. 題目示例4. 解題思路5. 題解代碼6. 復雜度分析 1. 題目鏈接 1964. 找出到每個位置為止最長的有效障礙賽跑路線 - 力扣(LeetCode) 2. 題目描述 你打算構建一些障礙賽跑路線。給你一個 下標從 0 開始 的整數數組 obst…

2025年KBS SCI1區TOP:增強天鷹算法EBAO,深度解析+性能實測

目錄 1.摘要2.天鷹算法AO原理3.改進策略4.結果展示5.參考文獻6.代碼獲取 1.摘要 本文提出了增強二進制天鷹算法(EBAO),針對無線傳感器網絡(WSNs)中的入侵檢測系統(IDSs)。由于WSNs的特點是規模…

JavaScript數據類型簡介

在JavaScript中,理解不同的數據類型是掌握這門語言的基礎。數據類型決定了變量可以存儲什么樣的值以及這些值能夠執行的操作。JavaScript支持多種數據類型,每種都有其特定的用途和特點。本文將詳細介紹JavaScript中的主要數據類型,并提供一些…

性能比拼: Elixir vs Go(第二輪)

本內容是對知名性能評測博主 Anton Putra Elixir vs Go (Golang) Performance Benchmark (Round 2) 內容的翻譯與整理, 有適當刪減, 相關指標和結論以原作為準 這是第二輪關于 Elixir 和 Go 的對比測試。我收到了一份來自 Elixir 創作者的 Pull Request ,并且我認為…

接口自動化 ——fixture allure

一.參數化實現數據驅動 上一篇介紹了參數化,這篇 說說用參數化實現數據驅動。在有很多測試用例的時候,可以將測試用例都存儲在文件里,進行讀寫調用。本篇主要介紹 csv 文件和 json 文件。 1.讀取 csv 文件數據 首先創建 csv 文件&#xff…

`peft`(Parameter-Efficient Fine-Tuning:高效微調)是什么

peft(Parameter-Efficient Fine-Tuning:高效微調)是什么 peft庫是Hugging Face推出的用于高效參數微調的庫,它能在不調整模型全部參數的情況下,以較少的可訓練參數對預訓練模型進行微調,從而顯著降低計算資源需求和微調成本。以下從核心功能、優勢、常見微調方法、使用場…

編程常見錯誤歸類

上一篇講了調試&#xff0c;今天通過一個舉例回憶一下上一篇內容吧&#xff01; 1. 回顧&#xff1a;調試舉例 在VS2022、X86、Debug的環境下&#xff0c;編譯器不做任何優化的話&#xff0c;下?代碼執?的結果是啥&#xff1f; #include <stdio.h> int main() {int …

在windows上交叉編譯opencv供RK3588使用

環境 NDK r27、RK3588 安卓板子、Android 12 步驟操作要點1. NDK 下載選擇 r27 版本&#xff0c;解壓到無空格路徑&#xff08;如 C:/ndk&#xff09;2. 環境變量配置添加 ANDROID_NDK_ROOT 和工具鏈路徑到系統 PATH3. CMake 參數調整指定 ANDROID_NATIVE_API_LEVEL31、ANDRO…

淺析MySQL事務鎖

在 MySQL 中,事務鎖是用于確保數據一致性和并發控制的重要機制。事務鎖可以幫助防止多個事務同時修改同一數據,從而避免數據不一致和臟讀、不可重復讀、幻讀等問題。 以下是 MySQL 事務鎖的關鍵點總結: 事務鎖:用于確保數據一致性和并發控制。鎖的類型: 行級鎖:InnoDB,粒…

vue3 文件下載(excel/rar/zip)

安裝axios npm install axios 在項目中引入 import axios from axios; 1、get接口excel文件下載 const file_key ref() const downLoadExcel (value:any) > {//file_key.value value axios({method: "get",url: "/api/da/download_excel/",//url:…

RT-Thread RTThread studio 初使用

RT-Thread Studio 下載 https://www.rt-thread.org/studio.html 安裝使用 https://bbs.elecfans.com/jishu_2425653_1_1.html 4 編譯問題解決 問題一&#xff1a;error: unknown type name clock_t 具體的類型值是在sys/_types.h中定義的&#xff0c;需要包含sys/_types.h 這個…

漢諾塔專題:P1760 通天之漢諾塔 題解 + Problem D: 漢諾塔 題解

1. P1760 通天之漢諾塔 題解 題目背景 直達通天路小A歷險記第四篇 題目描述 在你的幫助下&#xff0c;小 A 成功收集到了寶貴的數據&#xff0c;他終于來到了傳說中連接通天路的通天山。但是這距離通天路仍然有一段距離&#xff0c;但是小 A 突然發現他沒有地圖&#xff0…

探索 HumanoidBench:類人機器人學習的新平臺

在科技飛速發展的當下&#xff0c;類人機器人逐漸走進我們的視野&#xff0c;它們有著和人類相似的外形&#xff0c;看起來能像人類一樣在各種環境里完成復雜任務&#xff0c;潛力巨大。但實際上&#xff0c;讓類人機器人真正發揮出實力&#xff0c;還面臨著重重挑戰。 這篇文…

數據結構中的寶藏秘籍之廣義表

廣義表&#xff0c;也被稱作列表&#xff08;Lists&#xff09;&#xff0c;是一種遞歸的數據結構。它就像一個神秘的盒子&#xff0c;既可以裝著單個元素&#xff08;原子&#xff09;&#xff0c;也可以嵌套著其他的盒子&#xff08;子列表&#xff09;。比如廣義表 (a (b c)…

【jenkins】首次配置jenkins

第一步&#xff0c;輸入管理員密碼 cat /var/jenkins_home/secrets/initialAdminPassword第二步&#xff0c;點擊安裝推薦的插件 第三步&#xff0c;創建管理員用戶 第四步&#xff0c;返回實例 第五步&#xff0c; 升級jenkins 第六步&#xff0c; 修復提示 第七步&#xff0c…

Android studio—socketIO庫return與emit的使用

文章目錄 一、Socket.IO庫簡單使用說明1. 后端 Flask Flask-SocketIO2. Android 客戶端集成 Socket.IO3. 布局文件注意事項 二、接受服務器消息的二種方法1. 客戶端接收通過 emit 發送的消息功能使用場景后端代碼&#xff08;Flask-SocketIO&#xff09;客戶端代碼&#xff08…