Langchain之调用链
在 LangChain 中,.invoke, .stream 和 .batch 是调用链(Chain)或可运行对象(Runnable)的三种核心方法。它们的主要区别在于处理输入的方式和返回输出的形式。
.invoke
# 假设 c 是一个配置好的翻译任务链
c = p | llm | StrOutputParser()
output = c.invoke({"text": "熊"})
print(output)
# 输出为:bear
.invoke的输入是单个输入,并且阻塞当前线程直到处理完成,然后返回单个输出。
.batch
c = p | llm | StrOutputParser()
input_list = [{'text':'橙子'},{'text':'玉米'},{'text':'西瓜'}]
res = c.batch(input_list)
.invoke的输入是列表,并且并行处理这些输入,最终返回一个输出列表,其顺序与输入列表一致
.stream
c = p | llm
res = c.stream({'text':'你好世界,你好世界,你好世界'})
for chunk in res:
print(chunk.content, end='', flush=True)
输入是单个输入,输出是流式输出,通过.stream结合设置参数flush=True,使得我们能够将数据获取到缓冲区的同时能够将数据逐步展示出来,不需要等待所有的数据都处理完成。

浙公网安备 33010602011771号