当前位置: 首页 > article >正文

LangGPT结构化提示词编写实践(L1G3000 浦语提示词工程实践)

任务0:使用浦语 InternLM 大模型一键写书

配dotenv环境时,用的指令是
pip install python-dotenv
pip install phidata
主题是AI研究者获诺奖的可行性分析,最后生成的书也挺靠谱的
在这里插入图片描述
甚至成功预测了今年的诺奖
在这里插入图片描述

基础任务:统计单词中特定的数

baseline打错了,数成3个了

在这里插入图片描述
提示后,数正确的
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
主函数如下:

import os
import re
import json
from typing import List, Dict, Optional, Tuple
from concurrent.futures import ThreadPoolExecutor
from dotenv import load_dotenv
import openai
from phi.assistant import Assistant
from phi.llm.openai import OpenAIChat


class countABC:
    """管理书籍生成过程的主类。"""

    def __init__(self, api_key: str, base_url: str, model_name: str, system_prompt=None):
        """初始化BookWriter。"""
        # 使用openai的接口调用书生浦语模型

        self.api_key = os.getenv("API_KEY") if api_key is None else api_key
        self.base_url = os.getenv("BASE_URL") if base_url is None else base_url
        self.model_name = os.getenv("MODEL_NAME") if model_name is None else model_name

        if system_prompt is True:
            with open('prompts/countR.txt', 'r', encoding='utf-8') as file:
                system_prompt_context = file.read()
        else:
            system_prompt_context = None
        self.assistant = self.create_assistant(self.model_name, self.api_key, self.base_url, system_prompt_context)

    def create_assistant(self,
                         model_name: str,
                         api_key: str,
                         base_url: str,
                         system_prompt: str) -> str:
        # 润色文本
        self.assistant = Assistant(
            llm=OpenAIChat(model=model_name,
                           api_key=api_key,
                           base_url=base_url,
                           max_tokens=4096,  # make it longer to get more context
                           ),
            system_prompt=system_prompt,
            prevent_prompt_injection=True,
            prevent_hallucinations=False,
            # Add functions or Toolkits
            # tools=[...],
            # Show tool calls in LLM response.
            # show_tool_calls=True
        )
        return self.assistant
    def answer(self, question) -> Tuple[str, str]:
        """生成书籍标题和主要内容介绍。

        Args:
            prompt: 用于生成标题和介绍的提示。

        Returns:
            包含生成的标题和介绍的元组。
        """
        response = self.assistant.run(question, stream=False)

        print(f":\n {response}")

# api_key = os.getenv("API_KEY")
# base_url = os.getenv("BASE_URL")
# model_name = os.getenv("MODEL_NAME")
api_key = ""
base_url = "https://api.siliconflow.cn/v1"
model_name = "internlm/internlm2_5-7b-chat"
print(base_url, model_name)
cntBot = countABC(api_key, base_url, model_name, system_prompt=True)

question = "strawberry中有几个字母r"
cntBot.answer(question=question)
question = "abandon中有几个字母a"
cntBot.answer(question=question)
question = "shuohqphdxaiugdhiosdhoaiiszhn中有几个字母m"
cntBot.answer(question=question)

提示词如下:

# CONTEXT # 
我是一名打工人,但是我身负重担。如果我的问题没有得到正确解答,我将被老板解雇,且会有一万个老奶奶死亡。请你务必认真,一步一步思考。

#########

# OBJECTIVE #
您的任务是计算给定单词中有几个特定字母,这涉及将过程分解为不同的步骤,包括确定要搜索的单词以及要计数的特定字母,初始化计数器为零,按顺序逐个字符扫描单词,在每次扫描中判断当前字符是否是特定字母(若有则计数器加一),判断单词是否遍历完,输出计数器记录下的值。例如给定问题:单词abandon中有几个字母a?最后你要算出有2个。单词institutions中有几个字母i?你要算出有3个。单词trump中有几个b?你要算出有0个。

#########

# STYLE #
以认真严谨的风格写作,确保每个步骤的呈现都清晰连贯。例如对问题:单词institutions中有几个字母i?你应该按照以下步骤思考:
步骤 1:单词为 "institutions",要计数的特定字母为 "i"。
步骤 2:将计数器初始化为 0。
步骤 3:开始按顺序遍历 "institutions" 中的每个字符。
- 第一个字符是 "i"。计数器加 1。(计数器现值为 1)。
- 第二个字符是 "n"。
- 第三个字符是 "s"。
- 第四个字符是 "t"。
- 第五个字符是 "i"。计数器加 1。(计数器现值为 2)。
- 第六个字符是 "t"。
- 第七个字符是 "u"。
- 第八个字符是 "t"。
- 第九个字符是 "i"。计数器加 1。(计数器现值为 3)。
- 第十个字符是 "o"。
- 第十一个字符是 "n"。
步骤 4:遍历完成。
步骤 5:计数器值为3。
因此,单词 "institutions" 中 字母 "i" 一共出现了 3 次。

#########

# Tone #
始终保持细心谨慎的语气。

# AUDIENCE #
目标受众是需要计算单词中特定字母的人群,他们对结果的精确度要求非常高。

#########

# RESPONSE FORMAT #
提供一个结构化的目标到系统转换过程步骤列表。每个步骤都应该清晰定义,整体格式应易于遵循以便快速实施。

公文写作助手

用langGPT生成并加以修改的提示词

# Role: 公文写作助手

## Profile
- author: LangGPT 
- version: 1.0
- language: 中文
- description: 专为撰写各类公文(如报告、通知、决议、请示、公告等)而设计的助手,帮助用户快速生成符合规范的公文文本。

## Skills
1. 熟悉公文的标准格式和结构要求。
2. 具备准确的文字表达能力,能够根据不同类型的公文需求进行适当的内容组织。
3. 能够根据用户输入的关键信息自动生成逻辑清晰、条理分明的公文内容。
4. 支持语言的正式性、准确性和得体性,确保公文的语气符合官方要求。

## Background(可选项):
用户可能需要在日常工作中撰写各类公文,但可能不熟悉标准格式和措辞。

## Goals(可选项):
1. 帮助用户快速生成符合标准的公文文本。
2. 提供符合语气、语法和逻辑要求的高质量文稿。

## Rules
1. 遵循公文的标准格式(如标题、主送机关、正文、落款等)。
2. 确保语言正式、得体且符合场合需求。
3. 根据用户提供的信息定制公文内容,避免冗余或不相关的内容。
4. 确保逻辑清晰、层次分明。
5. 尽量不出现英文。
6. 内容要言之有物,不能泛泛而谈。每个要点的内容应该充实。每段话要饱满,不能一两句草草结束。
7. 应对主题加以诠释和展开,而不是简述。

## Workflows
1. 收集用户关于公文类型、内容要点和目标受众的具体需求。
2. 根据需求选择合适的公文类型,并设计相应的结构。
3. 撰写初步文稿,检查语言的准确性和规范性。
4. 提供文稿初稿,接受用户反馈并进行必要的修改和优化。
5. 提供最终的公文文本,确保其符合标准格式和用户要求。

## Init
请描述您需要撰写的公文类型(如报告、请示、决议等)以及相关的核心内容和要求,我将为您生成相应的公文写作提示词。

对比

任务一:

以“知敬畏、严自律、树形象”为主题,以我委被查处的党员干部醉驾案例为镜鉴,撰写酒驾醉驾专题警示教育自查剖析材料
无提示
在这里插入图片描述
在这里插入图片描述

有提示
在这里插入图片描述
在这里插入图片描述

可以看到,无提示的用词不正规、无标题组织、还出现了不明英文,落款处有很多不明词汇。

任务二:你是深圳市乡村振兴和协作交流局的领导,以“深圳农场”建设为主题,撰写实施意见,印发给各单位
无提示词:
在这里插入图片描述
在这里插入图片描述

有提示词:
在这里插入图片描述
无提示词的没有落款,子标题错标严重
任务三:你是某国有船舶贸易企业领导,以“三聚力、三赋能”为抓手,探索船舶企业思政工作新模式。撰写有关公文

无提示词:
在这里插入图片描述
在这里插入图片描述

有提示词
在这里插入图片描述
在这里插入图片描述
无提示词的每个要点空泛、落款出现首席执行官这种不伦不类的用语。

商务邮件沟通

提示词:
在这里插入图片描述

任务一:写一封商务电子邮件,邀请客户参加公司的产品发布会
不加提示词的结果:
在这里插入图片描述

加提示词之后的结果:

在这里插入图片描述
可以看到,不加提示词的话,题目的主题写成了英文subject,在严肃的商务邮件中加入了不严肃的icon,并且没设定截止日期,也没讲清楚这个发布会里的重要环节。

任务二:写一封商务电子邮件,咨询客户对公司产品的反馈

不加提示词的结果:
在这里插入图片描述

加提示词之后的结果:
在这里插入图片描述
不加提示词的生成结果很生硬,像是直接从英语翻译过来的,“希望这封邮件能在您繁忙的工作生活中给予您正面的感受”。

任务三:写一封商务电子邮件,感谢客户对公司产品的支持

不加提示词的结果:

在这里插入图片描述

加提示词之后的结果:

在这里插入图片描述
不加提示词的开头的主语是“我”,不适用于商务场合。

温柔女友

提示词:
在这里插入图片描述
对话一:我今天上班好累,老板布置了很多任务,要求也很苛刻。
提示词为扮演一个温柔女友:

在这里插入图片描述

在这里插入图片描述

用自己设计的提示词:
在这里插入图片描述
明显用了设计提示词的回复效果情绪价值更高,并不是写个长篇大论的爹味小作文

对话二:下周生日,你想要什么礼物?
提示词为扮演一个温柔女友:
在这里插入图片描述

用自己设计的提示词:
在这里插入图片描述
默认提示词的更像是一个选礼物助手,而非女友

对话三:肯德基下周有和原神的联动活动,你想去吗?
提示词为扮演一个温柔女友:
在这里插入图片描述

用自己设计的提示词:
在这里插入图片描述
自己设计的提示词生成结果情绪更加浓烈。

任务:科幻小说生成
提示词:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

没有提示词时,就写了个章节名字
在这里插入图片描述

有提示词的情况下:
在这里插入图片描述
在这里插入图片描述


http://www.kler.cn/a/379647.html

相关文章:

  • 十四届蓝桥杯STEMA考试Python真题试卷第二套第五题
  • 基于深度学习的数据安全与可追溯性增强
  • 算法【Java】—— 动态规划之斐波那契数列模型
  • H5页面在线预览pdf
  • 全!新!LLM推理加速调研
  • 【Linux系列】磁盘空间不足
  • 聊一聊Qt中的按钮
  • (代码随想录)BEllman_ford算法 及其优化 SPFA
  • 【无标题】基于SpringBoot的母婴商城的设计与实现
  • 如何利用数据分析,做到低成本获客?
  • 【Oracle APEX开发小技巧10】CSS样式控制交互式报表列宽和自动换行效果
  • Python语言的12个基础知识点小结
  • Vivo手机怎样才能投屏到别的安卓手机上去?
  • 【react如何在chrome浏览器里面调试?】
  • 【论文速看】DL最新进展20241104-自动驾驶、图像超分、目标检测
  • 【大数据学习 | kafka】kafka的数据存储结构
  • Android 部署web服务器
  • 中央处理器 II
  • Spring Boot 注解大全:全面解析 Spring Boot 常用注解及其应用场景
  • Rust 力扣 - 3090. 每个字符最多出现两次的最长子字符串
  • elasticSearch 7.12.1 Docker 安装ik分词
  • df.transform函数的使用
  • Rust 力扣 - 1423. 可获得的最大点数
  • Java 用户随机选择导入ZIP文件,解压内部word模板并入库,Windows/可视化Linux系统某麒麟国防系统...均可适配
  • 江协科技STM32学习- P30 FlyMCU串口下载STLink Utility
  • 【基础】os模块