【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.mzph.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…