使用langchain作为脚手架工具,构建提示语工程,请求chat gpt 回答问题简单示例如下:
#起名大师,输出格式为一个数组
from langchain.llms import OpenAI
from langchain.prompts import PromptTemplate
import os
from langchain.schema import BaseOutputParser
#自定义类
class CommaSeparatedListOutputParser(BaseOutputParser):
# """Parse the output of an LLM call to a comma-separated list."""
def parse(self, text: str):
# """Parse the output of an LLM call."""
print(text)
return text.strip().split(",")
api_base = os.getenv("OPENAI_API_BASE")
api_key = os.getenv("OPENAI_KEY")
llm = OpenAI(
model="gpt-3.5-turbo-instruct",
temperature=0,
openai_api_key=api_key,
openai_api_base=api_base
)
prompt = PromptTemplate.from_template("你是一个起名大师,请模仿示例起3个具有{county}特色的名字,示例:男孩常用名{boy},女孩常用名{girl}。请返回以逗号分隔的列表形式。仅返回逗号分隔的列表,不要返回其他内容。")
message = prompt.format(county="美国男孩",boy="andy",girl="lyla")
print(message)
strs = llm.predict(message)
CommaSeparatedListOutputParser().parse(strs)
提示词结构
1,立角色:引导ai进入具体场景,赋予其行家身份
2,述问题:告诉ai你的困惑和问题,以及背景信息
3,定目标:告诉ai你的需求,希望达成的目标
4,补要求:告诉ai回答时需要注意什么,或者如何回复
1,立角色:假如你是一个导游
2,述问题:我要到海南旅游,预算1万元,旅行人数3人,行程7天
3,定目标:请帮我做一份旅行攻略
4,补要求:请注意,我不喜欢行程太紧凑,我不喜欢网红景点,更喜欢有文化底蕴的景点,另外,旅行景点请附上各个景点的价格。