做网站大约需要多少钱,互联网装饰网站,05网数学书答案,网站运营企业一、将其他chain的输入作为新chain的输出#xff0c;三种方式
1、采用连接符|#xff0c;推荐
2、采用lamba表达式输入
3、采用pipe方法
from langchain_community.chat_models import ChatOllama
from langchain_core.output_parsers import StrOutputParse…一、将其他chain的输入作为新chain的输出三种方式
1、采用连接符|推荐
2、采用lamba表达式输入
3、采用pipe方法
from langchain_community.chat_models import ChatOllama
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnableParallel
promptChatPromptTemplate.from_template(tell me a joke about {topic}
)
modelChatOllama(modelqwen:7b)
chainprompt|model|StrOutputParser()
##批量
# reschain.batch([{topic:bear},{topic:chair}])
##chain的连接本例子通过一个chain分析模型的输出结果
analysis_promtChatPromptTemplate.from_template(is this a funcy joke?{joke}
)
###方式1
composed_chian{joke:chain}|analysis_promt|model|StrOutputParser()
rescomposed_chian.invoke({topic:bear})
###方式2
composed_chian_with_lamba(chain|(lambda x:{joke:x})|analysis_promt|model|StrOutputParser()
)
rescomposed_chian_with_lamba.invoke({topic:bear})
###方式3
composed_chain_with_pipe(RunnableParallel({joke:chain}).pipe(analysis_promt).pipe(model).pipe(StrOutputParser())
)
rescomposed_chain_with_pipe.invoke({topic:bear})
print(res)
二、RunnableParallel
并行,每个值都是用RunnableParallel的整体输入调用的,使前一个输出格式匹配下一个输入
from langchain_community.vectorstores import FAISS
from langchain_core.output_parsers import StrOutputParser
from langchain_core.prompts import ChatPromptTemplate
from langchain_core.runnables import RunnablePassthrough,RunnableParallel
from langchain_community.chat_models import ChatOllama
from langchain_community.embeddings import OllamaEmbeddings
vectorstoreFAISS.from_texts([harrison worked at kensho],embeddingOllamaEmbeddings(modelqwen:7b)
)
retrievervectorstore.as_retriever()
template
Answer the question based only on the following context:{context}
Question:{question}promptChatPromptTemplate.from_template(template)
modelChatOllama(modelqwen:7b)
retrieval_chain({context:retriever,question:RunnablePassthrough()}##4种等价# RunnableParallel({context:retriever,question:RunnablePassthrough()})# RunnableParallel(contextretriever,questionRunnablePassthrough())# {context:retriever,question:itemgetter(question)}|prompt|model|StrOutputParser()
)
resretrieval_chain.invoke({question:where did harrison work})
print(res)