你用什么擦干我的眼淚
莎士比亞全集
工業紙巾
還是你同樣泛紅的眼睛
????????????????????????????????—— 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)))