请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

prompt.partial(format_instruc=parser.get_format_instructions()) 规范了gpt回答的格式?

老师, 你好。我一直有个问题没搞懂。 一开始,我认为promot 是封装了给gpt 的提问信息的。可是却发现,format_instrc 被用来规范了gpt的答案格式。gpt 是怎么区别这个format_instruc 和普通的提问变量的?是因为parser.get_format_instructions() 和gpt之间存在某种协议吗?能不能举例讲一下promot 中跟答案相关的设定?

正在回答 回答被采纳积分+3

1回答

tomiezhang 2024-05-03 15:51:45
https://github.com/langchain-ai/langchain/blob/master/libs/core/langchain_core/prompts/chat.py#L1067 可以看下这里对partial_variables的维护和使用partial的时候就是对这个字典做维护,相当于隐式的在langchain内部处理了这样一堆key/vale值,这样提示词模版里就会有自动获得了占位符和它的值。
参考类似问题:https://coding.imooc.com/learn/questiondetail/NAr19YnGQejXLBEz.html


0 回复 有任何疑惑可以回复我~
  • 提问者 zhazi #1
    谢谢老师的回答,我感觉我最大的疑惑是,我一直以为promot是跟提问相关的东西,但现在发现它不仅仅是跟提问相关,似乎还跟回复的答案相关联。这个弯我有点转不过来。 :)
    回复 有任何疑惑可以回复我~ 2024-05-07 01:30:14
  • tomiezhang 回复 提问者 zhazi #2
    你的疑惑应该是对chain的机制理解不清楚,在langchain里,一般会遵从 输入->prompt->chian/agent -> output 这样的基本范式,有时候多个chian链接在一起,就会出现上一个链的结果,变成下一个链的输入这样的情况,这样就会和prompt发生关系,如果你使用过类似的链式开发,应该可以比较容易理解
    回复 有任何疑惑可以回复我~ 2024-05-07 20:23:03
  • abulaka 回复 提问者 zhazi #3
    回复 zhazi:
    prompt 可以设置角色,描述问题,描述回答的格式等。
    parser.get_format_instructions() 和 gpt 是没有关联的,你可以看下 parser.get_format_instructions()  的返回值,他其实是一段描述,这段描述是对语言模型返回的格式的说明。之所以例子中能返回 json 和 list,就在于 PydanticOutputParser 和 CommaSeparatedListOutputParser 的 get_format_instructions()  方法的返回值。
    
    partial_variables={'format_instructions': parser.get_format_instructions()}
    另外, partial_variables 是部分填充参数的意思,也就是将 parser.get_format_instructions() 的返回值替换 PromptTemplate 中定义的 format_instructions 参数
    
    你可以添加下面的代码就可以看到你的完整的 prompt 了 
    print(prompt_template.format(subject='常见的小狗的名字'))
    回复 有任何疑惑可以回复我~ 2024-06-19 15:53:58
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信