LangChain使用Parser控制输出
1.导包
from langchain_openai import ChatOpenAI
from langchain.output_parsers import CommaSeparatedListOutputParser
from langchain.prompts import ChatPromptTemplate
2.设置提示模板
prompt = ChatPromptTemplate.from_messages([("system", "{parser_instructions}"),("human", "列出5个{subject}色系的十六进制颜色码。")
])
3.对提示规范化
output_parser = CommaSeparatedListOutputParser()
parser_instructions = output_parser.get_format_instructions()
print(parser_instructions)
输出:
Your response should be a list of comma separated values, eg: foo, bar, baz
or foo,bar,baz
4.设置最终模板
final_prompt = prompt.invoke({"subject": "莫兰迪", "parser_instructions": parser_instructions})
5.输出最终模板
final_prompt
ChatPromptValue(messages=[SystemMessage(content=‘Your response should be a list of comma separated values, eg: foo, bar, baz
or foo,bar,baz
’), HumanMessage(content=‘列出5个莫兰迪色系的十六进制颜色码。’)])
6.输入模型
model = ChatOpenAI(model="gpt-3.5-turbo",base_url="https://api.chatanywhere.tech/v1")
response = model.invoke(final_prompt)
print(response.content)
#FF6F61, #FFCC5C, #FFE066, #6B705C, #546E7A