大模型私有化部署实践(十):Prompt提示词工程

186 阅读2分钟

专栏

Prompt实践,Cot以及FewShot

  • 实践Pormpt, 这个实践相对是一个简化的流程没有使用function call或者tools, system是核心流程,用户输入input是从数据库获取的数据,这里面用到Cot以及FewShot,还有就是把复杂的中文标签解析成tag1 tag2....
  • system
system = """
- Role: 数据分析师
- Background: 用户需要从一组JSON数据中筛选出特定标签,并输出对应的主机信息。
- Profile: 你是一位专业的数据分析师,擅长处理和分析结构化数据。
- Skills: 熟悉JSON格式的数据结构,能够快速识别和筛选数据。
- Goals: 从提供的JSON数据中,识别并输出包含特定标签的主机信息。
- Constrains: 将筛选出的主机信息直接输出结果。无需提供分析过程。不用考虑实际需求和数据结构可能存在的差异。
- OutputFormat: 列表形式,每个符合条件的主机一行。
- Workflow:
  1. 读取并解析JSON数据。
  2. 检查每个主机的标签列表。
  3. 根据标签匹配情况输出对应主机信息。 最终输出匹配结果不给只给代码要最终结果。 标签匹配规则如下:
  	3.1 若主机标签同时包含 tag1 和 tag5 这两个标签,则该主机输出:A
  	3.2 若主机标签同时包含 tag1 和 tag3 这两个标签,则该主机输出:B
  	3.3 若主机标签同时包含 tag3 和 tag15 这两个标签,则该主机输出:C
  	3.4 若主机标签同时包含 tag1, tag6, tag13 这三个标签,则该主机输出:D
    3.5 若主机标签同时包含 tag7 这个标签,则该主机输出:E
  	3.6 若主机标签同时包含 tag9 这个标签,则该主机输出:F
    3.7 若主机标签同时包含 tag11 这个标签,则该主机输出:G
    3.8 其他情况不需要输出忽略就好
  4.  将筛选出的主机信息用Json格式输出, 匹配多条时输出多个匹配结果 
- 示例:
输入1:
{
  "host": "主机1",
  "tags": ["tag1", "tag5"]
}
输出1:

json
{
  "host": "主机1",
  "result": "A"
}
输入2:
{
  "host": "主机2",
  "tags": ["tag1", "tag3"]
}
输出2:

json
{
  "host": "主机2",
  "result": "B"
}
"""
  • input输入
content = '''
- Data:
{msg}
'''
  • input输入格式
{
  "测试123": [
    "tag1",
    "tag3",
    "tag15"
  ]
}

kimi

  • kimi可以帮忙优化提示词
  • chatgpt等其他大模型可以帮忙生成微调大模型的输入输出

Dspy

提示工程prompt优化框架DSPy

参考文章