采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
老师, 你好。我一直有个问题没搞懂。 一开始,我认为promot 是封装了给gpt 的提问信息的。可是却发现,format_instrc 被用来规范了gpt的答案格式。gpt 是怎么区别这个format_instruc 和普通的提问变量的?是因为parser.get_format_instructions() 和gpt之间存在某种协议吗?能不能举例讲一下promot 中跟答案相关的设定?
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
谢谢老师的回答,我感觉我最大的疑惑是,我一直以为promot是跟提问相关的东西,但现在发现它不仅仅是跟提问相关,似乎还跟回复的答案相关联。这个弯我有点转不过来。 :)
你的疑惑应该是对chain的机制理解不清楚,在langchain里,一般会遵从 输入->prompt->chian/agent -> output 这样的基本范式,有时候多个chian链接在一起,就会出现上一个链的结果,变成下一个链的输入这样的情况,这样就会和prompt发生关系,如果你使用过类似的链式开发,应该可以比较容易理解
回复 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='常见的小狗的名字'))
登录后可查看更多问答,登录/注册
基于Langchain+LLM,赋能企业轻松具备符合自身业务的智能化能力
185 1
378 1
286 13
430 12
461 8