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

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

配dotenv环境时,用的指令是

pip install python-dotenv

pip install phidata

主题是AI研究者获诺奖的可行性分析,最后生成的书也挺靠谱的

甚至成功预测了今年的诺奖

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

baseline打错了,数成3个了

提示后,数正确的



主函数如下:

bash 复制代码
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)

提示词如下:

bash 复制代码
# 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生成并加以修改的提示词

bash 复制代码
# 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,并且没设定截止日期,也没讲清楚这个发布会里的重要环节。

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

不加提示词的结果:

加提示词之后的结果:

不加提示词的生成结果很生硬,像是直接从英语翻译过来的,"希望这封邮件能在您繁忙的工作生活中给予您正面的感受"。

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

不加提示词的结果:

加提示词之后的结果:

不加提示词的开头的主语是"我",不适用于商务场合。

温柔女友

提示词:

对话一:我今天上班好累,老板布置了很多任务,要求也很苛刻。

提示词为扮演一个温柔女友:

用自己设计的提示词:

明显用了设计提示词的回复效果情绪价值更高,并不是写个长篇大论的爹味小作文

对话二:下周生日,你想要什么礼物?

提示词为扮演一个温柔女友:

用自己设计的提示词:

默认提示词的更像是一个选礼物助手,而非女友

对话三:肯德基下周有和原神的联动活动,你想去吗?

提示词为扮演一个温柔女友:

用自己设计的提示词:

自己设计的提示词生成结果情绪更加浓烈。

任务:科幻小说生成

提示词:


没有提示词时,就写了个章节名字

有提示词的情况下:

相关推荐
无敌最俊朗@3 分钟前
unity3d————屏幕坐标,GUI坐标,世界坐标的基础注意点
开发语言·学习·unity·c#·游戏引擎
萧鼎7 分钟前
【Python】计算机视觉应用:OpenCV库图像处理入门
python·opencv
重生之我是数学王子9 分钟前
网络编程 UDP编程 Linux环境 C语言实现
linux·c语言·开发语言·网络·网络协议·udp
子午37 分钟前
【车辆车型识别】Python+卷积神经网络算法+深度学习+人工智能+TensorFlow+算法模型
人工智能·python·深度学习
何曾参静谧39 分钟前
「C/C++」C/C++标准库 之 #include<cstddef> 常用定义和宏
c语言·开发语言·c++
木宇(记得热爱生活)40 分钟前
C++ <string> 标头文件详解
开发语言·c++
是个热心市民41 分钟前
构建一个导航栏web
前端·javascript·python·django·html
大哇唧1 小时前
python批量合并excel文件
开发语言·python·excel
来一杯龙舌兰1 小时前
【MongoDB】Windows/Docker 下载安装,MongoDB Compass的基本使用、NoSQL、MongoDB的基础概念及基础用法(超详细)
windows·mongodb·docker·mongodb compass
on the way 1231 小时前
java.io.IOException: Too many open files
java·开发语言