本文主要是介绍LangChain-03 astream_events 流输出,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
内容简介
- 尝试用
FAISS
或DocArrayInMemorySearch
将数据向量化后检索 astream_events
的效果为|H|arrison| worked| at| Kens|ho|.||
安装依赖
# 之前的依赖即可
pip install --upgrade --quiet langchain-core langchain-community langchain-openai
# Win或Linux用户可以试试 FAISS
pip install faiss
# mac用户应该为
pip install faiss-cpu
编写代码
我没有用 FAISS,这里替换为:DocArrayInMemorySearch
# MacBookProM1 FAISS没有包,可能是 faiss-cpu
# from langchain_community.vectorstores import FAISS
from langchain_community.vectorstores import DocArrayInMemorySearch
from langchain_core.output_parsers import StrOutputParser
from langchain_core.runnables import RunnablePassthrough
from langchain_core.prompts import ChatPromptTemplate
from langchain_openai import OpenAIEmbeddings
from langchain_openai.chat_models import ChatOpenAIasync def main():template = """Answer the question based only on the following context:{context}Question: {question}"""prompt = ChatPromptTemplate.from_template(template)vectorstore = DocArrayInMemorySearch.from_texts(["harrison worked at kensho"], embedding=OpenAIEmbeddings())retriever = vectorstore.as_retriever()model = ChatOpenAI(model="gpt-3.5-turbo",)retrieval_chain = ({"context": retriever.with_config(run_name="Docs"),"question": RunnablePassthrough(),}| prompt| model.with_config(run_name="my_llm")| StrOutputParser())async for event in retrieval_chain.astream_events("where did harrison work?", version="v1", include_names=["Docs", "my_llm"]):kind = event["event"]if kind == "on_chat_model_stream":print(event["data"]["chunk"].content, end="|")elif kind in {"on_chat_model_start"}:print()print("Streaming LLM:")elif kind in {"on_chat_model_end"}:print()print("Done streaming LLM.")elif kind == "on_retriever_end":print("--")print("Retrieved the following documents:")print(event["data"]["output"]["documents"])elif kind == "on_tool_end":print(f"Ended tool: {event['name']}")else:passif __name__ == "__main__":import asyncioasyncio.run(main())
运行结果
➜ python3 test03.py
/Users/wuzikang/Desktop/py/langchain_test/own_learn/env/lib/python3.12/site-packages/pydantic/_migration.py:283: UserWarning: `pydantic.error_wrappers:ValidationError` has been moved to `pydantic:ValidationError`.warnings.warn(f'`{import_path}` has been moved to `{new_location}`.')
/Users/wuzikang/Desktop/py/langchain_test/own_learn/env/lib/python3.12/site-packages/langchain_core/_api/beta_decorator.py:86: LangChainBetaWarning: This API is in beta and may change in the future.warn_beta(
--
Retrieved the following documents:
[Document(page_content='harrison worked at kensho')]Streaming LLM:
|H|arrison| worked| at| Kens|ho|.||
Done streaming LLM.
这篇关于LangChain-03 astream_events 流输出的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!