langchain中提供的chain链组件,能够帮助我门快速的实现各个组件的流水线式的调用,和模型的问答
根据查阅的资料,langchain的chain链结构如下:
原本的数据或
添加新的字段 $$A->B$$ RunnableParallel 并发输出结果并将结果
同时传递 $$A,B->C$$ RunnableLambda
自定义传递工具
乍一看很疑惑,我接下来用案例来解释各种用法。
这个案例几乎用了上面所有工具,用于演示用法
案例描述:输入论文的话题,写一篇950字的高中论文。
其他的代码我上期解释了,这里就不废话gpt 教程了,我着重讲chain链的构建,总体chain链的流程如下:
根据输入流程图流程,我们个以分解成一个个相关的链,再将各个链串起来。
构建各部分的链
1.获取写作大纲
流程描述:构建prompt->喂给ai->将返回解析成文本
这里用的和上的不同,区别在于前者比较简单,相当于后者直接用字典的形式,后者有langchain框架提供的prompt模板
2.查询相关的示例
这里就直接用Gemini,mock一些模拟数据(不保证真),用于完成案例,实际情况可以自己完善搜索逻辑。
这个相当于,后面可以不用显示调用
3. 根据大纲和示例写一篇论文
流程描述:构建prompt->喂给ai->将返回解析成文本
将各个链连起来
这里利用将和两个流程并列运行后一起输出到后面,传递给output_chain继续处理。
- 我不想利用RunnableParallel行不行? 当然可以,可以用线性来代替,先查资料,后写大纲,然后再进行文章输出,但是效率可能会比较慢。
- 我希望看到输出的data和outline字段怎么办? ,可以利用将生成的文本保存在新的字段中,调用时根据字典的方式定位各个文本,如下:
如果❤喜欢❤本系列教程,就点个关注吧,后续不定期更新~
发布者:Ai探索者,转载请注明出处:https://javaforall.net/236914.html原文链接:https://javaforall.net
